class SPLICE_ALG
Public
Readonly Shareds
shared DTblV, DTblE:ARRAY{INT};
****
shared DTblV, DTblE:ARRAY{INT};
****
shared KnotCT:KNOT;
****
KnotCT[] is a table of crossing condition
on the band in original picture.
shared KnotP0:KNOT;
****
work
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared numberOfCrossing:INT;
****
In setCrossingTbl, count number of crossings
max size of new Knot can be
___
_
(Knot.length+(s01-s00)+8*numberOfCrossing)
shared rot0, rot1:INT;
****
rotation around band attaching pts
shared rot0, rot1:INT;
****
rotation around band attaching pts
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
Writable Shareds
shared DTblV, DTblE:ARRAY{INT};
****
shared DTblV, DTblE:ARRAY{INT};
****
shared KnotCT:KNOT;
****
KnotCT[] is a table of crossing condition
on the band in original picture.
shared KnotP0:KNOT;
****
work
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared numberOfCrossing:INT;
****
In setCrossingTbl, count number of crossings
max size of new Knot can be
___
_
(Knot.length+(s01-s00)+8*numberOfCrossing)
shared rot0, rot1:INT;
****
rotation around band attaching pts
shared rot0, rot1:INT;
****
rotation around band attaching pts
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared s00, s01, s10, s11, b0, b1:INT;
****
band
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
shared vx, vx0,vy, vy0:INT;
****
vextor
Constants
const bdEnd:INT:=3;
****
end
const bdInn:INT:=1;
****
inner of band core
const bdStp:INT:=2;
****
start
const divL:INT:=3;
****
const left:INT:= 1;
const maxD:INT:=maxhw0*divL;
****
max distance in DTblV and DTblE
const maxhw0:INT:=16;
****
max of half width of the band
const right:INT:=-1;
Features
SpliceK(inout Knot:KNOT, i:INT)
SpliceK1(inout Knot:KNOT, i:INT)
****
splice along the band ( i )
checkS(knot:KNOT,s:STR)
checkSw(knot:KNOT)
copyK(inout Knot:KNOT, i1, i2, dir:INT)
exg(inout Knot:KNOT, w,w1,cn:INT):BOOL
set(Knot:KNOT, si:INT, x,y,l:INT)
setBoundary(Knot:KNOT)
****
knot is modified to rot0(rot near the start point b0) be +1.
set boundary of the band s00..s01, s10..s11
d0:INT; --distance
d:INT;
setBoundaryPt(Knot:KNOT, side,btype:INT,inout d0:INT, d,si:INT)
****
Before use this, Set d,vx,vy, d0,vx0,vy0
See last of this procedure.
setCr(inout Knot:KNOT, k0, k1, dir:INT):BOOL
setCrossingTbl(inout Knot:KNOT)
setDTblE(Knot:KNOT,side:INT)
****
DTblE[ki] be the table of
min( distance(edge Knot[ki]-Knot[ki+1], vertex Knot[i]))
setDTblV(Knot:KNOT)
****
DTblV[ki] be the table of
min( disttance(vertex Knot[ki], edge Knot[i]-Knot[i+1]))
setbds(Knot:KNOT,side:INT)
****
set boundaries
setdE(Knot:KNOT,side:INT, ki:INT)
****
setdV(Knot:KNOT, ki:INT)
The Sather Home Page