class KNOT |
---|
attr updateCross:BOOL; |
---|
**** | true if crossing data is changed and needed CrossSet. |
attr updateCross:BOOL; |
---|
**** | true if crossing data is changed and needed CrossSet. |
const vertex, edge, other; |
---|
const far:INT:=10000; |
---|
const near:INT:=16; |
---|
const vertex, edge, other; |
---|
const vertex, edge, other; |
---|
BandDel(i:INT) |
---|
**** | not check crossing. |
ClCross |
---|
**** | delete all crossings |
ClCrossEdge(inout edge:INT, dir:INT) |
---|
ClCrossErr(inout vp:INT) |
---|
CodeIn(x,y:INT, i:CARD) |
---|
CodeIn(x,y:INT, i:INT) |
---|
CodeIn(x,y:INT, c:VERTEXC, i:CARD) |
---|
CodeIn(x,y:INT, c:VERTEXC, i:INT) |
---|
CrossSet(stp,enp:INT) |
---|
CrossSet:BOOL |
---|
DelV(i:INT) |
---|
**** | Del 1 code1. if band then del 1code at ts/te, too. Knot[i] is not ks,ke,ts,te |
LookMouseV(stp, enp:INT, inout i0:INT, inout x:INT, inout y:INT,inout left:BOOL, inout right:BOOL) |
---|
LookMouseVE(MDistance:INT,stp, enp:INT, inout i0 :INT, inout veSw:INT,inout x, y:INT, inout left, right:BOOL) |
---|
**** | mark if near than MDistance veSw 0:vertex, 1:edge state of mouse |
Match(i1,i2:INT):BOOL |
---|
**** | TRUE if coord (x1,y1)=(x2,y2) |
Match2(i1,i2:INT):BOOL |
---|
**** | Match with band adjustment |
MatchPt(i,from:INT):INT |
---|
**** | return j where Knot[i].x=Knot[j].x, Knot[i].y=Knot[j].y, i#j. Return -1 if not exist. |
MatchPtS(i,from:INT):INT |
---|
**** | return MatchPt if exist . return (i) if not exist |
NoCompo0 |
---|
**** | set Knot be empty |
NoCompo0:SAME |
---|
**** | set Knot be empty |
PointInEdge(i:INT) |
---|
SLength |
---|
SetTCode(out tcode:TCODE):BOOL |
---|
Shift(ofsX,ofsY:INT) |
---|
StringSplice(i,j:INT) |
---|
append(x,y:CARD) |
---|
append(x,y:INT) |
---|
attach(i,j:INT) |
---|
**** | Knot[i] <-- Knot[j] |
band_attach_sgn(i:INT):INT |
---|
band_attach_sgn(bi, ti:INT):INT |
---|
**** | bi points 'band', ti points 'ts' or 'te' |
band_attach_sgn(bi, ti0,ti1:INT):INT |
---|
**** | bi points 'band', ti points 'ts' or 'te' |
checkCode(message:BOOL):BOOL |
---|
checkCode:BOOL |
---|
**** | no check on crossings |
clone:SAME |
---|
cmpOf(i:INT):INT |
---|
**** | return -1 if no companion |
concat |
---|
**** | concatinate strings if (look like) connected in diagram. |
concat_at_tail(i:INT) |
---|
**** | concatinate strings if (look like) connected in diagram. |
countVertex(i:INT):INT |
---|
**** | count vertices on the string |
create:SAME |
---|
delStr(inout i:INT) |
---|
**** | del code of string ks..ke/ts..te cantaining i with codeDel. |
distV(i,j:INT):INT |
---|
**** | return distance ( Knot[i], Knot[j]) |
distanceL2(ki:INT, x, y:INT, rot:INT):INT |
---|
**** | distance( edge(ki--(ki+1), point(x,y) )^2 rot; 1:only left side. -1: right side. 0:each side. |
edge_clean |
---|
**** | If edges v1-v2-v3 is straight then remove v2 as v1-v3. |
endOfBridge(i:INT, dir:INT):INT |
---|
is_Closed(i:INT):BOOL |
---|
**** | true if the string containing "i" is closed. check if (1)string of ks..ke is closed and (2)string of ts..te is attached to knot. |
is_Closed:BOOL |
---|
is_coherent(b:INT):BOOL |
---|
**** | check if band connectiong b is coherent. if the band is not proper then return __true__ . |
is_nocompo:BOOL |
---|
is_proper:BOOL |
---|
**** | knot code is proper for braid, ndata, invariants etc. |
is_theta:BOOL |
---|
**** | true if theta curve(1-component and 1-band). |
make_coherent |
---|
**** | if knot has bands, try orientation reversing on knots to make coherent along band connections. |
miniCrossing(gx, gy:INT, stp, enp:INT, out d:INT):INT |
---|
**** |
miniPt(gx,gy:INT, out pt:INT, out d:INT, out sw:INT) |
---|
**** | find near point of (mouseX,mouseY) |
miniVE(gx,gy:INT, stp,enp:INT, sw:INT, out d:INT):INT |
---|
**** | search nearest vertex/edge on Knot[].sw=0: vertex, sw=1:edgesw=2: other( dummy )returns (number of the vertex) and set distance (d). |
mirrorX |
---|
**** | mirror x --> -x |
mirrorY |
---|
**** | mirror y --> -y |
mirrorZ |
---|
**** | change all crossings |
nearStumpVertex(gx,gy: INT, out pt:INT, out d:INT) |
---|
**** | find near stump Vertex of knot |
nearVertexV(i1,i2:INT, out pt, out d:INT) |
---|
**** | find the nearest point from i1, except i1,i2 |
nextBridge(i:INT):INT |
---|
nextPt(i:INT, dir:INT):INT |
---|
**** | return next point. Normally i+dir but ks,ke,ts,te. dir:=1,-1. if next pt is not exist return -1. |
printD |
---|
**** | print for debug |
shiftToInside |
---|
tooShort(i:INT):BOOL |
---|
**** | true if the string is too short to shrink |
transform(mag:FLT) |
---|
**** | linear transformation of Knot |
transform(p,q,r,s:INT) |
---|
**** | linear transformation of Knot |
trivial0 |
---|
trivial0:SAME |
---|
width(out minX,out maxX,out minY,out maxY:INT) |
---|