tcode.sa


Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
 
-- Copyright (C) 1989 1996 Kouji KODAMA
--
-- 1998/1  LongInt
-- 1997/8  un-oriented surface in S^4
-- 1996/10 LINUX version
-- Kouji  Kodama    1989/8  FTL-Modula2 version
--
-- initialize knot data and other global variables.
-- Make crossing data and group relations from knot graphics data.
--
--	Set "TCode", "TLength", "Relator" and "RLength". 


class VERTEXT

class VERTEXT is attr companion:INT; attr sep:VERTEXC; attr gen:INT; attr compo:INT; attr linkPtr:INT; create:SAME is res:SAME:=new; res.companion:=0.int; res.sep:=#; res.gen:=0.int; res.compo:=0.int; res.linkPtr:=0.int; return res; end; create(s:VERTEXC):SAME is res:SAME:=create; res.sep:=s; return res; end; create(c:INT):SAME is res:SAME:=create; res.companion:=c; return res; end; clone:SAME is res:SAME:=#; res.companion:=companion; res.sep:=sep.clone; res.gen:=gen; res.compo:=compo; res.linkPtr:=linkPtr; return res; end; end;

class TCODE

class TCODE is include KCODE{VERTEXT} compoStart->kcode_compoStart; include KCODE_CMP{VERTEXT} printD->kcode_cmp_printD; printD is cod:VERTEXC; #OUT+"index: companion,gen,component,sep \n"; loop i::=0.upto!(k.size-1); #OUT+i.str+":"+k[i].companion.str+","+k[i].gen.str+","+k[i].compo.str+","; cod:=k[i].sep; if VERTEXC::normal.in(cod) then #OUT+"n"; end; if VERTEXC::ks.in(cod) then #OUT+"["; end; if VERTEXC::ke.in(cod) then #OUT+"]"; end; if VERTEXC::ts.in(cod) then #OUT+"("; end; if VERTEXC::te.in(cod) then #OUT+")"; end; if VERTEXC::band.in(cod) then #OUT+"b"; end; if VERTEXC::crossing.in(cod) then #OUT+"c"; end; if VERTEXC::under.in(cod) then #OUT+"u"; end; if VERTEXC::over.in(cod) then #OUT+"o"; end; if VERTEXC::positive.in(cod) then #OUT+"+"; end; if VERTEXC::negative.in(cod) then #OUT+"-"; end; if VERTEXC::endc.in(cod) then #OUT+"/"; end; #OUT+"\n"; end; end; number_gen:CARD is m:CARD:=0; loop i::=k.ind!; m:=m.max(k[i].gen.card); end; return m; end; compoStart(c:INT):INT is -- start point of c-th component. -- return position of "endc" if not exist. i:INT:=0.int; loop until!(~VERTEXC::ks.in([i].sep) or [i].compo=c); i:=([i].companion.card+1).int; end; return i; end; end; -- class TCODE