% orglyphs.mf -- Oriya glyphs % Copyright 1996, 1999 Jeroen Hellingman. This file may be distributed, read % the readme file for details. % % History: % 26-JAN-2003 modified k.s.na (AP) % 26-MAY-2002 added p+pa (AP) % 20-JUN-1999 added j+jha (JH) % 16-JUN-1999 improved ja, j+ja, added b+ja (JH) % 05-JUN-1999 added k+tta, b+dha, t+pa, g+ga, g+dha (JH) % 29-MAY-1999 exchanged nn+tta and nn+ttha (JH) % 21-MAY-1999 added s+kha (JH) % 31-MAY-1998 added ni, variant n+ta, n+ti, h+ma (JH) % 28-MAY-1998 added calligraphic secondary ra (JH) % 03-MAY-1998 added vowel signs rii, li, lii (JH) % 07-SEP-1997 added d+ga, dd+dda (JH) % 06-SEP-1997 added ba with dot inside (JH) % 17-MAY-1997 fixed some small things (JH) % 29-APR-1997 added slash, backslash, secondary bhu (JH) % 30-NOV-1996 adjusted bha (JH) % 28-NOV-1996 added n+tha, s+tha, sh+cha, ny+cha, ss+nna (JH) % 27-NOV-1996 redesigned da, ha, t+ta, b+dha (JH) % 26-NOV-1996 redesigned d+da, d+dha, nga, u, uu (JH) % 25-NOV-1996 redesigned ta (JH) % 23-NOV-1996 added va and braces (JH) % 19-NOV-1996 changed secondary bha and full yya (JH) % 18-NOV-1996 corrected character widths (JH) % 16-NOV-1996 yya: corrected pen (JH) % 12-NOV-1996 Concatenated into a single file and re-ordered (JH) % % Important note: % Many of the character programs depend on preceding programs to fill certain % picture variables. Do not change the order of the programs in this file! % You will probably need a BIG metafont to make this font at large magnifications. % % Whenever you make changes or add characters, please contact the author. % % Jeroen Hellingman E-mail: % Aletta Jacobsstraat 5 phone: +31-30-6875444 (19:00--21:00 MET) % 3404 XD IJsselstein % The Netherlands % %%%%% secondary consonants beginchar(cs_bha, 0uw#, 0uh#, 10uh#); "Oriya secondary letter bha"; pickup subpen; z2 = (0,0); new_tailtwo(1,2,3,4,5,6,7); penlabels(1,2,3,4,5,6,7); adjustpos(rm+rb); endchar; beginchar(cs_bhu, 0uw#, 0uh#, 15uh#); "Oriya secondary letter bhu"; pickup subpen; % first four values copied from new_tailtwo() z1 = (-4uw, -4uh); z2 = (0uw,0uh); z3 = (4uw, -4uh); z4 = (0uw, -9uh); % joined u matra z5 = (-5uw, -13uh); z6 = (-10uw, .5[y5, y7]); z7 = (x5, -8uh); z8 = (8uw, -15uh); draw z1{up}..z2{right}..z3{down}..tension1.1..z5{left}..z6{up} ..z7{right}..tension1.1..{curl0}z8; penlabels(1,2,3,4,5,6,7,8); adjustpos(rm+rb); endchar; picture sec_da_picture; beginchar(cs_ddha, 0uw#, 0uh#, 12uh#); "Oriya secondary letter ddha"; z1 = (0uw, -10uh); z2 = z1 + (4uw, 4uh); z3 = z1 + (0uw, 8uh); z4 = z1 + (-4uw, 4uh); z5 = z1 + (-1uw, 0uh); z6 = z1 + (11uw, -2uh); % here we make the inner area of the eye ``super white''. When % we superimpose this shape on other characters, it remains white. % To avoid its effects here, we have to draw the shape twice. % (of course, this only works inside Metafont) pickup pencircle; unfilldraw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..cycle; pickup subpen; draw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..{curl0}z6; draw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..{curl0}z6; penlabels(1,2,3,4,5,6); sec_da_picture := currentpicture; adjustpos(rm+rb); endchar; picture sec_ta_picture; beginchar(cs_ta, 0uw#, 0uh#, 12uh#); "Oriya secondary letter ta"; z1 = (0uw, -10uh); z2 = z1 + (-4uw, 4uh); z3 = z1 + (0uw, 8uh); z4 = z1 + (4uw, 4uh); z5 = z1 + (1uw, 0uh); z6 = z1 + (-11uw, -2uh); pickup pencircle; unfilldraw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..cycle; pickup subpen; draw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..{curl0}z6; draw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..{curl0}z6; penlabels(1,2,3,4,5,6); sec_ta_picture := currentpicture; adjustpos(rm+rb); endchar; picture sec_tha_picture; beginchar(cs_tha, 0uw#, 0uh#, 9uh#); "Oriya secondary letter tha"; % lower curl copied from Oriya letter cha x3 = 0uw; z11 = (x3 - 12uw, 7uh); z12 = (x3, 3uh); z13 = (x3, 2uh); z14 = (x3 + 6uw, -overshoot); z15 = (x3 + 9uw, 2uh); z16 = (x14, 5uh); z17 = (x3 - 6uw, y14); z18 = (x3 - 9uw, y15); z19 = (x17, y16); pickup subpen; draw z11{right}..z13; draw z13..z14{right}..z15{up}..{left}z16..z13..z17{left}.. z18{up}..z19{right}..z13; penlabels(11,12,13,14,15,16,17,18,19); cullit; sec_tha_picture := currentpicture; if mode <> proof: currentpicture := currentpicture shifted (-(9uw+rm+rb), -8uh); fi; endchar; if calligraphic: beginchar(cs_ra, 0uw#, 0uh#, 9uh#); "Oriya secondary letter ra"; pickup curvepen; z1 = (0uw, 0.5uh); z2 = z1 + (1uw, -9uh); z3 = (.33[x2,x5], y2 + 1uh); z4 = (.75[x2,x5], y2 - 1uh); z5 = z1 + (-20uw, -9uh); draw z1{down}...z2; draw z2..z3{left}..z4{left}..z5; drawdot(z5); adjustpos(rm+rb); savepicture := currentpicture; endchar; else: beginchar(cs_ra, 0uw#, 0uh#, 9uh#); "Oriya secondary letter ra"; pickup curvepen; z1 = (0uw, 0.5uh); z2 = z1 + (0uw, -9uh); z3 = z1 + (-20uw, -9uh); draw z1--z2--z3; drawdot(z3); adjustpos(rm+rb); savepicture := currentpicture; endchar; fi; beginchar(cs_ra_low, 0uw#, 0uh#, 15uh#); "Oriya secondary letter ra (lowered variant)"; currentpicture := savepicture shifted (0uw, -6uh); endchar; beginchar(cs_ya, 12uw#+rb#+rm#, 25uh#, 0uh#); "Oriya secondary letter ya"; pickup curvepen; % bow z1 = (3uw, h); z2 = (0uw, 19uh); z3 = (6uw, 12.5uh); z4 = (12uw, 16.5uh); draw z1..z2{down}..tension0.9..z3{right}..z4; drawdot(z1); % bar pickup barpen; z5 = (x4, h); z6 = (x4, 0); draw z5--z6; drawdot(z5); drawdot(z6); penlabels(1,2,3,4,5); endchar; beginchar(cs_va, 0uw#, 0uh#, 15uh#); "Oriya secondary letter va"; pickup subbarpen; z1 = (0uw, -2uh); z2 = (0uw, -15uh); draw z1--z2; drawdot(z1); drawdot(z2); pickup subpen; % z3' = z1 + (-3uw, -1uh); % z3 = z1 + (-5uw, 0); z3 = z1 + (-7uw, 0); z4 = z1 + (-9uw, -4uh); z5 = z1 + (-4uw, -9uh); z6 = z1 + (0uw, -5uh); % draw z3'..z3{left}..z4{down}..z5{right}..{curl0}z6; draw z3..z4{down}..z5{right}..{curl0}z6; penlabels(1,2,3,4,5,6); adjustpos(rm+rb); endchar; beginchar(cs_vu, 0uw#, 0uh#, 15uh#); "Oriya secondary letter vu"; pickup subbarpen; z1 = (0uw, -2uh); z2 = (0uw, -13uh); % draw z1--z2; drawdot(z1); drawdot(z2); pickup subpen; z3 = z1 + (-7uw, 0); z4 = z1 + (-9uw, -3.5uh); z5 = z1 + (-4uw, -8uh); z6 = z1 + (0uw, -4uh); draw z3..z4{down}..z5{right}..{curl0}z6; z7 = z1 + (-6uw, -16uh); z8 = (x1 - 11uw, .5[y7,y9]); z9 = (x7, y1 - 11uh); z10 = (x1 + 5uw, y7); z11 = (x1 + 10uw, y7 + 3uh); draw z1--z2{down}..z7{left}..z8{up}..z9{right}..z10{right}..{curl0}z11; penlabels(1,2,3,4,5,6,7,8,9,10,11); adjustpos(rm+rb); endchar; beginchar(cs_lla, 0uw#, 0uh#, 13uh#); "Oriya secondary letter lla"; pickup subpen; z1 = (x2 + 1.5uw, -13uh); z2 = (-16uw, -9uh); z3 = (x2 + 4uw, -3uh); z4 = (x2 + 8uw, -7uh); z5 = (x4, y1); draw z1..z2{up}..z3{right}..z4{down}---z5; drawdot(z1); drawdot(z5); z6 = z4 + (0, 1uh); z7 = (x2 + 12uw, y3); z8 = (x2 + 16uw, y2); z9 = (x2 + 14.5uw, y1); draw z6{curl0}..z7{right}..z8{down}..z9; drawdot(z9); penlabels(1,2,3,4,5,6,7,8,9); savepicture := currentpicture; adjustpos(rm+rb); endchar; beginchar(cs_la, 0uw#, 0uh#, 13uh#); "Oriya secondary letter la"; currentpicture := savepicture; pickup subpen; z9 = (-1.5uw, -13uh); z10 = (5uw, -15uh); draw z9--z10; drawdot(z10); penlabels(9,10); adjustpos(rm+rb); endchar; beginchar(cs_ma, 0uw#, 0uh#, 15uh#); "Oriya secondary letter ma"; pickup subbarpen; z1 = (0uw, 0.5uh); z2 = (x1, -10uh); z3 = (x1-3uw, -13uh); z4 = (x1-6uw, y2); z5 = (x3, -6uh); z6 = (x1+6uw, -3uh); z7 = (x6, -15uh); draw z1--z2..z3{left}..z4{up}..z5--z6 & z6--z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); adjustpos(rm+rb); endchar; %%%%% dha picture sub_dha_picture; beginchar(c_dha, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter dha"; path dha_diag; path dha_curve; path dha_bar; % diagonal z1 = (1uw, 25uh); z2 = (12uw, 11uh); dha_diag = z1--z2; % bow z3 = z2; % .95[z1,z2]; z4 = (6uw, 15uh); z5 = (0uw, 8uh); z6 = (9uw, -overshoot); z7 = (20uw, joint); dha_curve = z3{curl0}..z4{left}..tension0.95..z5{down}..tension0.95 ..z6{right}..{curl0}z7; % bar z8 = (x7, 25uh); z9 = (x8, 0uh); dha_bar = z8--z9; % subscribed dha: transform sub; sub := identity scaled 13/25 shifted (8uw, -9uh); pickup subpen; draw dha_diag transformed sub; drawdot(z1 transformed sub); drawdot(z2 transformed sub); draw dha_curve transformed sub; pickup barpen; draw dha_bar transformed sub; drawdot(z8 transformed sub); drawdot(z9 transformed sub); sub_dha_picture := currentpicture; clearit; % draw the full size glyph pickup curvepen; draw dha_diag; drawdot(z1); drawdot(z2); draw dha_curve; pickup barpen; draw dha_bar; drawdot(z8); drawdot(z9); penlabels(1,2,3,4,5,6,7,8,9); endchar; %%%%% gha beginchar(c_gha, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter gha"; pickup curvepen; % upper bow z1 = (3.5uw, 10uh); z2 = (0uw, 16uh); z3 = (12uw, 25uh+overshoot); z4 = (24uw, 25uh-joint); draw z1..z2{up}..z3{right}..{curl0}z4; % left lower bow z5 = (6uw, 14uh); z6 = (3uw, 7uh); z7 = (9uw, -overshoot); z8 = (14uw, 2uw); % right lower bow z9 = (x8, y8+1uh); z14 = (x9, 6uh); z10 = (.5[x9,x11], -overshoot); z11 = (x4, .75joint); draw z5{curl0}..z6{down}..tension.95..z7{right}..{curl0}z8; drawdot(z5); drawdot(z14); draw z14---z9..z10{right}..{curl0}z11; % bar pickup barpen; z12 = (x11, 25uh); z13 = (x12, 0uh); draw z12--z13; drawdot(z12); drawdot(z13); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); cullit; savepicture := currentpicture; endchar; beginchar(c_ng_gha, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+gha"; currentpicture := savepicture; x31 = 24uw; top_left_eye; endchar; %%%%% ta beginchar(c_ta, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ta"; pickup curvepen; z11 = (10uw, 13uh); z12 = (good.x 4uw, 6uh); z13 = (.5[x12,x14], good.y -overshoot); z14 = (good.x 20uw, 6uh); z15 = z14 + (-3uw, 4.5uh); z16 = z14 + (-5.5uw, 2uh); z17 = z14 + (-3uw, -0.5uh); z18 = z14 + (-0.25uw, 1.5uh); draw z11{curl0}..z12{down}..z13{right}..z14{up}..z15..z16..z17..z18; % fill z15..z16..z17..z18..z19..cycle; drawdot(z11); penlabels(11,12,13,14,15,16,17,18); cullit; savepicture := currentpicture; z1 = (6.5uw, 11uh); x4 = 25uw; new_outer_circle; endchar; beginchar(c_taa, 27uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination taa"; pickup curvepen; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 27uw; new_aa_circle; endchar; beginchar(c_ti, 25uw#+rm#, 25uh#, 0uh#); "Oriya combination ti"; pickup curvepen; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 25uw; new_i_circle; endchar; beginchar(c_tu, 28uw#+rm#, 25uh#, 10uh#); "Oriya combination tu"; pickup curvepen; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 28uw; new_u_circle; endchar; beginchar(c_tuu, 28uw#+rm#, 25uh#, 10uh#); "Oriya combination tuu"; pickup curvepen; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 28uw; new_uu_circle; endchar; %%%%% ka related shapes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% the first version of the letter ka was difficult to make out from the %% letter la in small print, so we enlarge the inner details %% %% We store a picture of a subscribed ka in this letter. picture full_ka_picture; picture sub_ka_picture; picture sup_ka_picture; beginchar(c_ka, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter ka"; path ka_left; path ka_right; path ka_circle; % inner ka shape pickup curvepen; z19 = if calligraphic: (x13, 6uh) else: (x13, 7uh) fi; % additional point z10 = (x12, 3uh); z11 = (3uw, 8.5uh); z12 = (8uw, 14uh); z13 = (13uw, 10uh); z14 = (x13, 0uh); ka_left = z19 if calligraphic: {curl 0} else: {down} .. tension 0.95 fi ..z10{left}..z11{up}..z12{right}..z13{down}..z14; z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; z16 = (18uw, y12); z17 = (22.5uw, y11); z18 = (20.5uw, 0uh); ka_right = z15 if calligraphic: {curl 0} ..tension 0.95 fi..z16{right} ..z17{down}..z18; penlabels(10,11,12,13,14,15,16,17,18,19); % the outer circle z1 = (4uw, 12uh); % added (1uw, 2uh) x4 = 28uw; define_new_outer_circle; ka_circle = new_outer_circle_path; penlabels(1,2,3,4,5); % the raised letter ka: transform super; super := identity scaled 22.5/25 shifted (0, 2.5uh); pickup curvepen; draw ka_left transformed super; drawdot(z14 transformed super); draw ka_right transformed super; drawdot(z18 transformed super); draw ka_circle transformed super; drawdot(z5 transformed super); cullit; sup_ka_picture := currentpicture; clearit; % the subscribed letter ka (without the circle): transform sub; sub = identity scaled 12/14 shifted (7uw, -9uh); pickup subpen; draw ka_left transformed sub; drawdot(z14 transformed sub); draw ka_right transformed sub; drawdot(z18 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; % make the eyes `super white' unfill (z19{curl0}..z10{left}..z11{up}..z12{right}..z13--cycle) transformed sub; unfill (z19--z15{curl0}...z16{right}...z17{down}..z18--cycle) transformed sub; sub_ka_picture := currentpicture; clearit; % the full size letter ka: pickup curvepen; draw ka_left; drawdot(z14); draw ka_right; drawdot(z18); cullit; full_ka_picture := currentpicture; % save the ka shape for ki, ku, kuu, etc. draw ka_circle; drawdot(z5); endchar; beginchar(c_k_ka, 28uw#+rm#, 25uh#, 9uh#); "Oriya conjunct k+ka"; currentpicture := full_ka_picture + sub_ka_picture; z1 = (4uw, 12uh); x4 = 28uw; new_outer_circle; endchar; %% we modify the outer circle to make the ki beginchar(c_ki, 28uw#+rm#, 25uh#, 0uh#); "Oriya combination ki"; currentpicture := full_ka_picture; z1 = (4uw, 12uh); x4 = 28uw; new_i_circle; endchar; beginchar(c_kaa, 30uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination kaa"; currentpicture := full_ka_picture; z1 = (4uw, 12uh); x4 = 30uw; new_aa_circle; endchar; %% we now join the u matra with the ka to form the ku beginchar(c_ku, 30uw#+rm#, 25uh#, 11uh#); "Oriya combination ku"; currentpicture := full_ka_picture; z1 = (4uw, 12uh); x4 = 30uw; new_u_circle; endchar; %% again with the uu for kuu beginchar(c_kuu, 30uw#+rm#, 25uh#, 11uh#); "Oriya combination kuu"; currentpicture := full_ka_picture; z1 = (4uw, 12uh); x4 = 30uw; new_uu_circle; endchar; beginchar(c_k_ta, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct k+ta"; currentpicture := full_ka_picture + sec_ta_picture shifted (22uw, 4uh); pickup curvepen; z1 = (4uw, 12uh); x4 = 28uw; new_outer_circle; endchar; %% we now create the lla from the ka by opening up the left loop picture full_lla_picture; beginchar(c_lla, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter lla"; % inner bows pickup curvepen; z10 = (5.5uw, 0uh); z11 = (3uw, 8.5uh); z12 = (7.5uw, 14uh); z13 = (12uw, 10uh); z14 = (x13, 0uh); draw z10..z11{up}..z12{right}..z13{down}..z14; drawdot(z14); z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; z16 = (16.5uw, y12); z17 = (21uw, y11); z18 = (19.5uw, 0uh); pickup curvepen; draw z15 if calligraphic: {curl 0}..tension 0.95 fi ..z16{right}..z17{down}..z18; drawdot(z18); penlabels(10,11,12,13,14,15,16,17,18,19); cullit; full_lla_picture := currentpicture; % outer circle z1 = (4uw, 12uh); x4 = 27uw; new_outer_circle; endchar; beginchar(c_l_ka, 28uw#+rm#, 25uh#, 9uh#); "Oriya conjunct l+ka"; currentpicture := full_lla_picture + sub_ka_picture; z1 = (4uw, 12uh); x4 = 28uw; new_outer_circle; endchar; beginchar(c_llaa, 30uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination llaa"; currentpicture := full_lla_picture; z1 = (4uw, 12uh); x4 = 30uw; new_aa_circle; endchar; beginchar(c_lli, 27uw#+rm#, 25uh#, 0uh#); "Oriya combination lli"; currentpicture := full_lla_picture; z1 = (4uw, 12uh); x4 = 27uw; new_i_circle; endchar; %% adding a tail to the lla gives us the la beginchar(c_la, 29uw#+rm#, 25uh#, 0uh#); "Oriya letter la"; currentpicture := full_lla_picture; z1 = (4uw, 12uh); x4 = 29uw; new_tail_circle; endchar; beginchar(c_laa, 29uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination laa"; currentpicture := full_lla_picture; pickup curvepen; z18 = (19.5uw, 0); z19 = z18 + (5uw, -6uh); draw z18--z19; drawdot(z19); z1 = (4uw, 12uh); x4 = 29uw; new_aa_circle; penlabels(18,19); endchar; %% from the letter lla we build the letter i %% (renumbering the points, putting the outer circle first) beginchar(c_i, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter i"; pickup curvepen; z1 = (4.5uw, 8uh); z2 = (good.x 0uw, 15uh); z3 = (.5[x2, x4], good.y (25uh+overshoot)); z4 = (28uw, 13uh); z5 = (x4 - 3uw, 2uh); z6 = (x4 + 2uw, -4uh); draw z1{left}..z2{up}..tension0.95..z3{right}..tension0.95..z4{down}..z5; drawdot(z5); draw z5--z6; drawdot(z6); penlabels(1,2,3,4,5,6); z10 = if calligraphic: z15 + (0uw, 1uh); else: z15; fi; z11 = (16uw, 10uh); z12 = (20uw, 5uh); z13 = (x11, -overshoot); z14 = (12uw, 4uh-overshoot); z15 = (x14, 6uh); z16 = (8uw, y11); z17 = (4uw, y12); z18 = (x16, y13); z19 = if calligraphic: z14 - (0uw, 1uh); else: z14; fi; draw z10 if calligraphic: {curl 0} else: {up} fi..z11{right}..z12{down} ..z13{left}..z14{up}..z15{up}..z16{left}..z17{down} ..z18{right}..if calligraphic: {curl 0} else: {up} fi z19; penlabels(10,11,12,13,14,15,16,17,18,19); endchar; %% the ii is just like an i with a extra curve in the outer circle beginchar(c_ii, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter ii"; % first part of outer circle pickup curvepen; z1 = (4.5uw, 8uh); z2 = (0uw, 13uh); z8 = (5uw, 18uh); % (7uw, 18uh); z20 = (13uw, 16uh); % (13uw, y8); draw z1{left}..z2{up}..z8{right}..z20; % draw z1..z2{up}..z8---z20; % second part of outer circle z7 = (4.5uw, 18uh); z9 = (4uw, 20uh); z3 = (14uw, h+overshoot); z4 = (28uw, 13uh); z5 = (24uw, 2uh); draw z7..z9{up}..z3{right}..tension0.95..z4{down}..z5; % tail z6 = (29uw, -4uh); draw z5--z6; drawdot(z6); % inner eyes pickup curvepen; z10 = if calligraphic: z15 + (0uw, 1uh); else: z15; fi; z11 = (16uw, 10uh); z12 = (20uw, 5uh); z13 = (x11, -overshoot); z14 = (12uw, 4uh-overshoot); z15 = (x14, 6uh); z16 = (8uw, y11); z17 = (4uw, y12); z18 = (x16, y13); z19 = if calligraphic: z14 - (0uw, 1uh); else: z14; fi; draw z10 if calligraphic: {curl 0} else: {up} fi..z11{right}..z12{down} ..z13{left}..z14{up}..z15{up}..z16{left}..z17{down} ..z18{right}..if calligraphic: {curl 0} else: {up} fi z19; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); endchar; beginchar(c_l_la, 29uw#+rm#, 25uh#, 2uh#); "Oriya conjunct l+la"; path left_bow; path right_bow; % bows pickup curvepen; z10 = (5uw, 6uh); z11 = (3uw, .5[y10,y12]); z12 = (7.5uw, 15uh); z13 = (12uw, 11uh); z14 = (x13, y10); left_bow = z10..z11{up}..z12{right}..z13{down}..z14; z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; z16 = (16.5uw, y12); z17 = (21uw, y11); z18 = (19.5uw, y10); right_bow = z15 if calligraphic: {curl 0}..tension 0.95 fi ..z16{right}..z17{down}..z18; z19 = z18 + (5uw, -6uh); z0 = (0, -8uh); draw left_bow; drawdot(z14); draw right_bow; drawdot(z18); draw left_bow shifted z0; drawdot(z14 shifted z0); draw right_bow shifted z0; drawdot(z18 shifted z0); draw (z18--z19) shifted z0; drawdot(z19 shifted z0); penlabels(10,11,12,13,14,15,16,17,18,19); % outer circle z1 = (3uw, 12uh); x4 = 29uw; new_tail_circle; endchar; beginchar(c_c_ca, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct c+ca"; pickup curvepen; z11 = z16 - (0, 1.5uh); z12 = (8uw, -overshoot); z13 = (3uw, 6uh); z14 = (x12, 12uh); z15 = (13uw, 8uh); z16 = (x15, 4uh-overshoot); z17 = (18uw, y12); z18 = (23uw, y13); z19 = (x17, y14); z20 = z15 + (0, 1.5uh); draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down} ..z16{down}..z17{right}..z18{up}..z19{left}..{curl0}z20; penlabels(11,12,13,14,15,16,17,18,19,20); savepicture := currentpicture; z1 = (5uw, 11uh); x4 = 28uw; new_outer_circle; endchar; beginchar(c_c_cha, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct c+cha"; % upper eyes pickup curvepen; z11 = z16 - (0, 1.5uh); z12 = (8uw, 5uh); z13 = (4uw, 0.5[y12, y14]); z14 = (x12, 14uh); z15 = (13uw, 10uh); z16 = (x15, 10uh-overshoot); z17 = (18uw, y12); z18 = (22uw, y13); z19 = (x17, y14); z20 = z15 + (0, 1.5uh); draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down} ..z16{down}..z17{right}..z18{up}..z19{left}..{curl0}z20; penlabels(11,12,13,14,15,16,17,18,19,20); % lower eyes % lower curl z21 = (0uw, 6uh); z22 = (x11, 3uh); z23 = (x11, 2uh); z24 = (x11 + 6.5uw, -overshoot); z25 = (x11 + 10uw, 2uh); z26 = (x24, 5uh); z27 = (x11 - 6.5uw, y24); z28 = (x11 - 10uw, y25); z29 = (x27, y26); pickup subpen; draw z21{right}..{(2, -1)}z29; draw z23..z24{right}..z25{up}..{left}z26..z23 ..z27{left}..z28{up}..z29{right}..z23; penlabels(21,22,23,24,25,26,27,28,29); % outer circle z1 = (4.5uw, 12uh); x4 = 28uw; new_outer_circle; endchar; beginchar(c_ng_ga, 36uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+ga"; currentpicture := savepicture; z1 = (5uw, 11uh); x31 = x4 = 30uw; new_aa_circle; top_left_eye; endchar; beginchar(c_tt_tta, 28uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct tt+tta"; currentpicture := savepicture; pickup curvepen; z1 = (5uw, 11uh); z2 = (0uw, 16uh); z3 = (.5[x2,x4], 25uh+overshoot); z4 = (28uw, 25uh-joint); draw z1{left}..z2{up}..z3{right}..{curl0}z4; pickup barpen; z5 = (x4, 25uh); z6 = (x5, 15uh); draw z6--z5; drawdot(z6); drawdot(z5); penlabels(1,2,3,4,5,6); endchar; beginchar(c_ng_kha, 36uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+kha"; currentpicture := savepicture; pickup curvepen; z1 = (5uw, 11uh); z2 = (0uw, 16uh); z3 = (14uw, 25uh+overshoot); z4 = (19.5uw, y3-.5uh); z5 = (18uw, 21uh); z6 = (24uw, 15uh); z7 = (30uw, 21uh); draw z1{left}..z2{up}..z3{right}..z4; draw z4..z5{down}..z6{right}..{curl0}z7; pickup barpen; z10 = (30uw, 25uh); z11 = (x10, 0uh); draw z10--z11; drawdot(z10); drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10); x31 = x10; top_left_eye; endchar; %% now we combine the tail of the nga with the ka to build the conjunct %% ng+ka beginchar(c_ng_ka, 31uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+ka"; pickup curvepen; % outer tail, copied from nga z1 = (4.5uw, 12uh); z2 = (0uw, 18uh); z3 = (10uw, h+overshoot); z4 = (28.5uw, 19uh); z5 = (32uw, 22.5uh); z6 = (x4, 25uh+overshoot); z7 = (25uw, y5); z8 = (26.5uw, 19.25uh); draw z1{left}..z2{up}..tension0.95..z3{right}..z4{right}..z5{up} ..z6{left}..z7{down}..z8; % inner parts of letter ka (shifted to left) pickup curvepen; z19 = if calligraphic: (x13, 6uh) else: (x13, 7uh) fi; % additional point z10 = (x12, 3uh); z11 = (12uw, 8.5uh); z11a = z24 + (0uw, 1uh); % TODO conditional calligraphic adjustments z11b = z20 + (0uw, 1uh); z12 = (16uw, 14uh); z13 = (20uw, 10uh); z14 = (x13, 0uh); z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; z16 = (25uw, y12); z17 = (29.5uw, y11); z18 = (27.5uw, 0uh); draw z15 if calligraphic: {curl 0} ..tension 0.95 fi..z16{right} ..z17{down}..z18; drawdot(z18); % extra circle left of ka z20 = (x11, y13); z21 = (8uw, y12); z22 = (4uw, y11); z23 = (x21, y10); z24 = (x20, y19); draw z19 if calligraphic: {curl 0} else: {down} .. tension 0.95 fi ..z10{left}..z11a{up}..z11b; draw z11b if calligraphic: {curl 0} fi..z12{right}..z13{down}..z14; drawdot(z14); draw z20{up}..z21{left}..z22{down}..z23{right}..if calligraphic: {curl0} fi z24; penlabels(1,2,3,4,5,6,7,8,9,10,11,11a,11b,12,13,14,15,16,17,18,19,20,21,22,23,24); endchar; picture sub_tra_picture; beginchar(c_t_ra, 25uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+ra"; path tra_top; path tra_bot; % inner Oriya e like shape pickup curvepen; z11 = (9.5uw, 7.5uh); z12 = (7uw, 10uh); z13 = (16uw, 16uh); z14 = (18uw, 14uh); z15 = (x14, -overshoot); z16 = (-1uw, 8uh); tra_top = z11..z12{up}..tension1.4..z13{right}..z14{down}---z15; tra_bot = z15--z16; % subscribed inner part transform sub; sub = identity scaled 12/15 shifted (0, -4uh); pickup subpen; draw tra_top transformed sub; draw tra_bot transformed sub; drawdot(z16 transformed sub); drawdot(z15 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (tra_top & tra_bot -- cycle) transformed sub; sub_tra_picture = currentpicture; clearit; % full size inner part; pickup curvepen; draw tra_top; draw tra_bot; drawdot(z16); drawdot(z15); penlabels(11,12,13,14,15,16); savepicture := currentpicture; % outer circle pickup curvepen; z1 = (7uw, 11uh); z2 = (3uw, 17uh); z3 = (.5[x2,x4], 25uh+overshoot); z4 = (25uw, 17uh); z5 = (23uw, 11uh); draw z1..z2{up}..z3{right}..z4{down}..z5; penlabels(1,2,3,4,5); endchar; beginchar(c_k_ra, 32uw#+rm#, 25uh#, 0uh#); "Oriya conjunct k+ra"; currentpicture := savepicture; % extra tail pickup curvepen; z21 = (18uw, 10uh); z22 = (23uw, 13uh); z23 = (26uw, 9uh); z24 = (24uw, 3uh); draw z21{curl0}..z22{right}..z23{down}..z24; penlabels(21,22,23,24); % outer circle pickup curvepen; z1 = (7uw, 11uh); z2 = (3uw, 17uh); z3 = (.5[x2,x4], 25uh+overshoot); z4 = (32uw, 17uh); z5 = (30uw, 11uh); draw z1..z2{up}..z3{right}..z4{down}..z5; penlabels(1,2,3,4,5); endchar; %%%%% ca and derived characters %% %% the first design of the letter ca had a separate eye, now we draw the whole character in %% a single stroke. The points upto $z_{8}$ are taken from ga. The old design %% still works better for the linear style. picture sub_ca_picture; beginchar(c_ca, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ca"; % continuous stroke eye path ca_path; pickup curvepen; z1 = (7.5uw, 9uh); z2 = (good.x 6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (good.x 17uw, 5uh); z5 = (12uw, good.y 10uh); z6 = (6uw, good.y 9uh); z7 = (0uw, 16uh); z8 = (12uw, h+overshoot); z9 = (good.x 24uw, 16uh); z10 = (21.5uw, 9uh); ca_path := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{down}z9..z10; % the subscribed ca transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup subpen; draw ca_path transformed sub; drawdot(z10 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..cycle) transformed sub; unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9{down}..z10--cycle) transformed sub; sub_ca_picture := currentpicture; clearit; % the full size ca pickup curvepen; draw ca_path; drawdot(z10); penlabels(1,2,3,4,5,6,7,8,9,10); endchar; %% the letter cha, we build from the letter ca, shifting most points %% a bit up to accommodate the curl below it. beginchar(c_cha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter cha"; pickup curvepen; % letter ca z1 = (7.5uw, 12.25uh); z2 = (6uw, 9uh); z3 = (12uw, 4uh); z4 = (18uw, y2); z5 = (12uw, 14uh); z6 = (6uw, 12uh); z7 = (0uw, 17uh); z8 = (12.5uw, h+overshoot); z9 = (25uw, 17uh); z10 = (22uw, 11uh); draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{down}z9..z10; drawdot(z10); % lower curl z11 = (0uw, 7uh); z12 = (x3, 3uh); z13 = (x3, 2uh); z14 = (x3 + 6uw, -overshoot); z15 = (x3 + 9uw, 2uh); z16 = (x14, 5uh); z17 = (x3 - 6uw, y14); z18 = (x3 - 9uw, y15); z19 = (x17, y16); pickup subpen; draw z11{right}..z13; draw z13..z14{right}..z15{up}..{left}z16..z13..z17{left} ..z18{up}..z19{right}..z13; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); endchar; % we add a tail to ca to make ra beginchar(c_ra, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ra"; % continuous stroke eye pickup curvepen; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (12.5uw, h+overshoot); z9 = (25uw, 13uh); z10 = (21uw, 2uh); z11 = (26uw, -4uh); draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..tension0.95..{down}z9..z10; draw z10--z11; drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; % we modify the tail of ra to make ri beginchar(c_ri, 26uw#+rm#, 25uh#, 0uh#); "Oriya letter ri"; % continuous stroke eye pickup curvepen; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (12.5uw, h+overshoot); z9 = (25uw, 16uh); % adjusted z10 = (21uw, 8uh); % adjusted draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{down}z9..tension 0.9..z10; % tail z11 = (26uw, 7uh); z12 = (24uw, 0uh); z13 = (28.1667uw, -5uw); draw z10..z11..z12; draw z12--z13; drawdot(z13); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; % and again modify the tail to make rii beginchar(c_rii, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter rii"; % continuous stroke eye pickup curvepen; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (12.5uw, h+overshoot); z9 = (25uw, 18uh); % adjusted z10 = (21uw, 12.5uh); % adjusted draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{down}z9..tension 0.9..z10; % tail z11 = (26uw, 11uh); z12 = (24uw, 5.5uh); z13 = (28uw, 4uh); z14 = (26uw, -3uh); z15 = (30.1667uw, -8uw); draw z10..z11..z12; drawdot(z12); draw z12..z13..z14; draw z14--z15; drawdot(z15); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% letter ga picture sup_ga_picture; picture sub_ga_picture; beginchar(c_ga, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ga"; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (11uw, h+overshoot); z9 = (24uw, h - joint); z10 = (x9, h); z11 = (x9, 0); path ga_curve; path ga_bar; ga_curve := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{curl0}z9; ga_bar := z10--z11; % superscript ga: transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw ga_curve transformed super; drawdot(z9 transformed super); pickup barpen; draw ga_bar transformed super; drawdot(z10 transformed super); drawdot(z11 transformed super); cullit; sup_ga_picture := currentpicture; clearit; % subscribed ga: transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup curvepen; draw ga_curve transformed sub; drawdot(z9 transformed sub); pickup barpen; draw ga_bar transformed sub; drawdot(z10 transformed sub); drawdot(z11 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (z6{left}..z7{up}..z8{right}..{curl0}z9--z11--cycle) transformed sub; sub_ga_picture := currentpicture; clearit; % normal ga: pickup curvepen; draw ga_curve; drawdot(z9); pickup barpen; draw ga_bar; drawdot(z10); drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10,11); savepicture := currentpicture; endchar; beginchar(c_g_ga, 29uw#+rm#, 25uh#, 10uh#); "Oriya conjunct g+ga"; currentpicture := sup_ga_picture + sub_ga_picture shifted (6uw, 0); endchar; beginchar(c_g_dha, 28uw#+rm#, 25uh#, 10uh#); "Oriya conjunct g+dha"; currentpicture := sup_ga_picture + sub_dha_picture shifted (6uw, 0); endchar; beginchar(c_caa, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter caa"; pickup curvepen; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (11uw, h+overshoot); z9 = (24uw, h - joint); draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{curl0}z9; drawdot(z9); pickup barpen; z10 = (x9, h); z11 = (x9, 3uh); draw z10--z11; drawdot(z10); drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10,11); new_tailtwo(12,11,13,14,15,16,17); endchar; beginchar(c_raa, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya combination raa"; currentpicture := savepicture; pickup curvepen; z1 = (15uw, .25uh); z2 = (20uw, -5.75uh); draw z1--z2; drawdot(z2); penlabels(1,2); endchar; %% the \d{t} is like a ga with a short bar %% here we also set a picture with a subscribed variant picture sub_tta_picture; beginchar(c_tta, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter tta"; path tta_eye; path tta_bar; % continuous stroke eye pickup curvepen; z1 = (7.5uw, 9uh); z2 = (good.x 6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (good.x 17uw, 5uh); z5 = (12uw, good.y 10uh); z6 = (6uw, good.y 9uh); z7 = (0uw, 16uh); z8 = (10uw, 25uh+overshoot); z9 = (22uw, 23uh-joint); tta_eye = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} ..z7{up}..z8{right}..z9; pickup barpen; % standing bar; z10 = (x9, 25uh); z11 = (x9, 15uh); tta_bar = z10--z11; % the subscribed variant: transform sub; sub = identity scaled 15/25 shifted (8uw, -9uh); pickup subpen; draw tta_eye transformed sub; pickup subbarpen; draw tta_bar transformed sub; drawdot(z10 transformed sub); drawdot(z11 transformed sub); cullit; currentpicture := currentpicture + currentpicture + currentpicture; % unfill the interiour unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9--z11--cycle) transformed sub; sub_tta_picture := currentpicture; clearit; % the full size letter pickup curvepen; draw tta_eye; pickup barpen; draw tta_bar; drawdot(z10); drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; beginchar(c_k_tta, 28uw#+rm#, 25uh#, 10uh#); "Oriya conjunct k+tta"; currentpicture := sup_ka_picture + sub_tta_picture shifted (7uw, 0); endchar; %% from the ga, we create the kha picture sub_kha_picture; beginchar(c_kha, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter kha"; % continuous stroke eye path kha_eye; path kha_loop; path kha_bar; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (11uw, h+overshoot); z9 = (13.5uw, y8-.5uh); % added from here z10 = (12uw, 21uh); z11 = (18uw, 15uh); z12 = (24uw, 21uh); kha_eye = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} ..tension 0.95..z7{up}..z8{right}..z9; kha_loop = z9..z10{down}..z11{right}..{curl0}z12; z13 = (x12, h); z14 = (x13, 0); kha_bar = z13--z14; % the subscribed variant: transform sub; sub = identity scaled 15/25 shifted (8uw, -9uh); pickup subpen; draw kha_eye transformed sub; drawdot(z9 transformed sub); draw kha_loop transformed sub; pickup subbarpen; draw kha_bar transformed sub; drawdot(z13 transformed sub); drawdot(z14 transformed sub); cullit; currentpicture := currentpicture + currentpicture + currentpicture; % unfill the interiour unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9.. z10{down}..z11{right}..{curl0}z12--z14--cycle) transformed sub; sub_kha_picture := currentpicture; clearit; % the full version pickup curvepen; draw kha_eye; draw kha_loop; drawdot(z9); pickup barpen; draw kha_bar; drawdot(z13); drawdot(z14); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; %%%%% pa and derived characters picture sub_ttha_picture; beginchar(c_ttha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ttha"; path ttha_path; pickup barpen; z1 = (0uw, .5h); z2 = (12.5uw, -overshoot); z3 = (good.x 25uw, y1); z4 = (x2, h+overshoot); ttha_path := z1{down}..z2{right}..z3{up}..z4{left}..cycle; % the subscribed ttha transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup subbarpen; draw ttha_path transformed sub; currentpicture := currentpicture + currentpicture + currentpicture; unfill ttha_path transformed sub; sub_ttha_picture := currentpicture; clearit; % the full size ttha pickup barpen; draw ttha_path; penlabels(1,2,3,4); endchar; % from the k\d{s}a we now develop the pa % % here the paths are stored for later re-use, in the letter pa, we actually % define three pictures, the letter pa itself, a slightly smaller raised % version and a smaller lowered version, the latter two we store in % picture variables. picture sup_pa_picture; picture sup_big_pa_picture; picture sub_pa_picture; picture sub_pha_picture; beginchar(c_pa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter pa"; path pa_top; % top left curve path pa_bot; % bottom left curve path pa_bar; % standing bar pickup curvepen; % top left curve z1 = (6.25uw, 8.75uh); z2 = (0uw, 17uh); z3 = (11uw, 25uh+overshoot); z4 = (22uw, 25uh-joint); pa_top := z1..z2{up}..z3{right}..{curl0}z4; % bottom left curve z7 = (10uw, 10.5uh); z8 = (good.x 4uw, 4.5uh); z9 = (11uw, -overshoot); z10 = (x4, joint); pa_bot = z7{curl0}..z8{down}..z9{right}..{curl0}z10; % standing bar pickup barpen; z13 = (x4, 25uh); z14 = (x4, 0uh); pa_bar := z13--z14; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); % the raised pa: transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw pa_top transformed super; draw pa_bot transformed super; drawdot(z7 transformed super); pickup barpen; draw pa_bar transformed super; drawdot(z13 transformed super); drawdot(z14 transformed super); cullit; sup_pa_picture := currentpicture; clearit; % the raised pa (slightly bigger): super := identity scaled 21.25/25 shifted (0, 3.75uh); pickup curvepen; draw pa_top transformed super; draw pa_bot transformed super; drawdot(z7 transformed super); pickup barpen; draw pa_bar transformed super; drawdot(z13 transformed super); drawdot(z14 transformed super); cullit; sup_big_pa_picture := currentpicture; clearit; % the lowered pa: transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup subpen; draw pa_top transformed sub; draw pa_bot transformed sub; drawdot(z7 transformed sub); pickup subbarpen; draw pa_bar transformed sub; drawdot(z13 transformed sub); drawdot(z14 transformed sub); % make the lines `super black' currentpicture := currentpicture + currentpicture + currentpicture; % make the inside `super white' unfill (z1..z2{up}..z3{right}..{curl0}z4 & z4--z10 & z10{curl0} ..z9{left}..z8{up}..{curl0}z7..cycle) transformed sub; sub_pa_picture := currentpicture; % the lowered pha is a pa with a little eye: z41 = (x4, 18uh); z42 = (x4+3.5uw, 16uh); z43 = (x4+7uw, 20.5uh); z44 = (x42, 25uh); z45 = (x41, 23uh); draw (z41..z42{right}..z43{up}..z44{left}..z45) transformed sub; sub_pha_picture := currentpicture; clearit; % finally, the full size pa: pickup curvepen; draw pa_top; draw pa_bot; drawdot(z7); pickup barpen; draw pa_bar; drawdot(z13); drawdot(z14); cullit; savepicture := currentpicture; endchar; % the pha is a pa with a little eye in the top right beginchar(c_pha, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter pha"; currentpicture := savepicture; x31 = 22uw; top_left_eye; endchar; beginchar(c_p_ta, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct p+ta"; currentpicture := savepicture + sec_ta_picture shifted (22uw, 4uh); endchar; beginchar(c_t_pa, 22uw#+rm#, 25uh#, 12uh#); "Oriya conjunct t+pa"; currentpicture := sup_big_pa_picture; z1 = (22uw * (21.25/25), 0uh); % = z14 in big superior pa ta_tail; pickup barpen; z10 = (x1, 3.75uh); draw z1..z10; endchar; % the ssa is simply a pa with a diagonal. Here we have two variants, % the normal one, and a sligtly raised version, for use in conjuncts. picture sup_ssa_picture; beginchar(c_ssa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ssa"; path ssa_top; path ssa_bot; path ssa_dia; path ssa_bar; pickup curvepen; % top left curve z1 = (6.25uw, 8.75uh); z2 = (0uw, 17uh); z3 = (11uw, h+overshoot); z4 = (22uw, h-joint); ssa_top = z1..z2{up}..z3{right}..{curl0}z4; % bottom left curve z7 = (10uw, 10.5uh); % position adjusted to accomodate diagonal bar z8 = (4uw, 4.5uh); z9 = (11uw, -overshoot); z10 = (x4, joint); ssa_bot = z7{curl0}..z8{down}..z9{right}..{curl0}z10; % main diagonal pickup ddiagpen; z11 = (4.75uw, 24.25uh); z12 = z10 - (1.5uw, 1uh); ssa_dia = z11--z12; % standing bar pickup barpen; z13 = (x4, h); z14 = (x4, 0uh); ssa_bar = z13--z14; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); % the superiour version transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw ssa_top transformed super; draw ssa_bot transformed super; drawdot(z7 transformed super); pickup ddiagpen; draw ssa_dia transformed super; pickup barpen; draw ssa_bar transformed super; drawdot(z13 transformed super); drawdot(z14 transformed super); cullit; sup_ssa_picture := currentpicture; clearit; % the normal size version pickup curvepen; draw ssa_top; draw ssa_bot; drawdot(z7); pickup ddiagpen; draw ssa_dia; pickup barpen; draw ssa_bar; drawdot(z13); drawdot(z14); cullit; savepicture := currentpicture; endchar; beginchar(c_l_pa, 30uw#+rm#, 25uh#, 10uh#); "Oriya conjunct l+pa"; currentpicture := full_lla_picture + sub_pa_picture shifted (8uw, 0); z1 = (4uw, 12uh); x4 = 28uw; new_outer_circle; endchar; beginchar(c_l_pha, 32uw#+rm#, 25uh#, 10uh#); "Oriya conjunct l+pha"; currentpicture := full_lla_picture + sub_pha_picture shifted (8uw, 0); z1 = (4uw, 12uh); x4 = 28uw; new_outer_circle; endchar; beginchar(c_ss_ka, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct ss+ka"; currentpicture := sup_ssa_picture + sub_ka_picture shifted (-4uw, 4uh); endchar; beginchar(c_ss_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+pa"; currentpicture := sup_ssa_picture + sub_pa_picture; endchar; beginchar(c_ss_pha, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+pha"; currentpicture := sup_ssa_picture + sub_pha_picture; endchar; beginchar(c_ss_tta, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+tta"; currentpicture := sup_ssa_picture + sub_tta_picture; endchar; beginchar(c_ss_ttha, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+ttha"; currentpicture := sup_ssa_picture + sub_ttha_picture; endchar; picture sup_k_ssa_picture; beginchar(c_k_ssa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct k+ssa"; path kssa_top; path kssa_botdiag; path kssa_bot; path kssa_diag; path kssa_bar; pickup curvepen; % top left curve z1 = (7.5uw, 6.5uh); z2 = (0uw, 16uh); z3 = (11uw, h+overshoot); z4 = (22uw, h-joint); kssa_top = z1{left}..z2{up}..z3{right}..{curl0}z4; % bottom left diagonal pickup udiagpen; z5 = (10uw, 9uh); z6 = (1uw, 0); kssa_botdiag = z5--z6; % bottom left curve pickup curvepen; z7 = z1; z8 = (6.5uw, 3.5uh); z9 = (11uw, -overshoot); z10 = (x4, joint); kssa_bot = z7..z8{down}..z9{right}..{curl0}z10; % main diagonal pickup ddiagpen; % z11 = (4uw, 23uh); % z12 = z10; z11 = (5uw, 24uh); z12 = z10 - (1.5uw, 1uh); kssa_diag = z11--z12; % standing bar pickup barpen; z13 = (x4, h); z14 = (x4, 0uh); kssa_bar = z13--z14; % draw the raised kssa transform super; super := identity scaled 20/25 shifted (0, 5uh); draw kssa_top transformed super; draw kssa_bot transformed super; pickup udiagpen; draw kssa_botdiag transformed super; drawdot(z6 transformed super); pickup ddiagpen; draw kssa_diag transformed super; pickup barpen; draw kssa_bar transformed super; drawdot(z13 transformed super); drawdot(z14 transformed super); cullit; sup_k_ssa_picture := currentpicture; clearit; % draw the full size kssa pickup curvepen; draw kssa_top; draw kssa_bot; pickup udiagpen; draw kssa_botdiag; drawdot(z6); pickup ddiagpen; draw kssa_diag; pickup barpen; draw kssa_bar; drawdot(z13); drawdot(z14); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; %% the ya is like a kssa without a diagonal beginchar(c_ya, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ya"; pickup curvepen; % top left curve z1 = (7.5uw, 6.5uh); z2 = (0uw, 16uh); z3 = (11uw, 25uh+overshoot); z4 = (22uw, 25uh-joint); draw z1{left}..z2{up}..z3{right}..{curl0}z4; % bottom left diagonal pickup udiagpen; z5 = (11uw, 10uh); % adjusted because we removed the diagonal z6 = (1uw, 0); draw z5--z6; drawdot(z6); % bottom left curve pickup curvepen; z7 = z1; z8 = (6.5uw, 3.5uh); z9 = (11uw, -overshoot); z10 = (x4, joint); draw z7..z8{down}..z9{right}..{curl0}z10; % standing bar pickup barpen; z13 = (x4, h); z14 = (x4, 0uh); draw z13--z14; drawdot(z13); drawdot(z14); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; %% the yya is like a ya with a two-like tail beginchar(c_yya, 25uw#+rm#, 25uh#, 10uh#); "Oriya letter yya"; pickup curvepen; % top left curve z1 = (7.5uw, 6.5uh); z2 = (0uw, 16uh); z3 = (10.5uw, h+overshoot); % a little bit narrower than ya z4 = (21uw, h-joint); draw z1{left}..z2{up}..z3{right}..{curl0}z4; % bottom left diagonal pickup udiagpen; z5 = (11uw, 10uh); % adjusted because we removed the diagonal z6 = (1uw, 0); draw z5--z6; drawdot(z6); pickup curvepen; % bottom left curve z7 = z1; z8 = (6.5uw, 3.5uh); z9 = (11uw, -overshoot); z10 = (x4, joint); draw z7..z8{down}..z9{right}..{curl0}z10; % standing bar pickup barpen; z13 = (x4, h); z14 = (x4, 3uh); % the tail z16 = (x4+1uw, 3uh); pickup curvepen; new_tailtwo(15,16,17,18,19,20,21); draw z13--z14; drawdot(z13); drawdot(z14); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); endchar; %%%%% da, di, hu, ha, hi picture sup_da_picture; beginchar(c_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter da"; pickup curvepen; z11 = (17uw, 0uh); z12 = (x11, 13uh); z13 = (7uw, 14uh); z14 = (3.5uw, 8uh); z15 = (10uw, 2uh); z16 = (x11, 6uh); z1 = (4.0uw, 11uh); x4 = 23uw; define_new_outer_circle; path da_bar; path da_curve; path da_circle; da_bar := z11---z12; da_curve := z13..z14{down}..z15{right}..{curl0}z16; da_circle := new_outer_circle_path; % the superior da transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup barpen; draw da_bar transformed super; drawdot(z11 transformed super); drawdot(z12 transformed super); pickup curvepen; draw da_curve transformed super; draw da_circle transformed super; drawdot(z5 transformed super); drawdot(z13 transformed super); cullit; sup_da_picture := currentpicture; clearit; % the normal da pickup barpen; draw da_bar; drawdot(z11); drawdot(z12); pickup curvepen; draw da_curve; drawdot(z13); penlabels(11,12,13,14,15,16); cullit; savepicture := currentpicture; draw_new_outer_circle; endchar; beginchar(c_d_ga, 22uw#+rm#, 25uh#, 8uh#); "Oriya conjunct d+ga"; currentpicture := sup_da_picture + sub_ga_picture shifted (-1uw, 1uh); endchar; beginchar(c_di, 23uw#+rm#, 25uh#, 0uh#); "Oriya combination di"; currentpicture := savepicture; z1 = (4.0uw, 11uh); x4 = 23uw; new_narrow_i_circle; endchar; %%%%% ha beginchar(c_hu, 23uw#+rm#, 25uh#, 15uh#); "Oriya combination hu"; currentpicture := savepicture; pickup curvepen; z15 = (10uw, 2uh); z16 = (3.5uw, -2uh); draw z15--z16; z17 = (7.5uw, -4uh); z18 = (16uw, -12uh); z19 = (12.5uw, -15uh); z20 = (9uw, y18); z21 = (17.5uw, y17); z22 = (21.5uw, y16); draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22; penlabels(15,16,17,18,19,20,21,22,23); z1 = (4.0uw, 11uh); x4 = 23uw; new_outer_circle; endchar; beginchar(c_h_ba, 23uw#+rm#, 25uh#, 12uh#); "Oriya combination h+ba"; currentpicture := savepicture; pickup curvepen; z15 = (10uw, 2uh); z16 = (-1uw, -5uh); z17 = (17uw, -14uh); draw z15--z16--z17; pickup barpen; z20 = (17uw, 0uh); z21 = (x20, -9uh); draw z20--z21; z24 = (17uw, -2.5uw); eye(22, 23, 24, 25)(10uw, 8uh); draw_eye(22, 23, 24, 25); % intentionally drawn with barpen penlabels(15,16,17, 20, 21, 22, 23, 24, 25); z1 = (4.0uw, 11uh); x4 = 23uw; new_outer_circle; endchar; beginchar(c_ha, 23uw#+rm#, 25uh#, 8uh#); "Oriya letter ha"; currentpicture := savepicture; pickup curvepen; z15 = (10uw, 2uh); z16 = (3.5uw, -2uh); z17 = (17uw, -8uh); draw z15--z16; draw z16--z17; drawdot(z17); penlabels(15,16,17); cullit; savepicture := currentpicture; z1 = (4.0uw, 11uh); x4 = 23uw; new_outer_circle; endchar; beginchar(c_hi, 23uw#+rm#, 25uh#, 8uh#); "Oriya combination hi"; currentpicture := savepicture; z1 = (4.0uw, 11uh); x4 = 23uw; new_narrow_i_circle; endchar; beginchar(c_h_na, 32uw#+rm#, 25uh#, 8uh#); "Oriya combination h+na"; currentpicture := savepicture; z1 = (4.0uw, 11uh); z2 = (good.x 0uw, 16uh); z3 = (.5[x2,x4], good.y (25uh+overshoot)); z4 = (31uw, y2-2uh); z5 = (29uw, 6.5uh); % copied from secondary letter na pickup curvepen; z11 = (7uw, 0uh); % copied from letter na z12 = (4uw, 3uh); z13 = (16uw, 12uh); z14 = (18uw, 10uh); z15 = (x14, 0uh); transform sub; sub = identity scaled 10/12 shifted (16uw, -4uh); draw (z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15) transformed sub; drawdot(z11 transformed sub); drawdot(z12 transformed sub); % draw the outer circle draw z1{left}..z2{up}..z3{right}..z4{down}..z5; penlabels(1, 2, 3, 4, 5, 11, 12, 13, 14, 15); endchar; beginchar(c_h_ma, 23uw#+rm#, 25uh#, 16uh#); "Oriya combination h+ma"; currentpicture := savepicture; pickup curvepen; z15 = (10uw, 2uh); z16 = (3.5uw, -2uh); draw z15--z16; z17 = (7uw, -3.5uh); z18 = (16uw, -11uh); z19 = (12.5uw, -15uh); z20 = (8uw, y18); z21 = (18.5uw, y17); z22 = (22.5uw, y16); z23 = (x22, -16uh); draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22--z23; penlabels(15,16,17,18,19,20,21,22,23); z1 = (4.0uw, 11uh); x4 = 23uw; new_outer_circle; endchar; %%%%% ja picture sec_ja_picture; picture sup_ja_picture; beginchar(c_ja, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter ja"; path ja_curve; path ja_bar; path ja_circle; z11 = (6uw, 12uh); z12 = (3uw, 6.5uh); z13 = (.5[x12, x14], -overshoot); z14 = (16uw, 3.25uh); z15 = (10uw, 9.25uh); z16 = (13.5uw, 12uh); z17 = (22uw, 9uh); z18 = (x17, 0uh); % outer circle; z1 = (4.5uw, 11uh); x4 = 27uw; define_new_outer_circle; ja_circle = new_outer_circle_path; ja_bar = z17--z18; ja_curve = z11..z12{down}..tension0.95..z13{right}..z14{up}..z15{up}..z16{right}..z17; transform sub; sub := identity scaled 10/12 shifted (7.5uw, -10.75uh); pickup curvepen; draw ja_bar transformed sub; draw ja_curve transformed sub; drawdot(z11 transformed sub); drawdot(z17 transformed sub); drawdot(z18 transformed sub); cullit; sec_ja_picture = currentpicture; clearit; transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw ja_bar transformed super; draw ja_curve transformed super; draw ja_circle transformed super; drawdot(z11 transformed super); drawdot(z17 transformed super); drawdot(z18 transformed super); drawdot(z5 transformed super); cullit; sup_ja_picture = currentpicture; clearit; draw ja_bar; draw ja_curve; draw ja_circle; drawdot(z11); drawdot(z17); drawdot(z18); drawdot(z5); penlabels(1, 2, 3, 4, 5, 11,12,13,14,15,16,17,18); savepicture := currentpicture; endchar; beginchar(c_j_ja, 28uw#+rm#, 25uh#, 11uh#); "Oriya conjunct j+ja"; currentpicture := savepicture + sec_ja_picture; endchar; %%%%% jha picture sub_jha_picture; beginchar(c_jha, 24uw#+rm#, 25uh#, 6uh#); "Oriya letter jha"; % continuous stroke eye path jha_curve; path jha_cup; path jha_tail; z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); z7 = (0uw, 16uh); z8 = (11uw, h+overshoot); z9 = (13.5uw, y8-.5uh); % added from here z10 = (12uw, 21uh); z11 = (18uw, 15uh); z12 = (24uw, 21uh); z13 = (22.5uw, 25uh); % tail at bottom z14 = (15uw, .25uh); z15 = (20uw, -5.75uh); jha_curve = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} ..tension 0.95..z7{up}..z8{right}..z9; jha_cup = z9..z10{down}..z11{right}..z12{up}..z13; jha_tail = z14--z15; % subscribed jha transform sub; sub := identity scaled 13/25 shifted (12uw, -9uh); pickup subpen; draw jha_curve transformed sub; draw jha_cup transformed sub; drawdot(z9 transformed sub); drawdot(z13 transformed sub); draw jha_tail transformed sub; drawdot(z15 transformed sub); sub_jha_picture = currentpicture; clearit; % full size jha pickup curvepen; draw jha_curve; draw jha_cup; drawdot(z9); drawdot(z13); draw jha_tail; drawdot(z15); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; beginchar(c_j_jha, 26uw#+rm#, 25uh#, 11uh#); "Oriya conjunct j+jha"; currentpicture := sup_ja_picture + sub_jha_picture; endchar; %%%%% ba picture sup_ba_picture; picture ba_picture; beginchar(c_ba, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ba"; path ba_curve; path ba_circle; z11 = (18uw, 0uh); z12 = (x11, 8uh); z13 = (10.5uw, 14uh); z14 = (3.5uw, 8uh); z15 = (x13, 2uh); z16 = (x11, 6uh); ba_curve = z11---z12..z13{left}..z14{down}..z15{right}..{curl0}z16; penlabels(11,12,13,14,15,16); z1 = (4.75uw, 12uh); x4 = 24uw; define_new_outer_circle; ba_circle = new_outer_circle_path; % the superior ba transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw ba_curve transformed super; drawdot(z11 transformed super); draw ba_circle transformed super; cullit; sup_ba_picture := currentpicture; clearit; % the full size ba pickup curvepen; draw ba_curve; drawdot(z11); draw ba_circle; ba_picture := currentpicture; endchar; beginchar(c_badot, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ba with dot inside"; currentpicture := ba_picture; z2 = (10.5uw, 8uh + 1.75uh); pickup barpen; eye(1,2,3,4)(3.5uw,3.5uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; endchar; beginchar(c_b_ja, 27uw#+rm#, 25uh#, 11uh#); "Oriya conjunct b+ja"; currentpicture := ba_picture + sec_ja_picture; endchar; beginchar(c_b_dha, 21uw#+rm#, 25uh#, 10uh#); "Oriya conjunct b+dha"; currentpicture := sup_ba_picture + sub_dha_picture; endchar; beginchar(c_b_ba, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct b+ba"; pickup curvepen; z11 = z16 - (0, 1uh); z12 = (7.5uw, 3uh); z13 = (3uw, 9uh); z14 = (x12, 14uh); z15 = (x11, 10uh); z16 = (12uw, 7uh); z17 = (16.5uw, y12); z18 = (21uw, 6uh); draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down}..z16{down} ..z17{right}..{curl0}z18; z19 = z15 + (0, 1uh); z20 = (x17, y14); z21 = (x18, y15); z22 = (x18, 0uh); draw z19{curl0}..z20{right}..z21{down}..z22; drawdot(z22); penlabels(11,12,13,14,15,16,17,18,19,20,21,22); z1 = (3.75uw, 12uh); x4 = 27uw; new_outer_circle; endchar; beginchar(c_b_da, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct b+da"; pickup curvepen; z11 = z16 - (0, 1uh); z12 = (7.5uw, 3uh); z13 = (3uw, 9uh); z14 = (x12, 14uh); z15 = (x11, 10uh); z16 = (12uw, 7uh); z17 = (16.5uw, y12); z18 = (21uw, 6uh); draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down}..z16{down} ..z17{right}..{curl0}z18; % z19 = z15 + (0, 1uh); % removed % z20 = (x17, y14); % removed z21 = (x18, 13uh); z22 = (x18, 0uh); draw z21--z22; drawdot(z21); drawdot(z22); penlabels(11,12,13,14,15,16,17,18, 21,22); z1 = (3.75uw, 12uh); x4 = 27uw; new_outer_circle; endchar; beginchar(c_d_da, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+da"; pickup curvepen; z11 = z16 - (0, 1uh); z12 = (7.5uw, 3uh); z13 = (3uw, 9uh); z14 = (6uw, 14uh); % adjusted z15 = (x11, 13uh); % adjusted z16 = (12uw, 7uh); z17 = (16.5uw, y12); z18 = (21uw, 6uh); draw z11{curl0}..z12{left}..z13{up}..z14; drawdot(z14); draw z15..z16{down}..z17{right}..z18{curl0}; drawdot(z15); % z19 = z15 + (0, 1uh); % removed % z20 = (x17, y14); % removed z21 = (x18, 13uh); z22 = (x18, 0uh); draw z21--z22; drawdot(z21); drawdot(z22); penlabels(11,12,13,14,15,16,17,18, 21,22); z1 = (3.75uw, 12uh); x4 = 27uw; new_outer_circle; savepicture := currentpicture; endchar; beginchar(c_d_dha, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+dha"; currentpicture := savepicture; pickup ddiagpen; z21 = (21uw, 13uh); z23 = (6uw, 24uh); draw z21--z23; penlabels(21,23); endchar; beginchar(c_n_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya conjunct n+da"; z1 = (4.5uw, 10uh); x4 = 23uw; outer_circle; pickup barpen; z11 = (6uw, 13uh); z12 = (0uw, 0uh); draw z11--z12; drawdot(z11); drawdot(z12); pickup curvepen; z13 = (4uw, 7uh); z14 = (10.5uw, 2uh-overshoot); z15 = (17uw, 2uh+joint); draw z11{(z12-z11)}..z13{down}..z14{right}..{curl0}z15; z16 = (x15, 13uh); z17 = (x16, 0uh); draw z16--z17; drawdot(z16); drawdot(z17); penlabels(11,12,13,14,15,16,17); savepicture := currentpicture; endchar; beginchar(c_n_dha, 24uw#+rm#, 25uh#, 0uh#); "Oriya conjunct n+dha"; currentpicture := savepicture; pickup ddiagpen; z16 = (17uw, 13uh); z18 = (4.5uw, 23.5uh); draw z16--z18; penlabels(16,18); endchar; beginchar(c_bha, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter bha"; pickup curvepen; z11 = (6uw, 13uh); z12 = (3uw, 7uh); z13 = (12uw, -overshoot); z14 = (21uw, y12); z15 = (19uw, y11); draw z11..z12{down}..tension0.95..z13{right}..tension0.95..z14{up}..z15; drawdot(z11); drawdot(z15); % inner cup z16 = z15 - (0, 2uw); z17 = (.5[x15,x19], 6uh); z18 = (10.5uw, y16); z19 = (x18, y15); draw z15{down}..z16..tension0.95..z17{left}..tension0.95..z18..{up}z19; drawdot(z19); penlabels(11,12,13,14,15,16,17,18,19); z1 = (4uw, 11uh); x4 = 28uw; new_tail_circle; endchar; beginchar(c_d_bha, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+bha"; pickup curvepen; z11 = (6uw, 12uh); z12 = (3uw, 7uh); z13 = (12uw, -overshoot); z14 = (21uw, y12); z15 = (19uw, 12uh); draw z11..z12{down}..tension0.95..z13{right}..tension0.95..z14{up}..z15; drawdot(z11); drawdot(z15); penlabels(11,12,13,14,15); z16 = (20.75uw, 11uh); z17 = (16uw, 9uh); z18 = (11uw, 10uh); z19 = (13uw, 15uh); z20 = (11uw, 14uh); z21 = (10uh, 21uh); draw z15..z17..z19; draw z19..z20..z21; drawdot(z19); drawdot(z21); penlabels(16,17,18,19,20,21); z1 = (4uw, 11uh); x4 = 28uw; new_tail_circle; endchar; %%%%% dda, ddi, u, uu, nga picture sub_dda_picture; picture sup_dda_picture; beginchar(c_dda, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter dda"; z11 = (9uw, 13uh); z12 = (good.x 4uw, 6uh); z13 = (.5[x12,x14], -overshoot); z14 = (good.x 20uw, 6uh); z15 = .5[z17,z18]; z16 = z17 - (1uw, 2uh); z17 = (11uw, 8uh); z18 = (17uw, 15uh); z19 = z18 + (1uw, 2uh); z1 = (6.5uw, 11uh); x4 = 25uw; define_new_outer_circle; path dda_bar; path dda_curve; path dda_circle; dda_bar := z16..z17---z18..z19; dda_curve := z11{curl0}..z12{down}..z13{right}..z14{up}..z15; dda_circle := new_outer_circle_path; % subscribed dda: transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup barpen; draw dda_bar transformed sub; drawdot(z16 transformed sub); drawdot(z19 transformed sub); pickup curvepen; draw dda_curve transformed sub; drawdot(z11 transformed sub); draw dda_circle transformed sub; drawdot(z5 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (dda_circle--cycle) transformed sub; sub_dda_picture := currentpicture; clearit; % the superior dda transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup barpen; draw dda_bar transformed super; drawdot(z16 transformed super); drawdot(z19 transformed super); pickup curvepen; draw dda_curve transformed super; drawdot(z11 transformed super); draw dda_circle transformed super; drawdot(z5 transformed super); cullit; sup_dda_picture := currentpicture; clearit; % normal dda: pickup barpen; draw dda_bar; drawdot(z16); drawdot(z19); pickup curvepen; draw dda_curve; drawdot(z11); penlabels(11,12,13,14,15,16,17,18,19); cullit; savepicture := currentpicture; draw_new_outer_circle; endchar; beginchar(c_dd_dda, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct dd+dda"; currentpicture := sup_dda_picture + sub_dda_picture; endchar; beginchar(c_dd_ga, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct dd+ga"; currentpicture := sup_dda_picture + sub_ga_picture; endchar; beginchar(c_rr_ga, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct rr+ga"; currentpicture := sup_dda_picture + sub_ga_picture; z2 = (2uw, 0uh); pickup barpen; eye(1,2,3,4)(3.5uw,2.5uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; penlabels(1,2,3,4); endchar; beginchar(c_ddi, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddi"; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 25uw; new_narrow_i_circle; endchar; beginchar(c_u, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter u"; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 27uw; new_tail_circle; endchar; beginchar(c_uu, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter uu"; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 28uw; new_loop_tail_circle; endchar; beginchar(c_nga, 30uw#+rm#, 25uh#, 0uh#); "Oriya letter nga"; currentpicture := savepicture; pickup curvepen; % outer circle z1 = (6.5uw, 11uh); z2 = (good.x 0uw, 17uh); z3 = (10uw, h+overshoot); % adjusted z4 = (27.5uw, good.y 19uh); % adjusted z5 = (good.x 31uw, 22.5uh); % adjusted z6 = (x4, good.y(25uh+overshoot)); % added z7 = (good.x 24uw, y5); % added z8 = (25.5uw, 19.25uh); % added draw z1{left}..z2{up}..tension0.95..z3{right}..z4{right}..z5{up} ..z6{left}..z7{down}..z8; penlabels(1,2,3,4,5,6,7,8); endchar; %%%%% ddha, ddhi beginchar(c_ddha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddha"; pickup curvepen; z11 = (10uw, 13uh); z12 = (good.x 4uw, 6uh); z13 = (.5[x12,x14], -overshoot); z14 = (good.x 20uw, 6uh); z15 = z14 + (-3uw, 3uw); z16 = (8uw, 0uh); draw z11{curl0}..z12{down}..z13{right}..z14{up}..z15{left}..{curl0}z16; drawdot(z11); penlabels(11,12,13,14,15,16); cullit; savepicture := currentpicture; z1 = (6.5uw, 11uh); x4 = 25uw; new_outer_circle; endchar; beginchar(c_ddhi, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddhi"; currentpicture := savepicture; z1 = (6.5uw, 11uh); x4 = 25uw; new_narrow_i_circle; endchar; %%%%% shapes related to nna picture sup_nna_picture; picture sub_nna_picture; beginchar(c_nna, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter nna"; path nna_top; path nna_bot; path nna_bar; pickup curvepen; % upper curve z1 = (24uw, 25uh-joint); z2 = (15uw, 25uh+overshoot); z3 = (8uw, 21uh); z4 = (10uw, 16.75uh); nna_top = z1{curl0}..z2{left}..z3{down}..{curl0}z4; z5 = (14uw, 14.5uh); z6 = (7uw, 17.5uh); z7 = (0, 9.5uh); z8 = (10uw, -overshoot); z9 = (17uw, 4uh); z10 = (11uw, 9uh); z11 = (2.5uw, 3uh); nna_bot = z5{curl0}..z6{left}..z7{down}..z8{right} ..z9{up}..z10{left}..{curl0}z11; z12 = (x1, 25uh); z13 = (x12, 0); pickup barpen; nna_bar = z12--z13; % draw the superior version of nna transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw nna_top transformed super; drawdot(z4 transformed super); draw nna_bot transformed super; pickup barpen; draw nna_bar transformed super; cullit; sup_nna_picture := currentpicture; clearit; % draw the subscribed version of nna transform sub; sub := identity scaled 15/25 shifted (8uw, -5uh); pickup subpen; draw nna_top transformed sub; drawdot(z4 transformed sub); draw nna_bot transformed sub; pickup subbarpen; draw nna_bar transformed sub; currentpicture := currentpicture + currentpicture + currentpicture; unfill (z8{left}..z7{up}..z6{right}..{curl0}z5.. z4{curl0}..z3{up}..z2{right}..{curl0}z1-- z13--cycle) transformed sub; sub_nna_picture := currentpicture; clearit; % draw the full size nna: pickup curvepen; draw nna_top; drawdot(z4); draw nna_bot; pickup barpen; draw nna_bar; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); cullit; savepicture := currentpicture; endchar; beginchar(c_nn_dda, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+dda"; currentpicture := savepicture + sec_ta_picture shifted (24uw, 4uh); endchar; beginchar(c_nn_ddha, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+ddha"; currentpicture := savepicture + sec_da_picture shifted (24uw, 4uh); endchar; beginchar(c_nn_tta, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+tta"; currentpicture := sup_nna_picture + sub_tta_picture shifted(5uw, 0); endchar; beginchar(c_nn_ttha, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+ttha"; currentpicture := sup_nna_picture + sub_ttha_picture shifted(4uw, 0); endchar; picture sec_nna_picture; beginchar(c_nn_nna, 30uw#+rm#, 25uh#, 13uh#); "Oriya letter nn+nna"; % subscribed nna pickup curvepen; z21 = (15.75uw, 1uh); z22 = (good.x 14uw, -5uh); z23 = (.5[x22,x24], good.y -13uh); z24 = (good.x 30uw, -7uh); z25 = (26.5uw, -3uh); draw z21..z22{down}..z23{right}..z24{up}..z25; draw z21..z22{down}..z23{right}..z24{up}..z25; % unfill z21..z22{down}..z23{right}..z24{up}..z25..cycle; z26 = (22uw, -5.5uh); z27 = (good.x 28uw, 1uh); z28 = (25uw, good.y 4uh); z29 = (good.x 21uw, 1uh); z30 = z29 + (1uw, -2uh); draw z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30; draw z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30; unfill z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30..cycle; penlabels(21,22,23,24,25,26,27,28,29); sec_nna_picture := currentpicture; currentpicture := savepicture + sec_nna_picture; endchar; beginchar(c_k_ss_nna, 25uw#+rm#, 25uh#, 7uh#); "Oriya conjunct k+ss+nna"; % currentpicture := sup_k_ssa_picture + sub_nna_picture; currentpicture := sup_k_ssa_picture + sec_nna_picture shifted (-6uw, 3uh); endchar; beginchar(c_ss_nna, 24uw#+rm#, 25uh#, 10uh#); "Oriya conjunct ss+nna"; currentpicture := sup_ssa_picture + sec_nna_picture shifted (-6uw, 3uh); endchar; %%%%% letter nya and related shapes beginchar(c_j_nya, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct j+nya"; pickup curvepen; % upper part z1 = (4uw, 25uh); z2 = (1uw, 19uh); z3 = (4.5uw, 13uh); % adjusted z4 = (22.5uw, 13uh); % adjusted z5 = (25uw, 20uh); z6 = (20uw, 25uh+overshoot); z7 = z9 + (0, 1uh); z8 = (x9, 17uh); z9 = (16.5uw, 23uh); z10 = (12.5uw, y6); z11 = (8uw, 21uh); z12 = (9.5uw, y8); draw z1..tension.95..z2{down}..{(3,-1)}z3; drawdot(z1); draw z4..z5{up}..z6{left}..{curl0}z7; draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); % lower part z21 = (9uw, 6uh); z22 = (4.5uw, 3uh); z23 = (0uw, 8uh); z24 = (x22, 13uh); z25 = (x21, 9uh); z26 = z21 + (0uw, 1uh); z27 = (13.5uw, y22); z28 = (18uw, 6uh); draw z21{curl0}..z22{left}..z23{up}..z24{right}..z25{down}..z26{down} ..z27{right}..{curl0}z28; penlabels(21,22,23,24,25,26,27,28); z29 = z25 + (0uw, 1uh); z30 = (x27, y24); z31 = (x28, y25); z32 = (x31, 0uh); draw z29{curl0}..z30{right}..z31{down}---z32; drawdot(z32); penlabels(29,30,31,32); z33 = z31 + (0uw, 1uh); z34 = (22.5uw, y24); z35 = (27uw, 8uh); z36 = (25.5uw, 0uh); draw z33{curl0}..z34{right}..z35{down}..z36; drawdot(z36); penlabels(33,34,35,36); endchar; beginchar(c_ny_ja, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+ja"; pickup curvepen; % upper part (copied from Oriya letter nya) z1 = (4uw, 25uh); z2 = (1uw, 19uh); z3 = (8.25uw, 13uh); draw z1..tension.95..z2{down}..{(5,-1)}z3; drawdot(z1); z4 = (21uw, 13.5uh); % adjusted z5 = (25uw, 20uh); z6 = (20uw, 25uh+overshoot); z7 = z9 + (0, 1uh); z8 = (x9, 17uh); z9 = (16.5uw, 23uh); z10 = (12.5uw, y6); z11 = (8uw, 21uh); z12 = (9.5uw, y8); draw z4..z5{up}..z6{left}..{curl0}z7; draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); % lower part (copied from Oriya letter nya and adjusted) z13 = (4uw, 14.5uh); z14 = (0uw, 8uh); z15 = (.5[x14,x16], -overshoot); z16 = (23uw, 8uh); z17 = (19uw, 14uh); z18 = z20 + (0, 1uh); z19 = (x20, 5uh); z20 = (15uw, 11uh); z21 = (11uw, y17); z22 = (7uw, 9uh); z23 = (8.5uw, 5uh); draw z13..z14{down}..tension0.95..z15{right}..tension0.95..z16{up}..z17{left}..{curl0}z18; draw z19---z20..z21{left}..z22{down}..z23; drawdot(z19); drawdot(z23); % tail pickup barpen; z24 = (23uw, 10uh); z25 = (30uw, 16uh); z26 = (x25, 0uh); draw z24--z25--z26; drawdot(z25); drawdot(z26); penlabels(13,14,15,16,17,18,19,20,21,22,23,24,25,26); endchar; beginchar(c_ny_ca, 21uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+ca"; pickup curvepen; % upper part (copied from nya and adjusted) z1 = (2uw, 25uh); z2 = (0uw, 19uh); z3 = (4.75uw, 13.5uh); draw z1..tension.95..z2{down}..tension.95..{(3,-1)}z3; drawdot(z1); z4 = (11.5uw, 13uh); z5 = (21uw, 20uh); z6 = (16.5uw, 25uh+overshoot); z7 = z9 + (0, 1uh); z8 = (x9, 18uh); z9 = (13.5uw, 23uh); z10 = (10uw, y6); z11 = (6uw, 21.5uh); z12 = (7.5uw, y8); draw z4{right}..z5{up}..z6{left}..{curl0}z7; draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); % lower part z21 = (6uw, 7.5uh); z22 = (4uw, 11uh); z23 = (8uw, 15uh); z24 = (12uw, 11uh); z25 = (8uw, 7uh); z26 = (3uw, 8uh); z27 = (0uw, 4uh); z28 = (8uw, -overshoot); z29 = (19uw, joint); draw z21{curl0}..z22{up}..z23{right}..z24{down}..z25{left} ..z26..z27{down}..z28{right}..{curl0}z29; z30 = (x29, 15.5uh); z31 = (x30, 0uh); draw z30--z31; drawdot(z31); penlabels(21,22,23,24,25,26,27,28,29,30,31); savepicture := currentpicture; endchar; beginchar(c_ny_cha, 21uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ny+cha"; currentpicture := savepicture + sec_tha_picture shifted (11uw, -8uh); endchar; beginchar(c_ny_jha, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+jha"; pickup curvepen; currentpicture := savepicture; z32 = (19uw, 9uh); z33 = (27.5uw, 23uh); draw z32--z33; drawdot(z33); z34 = whatever[z32,z33]; x34 = x32+1.5uw; z35 = (28uw, 0uh); draw z34--z35; drawdot(z35); penlabels(32,33,34,35); endchar; beginchar(c_nya, 26uw#+rm#, 25uh#, 0uh#); "Oriya letter nya"; pickup curvepen; % upper part z1 = (4uw, 25uh); z2 = (1uw, 19uh); z3 = (8.25uw, 13uh); draw z1..tension.95..z2{down}..{(5,-1)}z3; drawdot(z1); z4 = (22uw, 14uh); z5 = (25uw, 20uh); z6 = (20uw, 25uh+overshoot); z7 = z9 + (0, 1uh); z8 = (x9, 17uh); z9 = (16.5uw, 23uh); z10 = (12.5uw, y6); z11 = (8uw, 21uh); z12 = (9.5uw, y8); draw z4..z5{up}..z6{left}..{curl0}z7; draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); % lower part z13 = (4uw, 14.5uh); z14 = (0uw, 8uh); z15 = (.5[x14,x16], -overshoot); z16 = (26uw, 8uh); z17 = (20.5uw, 14uh); z18 = z20 + (0, 1uh); z19 = (x9, 5uh); z20 = (x9, 11uh); z21 = (12uw, y17); z22 = (7uw, 9uh); z23 = (8.5uw, 5uh); draw z13..z14{down}..tension0.95..z15{right}..tension0.95..z16{up}..z17{left}..{curl0}z18; draw z19---z20..z21{left}..z22{down}..z23; drawdot(z19); drawdot(z23); penlabels(13,14,15,16,17,18,19,20,21,22,23); endchar; beginchar(c_nya_var, 20uw#+rm#, 25uh#, 0uh#); "Oriya letter nya (variant)"; pickup curvepen; % top part, first curve z1 = (2.5uw, 25uh); z2 = (1uw, 22uh); z3 = (9uw, 16uh); z4 = (17.5uw, 22uh); z5 = (15uw, 25uh+overshoot); z6 = (12uw, y5-2uh); draw z1..z2{down}..z3{right}..z4{up} ..tension.95..z5{left}..tension0.95..{curl0}z6; drawdot(z1); % top part, second curve z7 = (12uw, 20uh); z8 = (x7, 23uh); z9 = (9uw, 25uh+overshoot); z10 = (6uw, 23uh); z11 = (7uw, 20uh); draw z7---z8{up}..z9{left}..z10{down}..z11; % lower part, first curve z12 = (2uw, 13.5uh); z13 = (0uw, 8uh); z14 = (10uw, -overshoot); z15 = (20uw, 5uh); z16 = (15uw, 9uh); draw z12..z13{down}..tension.95..z14{right}..z15{up}..z16; drawdot(z12); % lower part, second curve z17 = (11.5uw, 7.5uh); % z18 = (15uw, 9uh); z19 = (17.5uw, 12.5uh); z20 = (13.5uw, 16uh); z21 = (9.5uw, 13uh); draw z17{curl0}..tension1.1..z19{up}..z20{left}..z21; drawdot(z21); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21); endchar; %%%%% sa picture sup_sa_picture; picture sub_sa_picture; beginchar(c_sa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter sa"; path sa_bar; path sa_top; path sa_bot; pickup curvepen; z1 = (14uw, 13uh); z2 = (2.5uw, 6uh); z3 = (22uw, -overshoot); sa_bot = z1--z2 & z2--z3; z4 = (7uw, 9uh); z5 = (0uw, 18uh); z6 = (10uw, h+overshoot); z7 = (x3, h-joint); sa_top = z4{curl0}..z5{up}..z6{right}..{curl0}z7; pickup barpen; z8 = (x3, h); z9 = z3; sa_bar = z8--z9; penlabels(1,2,3,4,5,6,7,8,9); % the superiour sa: transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw sa_bot transformed super; drawdot(z1 transformed super); drawdot(z2 transformed super); draw sa_top transformed super; pickup barpen; draw sa_bar transformed super; drawdot(z8 transformed super); drawdot(z9 transformed super); cullit; sup_sa_picture := currentpicture; clearit; % the subscribed sa: transform sub; sub := identity scaled 15/25 shifted (8uw, -9uh); pickup subpen; draw sa_bot transformed sub; drawdot(z1 transformed sub); drawdot(z2 transformed sub); draw sa_top transformed sub; pickup subbarpen; draw sa_bar transformed sub; drawdot(z8 transformed sub); drawdot(z9 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (z1--z2--z4{curl0}..z5{up}..z6{right}..{curl0}z7--z3--cycle) transformed sub; sub_sa_picture := currentpicture; clearit; % the full size sa: pickup curvepen; draw sa_bot; drawdot(z1); drawdot(z2); draw sa_top; pickup barpen; draw sa_bar; drawdot(z8); drawdot(z9); cullit; savepicture := currentpicture; endchar; beginchar(c_s_ka, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct s+ka"; currentpicture := sup_sa_picture + sub_ka_picture shifted (-4uw, 4uh); endchar; beginchar(c_s_tu, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct s+tu"; currentpicture := sup_sa_picture + sec_nna_picture shifted (-7uw, 3uh); endchar; beginchar(c_s_kha, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+kha"; currentpicture := sup_sa_picture + sub_kha_picture shifted (-1.5uw, 0); endchar; beginchar(c_s_tha, 21uw#+rm#, 25uh#, 3uh#); "Oriya conjunct s+tha"; currentpicture := sup_sa_picture + sec_tha_picture shifted (11uw, -1uh); endchar; beginchar(c_s_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+pa"; currentpicture := sup_sa_picture + sub_pa_picture; endchar; beginchar(c_s_pha, 24uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+pha"; currentpicture := sup_sa_picture + sub_pha_picture; endchar; beginchar(c_t_sa, 22uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+sa"; currentpicture := sup_sa_picture shifted (4uw, 0); % lower diagonal; pickup subpen; z1 = (3uw, 12uh); z2 = (0uw, 9uh); z3 = (4uw, 6uh); z4 = (22uw, 0); draw z1..z2{down}..z3---z4; penlabels(1,2,3,4); endchar; beginchar(c_s_t_ra, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct s+t+ra"; currentpicture := sup_sa_picture + sub_tra_picture shifted (6uw, 0); endchar; beginchar(c_k_sa, 30uw#+rm#, 28uh#, 9uh#); "Oriya conjunct k+sa"; currentpicture := full_ka_picture + sub_sa_picture shifted (9uw, 0uh); % outer circle z1 = (4uw, 12uh); % added (1uw, 2uh) x4 = 28uw; new_outer_circle; endchar; beginchar(c_p_sa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct p+sa"; currentpicture := sup_pa_picture + sub_sa_picture; endchar; beginchar(c_s_ta, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct s+ta"; currentpicture := savepicture + sec_ta_picture shifted (22uw, 4uh); endchar; beginchar(c_t_ta, 26uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+ta"; pickup curvepen; z11 = (5.5uw, 12uh); z12 = (good.x 3uw, 7uh); z13 = (.5[x12,x14], -overshoot); z14 = (good.x 19uw, 6uh); z15 = (14uw, 11.75uh); z16 = (10uw, 9uh); z17 = (good.x 16uw, 16.5uh); z18 = (12.5uw, good.y 21uh); z19 = (good.x 8uw, 17uh); z20 = (9uw, 15uh); draw z11..z12{down}..tension0.9..z13{right}..z14{up}..z15; draw z16{curl0}..z17{up}..z18{left}..z19{down}..z20; penlabels(11,12,13,14,15,16,17,18,19,20); z1 = (4.25uw, 11uh); x4 = 26uw; new_tail_circle; endchar; picture sub_ma_picture; picture sup_ma_picture; beginchar(c_ma, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ma"; path ma_top; path ma_bot; path ma_bar; pickup curvepen; % top left bow z1 = (5.5uw, 7.75uh); z2 = (good.x 0uw, 17uh); z3 = (11uw, good.y (25uh+overshoot)); z4 = (good.x 22uw, 25uh-joint); ma_top = z1..z2{up}..z3{right}..{curl0}z4; % bottom curve pickup curvepen; z5 = (6uw, 0uh); z6 = (good.x 3uw, 3uh); z7 = (8uw, 8uh); z8 = (15uw, 12uh); ma_bot = z5..z6{up}..tension1.2..{(3,1)}z8; % standing bar pickup barpen; z9 = (x4, h); z10 = (x4, 0); ma_bar := z9--z10; % the superiour ma: transform super; super := identity scaled 20/25 shifted (0, 5uh); pickup curvepen; draw ma_top transformed super; pickup barpen; draw ma_bot transformed super; drawdot(z5 transformed super); draw ma_bar transformed super; drawdot(z9 transformed super); drawdot(z10 transformed super); cullit; sup_ma_picture := currentpicture; clearit; % the subscribed sa: transform sub; sub := identity scaled 15/25 shifted (8uw, -7uh); pickup subpen; draw ma_top transformed sub; pickup subbarpen; draw ma_bot transformed sub; drawdot(z5 transformed sub); draw ma_bar transformed sub; drawdot(z9 transformed sub); drawdot(z10 transformed sub); currentpicture := currentpicture + currentpicture + currentpicture; unfill (z1..z2{up}..z3{right}..{curl0}z4--z10--z5..z6{up}.. tension1.2..{(3,1)}z8..cycle) transformed sub; sub_ma_picture := currentpicture; clearit; % draw the full size ma pickup curvepen; draw ma_top; pickup curvepen; draw ma_bot; drawdot(z5); pickup barpen; draw ma_bar; drawdot(z9); drawdot(z10); penlabels(1,2,3,4,5,6,7,8,9,10); cullit; savepicture := currentpicture; endchar; beginchar(c_m_ma, 22uw#+rm#, 25uh#, 7uh#); "Oriya conjunct m+ma"; currentpicture := sup_ma_picture + sub_ma_picture; endchar; beginchar(c_t_ma, 22uw#+rb#+rm#, 25uh#, 12uh#); "Oriya conjunct t+ma"; currentpicture := savepicture; z1 = (22uw, 0uh); % z10 of letter ma ta_tail; endchar; beginchar(c_m_pa, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct m+pa"; pickup curvepen; % top left bow z1 = (5.5uw, 7.75uh); z2 = (good.x 0uw, 17uh); z3 = (11uw, good.y (25uh+overshoot)); z4 = (13.5uw, y3-.5uh); draw z1..z2{up}..z3{right}..{curl0}z4; drawdot(z4); z11 = (good.x 12uw, 21uh); z12 = (18uh, good.y 15uw); z13 = (good.x 24uw, 21uh); draw z4..z11{down}..z12{right}..{curl0}z13; % bottom curve pickup curvepen; z5 = (6uw, 0uh); z6 = (good.x 3uw, 3uh); z7 = (8uw, 8uh); z8 = (14uw, 11.5uh); % adjusted draw z5..z6{up}..tension1.2..{(3,1)}z8; drawdot(z5); % standing bar pickup barpen; z9 = (x13, h); z10 = (x13, 0); draw z9--z10; drawdot(z9); drawdot(z10); % save the picture without the diagonal cullit; savepicture := currentpicture; % diagonal pickup ddiagpen; z14 = (18uw, 25uh+overshoot); z15 = (29uw, 12uh); draw z14--z15; drawdot(z14); drawdot(z15); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; beginchar(c_m_pha, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct m+pha"; currentpicture := savepicture; % diagonal pickup ddiagpen; z14 = (18uw, 25uh+overshoot); z15 = (30uw, 11uh); % adjusted draw z14--z15; drawdot(z14); drawdot(z15); penlabels(14,15); % top left eye x31 = 24uw; top_left_eye; endchar; beginchar(c_dh_ya, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct dh+ya"; pickup curvepen; z1 = (1uw, 25uh); z2 = (13uw, 12uh); draw z1--z2; drawdot(z1); z3 = z2; z4 = (7uw, 14uh); z5 = (0uw, 7uh); z6 = (7uw, -overshoot); z7 = (12.25uw, 2uh); draw z3..tension0.9..z4{left}..z5{down}..tension0.95..z6{right}..{curl0}z7; z8 = (11uw, 6uh); z9 = (18uw, -overshoot); z10 = (24uw, joint); draw z2..z8{down}..z9{right}..{curl0}z10; pickup barpen; z11 = (x10, 25uh); z12 = (x11, 0uh); draw z11--z12; drawdot(z11); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; %%%%% na, naa, secondary na, nta, ntra, tna picture napicture; beginchar(c_na, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter na"; pickup curvepen; % inner shape z11 = (7uw, 0uh); z12 = (4uw, 3uh); z13 = (16uw, 12uh); z14 = (18uw, 10uh); z15 = (x14, 0uh); draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; drawdot(z11); drawdot(z12); napicture := currentpicture; % outer circle z1 = (6.5uw, 7uh); z2 = (0uw, 16uh); z3 = (12uw, 25uh+overshoot); z4 = (25uw, 16uh); z5 = (22uw, 9uh); draw z1..z2{up}..z3{right}..z4{down}..z5; drawdot(z5); penlabels(1,2,3,4,5,11,12,13,14,15); savepicture := currentpicture; endchar; beginchar(c_naa, 27uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination naa"; pickup curvepen; % inner shape currentpicture := napicture; % outer circle z1 = (6.5uw, 7uh); z2 = (0uw, 16uh); z3 = (13.5uw, 25uh+overshoot); z4 = (27uw, 25uh-joint); z5 = (27uw, 25uh); z6 = (27uw, 0uh); draw z1..z2{up}..z3{right}..{curl0}z4; drawdot(z5); drawdot(z6); pickup barpen; draw z5--z6; penlabels(1,2,3,4,5,6); endchar; beginchar(c_ni, 25uw#+rm#, 25uh#, 0uh#); "Oriya combination ni"; pickup curvepen; currentpicture := napicture; z1 = (6.5uw, 7uh); z2 = (good.x 0uw, 14uh); z6 = (6uw, good.y 20uh); z7 = (15uw, 18uh); draw z1..z2{up}..z6{right}..z7; z8 = (8uw, 20.125uh); z9 = (good.x 7uw, 22uh); z3 = (14.5uw, good.y (25uh+overshoot)); z4 = (25uw, 16uh); z5 = (x4-2uw, 9uh); draw z8{left}..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); penlabels(1,2,3,4,5,6,7,8,9); endchar; % more common variant of n+ti, n+ta: beginchar(c_n_ti_var, 27uw#+rm#, 25uh#, 7uh#); "Oriya letter n+ti (variant)"; pickup curvepen; % inner shape (slighlty reduced) z11 = (7uw, 0uh); z12 = (4uw, 3uh); z13 = (15uw, 11uh); z14 = (17uw, 9uh); z15 = (x14, 0uh); draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; drawdot(z11); drawdot(z12); % outer circle z1 = (6.5uw, 7uh); z2 = (good.x 0uw, 14uh); z6 = (6uw, good.y 20uh); z7 = (15uw, 18uh); draw z1..z2{up}..z6{right}..z7; z8 = (8uw, 20.125uh); z9 = (good.x 7uw, 22uh); z3 = (14.5uw, good.y (25uh+overshoot)); z4 = (26.5uw, 15uh); z5 = (24.5uw, 8uh); draw z8{left}..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); % ta tail z21 = z5 - (-2uw, 5.5uh); z22 = z5 - (3uw, 3.5uh); z23 = z5; z24 = z5 - (-3uw, 3uh); z25 = z5 - (12uw, 15uh); draw z21..z22{up}..z23{right}..z24{down}...{curl0}z25; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 21, 22, 23, 24, 25); endchar; beginchar(c_n_ta_var, 27uw#+rm#, 25uh#, 7uh#); "Oriya letter n+ta (variant)"; pickup curvepen; % inner shape (slighlty reduced) z11 = (7uw, 0uh); z12 = (4uw, 3uh); z13 = (15uw, 11uh); z14 = (17uw, 9uh); z15 = (x14, 0uh); draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; drawdot(z11); drawdot(z12); % outer circle z1 = (6.5uw, 7uh); z2 = (0uw, 16uh); z3 = (13uw, 25uh+overshoot); z4 = (26.5uw, 15uh); z5 = (24.5uw, 8uh); draw z1..z2{up}..z3{right}..z4{down}..z5; drawdot(z5); % ta tail z21 = z5 - (-2uw, 5.5uh); z22 = z5 - (3uw, 3.5uh); z23 = z5; z24 = z5 - (-3uw, 3uh); z25 = z5 - (12uw, 15uh); draw z21..z22{up}..z23{right}..z24{down}...{curl0}z25; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 21, 22, 23, 24, 25); endchar; beginchar(cs_na, 0uw#, 0uh#, 10uh#); "Oriya secondary na"; pickup curvepen; z11 = (7uw, 0uh); % copied from letter na z12 = (4uw, 3uh); z13 = (16uw, 12uh); z14 = (18uw, 10uh); z15 = (x14, 0uh); transform sub; sub = identity scaled 10/12 shifted (-(11uw+rm+rb), -10uh); draw (z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15) transformed sub; drawdot(z11 transformed sub); drawdot(z12 transformed sub); endchar; beginchar(c_n_ta, 25uw#+rm#, 25uh#, 5uh#); "Oriya conjunct n+ta"; currentpicture := savepicture + sec_ta_picture shifted (18uw, 4uh); endchar; beginchar(c_n_t_ra, 25uw#+rm#, 25uh#, 12uh#); "Oriya conjunct n+t+ra"; currentpicture := savepicture + sub_tra_picture shifted (8uh, -6uh); endchar; beginchar(c_n_tha, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct n+tha"; currentpicture := savepicture + sec_tha_picture shifted (12uw, -8uh); endchar; beginchar(c_t_na, 25uw#+rm#, 25uh#, 12uh#); "Oriya conjunct t+na"; currentpicture := savepicture; z1 = (18uw, 0uh); % = z15 in letter na ta_tail; endchar; %%%%% tha beginchar(c_tha, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter tha"; pickup curvepen; z1 = (4.5uw, 19.5uh); z2 = (6uw, 21uh); z3 = (7.5uw, 19.5uh); z4 = (4uw, 18uh); z5 = (3uw, 21uh); z6 = (8.5uw, 25uh+overshoot); z7 = (13uw, 20uh); z8 = (0uw, 7uh); z9 = (10uw, -overshoot); z10 = (20uw, joint); z11 = (x10, 25uh); z12 = (x11, 0uh); % draw z1{curl0}..z2{right}..z3{down}.. draw z4{curl0}..z5{up}..z7{down} ..z8{down}..z9{right}..{curl0}z10; draw z11--z12; drawdot(z11); drawdot(z12); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar; %%%%% sha picture sup_sha_picture; beginchar(c_sha, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter sha"; % continuous stroke eye path sha_eye; path sha_top; path sha_bar; pickup curvepen; z1 = (5.5uw, 9uh); z2 = (good.x 4uw, 5uh); z3 = (9.5uw, -overshoot); z4 = (good.x 15uw, 5uh); z5 = (10uw, good.y 10uh); z6 = (4uw, good.y 9uh); z7 = (0uw, 14uh); z8 = (5uw, 19.5uh); z9 = (11uw, 18uh); sha_eye := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. z7{up}..z8{right}..{curl0}z9; z10 = (7uw, 19.25uh); z11 = (good.x 6uw, 22.5uh); z12 = (11uw, h + overshoot); z13 = (22uw, h - joint); sha_top := z10..z11{up}..z12{right}..{curl0}z13; pickup barpen; z14 = (x13, h); z15 = (x13, 0); sha_bar := z14--z15; % raised sha: transform super; super = identity scaled 20/25 shifted (0uw, 5uh); pickup curvepen; draw sha_eye transformed super; draw sha_top transformed super; drawdot(z9 transformed super); pickup barpen; draw sha_bar transformed super; drawdot(z14 transformed super); drawdot(z15 transformed super); cullit; sup_sha_picture := currentpicture; clearit; % full size sha: pickup curvepen; draw sha_eye; draw sha_top; drawdot(z9); pickup barpen; draw sha_bar; drawdot(z14); drawdot(z15); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); cullit; savepicture := currentpicture; endchar; beginchar(c_sh_tta, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct sh+tta"; currentpicture := sup_sha_picture + sub_tta_picture shifted (4uw, 0uh); endchar; beginchar(c_sh_ca, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct sh+ca"; currentpicture := sup_sha_picture + sub_ca_picture shifted (4uw, 0uh); endchar; beginchar(c_sh_cha, 21uw#+rm#, 25uh#, 3uh#); "Oriya conjunct s+cha"; currentpicture := sup_sha_picture + sec_tha_picture shifted (11uw, -1uh); endchar; beginchar(c_tta_var, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter tta (variant)"; pickup curvepen; z1 = (6uw, 5uh); z2 = (12uw, -overshoot); z3 = (18uw, y1); z4 = (x2, 10uh+overshoot); draw z1{down}..z2{right}..z3{up}..z4{left}..cycle; z5 = (6.5uw, 8uh); z6 = (0uw, 15uh); draw z5--z6; z7 = (.5[x6,x8], y6+2.5uh); z8 = (24uw, y6); draw z6..z7{right}..z8; z9 = (11uw, h+overshoot); draw z8--z9; drawdot(z9); penlabels(1,2,3,4,5,6,7,8,9); endchar; %%%%% vowels beginchar(c_a, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter a"; pickup curvepen; z1 = (3.5uw, 17.5uh); z2 = (2uw, 21.5uh); z3 = (6.5uw, h+overshoot); z4 = (10uw, 23uh); % z4 = (10uw, 24uh); z5 = (x4, 18uh); draw z1..z2{up}..z3{right}..z4{down}--z5; drawdot(z1); drawdot(z5); if calligraphic: z6 = z4 + (0uw, 1uh); else: z6 = z4 fi; z7 = (14uw, h+overshoot); z8 = (18uw, 20.5uh); % (18uw, 20.5uh); z9 = (10uw, 13.5uh); % (10uw, 14uh); z10 = (0uw, 7.5uh); % (0uw, 8uh); z11 = (11.5uw, -overshoot); z12 = (24uw, 4uh); draw z6 if calligraphic: {curl0} fi..z7{right}..z8{down}.. z9{left}..z10{down}..z11{right}..{curl0}z12; pickup barpen; z13 = (x12, h); z14 = (x12, 0uh); draw z13--z14; drawdot(z13); drawdot(z14); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; path li_path; beginchar(c_li, 20uw#+rm#, 25uh#, 0uh#); "Oriya letter li"; pickup curvepen; z1 = (4uw, 24uh); z2 = (7.5uw, 21uh); z3 = (.5[x2,x4], 18uh); z4 = (2uw, y2); z5 = (9uw, 25uh + overshoot); z6 = (16uw, 20uh); z7 = (9uw, 14uh); z8 = (0uw, 6uh); z9 = (10uw, -overshoot); z10 = (20uw, 5uh); z11 = (.5[x10,x12], 8uh); z12 = (x10-5uw, y10); z13 = (x11, 2uh); z14 = (x10-0.5uw, 3uh); li_path := z1..z2{down}..z3{left}..z4{up}..z5{right}..z6{down}.. z7..tension 0.9..z8{down}..z9{right}..z10{up}..z11{left}..z12{down}.. z13{right}..z14; draw li_path; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; beginchar(cs_li, 0uw#, 0uh#, 16uh#); "Oriya vowel sign li"; pickup subpen; draw li_path scaled 14/25 shifted (-4uw, -16uw); endchar; path lii_path; beginchar(c_lii, 20uw#+rm#, 25uh#, 7uh#); "Oriya letter lii"; pickup curvepen; z1 = (4uw, 24uh); z2 = (7.5uw, 21uh); z3 = (.5[x2,x4], 18uh); z4 = (2uw, y2); z5 = (9uw, 25uh + overshoot); z6 = (16uw, 20uh); z7 = (9uw, 14uh); z8 = (0uw, 6uh); z9 = (10uw, -overshoot); z10 = (20uw, 5uh); z11 = (.5[x10,x12], 8uh); z12 = (x10-5.5uw, y10); z13 = (x10-4uw, 2uh); z14 = (x10+5uw, -7uh); lii_path := z1..z2{down}..z3{left}..z4{up}..z5{right}..z6{down}.. z7..tension 0.9..z8{down}..z9{right}..z10{up}..z11{left}..z12{down}.. z13---z14; draw lii_path; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; beginchar(cs_lii, 0uw#, 0uh#, 16uh#); "Oriya vowel sign lii"; pickup subpen; draw lii_path scaled 14/25 shifted (-4uw, -16uh); endchar; beginchar(c_e, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter e"; pickup curvepen; z1 = (12uw, 14uh); z2 = z1 + (-2uw, 2uh); z3 = z2 + (0.707uw, 1.414uh); % y5 = 25uh; x6 = 24uw; % z5 = z6 + (-2uw, 2uh); z5 = (24uw, 25uh+overshoot); % x7 = x6; y8 = 0uh; % z8 = z7 + (-3uw, -2uh); z7 = (x5, 0uh-overshoot); z10 = (2uw, 12uh); z11 = (0uw, 11.75uh); draw z1..z2{up}..z3---z5; draw z5---z7; pickup curvepen; draw z7---z10..z11; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; %% for the letter au we add a `mantle' to the letter e beginchar(c_ai, 32uw#+rb#+rm#, 36uh#, 0uh#); "Oriya letter ai"; pickup curvepen; z1 = (13uw, 14uh); z2 = z1 + (-2uw, 2uh); z3 = z2 + (0.707uw, 1.414uh); % y5 = 25uh; x6 = 24uw; % z5 = z6 + (-2uw, 2uh); z5 = (24uw, 24uh+overshoot); % x7 = x6; y8 = 0uh; % z8 = z7 + (-3uw, -2uh); z7 = (x5, 0uh-overshoot); z10 = (2uw, 12uh); z11 = (0uw, 11.75uh); draw z1..z2{up}..z3---z5; draw z5---z7; pickup curvepen; draw z7---z10..z11; % `mantle' pickup curvepen; z20 = (4uw, 36uh); z21 = (17uw, 32uh); z22 = (26uw, 32uh); z23 = (32uw, 24uh); z24 = (x23, 0uh); draw z20..z21---z22{right}..{down}z23--z24; drawdot(z20); drawdot(z24); % connecting curve z25 = (x5, 19uh); z26 = (26uw, 16uh); z27 = (x23, 18uh); draw z25..z26..z27; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; beginchar(c_o, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter o"; pickup curvepen; % first curve z1 = (6uw, 35uh); z2 = (3.5uw, 22.5uh); z3 = (0uw, 12.5uh); z4 = (11.5uw, -overshoot); z5 = (23uw, 8.5uh); z6 = (16uw, 13.80uh); draw z1{(1,-2)}..z2..z3{down}..tension0.95.. z4{right}..tension0.9..z5{up}..z6; drawdot(z1); % top right curve z7 = (12uw, 12uh); z8 = (20uw, 20uh); z9 = (15uw, 25uh+overshoot); z10 = (10uw, 22uh); % adjusted z11 = (11.5uw, 19uh); % adjusted z12 = (11uw, 21uh); z13 = (10uw, 22.5uh); draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % ..z12..z13; drawdot(z7); drawdot(z11); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; beginchar(c_oromsign, 23uw#+rm#, 35uh#, 0uh#); "Oriya symbol om"; pickup curvepen; % first curve z1 = (7uw, 31uh); z2 = (3.5uw, 22.5uh); z3 = (0uw, 12.5uh); z4 = (11.5uw, -overshoot); z5 = (23uw, 8.5uh); z6 = (16uw, 13.80uh); draw z1{down}..z2..z3{down}..tension0.95..z4{right}..tension0.9..z5{up}..z6; drawdot(z1); % top right curve z7 = (12uw, 12uh); z8 = (20uw, 20uh); z9 = (15uw, 25uh+overshoot); z10 = (10uw, 22uh); % adjusted z11 = (11.5uw, 19uh); % adjusted z12 = (11uw, 21uh); z13 = (10uw, 22.5uh); draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % ..z12..z13; drawdot(z7); drawdot(z11); % big anusvar pickup curvepen; z21 = (2uw, 37uh); z22 = (.5[x21, x23], 30uh); z23 = (21uw, 37uh); draw z21..tension.9..z22{right}..tension.9..z23; pickup curvepen; z27 = (x22+.25(thick-thin), 34uh); eye(24,25,26,27)(6uw,6uh); draw_eye(24,25,26,27); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 21,22,23,24,25,26,27); endchar; %% to create the au, we lower the left-side curl of the o and add %% the bar on the top and on the left to it. beginchar(c_au, 29uw#+rb#+rm#, 36uh#, 0uh#); "Oriya letter au"; pickup curvepen; % first curve z1 = (5uw, 25uh); % position adjusted to accomodate top bar z2 = (3.5uw, 22.5uh); z3 = (0uw, 12.5uh); z4 = (11uw, -overshoot); z5 = (23uw, 8.5uh); z6 = (16uw, 13.80uh); draw z1..z3{down}..z4{right}..tension0.9..z5{up}..z6; drawdot(z1); % top right curve z7 = (12uw, 12uh); z8 = (20uw, 20uh); z9 = (15uw, 25uh+overshoot); z10 = (10uw, 22uh); % adjusted z11 = (11.5uw, 19uh); % adjusted z12 = (14.5uw, 21uh); z13 = (11uw, 24.5uh); draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % {right}..z12{up}..z13; drawdot(z7); % `mantle' pickup curvepen; z14 = (0uw, 36uh); % 34uh z15 = (13uw, 32uh); % 30uh z16 = (22uw, 32uh); % 30uh z17 = (29uw, 24uh); % 23uh z18 = (x17, 0uh); draw z14..z15{right}---z16{right}..z17{down}---z18; drawdot(z14); drawdot(z15); % connecting stroke pickup curvepen; z19 = (20uw, 19uh); z20 = (25uw, 16uh); z21 = (x17, 18uh); draw z19..z20{right}..z21; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); endchar; beginchar(c_va, 16uw#+rm#, 25uh#, 0uh#); "Oriya letter va"; pickup curvepen; z1 = (3uw, 25uh); z2 = (0uw, 18uh); z3 = (8uw, 10uh); z4 = (16uw, 16uh); z5 = (12.5uw, 19uh); drawdot(z1); draw z1..z2{down}..z3{right}..z4{up}..z5; z6 = (8uw, 17uh); z7 = (14uw, 22.5uh); z8 = (10uw, 25uh+overshoot); z9 = (7uw, 23uh); z10 = (7.5uw, 22uh); draw z6{curl0}..tension1.1..z7{up}..z8{left}..z9{down}..z10; drawdot(z10); z11 = (4uw, 11uh); z12 = (2uw, 7uh); z13 = (8uw, 2uh); z14 = (13.5uw, 6uh); z15 = (x14, 11.5uh); z16 = (x15, 0uh); draw z11..z12{down}..z13{right}..z14; draw z15--z16; drawdot(z16); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar; %%%%% vowel signs and modifiers picture reph_picture; beginchar(c_reph, 0uw#, 37uh#, 0uh#); "Oriya sign reph"; pickup curvepen; z1 = (0uw, 27uh); z2 = z1 + (-3uw, 4uh); z3 = z1 + (7uw, 11uh); draw z1..z2{up}..{curl0}z3; drawdot(z1); drawdot(z2); reph_picture := currentpicture; penlabels(1,2,3); adjustpos(rm+rb); endchar; picture candrabindu_picture; beginchar(c_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya sign candrabindu"; pickup curvepen; z1 = (-7uw, 34.5uh); z2 = (-0uw, 29uh); z3 = (7uw, y1); draw z1..tension0.9..z2{right}..tension0.9..z3; pickup subpen; eye(4,5,6,7)(5uw,5uh); z7 = (x2+.25(thick-thin), 33uh); draw_eye(4,5,6,7); penlabels(1,2,3,4,5,6,7); candrabindu_picture := currentpicture; adjustpos(rm+rb); endchar; beginchar(cs_aa, 2uw#+rb#+rm#, 25uh#, 0uh#); "Oriya vowel sign aa"; pickup barpen; z1 = (2uw, h); z2 = (x1, 0uh); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(cs_i, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i"; pickup curvepen; z1 = (-22uw, 31uh); z2 = z1 + (10.5uw, good.y 6uh); z3 = z1 + (21uw, 0uh); penlabels(1,2,3); draw z1..z2{right}..z3; drawdot(z1); drawdot(z3); adjustpos(rm+rb); endchar; beginchar(cs_i_var, 0uw#, 0uh#, 11uh#); "Oriya vowel sign i (subscribed variant)"; pickup curvepen; z1 = (-15uw, -1uh); z2 = (-18uw, -7uh); z3 = (0uw, -11uh); draw z1--z2; drawdot(z1); draw z2--z3; drawdot(z3); penlabels(1,2,3); adjustpos(rm+rb); endchar; beginchar(cs_i_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with candrabindu"; pickup curvepen; z1 = (-24uw, 31uh); z2 = z1 + (8.125uw, 4uh); z3 = z1 + (19.5uw, -1uh); z4 = z1 + (26uw, 5uh); draw z1..z2{right}..z3{right}..z4; drawdot(z1); drawdot(z2); pickup subpen; eye(8,5,6,7)(5uw,5uh); z7 = (x3+.25(thick-thin), 35uh); draw_eye(8,5,6,7); penlabels(1,2,3,4,5,6,7,8); adjustpos(rm+rb); endchar; beginchar(cs_i_reph, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with reph"; pickup curvepen; z1 = (-22uw, 30uh); z2 = z1 + (10.5uw, 6uh); z3 = z1 + (21uw, 0uh); draw z1..z2{right}..z3; drawdot(z1); drawdot(z3); penlabels(1,2,3); z11 = z3 + (-1.25uw, 2uh); z11'= z11 + (-1.5uw, 1.5uh); z12 = z11 + (-2uw, 3uh); z13 = z11 + (7uw, 10uh); draw z11'..z12{up}..{curl0}z13; drawdot(z11'); drawdot(z12); penlabels(11,11',12,13); adjustpos(rm+rb); endchar; beginchar(cs_i_reph_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with candrabindu and reph"; pickup curvepen; z1 = (-24uw, 31uh); z2 = z1 + (8.125uw, 4uh); z3 = z1 + (19.5uw, -1uh); z4 = z1 + (26uw, 5uh); draw z1..z2{right}..z3{right}..z4; drawdot(z1); drawdot(z2); pickup subpen; eye(8,5,6,7)(5uw,5uh); z7 = (x3+.25(thick-thin), 35uh); draw_eye(8,5,6,7); penlabels(1,2,3,4,5,6,7,8); z11 = z3 + (-5uw, 3.5uh); z12 = z11 + (-2uw, 3uh); z13 = z11 + (7uw, 10uh); draw z4..z3{left}..tension1.1..z12{up}..{curl0}z13; drawdot(z12); penlabels(11,12,13); adjustpos(rm+rb); endchar; beginchar(cs_ii, 2uw#+rb#+rm#, 32uh#, 0uh#); "Oriya vowel sign ii"; pickup barpen; z1 = (-8uw, 25uh); z2 = (2uw, 32uh); z3 = (x2, 0uh); draw z1--z2--z3; drawdot(z3); penlabels(1,2,3); endchar; beginchar(cs_u, 0uw#, 0uh#, 11uh#); "Oriya vowel sign u"; pickup subpen; z1 = (0uw, 0.5uh); z2 = (x1, -5uh); z3 = (x1-4uw, -11uh); z4 = (x1-8uw, -7.5uh); z5 = (x3, -4uh); z6 = (x1+7uw, -12uh); z7 = (x6+5uw, y6+2uh); draw z1--z2{down}..z3{left}..z4{up}..z5{right}..z6{right}..z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); adjustpos(rm+rb); savepicture := currentpicture; endchar; beginchar(cs_u_low, 0uw#, 0uh#, 17uh#); "Oriya vowel sign u (lowered version)"; currentpicture := savepicture shifted (0, -6uh); endchar; beginchar(cs_u_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign u (much lowered version)"; currentpicture := savepicture shifted (0, -10uh); endchar; beginchar(cs_u_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign u (centered version)"; currentpicture := savepicture shifted (-11uw, -1uh); endchar; beginchar(cs_u_var, 0uw#, 0uh#, 15uh#); "Oriya vowel sign u (variant)"; pickup subpen; z1 = (7.5uw, -3.5uh); z2 = (11uw, -5.5uh); z3 = (18uw, -12uh); z4 = (15uw, -15uh); z5 = (12uw, y3); z6 = (19uw, y2); z7 = (22.5uw, y1); draw z1---z2..z3{down}..z4{left}..z5{up}..z6---z7; drawdot(z1); drawdot(z7); penlabels(1,2,3,4,5,6,7); adjustpos(28uw+rm+rb); endchar; beginchar(cs_uu, 0uw#, 0uh#, 11uh#); "Oriya vowel sign uu"; pickup subpen; z1 = (0uw, 0.5uh); z2 = (x1, -2uh); z3 = (x1-5uw, -8uh); z4 = (x1-2uw, -11uh); z5 = (x1+3.5uw, -8.5uh); z6 = (x1+14uw, -14uh); z7 = (x6+2uw, y6+1uh); draw z1--z2{down}..z3{down}..z4{right}..z5{right}..z6{right}..z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); adjustpos(rm+rb); savepicture := currentpicture; endchar; beginchar(cs_uu_low, 0uw#, 0uh#, 17uh#); "Oriya vowel sign uu (lowered version)"; currentpicture := savepicture shifted (0, -6uh); endchar; beginchar(cs_uu_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign uu (much lowered version)"; currentpicture := savepicture shifted (0, -10uh); endchar; beginchar(cs_uu_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign uu (centered version)"; currentpicture := savepicture shifted (-11uw, -1uh); endchar; beginchar(cs_ri, 0uw#, 0uh#, 14uh#); "Oriya vowel sign ri"; pickup subpen; z1 = (0, .5uh); z2 = (x1, -0.5uh); z3 = (x1 - 4uw, -9uh); z4 = (x1 + 1uw, -14uh); z5 = (x1 + 6uw, -10uh); z6 = (x1 + 3.5uw, -7uh); z7 = (x1 + 1uw, -10uh); z8 = (x1 + 2uw, -13.75uh); draw z1---z2..z3{down}..z4{right}..tension0.95 ..z5{up}..z6{left}..z7{down}..z8; penlabels(1,2,3,4,5,6,7,8); adjustpos(rm+rb); savepicture := currentpicture; endchar; beginchar(cs_ri_low, 0uw#, 0uh#, 20uh#); "Oriya vowel sign ri (lowered version)"; currentpicture := savepicture shifted (0, -6uh); endchar; beginchar(cs_ri_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign ri (much lowered version)"; currentpicture := savepicture shifted (0, -10uh); endchar; beginchar(cs_ri_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign ri (centered version)"; currentpicture := savepicture shifted (-11uw, -1uh); endchar; beginchar(cs_rii, 0uw#, 0uh#, 16uh#); "Oriya vowel sign rii"; pickup subpen; z1 = (0, .5uh); z2 = (x1, -0.5uh); z3 = (x1 - 4uw, -9uh); z4 = (x1 + 1uw, -14uh); z5 = (x1 + 6uw, -10uh); z6 = (x1 + 3.5uw, -7uh); z7 = (x1 + 1uw, -10uh); z8 = (x1 + 2uw, -13.75uh); draw (z1---z2..z3{down}..z4{right}..tension0.95 ..z5{up}..z6{left}..z7{down}..z8) scaled 10/14; z9 = .5[z2, z3]; draw (z9..z3{down}..z4{right}..tension0.95 ..z5{up}..z6{left}..z7{down}..z8) scaled 10/14 shifted (2uw, -7.5uh); penlabels(1,2,3,4,5,6,7,8); adjustpos(rm+rb); savepicture := currentpicture; endchar; %% we purposely make the bounding box a bit narrower, so that the %% vowel sign comes quite close to the consonant it belongs to beginchar(cs_e, 17uw#+rm#, 25uh#, 0uh#); "Oriya vowel sign e"; % also used for ai, o, and au pickup curvepen; z1 = (17uw, h-1uh); z2 = (11uw, h+overshoot); z3 = (0uw, .5h); z4 = (10uw, -overshoot); z5 = (18uw, 5.5uh); z6 = (11uw, 11.5uh); z7 = (0.5uw, 7.5uh); draw z1..z2{left}..tension0.9..z3{down}..tension0.9..z4{right} ..z5{up}..z6{left}..z7; drawdot(z1); penlabels(1,2,3,4,5,6,7); endchar; beginchar(cs_ai, 0uw#, 37uw#, 0uh#); "Oriya vowel sign ai (second part)"; pickup curvepen; z1 = (0, 25uh); z2 = (x1, 27.5uh); z3 = (x1+1uw, 33uh); z4 = (x1-2.5uw, 37uh); z5 = (x1-20uw, 33uh); z6 = (x1-23uw, 34uh); draw z2{up}...z3{up}..z4{left}..z5{left}..z6; penlabels(1,2,3,4,5,6); savepicture := currentpicture; adjustpos(rm+rb); endchar; beginchar(cs_ai_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with candrabindu"; currentpicture := savepicture + candrabindu_picture shifted (4uw, 6uh); adjustpos(rm+rb); endchar; beginchar(cs_ai_reph, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with reph"; pickup curvepen; z1 = (0, 25uh); z2 = (x1, 27.5uh); z3 = (x1+1uw, 33uh); z4 = (x1-2.5uw, 37uh); z5 = (x1-20uw, 33uh); z6 = (x1-23uw, 34uh); draw z2{up}...z3{up}..z4{left}..z5{left}..z6; penlabels(1,2,3,4,5,6); z12 = (0.5uw, 36uh); z13 = (9uw, 42uh); draw z3{up}...z12{up}..{curl0}z13; drawdot(z12); penlabels(12,13); savepicture := currentpicture; adjustpos(rm+rb); endchar; beginchar(cs_ai_reph_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with reph and candrabindu"; currentpicture := savepicture + candrabindu_picture shifted (7.5uw, 0.5uh); adjustpos(rm+rb); endchar; beginchar(cs_au, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au (second part)"; pickup curvepen; z1 = (0uw, 0uh); z2 = (0uw, 21uh); z3 = (5uw, 33uh); z4 = (1uw, 37uh); z5 = (-20uw, 33uh); z6 = (-30uw, 35uh); draw z1---z2...z3{up}..z4{left}..z5{left}..z6; penlabels(1,2,3,4,5,6); savepicture := currentpicture; endchar; beginchar(cs_au_candrabindu, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with candrabindu"; currentpicture := savepicture + candrabindu_picture shifted (9uw, 6uh); endchar; beginchar(cs_au_reph, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with reph"; pickup curvepen; z1 = (0uw, 0uh); z2 = (0uw, 21uh); z3 = (5uw, 33uh); z4 = (1uw, 37uh); z5 = (-20uw, 33uh); z6 = (-30uw, 35uh); draw z1---z2...z3{up}..z4{left}..z5{left}..z6; penlabels(1,2,3,4,5,6); z12 = (4.5uw, 36uh); z13 = (13uw, 42uh); draw z3{up}...z12{up}..{curl0}z13; drawdot(z12); penlabels(12,13); savepicture := currentpicture; endchar; beginchar(cs_au_reph_candrabindu, 6uw#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with reph and candrabindu"; currentpicture := savepicture + candrabindu_picture shifted (11.5uw, 0.5uh); endchar; beginchar(c_anusvara, 10uw#+rm#, 25uh#, 0uh#); "Oriya sign anusvara"; pickup curvepen; % top circle z2 = (5uw, h+overshoot); eye(1,2,3,4)(10uw,10uh); draw_eye(1,2,3,4); penlabels(1,2,3,4); endchar; beginchar(c_visarga, 10uw#+rm#, 25uh#, 0uh#); "Oriya sign visarga"; pickup curvepen; % top circle z2 = (5uw, h+overshoot); eye(1,2,3,4)(10uw,10uh); draw_eye(1,2,3,4); % bottom circle z8 = (x2, -overshoot); eye(5,6,7,8)(10uw,10uh); draw_eye(5,6,7,8); penlabels(1,2,3,4,5,6,7,8); endchar; beginchar(c_visarga_var, 9uw#+rm#, 25uh#, 0uh#); "Oriya sign visarga (variant)"; pickup curvepen; z1 = (.5[x2,x6], h+overshoot); z2 = (good.x 8.75uw, 21uh); z3 = (good.x 0uw, 4uh); z4 = (x1, -overshoot); z5 = (good.x 9uw, y3); z6 = (good.x 0.25uw, y2); draw z1{right}..z2{down}..z3{down}..z4{right}..z5{up}..z6{up}..cycle; penlabels(1,2,3,4,5,6); endchar; beginchar(c_halant, 0uw#, 0uh#, 10uh#); "Oriya sign halant"; pickup curvepen; z1 = (0,-4uh); z2 = (5uw, -10uh); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); adjustpos(rm+rb); savepicture := currentpicture; endchar; beginchar(c_halant_low, 0uw#, 0uh#, 14uh#); "Oriya sign halant (lowered version)"; currentpicture := savepicture shifted (0, -4uh); endchar; %%%%% numerals beginchar(c_zero, 20uw#+rm#, 25uh#, 0uh#); "Oriya numeral zero"; pickup curvepen; z1 = (0uw, .5[y2,y4]); z2 = (.5[x1,x3], 25uh+overshoot); z3 = (20uw, y1); z4 = (x2, -overshoot); draw z1{up}..z2{right}..z3{down}..z4{left}..cycle; penlabels(1,2,3,4); endchar; beginchar(c_one, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral one"; pickup curvepen; z1 = (5.5uw, 9.5uh); z2 = (13uw, 19uh); z3 = (6.5uw, 25uh+overshoot); z4 = (0uw, 18uh); z5 = (18uw, 0uh); draw z1{curl0}..z2{up}..z3{left}..z4{down}..{curl0}z5; penlabels(1,2,3,4,5); endchar; beginchar(c_two, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral two"; pickup curvepen; z1' = (17uw, 13uh); z1 = (11uw, 9.5uh); z2 = (4uw, 18uh); z3 = (.5[x2,x4], 25uh+overshoot); z4 = (18uw, 18uh); z5 = (0uw, 0uh); draw z1'{curl0}..z1{left}..z2{up}..z3{right}..z4{down}..{curl0}z5; penlabels(1',1,2,3,4,5); endchar; beginchar(c_three, 22uw#+rm#, 25uh#, 0uh#); "Oriya numeral three"; pickup curvepen; % z1 = (1uw, 22uh); % doesn't work nice with calligraphic pen z1' = (0.5uw, 14uh); z1 = (4uw, 16uh); z2 = (7uw, 12uh); z3 = (5uw, 9uh); z4 = (0uw, 17uh); z5 = (6uw, 25uh+overshoot); z6 = (12uw, 21uh); z7 = (x6, 5uh); draw z1'{curl0}..z1{right}..z2{down}..z3{left}..z4{up}.. z5{right}..z6{down}---z7; drawdot(z7); z8 = z6 + (0uw, 2uh); z9 = (17uw, y5); z10 = (22uw, 18uh); z11 = (18uw, 0uh); draw z8{curl0}..z9{right}..z10{down}..z11; drawdot(z11); penlabels(1',1,2,3,4,5,6,7,8,9,10,11); endchar; beginchar(c_four, 20uw#+rm#, 25uh#, 0uh#); "Oriya numeral four"; pickup curvepen; z1 = (10uw-11uw, 25uh); z2 = (10uw-1uw, 15uh); z3 = (10uw+6uw, 5uh); z4 = (10uw, -overshoot); z5 = (10uw-6uw, y3); z6 = (10uw+1uw, y2); z7 = (10uw+11uw, y1); draw z1---z2..z3{down}..z4{left}..z5{up}..z6---z7; drawdot(z1); drawdot(z7); penlabels(1,2,3,4,5,6,7); endchar; beginchar(c_five, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral five"; pickup curvepen; z1 = (0uw, 16uh); z2 = (9uw, 9uh); z3 = (13uw, 3.5uh); z4 = (8uw, -overshoot); z5 = (3uw, y3); z6 = (9uw, 12.5uh); z20 = (18uw, 25uh); z6' = z20 - z6; z7 = z20 - z5; z8 = z20 - z4; z9 = z20 - z3; z10 = z20 - z2; z11 = z20 - z1; draw z1---z2..z3{down}..z4{left}..z5{up}..z6 ..z7{up}..z8{left}..z9{down}..z10---z11; penlabels(1,2,3,4,5,6,6',7,8,9,10,11); endchar; beginchar(c_six, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral six"; pickup curvepen; z1 = (0uw, 12uh); z2 = (4uw, 10uh); z3 = (8uw, 14uh); z4 = (0uw, 21uh); draw z1..z2{right}..z3{up}..{left}z4; drawdot(z1); drawdot(z4); z5 = (7uw, 25uh+overshoot); z6 = (16uw, 17uh); z7 = (0uw, -overshoot); draw z4..z5{right}..z6{down}..{curl0}z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); endchar; beginchar(c_seven, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral seven"; pickup curvepen; z1' = (.5uw, 20.5uh); z1 = (4uw, 22uh); z2 = (8uw, 17.5uh); z3 = (4uw, 13uh); z4 = (0uw, 18uh); z5 = (7uw, 25uh+overshoot); z6 = (16uw, 17uh); z7 = (0uw, -overshoot); draw z1'{curl0}..z1{right}..z2{down}..z3{left}.. z4{up}..z5{right}..z6{down}..{curl0}z7; drawdot(z7); penlabels(1',1,2,3,4,5,6,7); endchar; beginchar(c_eight, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral eight"; pickup curvepen; z1 = (0uw, 0uh); z2 = (0uw, 22uh); z3 = (3uw, 25uh); z4 = (17uw, 25uh); draw z1---z2..z3---z4; drawdot(z1); drawdot(z4); penlabels(1,2,3,4); endchar; beginchar(c_nine, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral nine"; pickup curvepen; z1 = (15uw, 25uh); z2 = (x1, 12uh); z3 = (0uw, 18uh); z4 = (16uw, 0uh); draw z1--z2--z3; drawdot(z1); drawdot(z2); draw z3{down}..tension0.9..{curl0}z4; drawdot(z4); penlabels(1,2,3,4); endchar; %%%%% punctuation, special signs and symbols beginchar(c_centerdot, 3uw#+rm#, 12.5uh#, 0uh#); "center dot"; pickup curvepen; z1 = (0uw, 12.5uh); eye(1,2,3,4)(3uw,3uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; penlabels(1,2,3,4); endchar; beginchar(c_question, 22uw#+rm#, 30uh#, 0uh#); "question mark"; pickup curvepen; z1 = (11uw, 22uh); z2 = (10uw, 25uh); z3 = (.5[x2, x4], 30uh+overshoot); z4 = (22uw, 25uh); z5 = (.5[x4, x6], 19uh); z6 = (x3-2uw, 11uh); z7 = (x3, 7uh); draw z1..z2{up}..z3{right}..z4{down}..z5..z6{down}..z7; z9 = (x3, 1.5uh); eye(8,9,10,11)(3uw, 3uh); draw_eye(8,9,10,11); fill z8{up}..z9{right}..z10{down}..z11{left}..cycle; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; beginchar(c_exclamation, 12uw#+rm#, 30uh#, 0uh#); "exclamation mark"; pickup curvepen; z1 = (11uw, 30uh); z2 = (11uw, 7uh); draw z1--z2; z9 = (x1, 1.5uh); eye(8,9,10,11)(3uw, 3uh); draw_eye(8,9,10,11); fill z8{up}..z9{right}..z10{down}..z11{left}..cycle; penlabels(1,2,8,9,10,11); endchar; beginchar(c_dash, 7uw#+rm#, 13uh#, 0uh#); "dash"; pickup barpen; z1 = (0, 13uh); z2 = (7uw, y1); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(c_endash, 14uw#+rm#, 13uh#, 0uh#); "en-dash"; pickup barpen; z1 = (0, 13uh); z2 = (14uw, y1); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(c_emdash, 24uw#+rm#, 13uh#, 0uh#); "em-dash"; pickup barpen; z1 = (0, 13uh); z2 = (24uw, y1); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(c_comma, 3uw#+rm#, 3uh#, 7uh#); "comma"; pickup curvepen; x1 = 0uw; y4 = 0uh; eye(1,2,3,4)(3uw,3uh); z5 = (x3+.5uw,0uh); z6 = (-1uw, -7uh); draw z3{curl0}..z4{left}..z1{up}..z2{right}..z5{down}..{curl0}z6; filldraw z1..z2..z3..z4..cycle; penlabels(1,2,3,4,5,6); savepicture := currentpicture; endchar; beginchar(c_closequote, 3uw#+rm#, 31uh#, 0uh#); "closing quote"; currentpicture := savepicture shifted (0, 28uh); endchar; beginchar(c_openquote, 3uw#+rm#, 31uh#, 0uh#); "opening quote"; currentpicture := savepicture rotated 180 shifted (3uw+rm, 24uh); endchar; beginchar(c_semicolon, 3uw#+rm#, 15uh#, 7uh#); "semicolon"; currentpicture := savepicture; pickup curvepen; x1 = 0uw; y2 = 15uh; eye(1,2,3,4)(3uw,3uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; penlabels(1,2,3,4); endchar; beginchar(c_colon, 3uw#+rm#, 15uh#, 0uh#); "colon"; pickup curvepen; x1 = 0uw; y2 = 15uh; eye(1,2,3,4)(3uw,3uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; x5 = 0uw; y8 = 0uw; eye(5,6,7,8)(3uw,3uh); draw_eye(5,6,7,8); filldraw z5..z6..z7..z8..cycle; penlabels(1,2,3,4,5,6,7,8); endchar; beginchar(c_openparen, 5uw#+rm#, 32uh#, 7uh#); "opening parenthesis"; pickup barpen; z1 = (6uw, 32uh); z2 = (0uw, .5[y1,y3]); z3 = (x1, -7uh); draw z1..z2{down}..z3; penlabels(1,2,3); endchar; beginchar(c_closeparen, 5uw#+rm#, 32uh#, 7uh#); "closing parenthesis"; pickup barpen; z1 = (-1uw, 32uh); z2 = (5uw, .5[y1,y3]); z3 = (x1, -7uh); draw z1..z2{down}..z3; penlabels(1,2,3); endchar; beginchar(c_openbracket, 5uw#+rm#, 32uh#, 7uh#); "opening bracket"; pickup barpen; z1 = (5uw, 32uh); z2 = (0uw, y1); z3 = (x2, -7uh); z4 = (x1, y3); draw z1--z2--z3--z4; drawdot(z1); drawdot(z2); penlabels(1,2,3,4); endchar; beginchar(c_closebracket, 5uw#+rm#, 32uh#, 7uh#); "closing bracket"; pickup barpen; z1 = (0uw, 32uh); z2 = (5uw, y1); z3 = (x2, -7uh); z4 = (x1, y3); draw z1--z2--z3--z4; drawdot(z1); drawdot(z2); penlabels(1,2,3,4); endchar; beginchar(c_openbrace, 7uw#+rm#, 32uh#, 7uh#); "opening brace"; pickup curvepen; z1 = (8uw, 32uh); z2 = (2uw, 26uh); z3 = (3uw, 19uh); z4 = (0uw, .5[y1,y7]); z5 = (x3, 5uh); z6 = (x2, -1uh); z7 = (x1, -7uh); draw z1{left}..z2{down}..z3{down}..z4; drawdot(z1); draw z4..z5{down}..z6{down}..{right}z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); endchar; beginchar(c_closebrace, 7uw#+rm#, 32uh#, 7uh#); "closing brace"; pickup curvepen; z1 = (-1uw, 32uh); z2 = (5uw, 26uh); z3 = (4uw, 19uh); z4 = (7uw, .5[y1,y7]); z5 = (x3, 5uh); z6 = (x2, -1uh); z7 = (x1, -7uh); draw z1{right}..z2{down}..z3{down}..z4; drawdot(z1); draw z4..z5{down}..z6{down}..{left}z7; drawdot(z7); penlabels(1,2,3,4,5,6,7); endchar; beginchar(c_slash, 12uw#, 32uh#, 7uh#); "slash"; pickup barpen; z1 = (12uw, 32uh); z2 = (0uw, -7uh); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(c_backslash, 12uw#, 32uh#, 7uh#); "backslash"; pickup barpen; z1 = (0uw, 32uh); z2 = (12uw, -7uh); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; %% the nukta is positioned as to be placed correctly under %% dda and ddha to make rra and rrha. beginchar(c_nukta, 0uw#, 0uh#, 8uh#); "Oriya sign nukta"; z2 = (-12uw, -6uh); pickup barpen; eye(1,2,3,4)(3.5uw,3.5uh); draw_eye(1,2,3,4); filldraw z1..z2..z3..z4..cycle; penlabels(1,2,3,4); adjustpos(rm+rb); endchar; %% the danda looks exactly like the vowel sign for aa, but this glyph %% doesn't ligate with consonants, and has more space before it beginchar(c_danda, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya danda"; pickup barpen; z1 = (20uw, 25uh); z2 = (x1, 0uh); draw z1--z2; drawdot(z1); drawdot(z2); penlabels(1,2); endchar; beginchar(c_avagraha, 5uw#+rm#, 25uh#, 0uh#); "Oriya sign avagraha"; pickup curvepen; z1 = (5uw, 0uh); z2 = (0uw, 6.25uh); z3 = (5uw, 12.5uh); z4 = (0uw, 18.25uh); z5 = (5uw, 25uh); draw z1--z2--z3--z4--z5; drawdot(z1); drawdot(z2); penlabels(1,2,3,4,5); endchar; beginchar(c_ganesh, 22uw#+rm#, 33uh#, 0uh#); "Oriya symbol for Ganesh"; pickup barpen; z1 = (0uw, 15uh); z2 = (10uw, -1.5uh); z3 = (25uw, 33uh); draw z1--z2; drawdot(z1); draw z2--z3; drawdot(z3); z5 = (10uw, 22uh); eye(4,5,6,7)(4uw,4uh); draw_eye(4,5,6,7); filldraw z4..z5..z6..z7..cycle; penlabels(1,2,3,4,5,6,7); endchar; beginchar(c_p_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct p+pa"; currentpicture := sup_pa_picture + sub_pa_picture; endchar; % end of orglyphs.mf