diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/itrans/kanmain.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/itrans/kanmain.mf | 1298 |
1 files changed, 1298 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf b/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf new file mode 100644 index 00000000000..783a6b6d389 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf @@ -0,0 +1,1298 @@ +% This file is part of the KannadaTeX Software Package. +%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath. +% +%Author: GS. Jagadeesh. +%The KannadaTeX Software Package is distributed in the hope that +%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor +%accepts responsibility to anyone for the consequences of using it +%or for whether it serves any particular purpose or works at all, +%unless he says so in writing. Refer to the KannadaTeX Software Package +%General Public License for full details. +% +%Everyone is granted permission to copy, modify and redistribute +%the KannadaTeX Software Package, but only under the conditions described in the +%KannadaTeX Software Package General Public License. A copy of this license is +%supposed to have been given to you along with KannadaTeX Software Package so you +%can know your rights and responsibilities. It should be in a +%file named CopyrightLong. Among other things, the copyright notice +%and this notice must be preserved on all copies. +%%%%% + +font_coding_scheme := "TeX text"; + +%font_size 10pt#; slant:=0; pen_width#:=0.35pt#; penangle := 30 ; + +% avinash: June 1998: do not set mode here, that is set by MakeTeXPK +% mode=localfont; + +input kancodes; % codes for kannada symbols +input kanparam; + +font_coding_scheme := "TeX text"; + +mode_setup; font_setup; + + +def v_e_form = + lft z1=(0,j_height); top z2=(1/5v_e_width,x_height); + z3=(2/5v_e_width,1.2j_height); top z4=(3/5v_e_width,x_height); + rt z5=(v_e_width,1/2x_height); z6=(4/5v_e_width,1/5x_height); + bot z7=(1/2v_e_width,0); z8=(1/5v_e_width,1/4x_height); + z9=(1/2v_e_width,1/2x_height); rt z10=(v_e_width,-1/5des_depth); + path v_e_p; + v_e_p = z1..z2..tension 1.2..z3&z3..tension 1.2..z4..z5..z6..z7..z8..z9..z10; + sketch v_e_p; +enddef; + +def place_lit_circ (suffix $) (expr sc) = + lit_cir_form; + erase sketch lit_cir_p; + path pl_lit_cir_p ; + transform t; + t=identity scaled sc shifted z$ ; + %sketch lit_cir_p transformed t; + pl_lit_cir_p = lit_cir_p transformed t; + sketch pl_lit_cir_p ; +enddef ; + +def bar_form(suffix $) (expr width) = + path bar_p; + z$b= (x$+width-2u, y$); + bar_p = z$--z$b; + sketch bar_p; +enddef; + +def bar_forma(expr width) = + path bar_pa; + z300=rt bot (0,x_height); z301= bot(width-2u, x_height); + bar_pa=z300--z301; + sketch bar_pa; +enddef; + +def vmfa_form(suffix $) = % tale-kattu + path bar_p; + z$c= (x$+1.4u, y$); + top z$d= (x$c+.5u, y$+2.5u); + bar_p = z$--z$c{z$c-z$}..z$d; + sketch bar_p; +enddef; + +def vm_aa_form = + top z1 = (0+u,x_height); + top z2 = (vm_aa_width-2u,x_height); + rt z3 = (vm_aa_width, 1/2y1); + bot z4 = (x2, 0); + z5 = (x2-x1, y4+.1y1); + z6 = (x2-1/4x1, y4+.2y1); + z7 = (x2-1/8x1, y4+.1y1); + sketch z1..tension 7..z2..tension 1.8..z3..z4..z5..z6..z7; + flop(4); +enddef; + +def vmfaa_form(suffix $) = % tale-a ile. + top z1a = (x$+0,x_height); + z1b = (x$+4.2u,y1a); + rt z1c = (x1b+2u, .5y1a); + bot z1d = (x1b-.4u, 0); + bot z1e = (x1d, 1.5u); + z1f = (x1e+.25u, y1e-.5u); + + sketch z1a---z1b..tension 1.8..z1c..tension 1.2..z1d..z1e..z1f; + %sketch z1a..tension 10..z1b..tension 1.8..z1c..tension 1.2..z1d..z1e..z1f; + %sketch z1a; draw z1b; draw z1c; draw z1d; draw z1e; draw z1f; draw z1f; +enddef; + + +def vmfea_form(suffix $) = % tale-athwa + path bar_p; + z$c= (x$+1.5u, y$); + z$d= (x$c+.5u, y$+2.5u); + z$e= (x$+1u, y$+1.5u); + z$f= (x$+1.5u, y$e-.4u); + bar_p = z$---z$c{z$c-z$}..z$d..z$e..z$f; + sketch bar_p; +enddef; + +def vmah_form(suffix $) = % tale-ardha akshara + path bar_p; + z$c= (x$+1.2u, y$); + z$cc= (x$c+1.5u, y$); + z$d= (x$cc-.75u, y$-1u); + %z$e= (x$+2.75u, y$+1.25u); % adjust if you want it.. + z$e= (x$+3u, y$+1.5u); + bar_p = z$--z$c..z$cc{dir 2}..z$d..tension 1.4..z$e; + sketch bar_p; +enddef; + +def cb_ka_form = + path cb_ka_pa, cb_ka_pb, cb_ka_pc; + rt top z1=(0.5cb_ka_width, 0.75x_height); lft z2=(0, 3/8x_height); + bot z3=(.5cb_ka_width, 0); + rt z4=(cb_ka_width, 3/8x_height); + lft z5=(0, 0.75x_height); rt z6=(cb_ka_width, .75x_height); + top z7=(0.5cb_ka_width, 0.75x_height); + top z8=(0.55cb_ka_width, x_height); + path cb_ka_p; + cb_ka_pa = z1..z2..z3..z4..cycle; + cb_ka_pb = z5--z6; + cb_ka_pc = z7..{dir 125}z8; + sketch cb_ka_pa; + sketch cb_ka_pb; + sketch cb_ka_pc; + lft top z0 = (0, x_height); + bar_forma(cb_ka_width-.5u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %bar_form(0,cb_ka_width); + + % to compute the joining point of "kombu for ka". + path inter; + inter = (1/2cb_ka_width, .3x_height)--(1.1cb_ka_width, .3x_height); + z400 = cb_ka_pa intersectionpoint inter; + +enddef; + +def cb_kha_form = + z1=(4/15cb_kha_width,5/6x_height);z2=(2/15cb_kha_width,y1-uh); + lft z3=(0,y1); top z4=(x6,x_height); + z5=(5/12cb_kha_width,1/8x_height); bot z6=(1/4cb_kha_width,0); + lft z7=(0,1/4x_height); z8=(1/4cb_kha_width,1/3x_height); + bot z9=(3/4cb_kha_width,0); rt z10=(cb_kha_width,1/3x_height); + top z11=(x9,x_height); + path cb_kha_p; + cb_kha_p=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11; + %sketch cb_kha_p; + z12 = lft z11; + %vmfaa_form(12) ; + %vmfea_form(12); + + % to compute the joining point of "kombu for ka". + path inter; + inter = (.8cb_kha_width, .3x_height)--(1.1cb_kha_width, .3x_height); + z400 = cb_kha_p intersectionpoint inter; + +enddef; + +def cb_ga_form = + bot z1=(u,0); x5=cb_ga_width-x1; bot y5=0; + y2=y4=1/3x_height; lft x2=0; rt x4=cb_ga_width; + top z3=(1/2cb_ga_width,x_height); + path cb_ga_p, cv_ge_p, cb_ga_pt; + cb_ga_p=z1..z2..z3..z4..z5; + %sketch cb_ga_p; + + % following is for vowel modifier "e". + numeric na,nb,nc,nd; + (na,nb)= cb_ga_p intersectiontimes + ((0,vm_e_height2)--(1/2cb_ga_width,vm_e_height2)); + z30= point na of cb_ga_p; + top z31=(1/6cb_ga_width,.9vm_e_heightx); + %top z31=(1/2cb_ga_width,vm_e_heightx); + (nc,nd)= cb_ga_p intersectiontimes + ((1/2cb_ga_width,vm_e_height2)--(cb_ga_width,vm_e_height2)); + z32= point nc of cb_ga_p; + cv_ge_p=z30..z31..tension1.2..z32; + + % to compute the joining point of "kombu for ka". + path inter; + inter = (.8cb_ga_width, .3x_height)--(1.1cb_ga_width, .3x_height); + z400 = cb_ga_p intersectionpoint inter; + +enddef; + +% following macro is used for many derivatives of "pa" like gha, va etc., +def cb_pa_form = + top z41=0.85(1/8cb_pa_width+1/2u, 1/4x_height+1/4u); + top z42=0.85(1/4cb_pa_width, 3/8x_height); + top z43=0.85(1/8cb_pa_width, 1/2x_height); + top z44=0.85(0, 3/8x_height); + bot z45=(1/4cb_pa_width, 0); + bot z46=(1/2cb_pa_width, 0.6w_height); + bot z47=(3/4cb_pa_width, 0); + rt top z48=(cb_pa_width, 1/2x_height); + rt z33=(0.9cb_pa_width, .85x_height) ; + + path cb_pa_p,cb_paa_p; + cb_pa_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z33; + + + % to compute the joining point of "kombu for pa and its derivatives". + path inter; + inter = (.8cb_pa_width, .25x_height)--(1.1cb_pa_width, .25x_height); + z400 = cb_pa_p intersectionpoint inter; + +enddef; + +def vm_ghu_form (suffix $) = + numeric diff_ht; + numeric mx, my, mz; + diff_ht = x_height-y$; + bot z$x = (x$+vm_u_width/4,y$-1/9diff_ht); + rt z$y = (x$+vm_u_width/2,y$+1/2diff_ht); + top rt z$z = (x$+vm_u_width/3,y$+diff_ht-0.3u); + path vm_ghu_p; + vm_ghu_p=z$..z$x..z$y..z$z; + sketch vm_ghu_p; + %penlabels($aa,$bb,$cc,$d); +enddef; + +def cb_cch_form = + path cb_ccha_pa, cb_ccha_pb, cb_ccha_pc; + numeric k_w, k_yo, k_h, k_xo; + k_w=1/4cb_ja_width; % Kondi width + k_xo=1/6cb_ja_width; + k_yo=3/4x_height; + k_h=1/4x_height; + + top rt rt z1=(k_xo+1/3k_w, k_yo+1/2k_h); + rt top z2=(k_xo+1/2k_w, k_yo); + rt top z3=(k_xo+k_w, k_yo+1/2k_h); + rt top z4=(k_xo+1/2k_w,k_yo+k_h); + + rt z5=(0.075cb_ja_width, 3/4x_height); + + z6=(0, 1/2x_height); + bot z7=(1/4cb_ja_width, 0); + z8=(1/2cb_ja_width, .6w_height); + bot z9=(3/4cb_ja_width, 0); + rt z10=(cb_ja_width, 1/2x_height); + top z11=(0.80cb_ja_width, x_height); + + cb_ccha_pa = z1..z2..z3..z4..z5..z6..z7..z8..z8..z9..z10..z11; + sketch cb_ccha_pa; + z12 = (x11-.5u, y11); + + %vmfa_form(12); % Following are test to see How vowel modifer looks. + %vmfaa_form(12) ; + %vmfea_form(12); + %bar_form(0,cb_ja_width); + %vm_au_form(12,w); + + % to compute the joining point of "kombu for ka". + path inter; + inter = (.8cb_ja_width, .3x_height)--(1.1cb_ja_width, .3x_height); + z400 = cb_ccha_pa intersectionpoint inter; + +enddef ; + + +def cb_ch_ja_base= + numeric j_offset; + j_offset = 0.08cb_ja_width; + lft z1 = (0,j_height); top z2 = (cb_ja_width/8,x_height); + z3 = (cb_ja_width/4+j_offset,j_height); + z4 = (cb_ja_width/8+j_offset,x_height/2); + lft z5 = (0,w_height); bot z6 = (cb_ja_width/8,0); + %z7 = (cb_ja_width/2,0.8w_height); bot z8 = (3/4cb_ja_width,0); + z7 = (cb_ja_width/2,0.8w_height); bot z8 = (.8cb_ja_width,0); +enddef ; + +def cb_ja_form = + + cb_ch_ja_base; % Defines some base points for ja, ch O etc., + rt z9 = (cb_ja_width,w_height); + path cb_ja_pa,cb_ja_pb, cb_nga_p, cb_ja_pc, cb_ja_pe; + cb_ja_pa=z1..z2..z3..z4..z5..z6..tension1.15..z7&z7..tension1.2..z8..z9; + + % to define BOWL for ja. + z40 = (0.2cb_ja_width, .9x_height); top z41=(.95cb_ja_width, x_height); + z60= (z40..z41) intersectionpoint cb_ja_pa ; + z50 = (1.4x3,0.8x_height); + cb_ja_pb=z60..z50..z41; + + % to define BOWL for nga. + z20 = (0.2cb_ja_width, .8x_height); top z21=(.95cb_ja_width, .9x_height); + z30= (z20..z21) intersectionpoint cb_ja_pa ; + top z10 = (1.4x3,.95x_height); + cb_nga_p=z30..z10..z21; + + z42= (x41, y41+1.5u) ; + z43= (x41-u, y42-.75u) ; + z44= (x41-.7u, y42-1.4u) ; + cb_ja_pe = z60..z50..z41..z42..z43..z44 ; + z35=(0.62cb_ja_width, y40-u) ; + cb_ja_pc = rt bot z35 ; + sketch cb_ja_pa; + %penlabels(3w,3x,3y,3z); + + % for "ile" and "tale kattu" + + z52=(x41-u, y41); + %vmfa_form(52); % Following are test to see How vowel modifer looks. + %vmfaa_form(52) ; + %vmfea_form(52); + %bar_form(0,cb_ka_width); + %vm_au_form(52,w); + + % to compute the joining point of "kombu for ka". + path inter; + inter = (.8cb_ja_width, .3x_height)--(1.1cb_ja_width, .3x_height); + z400 = cb_ja_pa intersectionpoint inter; + + enddef; + +def cb_ch_form = + path cb_cha_pa, cb_cha_pb, cb_cha_pc; + cb_ch_ja_base; + rt rt z9 = (0.9cb_ja_width, .6x_height); + cb_cha_pa=z1..z2..z3..z4..z5..z6..tension1.2..z7&z7..tension1.15..z8..tension1.1..z9; + sketch cb_cha_pa; + y11 = y10 = y9; x10=cb_ja_width; x11=x9-(x10-x9); + + top z12 = (x9, x_height); + cb_cha_pb = z10--z11; + cb_cha_pc = z9{dir 40}..z12; + sketch cb_cha_pb ; + sketch cb_cha_pc ; + + z20 = (x12-.1u,y12) ; + %vmfa_form(20); % Following are test to see How vowel modifer looks. + %vmfaa_form(20) ; + %vmfea_form(20); + %bar_form(0,cb_ka_width); + %vm_au_form(20,w); + + % to compute the joining point of "kombu for ka". + path inter; + inter = (.8cb_ja_width, .3x_height)--(1.2cb_ja_width, .3x_height); + %sketch inter; + z400 = cb_cha_pa intersectionpoint inter; + +enddef ; + +def cb_nya_form= + v_e_form; + path cb_ny_pb; + z14= v_e_p intersectionpoint ((x4,.8x_height)--(w,.8x_height)); + z15=z14; + z16=(v_e_width+half_plus_width, .9y14); + cb_ny_pb = z14{dir 60}..z16; + sketch cb_ny_pb; + z17=top(.6(x14+x16), x_height); + %pivot_message(x15c,x7); + %vmfa_form(17); % Following are test to see How vowel modifer looks. + %vmfaa_form(17) ; + %vmfea_form(17); + %bar_form(0,cb_ka_width); + %vm_au_form(400,w); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8v_e_width, .3x_height)--(1.1v_e_width, .3x_height); + z500 = v_e_p intersectionpoint inter; + z400=(x500+3u,y500); + %vm_u_form(400); + +enddef ; + +def cb_ta_form = + lft z1=(0,.35x_height); bot z2=(.55cb_ta_width, 0); + rt z3=(cb_ta_width, .35x_height); z4=(.55cb_ta_width, .55x_height); + rt z5=(.4cb_ta_width, .42x_height); + top z6=(.7cb_ta_width, .48x_height); + bot z7=(.75cb_ta_width, .68x_height); + bot z8=(.7cb_ta_width, .78x_height); + top z9=(.5cb_ta_width, x_height); + + top z10 = (.4cb_ta_width, x_height) ; + z11 = (.41cb_ta_width, .8x_height) ; + z12 = (.5cb_ta_width, .85x_height) ; + + path cb_ta_p, cb_te_p; + cb_ta_p = z1..z2..z3..z4..tension 1.2..z5..tension1.2..z6..z7..z8..z9; + cb_te_p = cb_ta_p softjoin z9..z10..z11..z12 ; + bar_forma(cb_ta_width-.5u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_ta_width, .3x_height)--(1.1cb_ta_width, .3x_height); + z400 = cb_ta_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_tta_form = + path cb_tta_p, cb_tta_pa, cb_tta_pe; + lft top z1=(0.12cb_tta_width,x_height); + lft top z2=(0.1cb_tta_width,x_height); + top z3=(0,.75x_height); + lft z4=(.15cb_tta_width, 0.43x_height); + lft z5=(.2cb_tta_width, 0.55x_height); + z6=(0, .25x_height); + bot z7=(1/4cb_tta_width, 0); + + z8=(1/2cb_tta_width, 0.6w_height);%(wedge) + + bot z9=(3/4cb_tta_width, 0); + lft z10=(cb_tta_width, 1/4x_height); + + z11=(0.85cb_tta_width, 1/2x_height); %(wedge) + rt lft z12=(cb_tta_width, 3/4x_height); + rt top z13=(.9cb_tta_width, x_height); + + %For consanant +e + z14=(.8cb_tta_width, .9x_height); + z15=(.89cb_tta_width, .8x_height); + + %cb_tta_pa = z1..tension1.2..z2..z3..tension1.2..z4; + cb_tta_pa = z1..tension1.2..z2..z3..{curl 6.3}z4; + cb_tta_p = z4..z5..tension1.2..z6..z7 + ..z8..z8..z9..z10..z11..z11..z12..z13; + %For consanant +e + cb_tta_pe = z4..z5..tension1.2..z6..z7 + ..z8..z8..z9..z10..z11..z11..z12..z13..z14..z15; + sketch cb_tta_pa ;sketch cb_tta_p; + z20=(x13-u,y13); + + %vmfa_form(20); % Following are test to see How vowel modifer looks. + %vmfaa_form(20) ; + %vmfea_form(20); + %bar_form(0,cb_ka_width); + %vm_au_form(20,w); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_tta_width, .3x_height)--(1.1cb_tta_width, .3x_height); + z400 = cb_tta_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + + +def cb_da_form = + top z1=(1/2cb_da_width,x_height); lft z2=(0,w_height); + bot z3=(1/3cb_da_width,0);z4=(1/2cb_da_width,.6w_height); + bot z5=(2/3cb_da_width,0);rt z6=(cb_da_width,1/2x_height); + path cb_da_p,cv_de_p; + cb_da_p= z4..tension 1.2..z5..z6..z1..z2..z3..tension 1.2..z4; + sketch cb_da_p; + numeric na,nb,nc,nd; + (na,nb)= cb_da_p intersectiontimes + ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2)); + z30= point na of cb_da_p; + (nc,nd)= cb_da_p intersectiontimes + ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2)); + z32= point nc of cb_da_p; + top z31=(1/2cb_da_width,.95vm_e_heightx); + cv_de_p=z30{curl 3}..z31..z32; + bar_forma(cb_da_width-.5u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_da_width, .3x_height)--(1.1cb_da_width, .3x_height); + z400 = cb_da_p intersectionpoint inter; + %vm_u_form(400); + + enddef; + +def cb_dda_form = + path cb_dda_p, cv_dde_p; + rt z1=(0.1cb_da_width, .5x_height); bot z2=(0.25cb_da_width, 0); + bot z3=(1/2cb_da_width,0.6w_height); + bot z4=(0.7cb_da_width,0); lft z5=(0.9cb_da_width, 0.4x_height); + top z6=(0.6cb_da_width, 0.6x_height); + lft z7=(0.79cb_da_width, 0.7x_height); + top z8=(0.45cb_da_width, .99x_height); + + cb_dda_p=z1...z2..z3..z3...z4...z5..{curl 2.5}z6..z7..z8..tension 1.0..cycle; + sketch cb_dda_p; + + bar_forma(cb_da_width-u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + + numeric na,nb,nc,nd; + (na,nb)= cb_dda_p intersectiontimes + ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2)); + z30= point na of cb_dda_p; + (nc,nd)= cb_dda_p intersectiontimes + ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2)); + z32= point nc of cb_dda_p; + top z31=(1/2cb_da_width,.92vm_e_heightx); + cv_dde_p=z30{curl 3}..z31...z32; + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_da_width, .3x_height)--(1.1cb_da_width, .3x_height); + z400 = cb_dda_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_na_form = + bot lft z1=(0,0); lft z2=(0,1/2w_height); + bot lft z1=(0,0); lft z2=(0,1/2w_height); + z3=(1/3cb_na_width,w_height); bot z4=(2/3cb_na_width,0); + rt z5=(cb_na_width,1/3x_height); top z6=(1/2cb_na_width,x_height); + bot z10=(.12cb_na_width, -.65w_height); + + % For consonant+e + top z7 = (.3cb_na_width, x_height); + z8 = (.3cb_na_width, .7x_height); + z9 = (.45cb_na_width, .8x_height); + + path cb_na_p, cb_ne_p; + + cb_na_p=z10..z1..z2..z3..z4..z5..z6; + cb_ne_p = cb_na_p softjoin z6..tension1.3..z7..z8..z9; + + bar_forma(cb_na_width-.5u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_na_width, .3x_height)--(1.1cb_na_width, .3x_height); + z400 = cb_na_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_nna_form = + z1a=(1/3cb_nna_width,1/2sc_height); + bot z1=(1/4cb_nna_width,0); lft z2=(0,1/4x_height); + z3=(1/6cb_nna_width,1/2x_height); lft z4=(0,3/4x_height); + top z5=(1/4cb_nna_width,x_height); z6=(1/2cb_nna_width,.8x_height); + top z7=(5/8cb_nna_width,x_height); rt z8=(cb_nna_width,1/2x_height); + bot z9=(2/3cb_nna_width,0); bot z10=(x9-1/2sc_height,sc_height); + bot z11=(x9,3/2sc_height); bot z12=(x9+1/2sc_height,sc_height); + path cb_nna_p; + cb_nna_p= z1a..z1..z2..z3&z3..z4..z5..z6&z6..z7..z8..z9..z10 + ..tension 1.1..z11..z12; + sketch cb_nna_p; + z20=bot(.8cb_na_width, x_height); + %bar_forma(vm_ea1_width); + %bar_forma(cb_nna_width); + %vmfa_form(20); % Following are test to see How vowel modifer looks. + %vmfaa_form(20) ; + %vmfea_form(301); + %vm_au_form(20,vm_au_width); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_nna_width, .3x_height)--(1.1cb_nna_width, .3x_height); + z400 = cb_nna_p intersectionpoint inter; + %vm_u_form(400); + + penlabels(1a); +enddef; + +def cb_ba_form = + lft z1 = (u/2,j_height); top z2 = (cb_ba_width/5,x_height); + z3 = (cb_ba_width/3,j_height); lft z4 = (0,w_height); + bot z5 = (cb_ba_width/4,0); bot z6 = (cb_ba_width/2,.6w_height); + bot z7 = (3/4cb_ba_width,0); + rt z8 = (cb_ba_width,w_height); %z8 contact point + top z9 = (.8cb_ba_width,x_height); % z9 another contact point + + %for consant+e + z10 = (.65cb_ba_width, 1.1x_height); + z11 = (.65cb_ba_width, .91x_height); + + path cb_ba_p, cb_be_p; + cb_ba_p = z1..z2..z3..z4..z5..tension 1.2..z6&z6..tension 1.2..z7..z8..z9; + cb_be_p = cb_ba_p softjoin z9..tension1.7..z10..z11; + sketch cb_ba_p; + + z12 = (x9-u,y9); + %vmfa_form(12); % Following are test to see How vowel modifer looks. + %vmfaa_form(12) ; + %vmfea_form(12); + %vm_au_form(12,vm_au_width); + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_ba_width, .3x_height)--(1.1cb_ba_width, .3x_height); + z400 = cb_ba_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def vb_ea_form = + cb_pa_form ; + path vb_a_p,vb_a_pa; + top z9 = (.80cb_ba_width,.80x_height); % z9 another contact point + top z10 = (.35cb_ba_width,x_height); % z9 another contact point + vb_a_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..tension 1.2..z10; +enddef ; + +def vb_eae_form = + vb_ea_form; + path vb_a_pb; + z11 = (.25cb_ba_width,.82x_height); + top z12 = (.13cb_ba_width,x_height); + vb_a_pb = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..tension 1.2..z10..z10..z11..z12 +enddef ; + +def vb_i_form = + cb_pa_form; + path vb_a_pb; + top z9 = (3/4cb_pa_width, x_height); z10 = ( 1/2cb_pa_width, .8x_height); + top z11 = (1/4cb_pa_width, x_height); lft z12 = (0, .75x_height); + vb_a_pb = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10..z10..z11..z12 +enddef ; + +%def cb_va_form = +% cb_pa_form ; +% path cb_va_p,cb_va_pa; +% top z9 = (.82cb_ba_width,.83x_height); % z9 another contact point +% top z10 = (.4cb_ba_width,x_height); % z9 another contact point +% cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10; +% z20 = (.6cb_ba_width,w_height); +% z21 = (cb_ba_width, w_height); +% z30= (z20--z21) intersectionpoint cb_va_p ; +% vm_u_form(30); +%enddef ; + +def cb_ya_form = + + path cb_ya_pa, cb_ya_pb, cb_ya_pc, cb_ye_p; + lft z1 = (0, .49x_height); bot z2 = (3/10cb_ya_width, 0); + rt z3 = (3/5cb_ya_width, y1) ; top z4 = (x2, 2y1); + z20 = (.7x2, 3/10x_height); + z21 = (cb_ya_width+vm_u_width, 3/10x_height); + cb_ya_pa = superellipse( z3, z4, z1, z2, .7) ; + top z30 = (z20--z21) intersectionpoint cb_ya_pa ; + bot z5 = (8/10cb_ya_width, 0); lft z6 = (.85*2x3, .5x_height); + %top z7 = (.9x5, x_height); + top z7 = (.77cb_ya_width, x_height); + + %for consonant+e + z50 = (.75x5, 1.15x_height); + z51 = (.68x5, .98x_height); + z52 = (.89x5, .92x_height); + cb_ya_pb = z30..tension 1.12..z5..z6..z7; + cb_ye_p = z30..tension 1.12..z5..z6..z7..tension 1.4..z50..z51..z52; + %cb_ye_p = z30..tension 1.12..z5..z6..z7; + %sketch z6;sketch z7;sketch z50;sketch z51;sketch z52; + %cb_ye_p = z30..tension 1.12..z5..z6..z7..tension 1.6..z50; sketch z51; sketch z52; + + top z40 = (z20--z21) intersectionpoint cb_ya_pb ; + numeric ya_width ; + ya_width = cb_ya_width + vm_u_width ; + bot z8 = (.79(ya_width), 0); rt z9 = (ya_width, .5x_height); + top z10 = (.8ya_width, x_height) ; + cb_ya_pc = z40..z8..z9..z10 ; + draw cb_ya_pa ; + draw cb_ya_pb ; + draw cb_ya_pc ; + + z90=(x7-1.5u, y7); + bar_form(90, .4cb_ya_width); + %vmfa_form(7); % Following are test to see How vowel modifer looks. + %vmfaa_form(10) ; + %vmfea_form(7); + %vm_au_form(10,vm_au_width); + + % to compute the joining point of "kombu for ya". + path inter; + inter = (.7ya_width, .3x_height)--(1.1ya_width, .3x_height); + z400 = cb_ya_pc intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_la_form = + top z1=(1/4cb_la_width,x_height); + lft z2=(0,x_height/2); bot z3=(1/2cb_la_width,0); + rt z4=(cb_la_width,y2); top z5=(cb_la_width-.8x1,x_height); + z7=(x1+1.5u,2/3x_height); + path cb_la_pa,cb_la_pb,cb_la_p, cb_le_p, cb_le_pb; + cb_la_pb=z1..z2..z3..z4..z5; + z6=point 0.35 of cb_la_pb; + cb_la_pa= bot rt z6..z7..z1; + cb_la_p=cb_la_pa..cb_la_pb; + + %for consonant+e + + z20=(x5-1.5u, x_height+.7u); + z21=(x5-2.3u, x_height-.75u); + z22=(x5-.1u, x_height-.4u); + %draw z21; + + %cb_le_pb=z1..z2..z3..z4..z5..{curl 2}z20..z21; + cb_le_pb=z1..z2..z3..z4..z5..tension1.6..z20..z21..z22; + cb_le_p=cb_la_pa..cb_le_pb; + + % z8 is useful for la+u and la+uu + numeric na,nb; + (na,nb)=cb_la_pb intersectiontimes + ((cb_la_width/2,w_height)..(cb_la_width,w_height)); + z9=point na of cb_la_pb; + z8=rt z9; + z55= lft z5; + %bar_forma(cb_ra_width); % z301 is comming from bar_forma... + %vmfa_form(55); % Following are test to see How vowel modifer looks. + %vmfaa_form(55) ; + %vmfea_form(55); + %vm_au_form(55,vm_au_width); + %vmah_form(55); % tale-ardha akshara + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_la_width, .5x_height)--(1.1cb_la_width, .3x_height); + z400 = cb_la_p intersectionpoint inter; + %vm_u_form(400); +enddef; + +def cb_ra_form = + top z1=(cb_ra_width/2,x_height); + lft z2 = (0,w_height); + bot z3 = (cb_ra_width/2,0); + rt z4 = (cb_ra_width,y2); + path cb_ra_p,cv_re_p; + cb_ra_p = z1..z2..z3..z4..cycle; + sketch cb_ra_p; + numeric na,nb,nc,nd; + (na,nb)= cb_ra_p intersectiontimes + ((0,vm_e_height2)--(1/2cb_ra_width,vm_e_height2)); + z30= point na of cb_ra_p; + (nc,nd)= cb_ra_p intersectiontimes + ((1/2cb_ra_width,vm_e_height2)--(cb_ra_width,vm_e_height2)); + z32= point nc of cb_ra_p; + top z31=(.05cb_ra_width,.8vm_e_heightx); + cv_re_p=z30..z31..tension1.2..z32; + + bar_forma(cb_ra_width); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + %vmah_form(301); % tale-ardha akshara + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_ra_width, .3x_height)--(1.1cb_ra_width, .3x_height); + z400 = cb_ra_p intersectionpoint inter; + %vm_u_form(400); + enddef; + +def cb_rra_form = + top z1=(1/4cb_rra_width,x_height); + y2=y6=1/2x_height; + lft x2=0; rt x6=cb_rra_width; + x3=x1; x5=cb_rra_width-x3; + bot y3=bot y5=0; + top z4=(1/2cb_rra_width,w_height); + top z7=(cb_rra_width-x1,x_height); + z11=(x1+1.5u,y1-1.45uh); + path cb_rra_p,cb_rra_pa,cb_rra_pb; + cb_rra_pb=z1..z2..z3..tension1.2..z4&z4..tension1.2..z5..z6..z7; + numeric na,nb,nc,nd, ne, nf; + (na,nb)= cb_rra_pb intersectiontimes + ((0,5/6x_height)--(1/2cb_rra_width,5/6x_height)); + z8=point na of cb_rra_pb; + (nc,nd)= cb_rra_pb intersectiontimes + ((0.6cb_rra_width,w_height)--(cb_rra_width,w_height)); + z20=point nc of cb_rra_pb; + z19=rt z20; + cb_rra_pa=bot z8..z11..z1; + cb_rra_p=cb_rra_pa..cb_rra_pb; + bot lft z18= z1;% used for placing a vertical line + + z14=(cb_rra_width-1.6x1,x_height-sc_height); + %z15=(x7,1/2x_height);z16=(x1,y15); + z15 = cb_rra_p intersectionpoint + ((0.7cb_rra_width,y8-.6u)--(cb_rra_width,y8-.6u)); + + z22 = cb_rra_p intersectionpoint + ((0, .6x_height)--(.4cb_rra_width, .6x_height)) ; + z23 = cb_rra_p intersectionpoint + ((.6cb_rra_width, .6x_height)--(cb_rra_width, .6x_height)) ; + + z16=(x1,y15); + path cb_rra_pc, cb_rra_pd; + %cb_rra_pc= cb_rra_p..z14..z15--z16; + cb_rra_pc= cb_rra_p..z14..z15;%--z16; + cb_rra_pd = z22--z23 ; + sketch cb_rra_pc; + sketch cb_rra_pd ; + + path inter; + inter = (.8cb_rra_width, .3x_height)--(1.1cb_rra_width, .3x_height); + z400 = cb_rra_pc intersectionpoint inter; + enddef; + +def arkavattu = + path arka_pa, arka_pb ; + top z1=(w/5,h); lft z2=(0,3h/4); z3=(x1,h/2); + z4=(w/3,h/2); lft z5=(0,h/4); bot z6=(x1,0); + bot rt z7=(w,0); + arka_pa= flex(z1,z2,z3)& z3--z4; + arka_pb=flex(z3,z5,z6)& z6--z7; +enddef; + + +def flop(expr e) = + for d = 1 step 1 until e: + draw z[d]; + endfor; +enddef ; + +def cb_ca_form = + path cb_ca_p, cb_ce_p, cb_ca_pb; + lft z1 = (0, .25x_height); bot z2= (.5cb_ca_width, 0); + rt z3 = (cb_ca_width, .42x_height); z4 = (.75cb_ca_width, .82 x_height); + top lft z5 = (.3cb_ca_width, .98x_height) ; + top lft z6 = (.15cb_ca_width, .8x_height) ; + top lft z7 = (.2cb_ca_width, .74x_height) ; + top lft z8 = (.35cb_ca_width, .78x_height) ; + top z9 = (.33cb_ca_width, .85x_height) ; + z22 = (.3cb_ca_width, y3); + z21 = (.58cb_ca_width, .7x_height); + top z20 = (.45cb_ca_width, x_height); + + z30 = (x20-1.25u, x_height+1u); + z31 = (x20-2.25u, x_height+.5u); + z32 = (x20-1.25u, x_height+.1u); + + + cb_ca_p = z20..z21..z22..z1..z2..{dir 92}z3..z4..z5..z6..z7..z8..z9; + cb_ca_pb = z32..z31..z30..tension1.6..z20; + + cb_ce_p = cb_ca_pb softjoin cb_ca_p ; + bar_forma(cb_ca_width-.5u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + %vmah_form(301); % tale-ardha akshara + + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_ca_width, .3x_height)--(1.1cb_ca_width, .3x_height); + z400 = cb_ca_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_va_form = + cb_pa_form ; + path cb_va_p, cb_va_pa, cb_ve_p; + top z9 = (.82cb_ba_width,.8x_height); % z9 another contact point + top z10 = (.5cb_ba_width,x_height); % z9 another contact point + + %for consonant +e + top z11 = (.3cb_ba_width, .8x_height); + z12 = (.5cb_ba_width, .85x_height); + + %cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..{left}z10; + cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10; + cb_ve_p =z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10..z11..z12; + + bar_forma(cb_pa_width-.2u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfea_form(301); + %vm_u_form(46); + +enddef ; + +def cv_vu_form(suffix $) = + path cv_vu_p; + z$a = z$; + bot z$b = (x$a+.25cb_ba_width, -.5des_depth) ; + z$c = (cb_ba_width+.5vm_u_width, .4x_height); + rt z$d = (cb_ba_width+.35vm_u_width, .8x_height); + sketch z$..z$b..z$c..z$d; +enddef; + +def cv_vuu_form(suffix $) = + path cv_vu_p; + z$a = z$; + bot z$b = (x$a+.25cb_ba_width, -.5des_depth) ; + z$c = (cb_ba_width+.2vm_uu_width, .4x_height); + rt z$d = (cb_ba_width+.5vm_uu_width, .9x_height); + z$e = (cb_ba_width+.8vm_uu_width, .5x_height); + rt z$g = (cb_ba_width+.7vm_uu_width, .05x_height); + z$h = (cb_ba_width+.55vm_uu_width, .1x_height); + z$i = (cb_ba_width+.65vm_uu_width, .25x_height); + sketch z$..z$b..z$c..z$d..z$e..z$g..z$h..z$i; +enddef; + +def vm_a_form(suffix $) = + path vm_a_p ; + rt x$a = vm_a_width; y$a = y$; + x$b = x$a ; y$b = 1.3y$a; + vm_a_p = z$--z$a..{dir 160}z$b; + penlabels($a,$b,$c); +enddef ; + +def vm_a_forma(suffix $) = + path vm_a_p ; + top z51$=(x$-1/6vm_a_width,x_height); + top z52$=(x$+.6vm_a_width,x_height); + top top z53$=(x$+.6vm_a_width,1.3x_height); + vm_a_p = z51$--z52$..{dir 160}z53$; +enddef ; + +def cb_sa_form = + bot lft z1=(0,0); lft z2=(0,1/2w_height); + z3=(.5cb_na_width,.4x_height); bot rt z4=(.85cb_na_width,.02x_height); + rt z44=(.98cb_na_width,.1x_height); + + rt z5=(cb_na_width,.5x_height); top z6=(.8cb_na_width,.9x_height); + path cb_sa_p; + top lft z77=(1/3cb_na_width-1/2c_height, top (x_height - c_height)); + place_lit_circ(77, 1); + cb_sa_p=z1..z2..z3..{z5-z6}z4.. z44..z5..z6; + bar_forma(cb_na_width-u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + %vmah_form(301); % tale-ardha akshara + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_na_width, .3x_height)--(1.1cb_na_width, .3x_height); + z400 = cb_sa_p intersectionpoint inter; + %vm_u_form(400); +enddef; + +def cb_ha_form = + lft z1 = (0, .45x_height) ; bot z2 = (.24cb_ha_width, 0); + z3 = (.48cb_ha_width, .3x_height); z4 = (cb_ha_width-x3, .6x_height); + z5 = (.76cb_ha_width, .8x_height); rt z6 = (cb_ha_width, .4x_height); + bot z7 = (.76cb_ha_width, 0); z8 = (cb_ha_width-x3, y3); + z9 = (x3, y4); z10 = (x2, y5); + z11 = (x3,.65x_height); top z12 = (.4cb_ha_width, x_height); + path cb_ha_p, cb_ha_pa ; + cb_ha_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..cycle; + cb_ha_pa = z11..{dir 130}z12; + sketch cb_ha_p ; + sketch cb_ha_pa ; + bar_forma(cb_ha_width-u); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + %vmah_form(301); % tale-ardha akshara + % to compute the joining point of "kombu for nya". + path inter; + inter = (.8cb_ha_width, .3x_height)--(1.1cb_ha_width, .3x_height); + z400 = cb_ha_p intersectionpoint inter; + %vm_u_form(400); +enddef ; + +def cb_lla_form = + z1=(.18cb_lla_width,.84x_height); z2=(.25cb_lla_width,.8x_height); + top z3=(.32cb_lla_width,.86x_height); top z4=(x2,x_height); + lft z5 =(0, .8x_height); + z6 = (1/2cb_lla_width, .4x_height); + z7 = (3/4cb_lla_width, .2x_height); + bot z8 = (1/2cb_lla_width,0); + z9 = (1/4cb_lla_width,y7); + rt z10 = (cb_lla_width,.75x_height); + + top z11 = (.8cb_lla_width,x_height); + + z19 = (.9cb_lla_width, .9x_height); + z20 = (x19-1.2u, y19+1.2u); + z21 = (x19-1.5u, y19); + z22 = (x19-.95u, y19+.15u); + path cb_lla_p, cb_lle_p, cb_lla_pb; + + cb_lla_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z11; + + %cb_lla_pb = z11..tension 1.3..z20..z21; + + %cb_lle_pb = cb_lla_p softjoin cb_lla_pb ; + cb_lle_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z19..tension 1.6..z20...z21..z22; + %cb_lle_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z19..z11; + z12 = lft lft z11; + %vmfa_form(12); % Following are test to see How vowel modifer looks. + %vmfaa_form(12) ; + %vmfea_form(12); + %vm_au_form(12,vm_au_width); + %vmah_form(12); % tale-ardha akshara + % to compute the joining point of "kombu for nya". + path inter; + inter = (.6cb_lla_width, .22x_height)--(1.1cb_lla_width, .22x_height); + z400 = cb_lla_p intersectionpoint inter; + %vm_u_form(400); + +enddef; + +def cb_sha_form = + cb_va_form; + top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height)); + place_lit_circ(77, 1); + bot rt z66 = (cb_pa_width, 0); + path cb_sha_pb; + z65 = (.65cb_pa_width, .6x_height); + cb_sha_pb = z65--z66; + %bar_forma(cb_ra_width); % z301 is comming from bar_forma... + %vmfa_form(301); % Following are test to see How vowel modifer looks. + %vmfaa_form(301) ; + %vmfea_form(301); + %vm_au_form(301,vm_au_width); + %vmah_form(301); % tale-ardha akshara +enddef ; + +def cb_ksha_form = + cb_ka_form; + top z11 = (1/6cb_ka_width, -.4cb_ksha_depth); + lft z12 = (0,-1/2cb_ksha_depth); + bot z13 = (1/4cb_ka_width,-cb_ksha_depth); + z14 = (.48cb_ka_width,-2/3cb_ksha_depth); + bot z15 = (3/4cb_ka_width,-cb_ksha_depth); + rt z16 = (.95cb_ka_width,-1/2cb_ksha_depth); + top z17 = (.8cb_ka_width, -.01cb_ksha_depth); + bot rt z18 = (cb_ka_width,-cb_ksha_depth); + bot z19 = (.9cb_ka_width, y16); + sketch z11..z12..z13..z14; sketch z14..z15..z16..z17; + sketch z19..z18; +enddef; + +def v_a_form = + top z1=(1/4v_a_width,x_height); + z10=(x1-u,y1-uh); z11=(x1,y1-2(y1-y10)); + lft z3=(0,2/3x_height); bot z4=(1/2v_a_width,0); + rt z5=(v_a_width,2/3x_height); top z6=(v_a_width-1.5u,x_height); + z7=(4/5x5,.55x_height); z8=(1/4w,y7); + z12=(.65v_a_width,5/6x_height); rt z2=(v_a_width,1/2x_height); +enddef; + +def v_aa_form = + z1=(.1v_a_width,.7x_height); z2=(.3v_a_width,.85x_height); + top z3 = (.15v_a_width, x_height); lft z4 = (0, .75x_height); + lft z4a = (.12v_a_width, .2x_height); + bot z5 = (.5v_a_width, 0); rt z6 = (v_a_width, .3x_height); + bot z66 = (.85v_a_width, .55x_height); + top z7 = (.76v_a_width, .7x_height); top z8 = (.88v_a_width, x_height); + rt z9 =(v_a_width, .85x_height); + rt z11 =(x7, y7); + rt z12 =(.4v_a_width, y11); + sketch z1..z2..z3..z4..z4a..z5 ..tension 1.2..z6..z66..z7..z8..z9..z7..z11--z12; +enddef; + +def v_u_form = + path v_u_pa, v_u_pb; + z1 = (.13v_u_width, .78x_height); z2= (2x1, .88x_height); z3a=(.09v_u_width,y2); + top lft z3 = (x1, x_height); + lft z4 = (0, .43x_height); bot z5 = lft (.2v_u_width, 0); + z5a = (.38v_u_width, .53y6); + %top z6 = (.52v_u_width, x_height); z6a = (.65v_u_width, 1.2y5a); + top z6 = (.52v_u_width, x_height); z6a = (.66v_u_width, y5a); + bot z7 = (.8v_u_width, 0); rt z7a = (v_u_width, .5x_height); + rt z8 = (.94v_u_width, .9x_height) ; top rt z8a = (.91v_u_width,x_height); + + %v_u_pa = z1..z2..z3..z3a..tension 1.2..z4..z5...z5a..tension 1.2..z6 + % {dir 9}..z6a{dir -85}..z7..z7a..z8..z8a; + v_u_pa = z1..z2..z3..z3a..z4..z5...z5a..z6..z6a..z7..z7a..z8..z8a; + %v_u_pb = z1..z2..z3..z3a..tension 1.2..z4..z5..z5a..tension 1.2..z6 + % {dir 5}..z6a{dir -85}..z7; + %flop(8); draw z3a; draw z5a; draw z6a; draw z7a; draw z8a ; + sketch v_u_pa; +enddef; + +def vm_uu_form (suffix $) = + bot z1$ = (x$+.1vm_uu_width, 0); z2$ = (x$+.4vm_uu_width, .66x_height); + top z3$ = (x$+.52vm_uu_width,x_height); + rt z4$ = (x$+vm_uu_width, .5x_height); + bot z5$ = (x$+.75vm_uu_width, 0); z6$ = (x$+.65vm_uu_width, .1x_height); + rt z7$ =(x$+.85vm_uu_width, .25x_height); + sketch z$..z1$..z2$..z3$..z4$..z5$..z6$..z7$; +enddef; + +def v_uu_form = + numeric wid, het ; + wid = v_uu_width ; het = x_height ; + z1 = (1/10wid,8/10het) ; z2 = (2x1, y1); top z3 = (x1, het) ; + lft z4 = (0-.5u, 1/2 het) ; bot z5 = (1/8wid, 0) ; + z6 = (1/4wid, 1/2het) ; top z7 = (3/8wid, het) ; + z8 = (1/2wid, 1/2het) ; bot z9 = (5/8wid, 0) ; + z10 = (3/4wid, 1/2het); top z11 = (7/8wid, het) ; + rt z12 = (wid+.5u, 1/2het) ;bot z13 = (wid-x3, 0) ; + z14 = (wid-x2, het-y2) ; z15 = (wid-x1, het-y1) ; + %sketch z1...z2...z3...z4...z5...z6...z7...z8...z9...z10...z11...z12...z13...z14...z15; + sketch z1..z2..z3..z4..tension 1.2..z5..tension 1.2..z6..tension 1.2..z7..tension 1.2..z8..tension 1.2..z9..tension 1.2..z10..tension 1.2..z11..tension 1.2..z12..z13..z14..z15; +enddef; + +def v_ro_form = + path v_ro_p; + z1 = (.5v_ro_width, .8x_height); z2 = (.25v_ro_width, .7x_height); + lft z3 = (0, .8x_height); top z4 = (.5v_ro_width, x_height); + rt z5 = (v_ro_width, .5x_height); + bot z6 = (x4, 0); lft z7 = (0, .2x_height); z8 = (x2, .3x_height); + z9 = (x1, .2x_height); + v_ro_p = z1..z2..z3..z4..z5..z6..z7..z8..z9; + + z10 = (.6v_ro_width, y8); z11 = (v_ro_width+2vm_u_width, y10); + sketch v_ro_p; + z19 = (z10--z11) intersectionpoint v_ro_p; + vm_u_form(19); + z29 = (x19+.4vm_u_width, x_height); + vm_a_forma(29); + sketch vm_a_p; + z20=z19b; + vm_u_form(20); + z39 = z20b; +enddef; + +def barandhook_formk (suffix $)(expr bar_width,t) = + z$a=(x$+bar_width-u,y$); rt z$b=(x$a+u,y$-uh); + bot z$c =(x$b-u,y$-2uh); lft z$d=(x$b-2u,y$b); + top z$e=(x$a-u,y$); rt z$f=(x$b,y$+1.5uh); + top z$g=(x$a,y$f+uh); z$h=(x$d,y$f); + path barandhook_p; + barandhook_p= subpath(0,t) of (rt z$--z$a..z$b..z$c..z$d..z$e..z$f..z$g..z$h); + sketch barandhook_p; + penlabels($a,$b,$c,$d); +enddef; + +def barandhook_form (suffix $)(expr bar_width,t) = + z$a=(x$+bar_width-u,y$); rt z$bb=(x$a+u,y$-1/2des_depth); + rt z$b=(x$a+u,y$-des_depth+uh); + bot z$c =(x$b-u,y$b-uh); lft z$d=(x$b-1.75u,y$b); + top z$e=(x$d+.75u,y$b+.5u); rt z$f=(x$b,y$+1.5uh); + path barandhook_p; + barandhook_p= (rt z$--z$a..z$bb..z$b..z$c..z$d..z$e); + %barandhook_p= subpath(0,t) of (rt z$--z$a..z$bb..z$b..z$c..z$d..z$e); + sketch barandhook_p; + penlabels($a,$b,$c,$d); +enddef; + +%Following is old version it's obsolete............... +def vm_au_forma (suffix $)(expr bar_width) = % see the above diagram + numeric na; + %top z$e=z$; % screwed up GHA+AU. + %z$e=z$; + z$e=(x$, y$); + z$a = (x$e+2/10(bar_width-u),y$e); + z1000 = (x$-.5u,asc_height2); + % 1000 was chosen arbitrarily + % we needed some suffix not used by any user of + % this macro + barandhook_form(1000,bar_width,5); + z$d=z1000a; + %next two statements solve for c + x$c = x$a; + z$c = whatever[z1000,z$d]; + na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha.. + sketch z$e--z$a{right}..{left}z$c; + penlabels($a,$b,$c,$d,$e,1000); +enddef; + +def vm_au_form (suffix $)(expr bar_width) = % see the above diagram + numeric na; + %top z$e=z$; % screwed up GHA+AU. + %z$e=z$; + z$e=(x$, y$); + z$a = (x$e+5/10(bar_width-u),y$e); + z1000 = (x$+2.3u,asc_height2); + % 1000 was chosen arbitrarily + % we needed some suffix not used by any user of + % this macro + barandhook_form(1000,.9bar_width,5); + z$d=z1000a; + %next two statements solve for c + x$c = x$a; + z$c = whatever[z1000,z$d]; + na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha.. + sketch z$e--z$a{right}..{left}z$c; + penlabels($a,$b,$c,$d,$e,1000); +enddef; + +% Begin of Vowel Modifiers..... + +def vm_ee_form = + z0 = (.5vm_ee_width+u, y2); + z1 = (.7vm_ee_width+u, 2/3x_height); + rt z2 = (vm_ee_width+u, y1+1/6x_height); + top z3 = (1/2vm_ee_width+u, x_height); + lft z4 = (0+u, .6x_height); bot z5 = (3/5vm_ee_width+u, 0); + sketch z0..z1..z2..z3..z4..z5; +enddef; + +def vm_ro_form = + z1=(.8vm_ro_width,3/5x_height);rt z2=(vm_ro_width,0); + bot z3=(1/2vm_ro_width,-des_depth);z4=(.15vm_ro_width,-.1des_depth); + z5=(.2vm_ro_width,.05x_height); z6 = (.25vm_ro_width, .1x_height); + z7=(.3vm_ro_width,-.2des_depth); + path vm_ro_p; + vm_ro_p = z1..z2..z3..z4..z5..z6..z7; + path ct; + ct = vm_ro_p scaled 1 shifted (-3u, -.5des_depth) rotated 0 ; + sketch ct; +enddef; + +def vm_y_form = + top z1=(.75vm_y_width, 3/5x_height); rt z1a=(vm_y_width,3/10x_height); + rt z2=(.8vm_y_width,.1x_height); + rt z3a=(vm_y_width,-1/2des_depth); + bot z3=(1/2vm_y_width,-des_depth);z4=(.15vm_y_width,-.1des_depth); + z5=(.2vm_y_width,.05x_height); z6 = (.25vm_y_width, .1x_height); + z7=(.3vm_y_width,-.2des_depth); + path vm_y_p ; + vm_y_p = z1..z1a..z2..z2..z3a..z3..z4..z5..z6..z7; +enddef; + +%def vm_e_form_a (suffix $) (expr xoff, yoff) = +% z$1 = (x$+xoff, y$+yoff); +% z$2 = (x$1+u, y$1+u); +% z$3 = (x$1, y$1+2u); +% z$4 = (x$1-u, y$1+u); +% z$5 = (x$1-.7u, y$1+.1u); +% path vm_e_p; +% vm_e_p = z$..z$1..z$2..z$3..z$4..z$5; +%enddef; + +def vm_e_form_a (suffix $) (expr xoff, yoff) = + z31 = (x$+xoff, y$+yoff); + z32 = (x31+u, y31+u); + z33 = (x31, y31+2u); + z34 = (x31-u, y31+u); + z35 = (x31-.7u, y31+.1u); + path vm_e_p; + vm_e_p = z$..z31..z32..z33..z34..z35; +enddef; + +def vm_e_formb(suffix $) (expr a, b) = + z50 = (a-1/2u, b+u) ; + z51 = (a, b) ; + sketch z$..z50..z51 ; +enddef; + +def vm_e_form = + path vm_e_p; + lft z551 = (0,x_height+1.2ascunit); + top z552 = (1/2vm_e_width,x_height); + rt z553 = (vm_e_width,x_height+2ascunit); + z554 = z553; + lft z555 = (0,x_height+3ascunit); + z556 = (1/2vm_e_width,y555); + top z557=(1/2vm_e_width,vm_e_height1+ascunit); + vm_e_p = subpath (0.4,1) of z551{down}..{right}z552..z553..z557..z555..z556; + sketch vm_e_p; + %sketch subpath (0.4,1) of z551{down}..{right}z552..z553..z557..z5..z556; + % hook can be attached at z7 +enddef; + +def naa_form = + path naa_p ; + z1 = bot lft (cb_na_width, x_height) ; z2 = bot ( 2u, x_height) ; + z3 = rt (0, 5/6x_height) ; + z4 = bot (u, 2/3x_height) ; z5 = (3/4cb_na_width, y4) ; + z6 = rt (0, 1/2x_height) ; + z7 = bot (u, 1/3x_height); z8 = (1/2cb_na_width, y7) ; + z9 = rt (0, 1/6x_height) ; + z10 = top (u, 0) ; + + naa_p = z1--z2...z3...z4--z5 &z5--z4...z6...z7--z8 & z8--z7...z9..z10 ; + sketch naa_p ; +enddef ; + +input kanvarna ; +input kanlets; + +end; |