class JUMP_MOVE
****
Knot type is not change.


Flattened version is here



Public


Readonly Shareds
shared KnotP0, KnotP1: KNOT;
shared KnotP0, KnotP1: KNOT;
shared SW:BOOL;
****
__true:over_jump,_false:under_jump.__Use_SW0_as_default_mode
shared SW0:BOOL:=true;
**** SW0:default mode. TRUE:over jump, FALSE:under jump
shared p1, p2, stp, enp:INT;
shared i0:INT;
shared knotPtr,knotPtr1:INT;
shared knotPtr,knotPtr1:INT;
shared p1, p2, stp, enp:INT;
shared p1, p2, stp, enp:INT;
shared p20,p21:INT;
shared p20,p21:INT;
shared phase:CARD:=0;
**** 0: needed setup 1: set start pt left: set start pt. "p1" & goto phase 2 right: none 2: set end pt left: set end pt. "p2" & goto phase 3 right: cancel start pt. goto phase 1 3: set new bridge left: set new vertex & move vertex right: do jump move & goto phase 1
shared
shared
shared p1, p2, stp, enp:INT;
shared x0,y0:INT;
shared x0,y0:INT;

Writable Shareds
shared KnotP0, KnotP1: KNOT;
shared KnotP0, KnotP1: KNOT;
shared SW0:BOOL:=true;
**** SW0:default mode. TRUE:over jump, FALSE:under jump
shared SW:BOOL;
****
__true:over_jump,_false:under_jump.__Use_SW0_as_default_mode
shared p1, p2, stp, enp:INT;
shared i0:INT;
shared knotPtr,knotPtr1:INT;
shared knotPtr,knotPtr1:INT;
shared p1, p2, stp, enp:INT;
shared p20,p21:INT;
shared p20,p21:INT;
shared p1, p2, stp, enp:INT;
shared phase:CARD:=0;
**** 0: needed setup 1: set start pt left: set start pt. "p1" & goto phase 2 right: none 2: set end pt left: set end pt. "p2" & goto phase 3 right: cancel start pt. goto phase 1 3: set new bridge left: set new vertex & move vertex right: do jump move & goto phase 1
shared
shared
shared p1, p2, stp, enp:INT;
shared x0,y0:INT;
shared x0,y0:INT;

Features
Animate(p20,p21:INT)
**** Move from KontP0 to KnotP1(=KnotP2).
CheckSegment(inout Knot:KNOT):BOOL
**** Check if the segment p1--p2 be over/under bridge. and rotate
IfNear(inout Knot:KNOT, i0:INT)
**** check if i0 have near points, and shrink/splice it. c.f. MoveVertex
JumpMove(inout Knot:KNOT, event, button, mouseX,mouseY:INT)
LenMatch(inout Knot:KNOT, inout q0, inout q1:INT)
**** match q1 to q0
SetPhase0(inout Knot:KNOT)
SetPhase1(Knot:KNOT)
chOv(Knot:KNOT, inout seg1:BOOL, inout seg2:BOOL)
**** Check if over bridge
lMouse(inout Knot:KNOT, inout p, inout ps:INT, sw:INT)
**** p: stump of the segment (set by left button), ps: if point is inserted and p<ps then ps must be shifted.
trimCrosses(inout Knot:KNOT)
**** delete bands on the bridge

The Sather Home Page