return create(x*other.x, y*other.y);




Public


Readable Attributes
attr k:ARRAY{VERT}; .. Included as k
**** linear transformation with diagonal element (p,s).

Writable Attributes
attr k:ARRAY{VERT}; .. Included as k
**** linear transformation with diagonal element (p,s).

Constants
end; .. Included as edge
return i; .. Included as far
end; .. Included as near
end; .. Included as other
end; .. Included as vertex

Features
CodeDel(j); .. Included as BandDel
loop while!(j>=i); CodeDel(j); j:=j-1; end; .. Included as ClCross
end; .. Included as ClCrossEdge
k1:=cmpOf(b1); if k1 >=0 then k[k1].sep:=VERTEXC::normal; end; .. Included as ClCrossErr
CodeDel(i:INT) .. Included as CodeDel
**** del the code not search for companionloop j::=i.upto!(k.size-2); k[j]:=k[j+1]; end;k:=k.resize(k.size-1);
CodeIn(i:INT) .. Included as CodeIn
if (~k.has_ind(i1))or(VERTEXC::separator.in(k[i1].sep)) then .. Included as CodeIn
pt:=-1; d:=far; .. Included as CodeIn
CodeIn(c:VERTEXC, i:INT) .. Included as CodeIn
CodeIn(v:VERT, i:INT) .. Included as CodeIn
**** move up and insert. 'normal vertex,(x=0,y=0),work=0.k:=k.resize(k.size+1);loop j::=(k.size-2).downto!(i); k[j+1]:=k[j]; end;k[i]:=v;
CodeRev(p1,p2:INT) .. Included as CodeRev
**** Reverse Knot[] codes between p1,p2, needed 0<=p1,p2<=maxK
CodeSplice(stp1,enp1,stp2,enp2:INT) .. Included as CodeSplice
**** splice the code stp1..enp1 and stp2..enp2, stp1<enp1, stp2<enp2
k[i].sep:=k[i].sep/exg; .. Included as CrossSet
.. Included as CrossSet
****
___ChangeSize(t:FLT)_is_
____if_t<=0.0_then_return;_end;_
__loop_i::=k.ind!;
if VERTEXC::normal.in(k[i].sep) or
__VERTEXC::crossing.in(k[i].sep)_then
k[i]*t; end;
____end;_
__shiftToInside;
end;
dw:=k[i1].distance1(k[j]); .. Included as DelV
.. Included as LookMouseV
p2:=endOfString(pt,1)-1; .. Included as LookMouseVE
i:INT:=0; .. Included as Match
elsif k[i].sep=VERTEXC::code_e then .. Included as Match2
.. Included as MatchPt
elsif VERTEXC::band_e=k[i1].sep then i1:=i1-1; .. Included as MatchPtS
res.updateCross:=false; .. Included as NoCompo0
end; .. Included as PointInEdge
SetTCode(out tcode:TCODE):BOOL .. Included as SLength
.. Included as SetTCode
**** true if crossing data is changed and needed CrossSet.
if (i0<i1)and(cTbl[i0].work/=cTbl[i1].work) then .. Included as Shift
**** ori. reverse _c1_ components
elsif dir=-1 then .. Included as StringSplice
aget(i:INT):VERT .. Included as aget
end; .. Included as append
append(a:SAME) .. Included as append
**** s::=k.size-1; k:=k.resize(s+a.k.size);loop i::=0.upto!(a.k.size-1); k[i+s]:=a.k[i]; end;
append(a:SAME):SAME .. Included as append
**** res:SAME:=clone; res.append(a); return res;
append(v:VERT) .. Included as append
aset(i:INT, v:VERT) .. Included as aset
**** if k.size<=i then s0::=k.size; k:=k.resize(i+1); loop j::=s0.upto!(i-1); k[j]:=#; end;end;
if VERTEXC::te.in(k[i].sep) then dir:=-1; i:=edge+dir; .. Included as attach
bandStart:INT .. Included as bandStart
if VERTEXC::separator.in(k[ti1].sep) then return 0; end; .. Included as band_attach_sgn
if VERTEXC::ks.in(k[j0].sep) and Match(j0+1,j1-1) and (nv<=4) then return true; .. Included as band_attach_sgn
if VERTEXC::separator.in(k[i].sep+k[j].sep) then return far; end; .. Included as band_attach_sgn
knot:KNOT:=clone; .. Included as checkCode
end; .. Included as checkCode
trace:INT
return Match(i1,i2); .. Included as cmpOf
compoStart(c:INT):INT .. Included as compoStart
**** start point of c-th component. return -1, if #compo<c.
.. Included as countVertex
**** dir:=1,-1. if next pt is not exist return -1.
cp(inout dist:INT, s_beg,s_end:INT, s_knot:SAME) .. Included as cp
rotate(t:FLT):SAME
j:=cmpOf(i); .. Included as delStr
.. Included as distV
****
-------_find_&_check_--------___
.. Included as distanceL2
**** shiftToInside; end;
endOfString(i,dir:INT):INT .. Included as endOfString
flip .. Included as flip
has_band(p1,p2:INT):BOOL .. Included as has_band
**** true if segment p1--p2 has band_attach pts.
has_band:BOOL .. Included as has_band
elsif VERTEXC::te.in(sep) then #OUT+")"; .. Included as is_Closed
end; .. Included as is_Closed
end; .. Included as is_coherent
.. Included as is_proper
**** true if theta curve(1-component and 1-band).
outer:=outer.abs; inn:=u.inner(v); .. Included as is_theta
****
clone:SAME .. Included as kcode_clone
create:SAME .. Included as kcode_create
length:INT .. Included as length
**** code length __except terminator__.
i:=endOfString(i,-1); j:=endOfString(j,-1); .. Included as make_coherent
i,j,js:INT; .. Included as miniCrossing
end; .. Included as miniPt
is_coherent(b:INT):BOOL .. Included as miniVE
**** check if band connectiong b is coherent. if the band is not proper then return __true__ .
ofsX:=(KNOTXW::GraphWidth-(maxX+minX))/2; .. Included as mirrorX
if (ofsX/=0) or (ofsY/=0) then self.Shift(ofsX,ofsY); end; .. Included as mirrorY
.. Included as mirrorZ
**** linear transformation of Knot
if VERTEXC::crossing.in(k[j].sep) then .. Included as nearStumpVertex
end; .. Included as nearVertexV
loop .. Included as nextPt
number_compo:INT .. Included as number_compo
number_crossing:INT .. Included as number_crossing
****
___#of_crossings
number_negative_crossing:INT .. Included as number_negative_crossing
number_positive_crossing:INT .. Included as number_positive_crossing
number_writhe:INT .. Included as number_writhe
numbers_count(inout cr,inout cr_p,inout cr_n, .. Included as numbers_count
end; .. Included as printD
**** if ~res then checkKnotD(Knot); end;
revK(i:INT) .. Included as revK
**** ori. reverse the string
rotBack1(stp, enp:INT) .. Included as rotBack1
**** rotate back component of stp--enp by 1
rotComponent(stp, enp:INT, stp1:INT) .. Included as rotComponent
**** rotate back component of stp--enp move stp1 to head
(VERTEXC::crossing.in(k[i].sep)) then .. Included as shiftToInside
size:INT .. Included as size
loop while!(~VERTEXC::separator.in(k[i].sep)); .. Included as tooShort
end; .. Included as transform
(VERTEXC::crossing.in(k[i].sep)) then .. Included as transform
res::=kcode_clone; res.updateCross:=updateCross; .. Included as trivial0
loop j::=0.upto!(bs); .. Included as width


Private

bad(message:BOOL,num:INT, i:INT) .. Included as bad

The Sather Home Page