| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <head> | |
| 3 <div style="height:0"> | |
| 4 | |
| 5 <div id="cubicOp36u"> | |
| 6 SimplifyNew_Test [cubicOp36u] | |
| 7 {{0,1}, {1,6}, {2,0}, {5,1}}, | |
| 8 {{5,1}, {0,1}}, | |
| 9 op union | |
| 10 {{0,2}, {1,5}, {1,0}, {6,1}}, | |
| 11 {{6,1}, {0,2}}, | |
| 12 debugShowCubicIntersection no self intersect {{0,2}, {1,5}, {1,0}, {6,1}} | |
| 13 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {1,5}, {1,0}, {6,1}} {{0,2}} wt
Ts[1]=0.633333333 {{2.2208888888888882,1.6298518518518521}} wtTs[2]=1 {{6,1}} wn
Ts[0]=1 {{6,1}, {0,2}} wnTs[1]=0.629851852 wnTs[2]=0 | |
| 14 debugShowCubicIntersection wtTs[0]=0.281761651 {{0,2}, {1,5}, {1,0}, {6,1}} {{0.
74132978521392334,2.9436691246202122}} wtTs[1]=0.83051493 {{3.8593908381032738,0
.94043932231067462}} wtTs[2]=0.830515061 {{3.8593922073023155,0.9404390736036725
2}} wtTs[3]=0.867315861 {{4.2597986321159249,0.88613622701319239}} wtTs[4]=0.867
316009 {{4.2598003089230945,0.88613607359480184}} wnTs[0]=0.23811 {{0,1}, {1,6},
{2,0}, {5,1}} wnTs[1]=0.860977989 wnTs[2]=0.860978176 wnTs[3]=0.912837717 wnTs[
4]=0.912837923 | |
| 15 debugShowCubicLineIntersection wtTs[0]=0.803214143 {{0,2}, {1,5}, {1,0}, {6,1}}
{{3.5833594368204942,1}} wnTs[0]=0.283328 {{5,1}, {0,1}} | |
| 16 debugShowCubicLineIntersection wtTs[0]=0.0764226429 {{0,1}, {1,6}, {2,0}, {5,1}}
{{0.23016060940409022,1.9616398984326517}} wtTs[1]=0.691654855 {{2.736721170869
8314,1.543879804855028}} wnTs[0]=0.96164 {{6,1}, {0,2}} wnTs[1]=0.543879805 | |
| 17 debugShowLineIntersection no intersect {{6,1}, {0,2}} {{5,1}, {0,1}} | |
| 18 debugShowCubicIntersection no self intersect {{0,1}, {1,6}, {2,0}, {5,1}} | |
| 19 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {1,6}, {2,0}, {5,1}} {{0,1}} wt
Ts[1]=0.833333333 {{3.6574074074074132,0.99999999999999789}} wtTs[2]=1 {{5,1}} w
nTs[0]=1 {{5,1}, {0,1}} wnTs[1]=0.268518519 wnTs[2]=0 | |
| 20 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0 (0,2) tEnd=0.281761651 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 21 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.281761651 (0.741329789,2.9436690
8) tEnd=0.633333333 other=1 otherT=0.238109917 otherIndex=2 windSum=? windValue=
1 oppValue=0 | |
| 22 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.633333333 (2.22088885,1.62985182
) tEnd=0.803214143 other=4 otherT=0.629851852 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 23 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.803214143 (3.58335948,1) tEnd=0.
83051493 other=2 otherT=0.283328113 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 24 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.83051493 (3.85939074,0.940439343
) tEnd=0.830515061 other=1 otherT=0.860977989 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 25 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.830515061 (3.85939217,0.94043904
5) tEnd=0.867315861 other=1 otherT=0.860978176 otherIndex=6 windSum=? windValue=
1 oppValue=0 | |
| 26 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.867315861 (4.25979853,0.88613623
4) tEnd=0.867316009 other=1 otherT=0.912837717 otherIndex=7 windSum=? windValue=
1 oppValue=0 | |
| 27 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.867316009 (4.25980043,0.88613605
5) tEnd=1 other=1 otherT=0.912837923 otherIndex=8 windSum=? windValue=1 oppValue
=0 | |
| 28 debugShowActiveSpans id=4 (6,1 0,2) t=0 (6,1) tEnd=0.543879805 other=3 otherT=1
otherIndex=8 windSum=? windValue=1 oppValue=0 | |
| 29 debugShowActiveSpans id=4 (6,1 0,2) t=0.543879805 (2.73672128,1.54387975) tEnd=0
.629851852 other=1 otherT=0.691654855 otherIndex=3 windSum=? windValue=1 oppValu
e=0 | |
| 30 debugShowActiveSpans id=4 (6,1 0,2) t=0.629851852 (2.22088885,1.62985182) tEnd=0
.961639898 other=3 otherT=0.633333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 31 debugShowActiveSpans id=4 (6,1 0,2) t=0.961639898 (0.230160609,1.96163988) tEnd=
1 other=1 otherT=0.0764226429 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 32 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0 (0,1) tEnd=0.0764226429 other=2
otherT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 33 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.0764226429 (0.230160609,1.961639
88) tEnd=0.238109917 other=4 otherT=0.961639898 otherIndex=3 windSum=? windValue
=1 oppValue=0 | |
| 34 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.238109917 (0.741329789,2.9436690
8) tEnd=0.691654855 other=3 otherT=0.281761651 otherIndex=1 windSum=? windValue=
1 oppValue=0 | |
| 35 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.691654855 (2.73672128,1.54387975
) tEnd=0.833333333 other=4 otherT=0.543879805 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 36 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.833333333 (3.65740752,1) tEnd=0.
860977989 other=2 otherT=0.268518519 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 37 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.860977989 (3.85939074,0.94043934
3) tEnd=0.860978176 other=3 otherT=0.83051493 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 38 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.860978176 (3.85939217,0.94043904
5) tEnd=0.912837717 other=3 otherT=0.830515061 otherIndex=5 windSum=? windValue=
1 oppValue=0 | |
| 39 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.912837717 (4.25979853,0.88613623
4) tEnd=0.912837923 other=3 otherT=0.867315861 otherIndex=6 windSum=? windValue=
1 oppValue=0 | |
| 40 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.912837923 (4.25980043,0.88613605
5) tEnd=1 other=3 otherT=0.867316009 otherIndex=7 windSum=? windValue=1 oppValue
=0 | |
| 41 debugShowActiveSpans id=2 (5,1 0,1) t=0 (5,1) tEnd=0.268518519 other=1 otherT=1
otherIndex=9 windSum=? windValue=1 oppValue=0 | |
| 42 debugShowActiveSpans id=2 (5,1 0,1) t=0.268518519 (3.65740752,1) tEnd=0.28332811
3 other=1 otherT=0.833333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 43 debugShowActiveSpans id=2 (5,1 0,1) t=0.283328113 (3.58335948,1) tEnd=1 other=3
otherT=0.803214143 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 44 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 45 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=1 tEnd=0.867316009 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 46 debugShowSort [1] {{6,1}, {0,2}} tStart=0 tEnd=0.543879805 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 47 findTop xyE=(6,1) xyS=(4.25980043,0.886136055) | |
| 48 findTop dxyE=(15,3) dxyS=(11.3363714,-1.03721189) cross=-49.5672913 bumpsUp=true | |
| 49 markWinding id=3 (0,2 1,5 1,0 6,1) t=0.867316009 [7] (4.25980043,0.886136055) tE
nd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 50 markWinding id=4 (6,1 0,2) t=0 [0] (6,1) tEnd=0.543879805 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 51 markWinding id=3 (0,2 1,5 1,0 6,1) t=0.867316009 [7] (4.25980043,0.886136055) tE
nd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 52 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 53 findNextOp simple | |
| 54 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.867316009 [7] (4.25980043,0.886136055)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 55 bridgeOp current id=3 from=(4.25980043,0.886136055) to=(6,1) | |
| 56 path.moveTo(4.25980043,0.886136055); | |
| 57 path.cubicTo(4.76118517,0.840262294, 5.33658028,0.867316008, 6,1); | |
| 58 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 59 debugShowSort [0] {{6,1}, {0,2}} tStart=0.543879805 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 60 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.691654855 tEnd=0.8333333
33 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 61 debugShowSort [2] {{6,1}, {0,2}} tStart=0.543879805 tEnd=0.629851852 sign=-1 win
dValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 62 debugShowSort [3] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.691654855 tEnd=0.2381099
17 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 63 findNextOp firstIndex=[0] sign=1 | |
| 64 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 65 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.691654855 [3] (2.73672128,1.54387975)
tEnd=0.833333333 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 66 findNextOp chase.append id=1 | |
| 67 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 68 markDoneBinary id=4 (6,1 0,2) t=0.543879805 [1] (2.73672128,1.54387975) tEnd=0.6
29851852 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 69 findNextOp chase.append id=4 | |
| 70 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 71 markWinding id=1 (0,1 1,6 2,0 5,1) t=0.238109917 [2] (0.741329789,2.94366908) tE
nd=0.691654855 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 72 findNextOp chase.append id=1 | |
| 73 markDoneBinary id=4 (6,1 0,2) t=0 [0] (6,1) tEnd=0.543879805 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 74 findNextOp from:[4] to:[1] start=3 end=2 | |
| 75 bridgeOp current id=4 from=(6,1) to=(2.73672128,1.54387975) | |
| 76 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 77 debugShowSort [3] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.238109917 tEnd=0.6916548
55 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 78 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.281761651 tEnd=0.6333333
33 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 79 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.238109917 tEnd=0.0764226
429 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 80 debugShowSort [2] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.281761651 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 81 findNextOp firstIndex=[3] sign=-1 | |
| 82 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 83 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.281761651 [1] (0.741329789,2.94366908)
tEnd=0.633333333 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 84 findNextOp chase.append id=3 | |
| 85 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 86 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.0764226429 [1] (0.230160609,1.96163988
) tEnd=0.238109917 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 87 findNextOp chase.append id=1 | |
| 88 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 89 markWinding id=3 (0,2 1,5 1,0 6,1) t=0 [0] (0,2) tEnd=0.281761651 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 90 markWinding id=4 (6,1 0,2) t=0.961639898 [3] (0.230160609,1.96163988) tEnd=1 new
WindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 91 findNextOp chase.append id=4 | |
| 92 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.238109917 [2] (0.741329789,2.94366908)
tEnd=0.691654855 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 93 findNextOp from:[1] to:[3] start=1 end=0 | |
| 94 bridgeOp current id=1 from=(2.73672128,1.54387975) to=(0.741329789,2.94366908) | |
| 95 path.lineTo(2.73672128,1.54387975); | |
| 96 path.cubicTo(1.84923673,2.27202392, 1.2463032,3.29839373, 0.741329789,2.94366908
); | |
| 97 findNextOp simple | |
| 98 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0 [0] (0,2) tEnd=0.281761651 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 99 bridgeOp current id=3 from=(0.741329789,2.94366908) to=(0,2) | |
| 100 path.cubicTo(0.484133661,3.05545282, 0.281761646,2.84528494, 0,2); | |
| 101 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 102 debugShowSort [2] {{6,1}, {0,2}} tStart=0.961639898 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 103 debugShowSort [3] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.0764226429 tEnd=0.238109
917 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 104 debugShowSort [0] {{6,1}, {0,2}} tStart=0.961639898 tEnd=0.629851852 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 105 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.0764226429 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 106 findNextOp firstIndex=[2] sign=-1 | |
| 107 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 108 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 109 markDoneBinary id=4 (6,1 0,2) t=0.629851852 [2] (2.22088885,1.62985182) tEnd=0.9
61639898 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 110 findNextOp chase.append id=4 | |
| 111 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 112 markWinding id=1 (0,1 1,6 2,0 5,1) t=0 [0] (0,1) tEnd=0.0764226429 newWindSum=1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 113 markWinding id=2 (5,1 0,1) t=0.283328113 [2] (3.58335948,1) tEnd=1 newWindSum=1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 114 findNextOp chase.append id=2 | |
| 115 markDoneBinary id=4 (6,1 0,2) t=0.961639898 [3] (0.230160609,1.96163988) tEnd=1
newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 116 findNextOp from:[4] to:[1] start=1 end=0 | |
| 117 bridgeOp current id=4 from=(0,2) to=(0.230160609,1.96163988) | |
| 118 findNextOp simple | |
| 119 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0 [0] (0,1) tEnd=0.0764226429 newWindSum
=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 120 bridgeOp current id=1 from=(0.230160609,1.96163988) to=(0,1) | |
| 121 path.lineTo(0.230160609,1.96163988); | |
| 122 path.cubicTo(0.152845293,1.69998181, 0.0764226392,1.38211322, 0,1); | |
| 123 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 124 debugShowSort [1] {{5,1}, {0,1}} tStart=0.283328113 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 125 debugShowSort [2] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.803214143 tEnd=0.6333333
33 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 126 debugShowSort [3] {{5,1}, {0,1}} tStart=0.283328113 tEnd=0.268518519 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 127 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.803214143 tEnd=0.8305149
3 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 128 findNextOp firstIndex=[1] sign=-1 | |
| 129 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 130 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.633333333 [2] (2.22088885,1.62985182)
tEnd=0.803214143 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 131 findNextOp chase.append id=3 | |
| 132 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 133 markDoneBinary id=2 (5,1 0,1) t=0.268518519 [1] (3.65740752,1) tEnd=0.283328113
newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 134 findNextOp chase.append id=2 | |
| 135 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 136 markWinding id=3 (0,2 1,5 1,0 6,1) t=0.803214143 [3] (3.58335948,1) tEnd=0.83051
493 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 137 findNextOp chase.append id=3 | |
| 138 markDoneBinary id=2 (5,1 0,1) t=0.283328113 [2] (3.58335948,1) tEnd=1 newWindSum
=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 139 findNextOp from:[2] to:[3] start=3 end=4 | |
| 140 bridgeOp current id=2 from=(0,1) to=(3.58335948,1) | |
| 141 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 142 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.83051493 tEnd=0.80321414
3 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 143 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860977989 tEnd=0.8333333
33 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 144 debugShowSort [2] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860977989 tEnd=0.8609781
76 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 145 debugShowSort [3] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.83051493 tEnd=0.83051506
1 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 146 findNextOp firstIndex=[0] sign=1 | |
| 147 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 148 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.833333333 [4] (3.65740752,1) tEnd=0.86
0977989 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 149 findNextOp chase.append id=1 | |
| 150 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 151 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.860977989 [5] (3.85939074,0.940439343)
tEnd=0.860978176 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 152 findNextOp chase.append id=1 | |
| 153 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 154 markWinding id=3 (0,2 1,5 1,0 6,1) t=0.83051493 [4] (3.85939074,0.940439343) tEn
d=0.830515061 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 155 findNextOp chase.append id=3 | |
| 156 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.803214143 [3] (3.58335948,1) tEnd=0.83
051493 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 157 findNextOp from:[3] to:[3] start=4 end=5 | |
| 158 bridgeOp current id=3 from=(3.58335948,1) to=(3.85939074,0.940439343) | |
| 159 path.lineTo(3.58335948,1); | |
| 160 path.cubicTo(3.67248249,0.97763288, 3.76445246,0.957684338, 3.85939074,0.9404393
43); | |
| 161 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 162 debugShowSort [2] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.830515061 tEnd=0.8305149
3 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 163 debugShowSort [3] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860978176 tEnd=0.8609779
89 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 164 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.830515061 tEnd=0.8673158
61 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 165 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860978176 tEnd=0.9128377
17 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 166 findNextOp firstIndex=[2] sign=1 | |
| 167 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 168 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 169 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.830515061 [5] (3.85939217,0.940439045)
tEnd=0.867315861 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 170 findNextOp chase.append id=3 | |
| 171 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 172 markWinding id=1 (0,1 1,6 2,0 5,1) t=0.860978176 [6] (3.85939217,0.940439045) tE
nd=0.912837717 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 173 findNextOp chase.append id=1 | |
| 174 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.83051493 [4] (3.85939074,0.940439343)
tEnd=0.830515061 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 175 findNextOp from:[3] to:[1] start=6 end=7 | |
| 176 bridgeOp current id=3 from=(3.85939074,0.940439343) to=(3.85939217,0.940439045) | |
| 177 path.cubicTo(3.85939145,0.940439224, 3.85939169,0.940439165, 3.85939217,0.940439
045); | |
| 178 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 179 debugShowSort [0] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.912837717 tEnd=0.8609781
76 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 180 debugShowSort [1] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.867315861 tEnd=0.8305150
61 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 181 debugShowSort [2] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.912837717 tEnd=0.9128379
23 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 182 debugShowSort [3] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.867315861 tEnd=0.8673160
09 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 183 findNextOp firstIndex=[0] sign=1 | |
| 184 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 185 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 186 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.912837717 [7] (4.25979853,0.886136234)
tEnd=0.912837923 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 187 findNextOp chase.append id=1 | |
| 188 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 189 markWinding id=3 (0,2 1,5 1,0 6,1) t=0.867315861 [6] (4.25979853,0.886136234) tE
nd=0.867316009 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 190 findNextOp chase.append id=3 | |
| 191 markDoneBinary id=1 (0,1 1,6 2,0 5,1) t=0.860978176 [6] (3.85939217,0.940439045)
tEnd=0.912837717 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 192 findNextOp from:[1] to:[3] start=6 end=7 | |
| 193 bridgeOp current id=1 from=(3.85939217,0.940439045) to=(4.25979853,0.886136234) | |
| 194 path.cubicTo(3.98813701,0.909405351, 4.12151289,0.890467525, 4.25980043,0.886136
055); | |
| 195 path.close(); | |
| 196 debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.867315861 (4.25979853,0.88613623
4) tEnd=0.867316009 other=1 otherT=0.912837717 otherIndex=7 windSum=-1 windValue
=1 oppValue=0 | |
| 197 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.912837923 (4.25980043,0.88613605
5) tEnd=1 other=3 otherT=0.867316009 otherIndex=7 windSum=? windValue=1 oppValue
=0 | |
| 198 debugShowActiveSpans id=2 (5,1 0,1) t=0 (5,1) tEnd=0.268518519 other=1 otherT=1
otherIndex=9 windSum=? windValue=1 oppValue=0 | |
| 199 activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 200 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 201 debugShowSort [3] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.867315861 tEnd=0.8673160
09 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 202 debugShowSort [0] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.912837717 tEnd=0.8609781
76 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 203 debugShowSort [1] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.867315861 tEnd=0.8305150
61 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 204 debugShowSort [2] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.912837717 tEnd=0.9128379
23 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 205 findNextOp firstIndex=[3] sign=-1 | |
| 206 activeOp op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 207 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 208 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 209 markDoneBinary id=3 (0,2 1,5 1,0 6,1) t=0.867315861 [6] (4.25979853,0.886136234)
tEnd=0.867316009 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 210 findNextOp from:[3] to:[1] start=7 end=6 | |
| 211 bridgeOp current id=3 from=(4.25980043,0.886136055) to=(4.25979853,0.886136234) | |
| 212 path.moveTo(4.25980043,0.886136055); | |
| 213 path.cubicTo(4.25979948,0.886136115, 4.25979948,0.886136174, 4.25979853,0.886136
234); | |
| 214 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 215 debugShowSort [1] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860978176 tEnd=0.9128377
17 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 216 debugShowSort [2] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.830515061 tEnd=0.8305149
3 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 217 debugShowSort [3] {{0,1}, {1,6}, {2,0}, {5,1}} tStart=0.860978176 tEnd=0.8609779
89 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 218 debugShowSort [0] {{0,2}, {1,5}, {1,0}, {6,1}} tStart=0.830515061 tEnd=0.8673158
61 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 219 findNextOp firstIndex=[1] sign=-1 | |
| 220 activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 221 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 222 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 223 findNextOp from:[1] to:[3] start=5 end=4 | |
| 224 bridgeOp current id=1 from=(4.25979853,0.886136234) to=(3.85939217,0.940439045) | |
| 225 path.cubicTo(4.12151289,0.890467525, 3.98813701,0.909405351, 3.85939217,0.940439
045); | |
| 226 debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.912837923 (4.25980043,0.88613605
5) tEnd=1 other=3 otherT=0.867316009 otherIndex=7 windSum=? windValue=1 oppValue
=0 | |
| 227 debugShowActiveSpans id=2 (5,1 0,1) t=0 (5,1) tEnd=0.268518519 other=1 otherT=1
otherIndex=9 windSum=? windValue=1 oppValue=0 | |
| 228 </div> | |
| 229 | |
| 230 <div id="cubicOp35da"> | |
| 231 {{x = 0.44618727783085621, y = 2.2840286415243063}, {x = 0.51170845243761109, y
= 2.4044088819954914}, {x = 0.57783675570457882, y = 2.4985733182515446}, {x = 0
.64483584772311509, y = 2.5694222112973661}} | |
| 232 {{x = 0.64244110111854291, y = 2.5673840215265367}, {x = 0.63479413812245555, y
= 2.5620057200094775}, {x = 0.64115438240274059, y = 2.533597555954064}, {x = 0.
6620248993310307, y = 2.4876932484482714}} | |
| 233 </div> | |
| 234 | |
| 235 <div id="cubicOp38d"> | |
| 236 SimplifyNew_Test [cubicOp38d] | |
| 237 {{0,1}, {0,6}, {3,2}, {4,1}}, | |
| 238 {{4,1}, {0,1}}, | |
| 239 op difference | |
| 240 {{2,3}, {1,4}, {1,0}, {6,0}}, | |
| 241 {{6,0}, {2,3}}, | |
| 242 debugShowCubicIntersection no self intersect {{2,3}, {1,4}, {1,0}, {6,0}} | |
| 243 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {1,4}, {1,0}, {6,0}} {{2,3}} wt
Ts[1]=1 {{6,0}} wnTs[0]=1 {{6,0}, {2,3}} wnTs[1]=0 | |
| 244 debugShowCubicIntersection no intersect {{2,3}, {1,4}, {1,0}, {6,0}} {{0,1}, {0,
6}, {3,2}, {4,1}} | |
| 245 debugShowCubicLineIntersection wtTs[0]=0.666666667 {{2,3}, {1,4}, {1,0}, {6,0}}
{{2.518518518518519,0.99999999999999967}} wnTs[0]=0.37037 {{4,1}, {0,1}} | |
| 246 debugShowCubicLineIntersection no intersect {{0,1}, {0,6}, {3,2}, {4,1}} {{6,0},
{2,3}} | |
| 247 debugShowLineIntersection no intersect {{6,0}, {2,3}} {{4,1}, {0,1}} | |
| 248 debugShowCubicIntersection no self intersect {{0,1}, {0,6}, {3,2}, {4,1}} | |
| 249 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {0,6}, {3,2}, {4,1}} {{0,1}} wt
Ts[1]=1 {{4,1}} wnTs[0]=1 {{4,1}, {0,1}} wnTs[1]=0 | |
| 250 debugShowActiveSpans id=3 (2,3 1,4 1,0 6,0) t=0 (2,3) tEnd=0.666666667 other=4 o
therT=1 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 251 debugShowActiveSpans id=3 (2,3 1,4 1,0 6,0) t=0.666666667 (2.51851845,1) tEnd=1
other=2 otherT=0.37037037 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 252 debugShowActiveSpans id=4 (6,0 2,3) t=0 (6,0) tEnd=1 other=3 otherT=1 otherIndex
=2 windSum=? windValue=1 oppValue=0 | |
| 253 debugShowActiveSpans id=1 (0,1 0,6 3,2 4,1) t=0 (0,1) tEnd=1 other=2 otherT=1 ot
herIndex=2 windSum=? windValue=1 oppValue=0 | |
| 254 debugShowActiveSpans id=2 (4,1 0,1) t=0 (4,1) tEnd=0.37037037 other=1 otherT=1 o
therIndex=1 windSum=? windValue=1 oppValue=0 | |
| 255 debugShowActiveSpans id=2 (4,1 0,1) t=0.37037037 (2.51851845,1) tEnd=1 other=3 o
therT=0.666666667 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 256 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 257 debugShowSort [0] {{2,3}, {1,4}, {1,0}, {6,0}} tStart=1 tEnd=0.666666667 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 258 debugShowSort [1] {{6,0}, {2,3}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? -
1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 259 findTop xyE=(6,0) xyS=(2.51851845,1) | |
| 260 findTop dxyE=(15,0) dxyS=(6.33333349,-5) cross=-75 bumpsUp=false | |
| 261 markWinding id=3 (2,3 1,4 1,0 6,0) t=0.666666667 [1] (2.51851845,1) tEnd=1 newWi
ndSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 262 markWinding id=4 (6,0 2,3) t=0 [0] (6,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum
=? windSum=? windValue=1 | |
| 263 markWinding id=3 (2,3 1,4 1,0 6,0) t=0 [0] (2,3) tEnd=0.666666667 newWindSum=-1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 264 markWinding id=3 (2,3 1,4 1,0 6,0) t=0.666666667 [1] (2.51851845,1) tEnd=1 newWi
ndSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 265 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 266 markDoneBinary id=3 (2,3 1,4 1,0 6,0) t=0.666666667 [1] (2.51851845,1) tEnd=1 ne
wWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 267 markDoneBinary id=4 (6,0 2,3) t=0 [0] (6,0) tEnd=1 newWindSum=-1 newOppSum=0 opp
Sum=0 windSum=-1 windValue=1 | |
| 268 markDoneBinary id=3 (2,3 1,4 1,0 6,0) t=0 [0] (2,3) tEnd=0.666666667 newWindSum=
-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 269 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 270 debugShowSort [0] {{2,3}, {1,4}, {1,0}, {6,0}} tStart=0.666666667 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 271 debugShowSort [1] {{4,1}, {0,1}} tStart=0.37037037 tEnd=1 sign=-1 windValue=1 wi
ndSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 272 debugShowSort [2] {{2,3}, {1,4}, {1,0}, {6,0}} tStart=0.666666667 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 273 debugShowSort [3] {{4,1}, {0,1}} tStart=0.37037037 tEnd=0 sign=1 windValue=1 win
dSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 274 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 275 debugShowSort [0] {{2,3}, {1,4}, {1,0}, {6,0}} tStart=0.666666667 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 276 debugShowSort [1] {{4,1}, {0,1}} tStart=0.37037037 tEnd=1 sign=-1 windValue=1 wi
ndSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 277 debugShowSort [2] {{2,3}, {1,4}, {1,0}, {6,0}} tStart=0.666666667 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 278 debugShowSort [3] {{4,1}, {0,1}} tStart=0.37037037 tEnd=0 sign=1 windValue=1 win
dSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 279 markWinding id=2 (4,1 0,1) t=0.37037037 [1] (2.51851845,1) tEnd=1 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 280 markWinding id=1 (0,1 0,6 3,2 4,1) t=0 [0] (0,1) tEnd=1 newWindSum=1 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 281 markWinding id=2 (4,1 0,1) t=0 [0] (4,1) tEnd=0.37037037 newWindSum=1 newOppSum=
0 oppSum=? windSum=? windValue=1 | |
| 282 markWinding id=2 (4,1 0,1) t=0 [0] (4,1) tEnd=0.37037037 newWindSum=1 newOppSum=
-1 oppSum=0 windSum=1 windValue=1 | |
| 283 </div> | |
| 284 | |
| 285 <div id="cubicOp38da"> | |
| 286 {{0,1}, {0,6}, {3,2}, {4,1}}, | |
| 287 {{2,3}, {1,4}, {1,0}, {6,0}}, | |
| 288 computed quadratics set 2 | |
| 289 {{2,3}, {1.46296296,3.41666667}, {1.48148148,2.66666667}}, | |
| 290 {{1.48148148,2.66666667}, {1.5,1.91666667}, {2.51851852,1}}, | |
| 291 {{2.51851852,1}, {3.53703704,0.0833333333}, {6,0}}, | |
| 292 computed quadratics set 1 | |
| 293 {{0,1}, {0.0311951689,3.11686153}, {0.643808143,3.37716704}}, | |
| 294 {{0.643808143,3.37716704}, {1.25642112,3.63747255}, {2.07610987,2.9396429}}, | |
| 295 {{2.07610987,2.9396429}, {2.89579862,2.24181325}, {3.54822112,1.48426931}}, | |
| 296 {{3.54822112,1.48426931}, {3.81269436,1.19058669}, {4,1}}, | |
| 297 </div> | |
| 298 | |
| 299 <div id="cubicOp39d"> | |
| 300 SimplifyNew_Test [cubicOp39d] | |
| 301 {{0,1}, {2,3}, {5,1}, {4,3}}, | |
| 302 {{4,3}, {0,1}}, | |
| 303 op difference | |
| 304 {{1,5}, {3,4}, {1,0}, {3,2}}, | |
| 305 {{3,2}, {1,5}}, | |
| 306 debugShowCubicIntersection no self intersect {{0,1}, {2,3}, {5,1}, {4,3}} | |
| 307 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {2,3}, {5,1}, {4,3}} {{0,1}} wt
Ts[1]=0.285714286 {{1.8425655976676385,1.9212827988338192}} wtTs[2]=1 {{4,3}} wn
Ts[0]=1 {{4,3}, {0,1}} wnTs[1]=0.539358601 wnTs[2]=0 | |
| 308 debugShowCubicIntersection wtTs[0]=0.311007457 {{0,1}, {2,3}, {5,1}, {4,3}} {{2.
005809685956442,1.9459962410665144}} wnTs[0]=0.589885 {{1,5}, {3,4}, {1,0}, {3,2
}} | |
| 309 debugShowCubicLineIntersection no intersect {{0,1}, {2,3}, {5,1}, {4,3}} {{3,2},
{1,5}} | |
| 310 debugShowCubicLineIntersection wtTs[0]=0.576935809 {{1,5}, {3,4}, {1,0}, {3,2}}
{{2.0036431374219883,2.0018215687109939}} wnTs[0]=0.499089 {{4,3}, {0,1}} | |
| 311 debugShowLineIntersection wtTs[0]=0.3125 {{4,3}, {0,1}} {{2.75,2.375}} wnTs[0]=0
.125 {{3,2}, {1,5}} | |
| 312 debugShowCubicIntersection no self intersect {{1,5}, {3,4}, {1,0}, {3,2}} | |
| 313 debugShowCubicLineIntersection wtTs[0]=0 {{1,5}, {3,4}, {1,0}, {3,2}} {{1,5}} wt
Ts[1]=0.285714286 {{1.9212827988338184,3.6180758017492725}} wtTs[2]=1 {{3,2}} wn
Ts[0]=1 {{3,2}, {1,5}} wnTs[1]=0.539358601 wnTs[2]=0 | |
| 314 debugShowActiveSpans id=1 (0,1 2,3 5,1 4,3) t=0 (0,1) tEnd=0.285714286 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 315 debugShowActiveSpans id=1 (0,1 2,3 5,1 4,3) t=0.285714286 (1.84256566,1.92128277
) tEnd=0.311007457 other=2 otherT=0.539358601 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 316 debugShowActiveSpans id=1 (0,1 2,3 5,1 4,3) t=0.311007457 (2.00580978,1.94599628
) tEnd=1 other=3 otherT=0.589885081 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 317 debugShowActiveSpans id=2 (4,3 0,1) t=0 (4,3) tEnd=0.3125 other=1 otherT=1 other
Index=3 windSum=? windValue=1 oppValue=0 | |
| 318 debugShowActiveSpans id=2 (4,3 0,1) t=0.3125 (2.75,2.375) tEnd=0.499089216 other
=4 otherT=0.125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 319 debugShowActiveSpans id=2 (4,3 0,1) t=0.499089216 (2.00364304,2.00182152) tEnd=0
.539358601 other=3 otherT=0.576935809 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 320 debugShowActiveSpans id=2 (4,3 0,1) t=0.539358601 (1.84256566,1.92128277) tEnd=1
other=1 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 321 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0 (1,5) tEnd=0.285714286 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 322 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.285714286 (1.92128277,3.61807585
) tEnd=0.576935809 other=4 otherT=0.539358601 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 323 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.576935809 (2.00364304,2.00182152
) tEnd=0.589885081 other=2 otherT=0.499089216 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 324 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.589885081 (2.00580978,1.94599628
) tEnd=1 other=1 otherT=0.311007457 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 325 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=? windValue=1 oppValue=0 | |
| 326 debugShowActiveSpans id=4 (3,2 1,5) t=0.125 (2.75,2.375) tEnd=0.539358601 other=
2 otherT=0.3125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 327 debugShowActiveSpans id=4 (3,2 1,5) t=0.539358601 (1.92128277,3.61807585) tEnd=1
other=3 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 328 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 329 debugShowSort [0] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0 tEnd=0.285714286 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 330 debugShowSort [1] {{4,3}, {0,1}} tStart=1 tEnd=0.539358601 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 331 findTop xyE=(0,1) xyS=(1.84256566,1.92128277) | |
| 332 findTop dxyE=(6,6) dxyS=(6.48979568,1.10204077) cross=-32.3265305 bumpsUp=false | |
| 333 markWinding id=1 (0,1 2,3 5,1 4,3) t=0 [0] (0,1) tEnd=0.285714286 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 334 markWinding id=2 (4,3 0,1) t=0.539358601 [3] (1.84256566,1.92128277) tEnd=1 newW
indSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 335 markWinding id=1 (0,1 2,3 5,1 4,3) t=0 [0] (0,1) tEnd=0.285714286 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 336 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 337 findNextOp simple | |
| 338 markDoneBinary id=1 (0,1 2,3 5,1 4,3) t=0 [0] (0,1) tEnd=0.285714286 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 339 bridgeOp current id=1 from=(1.84256566,1.92128277) to=(0,1) | |
| 340 path.moveTo(1.84256566,1.92128277); | |
| 341 path.cubicTo(1.22448969,1.8163265, 0.571428597,1.57142854, 0,1); | |
| 342 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 343 debugShowSort [0] {{4,3}, {0,1}} tStart=0.539358601 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 344 debugShowSort [1] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.285714286 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 345 debugShowSort [2] {{4,3}, {0,1}} tStart=0.539358601 tEnd=0.499089216 sign=1 wind
Value=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 346 debugShowSort [3] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.285714286 tEnd=0.3110074
57 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 347 findNextOp firstIndex=[0] sign=-1 | |
| 348 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 349 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 350 markWinding id=2 (4,3 0,1) t=0.499089216 [2] (2.00364304,2.00182152) tEnd=0.5393
58601 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 351 findNextOp chase.append id=2 | |
| 352 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 353 markWinding id=1 (0,1 2,3 5,1 4,3) t=0.285714286 [1] (1.84256566,1.92128277) tEn
d=0.311007457 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 354 findNextOp chase.append id=1 | |
| 355 markDoneBinary id=2 (4,3 0,1) t=0.539358601 [3] (1.84256566,1.92128277) tEnd=1 n
ewWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 356 findNextOp from:[2] to:[1] start=1 end=2 | |
| 357 bridgeOp current id=2 from=(0,1) to=(1.84256566,1.92128277) | |
| 358 path.lineTo(1.84256566,1.92128277); | |
| 359 path.close(); | |
| 360 debugShowActiveSpans id=1 (0,1 2,3 5,1 4,3) t=0.285714286 (1.84256566,1.92128277
) tEnd=0.311007457 other=2 otherT=0.539358601 otherIndex=3 windSum=-1 windValue=
1 oppValue=0 | |
| 361 debugShowActiveSpans id=1 (0,1 2,3 5,1 4,3) t=0.311007457 (2.00580978,1.94599628
) tEnd=1 other=3 otherT=0.589885081 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 362 debugShowActiveSpans id=2 (4,3 0,1) t=0 (4,3) tEnd=0.3125 other=1 otherT=1 other
Index=3 windSum=? windValue=1 oppValue=0 | |
| 363 debugShowActiveSpans id=2 (4,3 0,1) t=0.3125 (2.75,2.375) tEnd=0.499089216 other
=4 otherT=0.125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 364 debugShowActiveSpans id=2 (4,3 0,1) t=0.499089216 (2.00364304,2.00182152) tEnd=0
.539358601 other=3 otherT=0.576935809 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 365 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0 (1,5) tEnd=0.285714286 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 366 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.285714286 (1.92128277,3.61807585
) tEnd=0.576935809 other=4 otherT=0.539358601 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 367 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.576935809 (2.00364304,2.00182152
) tEnd=0.589885081 other=2 otherT=0.499089216 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 368 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0.589885081 (2.00580978,1.94599628
) tEnd=1 other=1 otherT=0.311007457 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 369 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=? windValue=1 oppValue=0 | |
| 370 debugShowActiveSpans id=4 (3,2 1,5) t=0.125 (2.75,2.375) tEnd=0.539358601 other=
2 otherT=0.3125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 371 debugShowActiveSpans id=4 (3,2 1,5) t=0.539358601 (1.92128277,3.61807585) tEnd=1
other=3 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 372 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 373 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 374 debugShowSort [3] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.285714286 tEnd=0.3110074
57 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 375 debugShowSort [0] {{4,3}, {0,1}} tStart=0.539358601 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 376 debugShowSort [1] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.285714286 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 377 debugShowSort [2] {{4,3}, {0,1}} tStart=0.539358601 tEnd=0.499089216 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 378 findNextOp firstIndex=[3] sign=-1 | |
| 379 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 380 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 381 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 382 markDoneBinary id=1 (0,1 2,3 5,1 4,3) t=0.285714286 [1] (1.84256566,1.92128277)
tEnd=0.311007457 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 383 findNextOp from:[1] to:[2] start=3 end=2 | |
| 384 bridgeOp current id=1 from=(2.00580978,1.94599628) to=(1.84256566,1.92128277) | |
| 385 path.moveTo(2.00580978,1.94599628); | |
| 386 path.cubicTo(1.9517231,1.93876874, 1.89728141,1.93057418, 1.84256566,1.92128277)
; | |
| 387 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 388 debugShowSort [1] {{4,3}, {0,1}} tStart=0.499089216 tEnd=0.539358601 sign=-1 win
dValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 389 debugShowSort [2] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.576935809 tEnd=0.2857142
86 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 390 debugShowSort [3] {{4,3}, {0,1}} tStart=0.499089216 tEnd=0.3125 sign=1 windValue
=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 391 debugShowSort [0] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.576935809 tEnd=0.5898850
81 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 392 findNextOp firstIndex=[1] sign=-1 | |
| 393 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 394 markDoneBinary id=3 (1,5 3,4 1,0 3,2) t=0.285714286 [1] (1.92128277,3.61807585)
tEnd=0.576935809 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 395 findNextOp chase.append id=3 | |
| 396 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 397 markDoneBinary id=2 (4,3 0,1) t=0.3125 [1] (2.75,2.375) tEnd=0.499089216 newWind
Sum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 398 findNextOp chase.append id=2 | |
| 399 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 400 markWinding id=3 (1,5 3,4 1,0 3,2) t=0.576935809 [2] (2.00364304,2.00182152) tEn
d=0.589885081 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 401 findNextOp chase.append id=3 | |
| 402 markDoneBinary id=2 (4,3 0,1) t=0.499089216 [2] (2.00364304,2.00182152) tEnd=0.5
39358601 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 403 findNextOp from:[2] to:[3] start=2 end=3 | |
| 404 bridgeOp current id=2 from=(1.84256566,1.92128277) to=(2.00364304,2.00182152) | |
| 405 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=1 | |
| 406 debugShowSort [2] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.589885081 tEnd=0.5769358
09 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 407 debugShowSort [3] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.311007457 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 408 debugShowSort [0] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.589885081 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 409 debugShowSort [1] {{0,1}, {2,3}, {5,1}, {4,3}} tStart=0.311007457 tEnd=0.2857142
86 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 410 findNextOp firstIndex=[2] sign=1 | |
| 411 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 412 markDoneBinary id=1 (0,1 2,3 5,1 4,3) t=0.311007457 [2] (2.00580978,1.94599628)
tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 413 markDoneBinary id=2 (4,3 0,1) t=0 [0] (4,3) tEnd=0.3125 newWindSum=-1 newOppSum=
-1 oppSum=? windSum=? windValue=1 | |
| 414 findNextOp chase.append id=2 | |
| 415 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 416 markDoneBinary id=3 (1,5 3,4 1,0 3,2) t=0.589885081 [3] (2.00580978,1.94599628)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 417 markDoneBinary id=4 (3,2 1,5) t=0 [0] (3,2) tEnd=0.125 newWindSum=-1 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 418 findNextOp chase.append id=4 | |
| 419 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 420 markDoneBinary id=3 (1,5 3,4 1,0 3,2) t=0.576935809 [2] (2.00364304,2.00182152)
tEnd=0.589885081 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 421 findNextOp from:[3] to:[1] start=2 end=1 | |
| 422 bridgeOp current id=3 from=(2.00364304,2.00182152) to=(2.00580978,1.94599628) | |
| 423 path.lineTo(2.00364304,2.00182152); | |
| 424 path.cubicTo(2.00425649,1.98283899, 2.0049727,1.96422386, 2.00580978,1.94599628)
; | |
| 425 path.close(); | |
| 426 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 427 debugShowSort [0] {{3,2}, {1,5}} tStart=0.125 tEnd=0 sign=1 windValue=1 windSum=
-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 428 debugShowSort [1] {{4,3}, {0,1}} tStart=0.3125 tEnd=0.499089216 sign=-1 windValu
e=1 windSum=-1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 429 debugShowSort [2] {{3,2}, {1,5}} tStart=0.125 tEnd=0.539358601 sign=-1 windValue
=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 430 debugShowSort [3] {{4,3}, {0,1}} tStart=0.3125 tEnd=0 sign=1 windValue=1 windSum
=-1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 431 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 432 debugShowSort [0] {{3,2}, {1,5}} tStart=0.125 tEnd=0 sign=1 windValue=1 windSum=
-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 433 debugShowSort [1] {{4,3}, {0,1}} tStart=0.3125 tEnd=0.499089216 sign=-1 windValu
e=1 windSum=-1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 434 debugShowSort [2] {{3,2}, {1,5}} tStart=0.125 tEnd=0.539358601 sign=-1 windValue
=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 435 debugShowSort [3] {{4,3}, {0,1}} tStart=0.3125 tEnd=0 sign=1 windValue=1 windSum
=-1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 436 markWinding id=4 (3,2 1,5) t=0.125 [1] (2.75,2.375) tEnd=0.539358601 newWindSum=
-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 437 debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0 (1,5) tEnd=0.285714286 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 438 debugShowActiveSpans id=4 (3,2 1,5) t=0.125 (2.75,2.375) tEnd=0.539358601 other=
2 otherT=0.3125 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 439 debugShowActiveSpans id=4 (3,2 1,5) t=0.539358601 (1.92128277,3.61807585) tEnd=1
other=3 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 440 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 441 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 442 debugShowSort [0] {{3,2}, {1,5}} tStart=0.539358601 tEnd=0.125 sign=1 windValue=
1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 443 debugShowSort [1] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.285714286 tEnd=0.5769358
09 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 444 debugShowSort [2] {{3,2}, {1,5}} tStart=0.539358601 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 445 debugShowSort [3] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.285714286 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 446 findNextOp firstIndex=[0] sign=1 | |
| 447 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 448 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 449 markWinding id=4 (3,2 1,5) t=0.539358601 [2] (1.92128277,3.61807585) tEnd=1 newW
indSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 450 markWinding id=3 (1,5 3,4 1,0 3,2) t=0 [0] (1,5) tEnd=0.285714286 newWindSum=1 n
ewOppSum=1 oppSum=? windSum=? windValue=1 | |
| 451 findNextOp chase.append id=3 | |
| 452 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 453 markDoneBinary id=4 (3,2 1,5) t=0.125 [1] (2.75,2.375) tEnd=0.539358601 newWindS
um=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 454 findNextOp from:[4] to:[3] start=1 end=0 | |
| 455 bridgeOp current id=4 from=(2.75,2.375) to=(1.92128277,3.61807585) | |
| 456 findNextOp simple | |
| 457 markDoneBinary id=3 (1,5 3,4 1,0 3,2) t=0 [0] (1,5) tEnd=0.285714286 newWindSum=
1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 458 bridgeOp current id=3 from=(1.92128277,3.61807585) to=(1,5) | |
| 459 path.moveTo(2.75,2.375); | |
| 460 path.lineTo(1.92128277,3.61807585); | |
| 461 path.cubicTo(1.8163265,4.18367338, 1.57142854,4.71428585, 1,5); | |
| 462 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=-1 | |
| 463 debugShowSort [2] {{3,2}, {1,5}} tStart=0.539358601 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 464 debugShowSort [3] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.285714286 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 465 debugShowSort [0] {{3,2}, {1,5}} tStart=0.539358601 tEnd=0.125 sign=1 windValue=
1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 466 debugShowSort [1] {{1,5}, {3,4}, {1,0}, {3,2}} tStart=0.285714286 tEnd=0.5769358
09 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 467 findNextOp firstIndex=[2] sign=-1 | |
| 468 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 469 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 470 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 471 markDoneBinary id=4 (3,2 1,5) t=0.539358601 [2] (1.92128277,3.61807585) tEnd=1 n
ewWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 472 findNextOp from:[4] to:[3] start=1 end=2 | |
| 473 bridgeOp current id=4 from=(1,5) to=(1.92128277,3.61807585) | |
| 474 </div> | |
| 475 | |
| 476 <div id="cubicOp39da"> | |
| 477 computed quadratics given | |
| 478 {{2.512,1.571}, {2.64,1.66}, {2.8,1.8}, {3,2}}, | |
| 479 {{2.41818762,1.98497726}, {2.82699049,2.00933065}, {3.20046793,1.99420472}, {3
.49861995,2.00359946}}, | |
| 480 computed quadratics set 1 | |
| 481 {{2.512,1.571}, {2.702,1.70225}, {3,2}}, | |
| 482 computed quadratics set 2 | |
| 483 {{2.41818762,1.98497726}, {2.79879886,2.00375569}, {3.125,2}}, | |
| 484 {{3.125,2}, {3.32670858,1.99910014}, {3.49861995,2.00359946}}, | |
| 485 </div> | |
| 486 | |
| 487 <div id="cubicOp40d"> | |
| 488 SimplifyNew_Test [cubicOp40d] | |
| 489 {{0,1}, {1,5}, {3,2}, {4,2}}, | |
| 490 {{4,2}, {0,1}}, | |
| 491 op difference | |
| 492 {{2,3}, {2,4}, {1,0}, {5,1}}, | |
| 493 {{5,1}, {2,3}}, | |
| 494 debugShowCubicIntersection no self intersect {{2,3}, {2,4}, {1,0}, {5,1}} | |
| 495 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {2,4}, {1,0}, {5,1}} {{2,3}} wt
Ts[1]=1 {{5,1}} wnTs[0]=1 {{5,1}, {2,3}} wnTs[1]=0 | |
| 496 debugShowCubicIntersection wtTs[0]=0 {{2,3}, {2,4}, {1,0}, {5,1}} {{2,3}} wtTs[1
]=0.226611502 {{1.915764455286163,3.0259142027140675}} wnTs[0]=0.5 {{0,1}, {1,5}
, {3,2}, {4,2}} wnTs[1]=0.481278074 | |
| 497 debugShowCubicLineIntersection wtTs[0]=0.601219833 {{2,3}, {2,4}, {1,0}, {5,1}}
{{2.2195247359544519,1.554881183988613}} wnTs[0]=0.445119 {{4,2}, {0,1}} | |
| 498 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,1}, {1,5}, {3,2}, {4,2}} {{2.0000
000000000009,2.9999999999999996}} wnTs[0]=1 {{5,1}, {2,3}} | |
| 499 debugShowLineIntersection wtTs[0]=0.454545455 {{5,1}, {2,3}} {{3.636363636363636
2,1.9090909090909089}} wnTs[0]=0.0909091 {{4,2}, {0,1}} | |
| 500 debugShowCubicIntersection no self intersect {{0,1}, {1,5}, {3,2}, {4,2}} | |
| 501 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {1,5}, {3,2}, {4,2}} {{0,1}} wt
Ts[1]=1 {{4,2}} wnTs[0]=1 {{4,2}, {0,1}} wnTs[1]=0 | |
| 502 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0 (2,3) tEnd=0.226611502 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 503 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0.226611502 (1.91576445,3.02591419
) tEnd=0.601219833 other=1 otherT=0.481278074 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 504 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0.601219833 (2.21952462,1.55488122
) tEnd=1 other=2 otherT=0.445118816 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 505 debugShowActiveSpans id=4 (5,1 2,3) t=0 (5,1) tEnd=0.454545455 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 506 debugShowActiveSpans id=4 (5,1 2,3) t=0.454545455 (3.63636374,1.90909088) tEnd=1
other=2 otherT=0.0909090909 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 507 debugShowActiveSpans id=4 (5,1 2,3) t=1 (2,3) tEnd=1 other=1 otherT=0.5 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 508 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0 (0,1) tEnd=0.481278074 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 509 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.481278074 (1.91576445,3.02591419
) tEnd=0.5 other=3 otherT=0.226611502 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 510 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=3 otherT=0
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 511 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 512 debugShowActiveSpans id=2 (4,2 0,1) t=0 (4,2) tEnd=0.0909090909 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 513 debugShowActiveSpans id=2 (4,2 0,1) t=0.0909090909 (3.63636374,1.90909088) tEnd=
0.445118816 other=4 otherT=0.454545455 otherIndex=1 windSum=? windValue=1 oppVal
ue=0 | |
| 514 debugShowActiveSpans id=2 (4,2 0,1) t=0.445118816 (2.21952462,1.55488122) tEnd=1
other=3 otherT=0.601219833 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 515 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 516 debugShowSort [0] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=1 tEnd=0.601219833 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 517 debugShowSort [1] {{5,1}, {2,3}} tStart=0 tEnd=0.454545455 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 518 findTop xyE=(5,1) xyS=(2.21952462,1.55488122) | |
| 519 findTop dxyE=(12,3) dxyS=(2.8990562,-4.19263649) cross=-59.0088043 bumpsUp=true | |
| 520 markWinding id=3 (2,3 2,4 1,0 5,1) t=0.601219833 [3] (2.21952462,1.55488122) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 521 markWinding id=4 (5,1 2,3) t=0 [0] (5,1) tEnd=0.454545455 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 522 markWinding id=3 (2,3 2,4 1,0 5,1) t=0.601219833 [3] (2.21952462,1.55488122) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 523 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 524 markDoneBinary id=3 (2,3 2,4 1,0 5,1) t=0.601219833 [3] (2.21952462,1.55488122)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 525 markDoneBinary id=4 (5,1 2,3) t=0 [0] (5,1) tEnd=0.454545455 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 526 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 527 debugShowSort [0] {{5,1}, {2,3}} tStart=0.454545455 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 528 debugShowSort [1] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0.445118816 sign=-1 wi
ndValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 529 debugShowSort [2] {{5,1}, {2,3}} tStart=0.454545455 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 530 debugShowSort [3] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0 sign=1 windValue=1 w
indSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 531 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 532 debugShowSort [0] {{5,1}, {2,3}} tStart=0.454545455 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 533 debugShowSort [1] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0.445118816 sign=-1 wi
ndValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 534 debugShowSort [2] {{5,1}, {2,3}} tStart=0.454545455 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 535 debugShowSort [3] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0 sign=1 windValue=1 w
indSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 536 markWinding id=2 (4,2 0,1) t=0.0909090909 [1] (3.63636374,1.90909088) tEnd=0.445
118816 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 537 markWinding id=4 (5,1 2,3) t=0.454545455 [1] (3.63636374,1.90909088) tEnd=1 newW
indSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 538 markWinding id=2 (4,2 0,1) t=0 [0] (4,2) tEnd=0.0909090909 newWindSum=1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 539 markWinding id=1 (0,1 1,5 3,2 4,2) t=0.5 [2] (2,3) tEnd=0.5 newWindSum=1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 540 markWinding id=1 (0,1 1,5 3,2 4,2) t=0.5 [3] (2,3) tEnd=1 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 541 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0 (2,3) tEnd=0.226611502 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 542 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0.226611502 (1.91576445,3.02591419
) tEnd=0.601219833 other=1 otherT=0.481278074 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 543 debugShowActiveSpans id=4 (5,1 2,3) t=0.454545455 (3.63636374,1.90909088) tEnd=1
other=2 otherT=0.0909090909 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 544 debugShowActiveSpans id=4 (5,1 2,3) t=1 (2,3) tEnd=1 other=1 otherT=0.5 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 545 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0 (0,1) tEnd=0.481278074 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 546 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.481278074 (1.91576445,3.02591419
) tEnd=0.5 other=3 otherT=0.226611502 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 547 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=3 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 548 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 549 debugShowActiveSpans id=2 (4,2 0,1) t=0 (4,2) tEnd=0.0909090909 other=1 otherT=1
otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 550 debugShowActiveSpans id=2 (4,2 0,1) t=0.0909090909 (3.63636374,1.90909088) tEnd=
0.445118816 other=4 otherT=0.454545455 otherIndex=1 windSum=1 windValue=1 oppVal
ue=0 | |
| 551 debugShowActiveSpans id=2 (4,2 0,1) t=0.445118816 (2.21952462,1.55488122) tEnd=1
other=3 otherT=0.601219833 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 552 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 553 markDoneBinary id=2 (4,2 0,1) t=0.0909090909 [1] (3.63636374,1.90909088) tEnd=0.
445118816 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 554 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 555 debugShowSort [0] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 556 debugShowSort [1] {{4,2}, {0,1}} tStart=0.445118816 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 557 debugShowSort [2] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=0.2266115
02 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 558 debugShowSort [3] {{4,2}, {0,1}} tStart=0.445118816 tEnd=0.0909090909 sign=1 win
dValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 559 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 560 debugShowSort [0] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 561 debugShowSort [1] {{4,2}, {0,1}} tStart=0.445118816 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 562 debugShowSort [2] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=0.2266115
02 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 563 debugShowSort [3] {{4,2}, {0,1}} tStart=0.445118816 tEnd=0.0909090909 sign=1 win
dValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 564 markWinding id=2 (4,2 0,1) t=0.445118816 [2] (2.21952462,1.55488122) tEnd=1 newW
indSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 565 markWinding id=1 (0,1 1,5 3,2 4,2) t=0 [0] (0,1) tEnd=0.481278074 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 566 markWinding id=3 (2,3 2,4 1,0 5,1) t=0.226611502 [2] (1.91576445,3.02591419) tEn
d=0.601219833 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 567 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0 (2,3) tEnd=0.226611502 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 568 debugShowActiveSpans id=3 (2,3 2,4 1,0 5,1) t=0.226611502 (1.91576445,3.02591419
) tEnd=0.601219833 other=1 otherT=0.481278074 otherIndex=1 windSum=-1 windValue=
1 oppValue=0 | |
| 569 debugShowActiveSpans id=4 (5,1 2,3) t=0.454545455 (3.63636374,1.90909088) tEnd=1
other=2 otherT=0.0909090909 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 570 debugShowActiveSpans id=4 (5,1 2,3) t=1 (2,3) tEnd=1 other=1 otherT=0.5 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 571 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0 (0,1) tEnd=0.481278074 other=2 o
therT=1 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 572 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.481278074 (1.91576445,3.02591419
) tEnd=0.5 other=3 otherT=0.226611502 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 573 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=3 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 574 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 575 debugShowActiveSpans id=2 (4,2 0,1) t=0 (4,2) tEnd=0.0909090909 other=1 otherT=1
otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 576 debugShowActiveSpans id=2 (4,2 0,1) t=0.445118816 (2.21952462,1.55488122) tEnd=1
other=3 otherT=0.601219833 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 577 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 578 findNextOp simple | |
| 579 markDoneBinary id=2 (4,2 0,1) t=0.445118816 [2] (2.21952462,1.55488122) tEnd=1 n
ewWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 580 bridgeOp current id=2 from=(2.21952462,1.55488122) to=(0,1) | |
| 581 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 582 debugShowSort [2] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.481278074 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 583 debugShowSort [3] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.226611502 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 584 debugShowSort [0] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.481278074 tEnd=0.5 sign=
-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 585 debugShowSort [1] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.226611502 tEnd=0.6012198
33 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 586 findNextOp firstIndex=[2] sign=1 | |
| 587 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 588 markDoneBinary id=3 (2,3 2,4 1,0 5,1) t=0 [0] (2,3) tEnd=0 newWindSum=-1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 589 markDoneBinary id=3 (2,3 2,4 1,0 5,1) t=0 [1] (2,3) tEnd=0.226611502 newWindSum=
-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 590 findNextOp chase.append id=3 | |
| 591 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 592 markDoneBinary id=1 (0,1 1,5 3,2 4,2) t=0.481278074 [1] (1.91576445,3.02591419)
tEnd=0.5 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 593 findNextOp chase.append id=1 | |
| 594 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 595 markDoneBinary id=1 (0,1 1,5 3,2 4,2) t=0 [0] (0,1) tEnd=0.481278074 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 596 findNextOp from:[1] to:[3] start=2 end=3 | |
| 597 bridgeOp current id=1 from=(0,1) to=(1.91576445,3.02591419) | |
| 598 path.moveTo(2.21952462,1.55488122); | |
| 599 path.lineTo(0,1); | |
| 600 path.cubicTo(0.481278062,2.92511225, 1.19418478,3.22882462, 1.91576445,3.0259141
9); | |
| 601 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 602 debugShowSort [2] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=0.2266115
02 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 603 debugShowSort [3] {{4,2}, {0,1}} tStart=0.445118816 tEnd=0.0909090909 sign=1 win
dValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 604 debugShowSort [0] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0.601219833 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 605 debugShowSort [1] {{4,2}, {0,1}} tStart=0.445118816 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 606 findNextOp firstIndex=[2] sign=1 | |
| 607 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 608 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 609 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 610 markDoneBinary id=3 (2,3 2,4 1,0 5,1) t=0.226611502 [2] (1.91576445,3.02591419)
tEnd=0.601219833 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 611 findNextOp from:[3] to:[2] start=2 end=3 | |
| 612 bridgeOp current id=3 from=(1.91576445,3.02591419) to=(2.21952462,1.55488122) | |
| 613 path.cubicTo(1.86140633,2.74398875, 1.8575213,2.07841325, 2.21952462,1.55488122)
; | |
| 614 path.close(); | |
| 615 debugShowActiveSpans id=4 (5,1 2,3) t=0.454545455 (3.63636374,1.90909088) tEnd=1
other=2 otherT=0.0909090909 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 616 debugShowActiveSpans id=4 (5,1 2,3) t=1 (2,3) tEnd=1 other=1 otherT=0.5 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 617 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=3 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 618 debugShowActiveSpans id=1 (0,1 1,5 3,2 4,2) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 619 debugShowActiveSpans id=2 (4,2 0,1) t=0 (4,2) tEnd=0.0909090909 other=1 otherT=1
otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 620 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 621 findNextOp simple | |
| 622 markDoneBinary id=1 (0,1 1,5 3,2 4,2) t=0.5 [2] (2,3) tEnd=0.5 newWindSum=1 newO
ppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 623 markDoneBinary id=1 (0,1 1,5 3,2 4,2) t=0.5 [3] (2,3) tEnd=1 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 624 bridgeOp current id=1 from=(2,3) to=(4,2) | |
| 625 path.moveTo(2,3); | |
| 626 path.cubicTo(2.75,2.75, 3.5,2, 4,2); | |
| 627 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 628 debugShowSort [3] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0 sign=1 windValue=1 w
indSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 629 debugShowSort [0] {{5,1}, {2,3}} tStart=0.454545455 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 630 debugShowSort [1] {{4,2}, {0,1}} tStart=0.0909090909 tEnd=0.445118816 sign=-1 wi
ndValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 631 debugShowSort [2] {{5,1}, {2,3}} tStart=0.454545455 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 632 findNextOp firstIndex=[3] sign=1 | |
| 633 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 634 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 635 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 636 markDoneBinary id=2 (4,2 0,1) t=0 [0] (4,2) tEnd=0.0909090909 newWindSum=1 newOp
pSum=0 oppSum=0 windSum=1 windValue=1 | |
| 637 findNextOp from:[2] to:[4] start=1 end=2 | |
| 638 bridgeOp current id=2 from=(4,2) to=(3.63636374,1.90909088) | |
| 639 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 640 debugShowSort [1] {{5,1}, {2,3}} tStart=1 tEnd=0.454545455 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 641 debugShowSort [2] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.5 tEnd=0.481278074 sign=
1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 642 debugShowSort [3] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0 tEnd=0.226611502 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 643 debugShowSort [0] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 644 findNextOp firstIndex=[1] sign=1 | |
| 645 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 646 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 647 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 648 markDoneBinary id=4 (5,1 2,3) t=0.454545455 [1] (3.63636374,1.90909088) tEnd=1 n
ewWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 649 findNextOp from:[4] to:[1] start=3 end=4 | |
| 650 bridgeOp current id=4 from=(3.63636374,1.90909088) to=(2,3) | |
| 651 path.lineTo(3.63636374,1.90909088); | |
| 652 path.lineTo(2,3); | |
| 653 path.close(); | |
| 654 debugShowActiveSpans id=4 (5,1 2,3) t=1 (2,3) tEnd=1 other=1 otherT=0.5 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 655 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 656 debugShowSort [0] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 657 debugShowSort [1] {{5,1}, {2,3}} tStart=1 tEnd=0.454545455 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 658 debugShowSort [2] {{0,1}, {1,5}, {3,2}, {4,2}} tStart=0.5 tEnd=0.481278074 sign=
1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 659 debugShowSort [3] {{2,3}, {2,4}, {1,0}, {5,1}} tStart=0 tEnd=0.226611502 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 660 </div> | |
| 661 | |
| 662 <div id="cubicOp41i"> | |
| 663 SimplifyNew_Test [cubicOp41i] | |
| 664 {{0,1}, {2,6}, {4,3}, {6,4}}, | |
| 665 {{6,4}, {0,1}}, | |
| 666 op intersect | |
| 667 {{3,4}, {4,6}, {1,0}, {6,2}}, | |
| 668 {{6,2}, {3,4}}, | |
| 669 debugShowCubicIntersection no self intersect {{0,1}, {2,6}, {4,3}, {6,4}} | |
| 670 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {2,6}, {4,3}, {6,4}} {{0,1}} wt
Ts[1]=1 {{6,4}} wnTs[0]=1 {{6,4}, {0,1}} wnTs[1]=0 | |
| 671 debugShowCubicIntersection wtTs[0]=0.5 {{0,1}, {2,6}, {4,3}, {6,4}} {{2.99999999
99509201,3.9999999999999996}} wtTs[1]=0.521137715 {{3.1268262924910069,3.9974325
146613827}} wnTs[0]=0 {{3,4}, {4,6}, {1,0}, {6,2}} wnTs[1]=0.317571165 | |
| 672 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,1}, {2,6}, {4,3}, {6,4}} {{3,4}}
wnTs[0]=1 {{6,2}, {3,4}} | |
| 673 debugShowCubicLineIntersection wtTs[0]=0.580941393 {{3,4}, {4,6}, {1,0}, {6,2}}
{{3.0456725133851208,2.5228362566925604}} wnTs[0]=0.492388 {{6,4}, {0,1}} | |
| 674 debugShowLineIntersection wtTs[0]=0.285714286 {{6,4}, {0,1}} {{4.285714285714285
6,3.1428571428571428}} wnTs[0]=0.571429 {{6,2}, {3,4}} | |
| 675 debugShowCubicIntersection no self intersect {{3,4}, {4,6}, {1,0}, {6,2}} | |
| 676 debugShowCubicLineIntersection wtTs[0]=0 {{3,4}, {4,6}, {1,0}, {6,2}} {{3,4}} wt
Ts[1]=0.333333333 {{3.1111111111111116,3.9259259259259256}} wtTs[2]=1 {{6,2}} wn
Ts[0]=1 {{6,2}, {3,4}} wnTs[1]=0.962962963 wnTs[2]=0 | |
| 677 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0 (0,1) tEnd=0.5 other=2 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 678 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.5 (3,4) tEnd=0.521137715 other=4
otherT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 679 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.521137715 (3.12682629,3.99743247
) tEnd=1 other=3 otherT=0.317571165 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 680 debugShowActiveSpans id=2 (6,4 0,1) t=0 (6,4) tEnd=0.285714286 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 681 debugShowActiveSpans id=2 (6,4 0,1) t=0.285714286 (4.28571415,3.14285707) tEnd=0
.492387914 other=4 otherT=0.571428571 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 682 debugShowActiveSpans id=2 (6,4 0,1) t=0.492387914 (3.04567242,2.52283621) tEnd=1
other=3 otherT=0.580941393 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 683 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0 (3,4) tEnd=0.317571165 other=1 o
therT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 684 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.317571165 (3.12682629,3.99743247
) tEnd=0.333333333 other=1 otherT=0.521137715 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 685 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.333333333 (3.11111116,3.92592597
) tEnd=0.580941393 other=4 otherT=0.962962963 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 686 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.580941393 (3.04567242,2.52283621
) tEnd=1 other=2 otherT=0.492387914 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 687 debugShowActiveSpans id=4 (6,2 3,4) t=0 (6,2) tEnd=0.571428571 other=3 otherT=1
otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 688 debugShowActiveSpans id=4 (6,2 3,4) t=0.571428571 (4.28571415,3.14285707) tEnd=0
.962962963 other=2 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 689 debugShowActiveSpans id=4 (6,2 3,4) t=0.962962963 (3.11111116,3.92592597) tEnd=1
other=3 otherT=0.333333333 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 690 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 691 debugShowSort [0] {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0 tEnd=0.5 sign=-1 windVal
ue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 692 debugShowSort [1] {{6,4}, {0,1}} tStart=1 tEnd=0.492387914 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 693 findTop xyE=(0,1) xyS=(3,4) | |
| 694 findTop dxyE=(6,15) dxyS=(6,9.81599801e-11) cross=-90 bumpsUp=false | |
| 695 markWinding id=1 (0,1 2,6 4,3 6,4) t=0 [0] (0,1) tEnd=0.5 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 696 markWinding id=2 (6,4 0,1) t=0.492387914 [2] (3.04567242,2.52283621) tEnd=1 newW
indSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 697 markWinding id=1 (0,1 2,6 4,3 6,4) t=0 [0] (0,1) tEnd=0.5 newWindSum=1 newOppSum
=0 oppSum=0 windSum=1 windValue=1 | |
| 698 activeOp op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0 | |
| 699 markDoneBinary id=1 (0,1 2,6 4,3 6,4) t=0 [0] (0,1) tEnd=0.5 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 700 markDoneBinary id=2 (6,4 0,1) t=0.492387914 [2] (3.04567242,2.52283621) tEnd=1 n
ewWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 701 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 702 debugShowSort [0] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=1 sign=-1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 703 debugShowSort [1] {{6,4}, {0,1}} tStart=0.492387914 tEnd=1 sign=-1 windValue=1 w
indSum=1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 704 debugShowSort [2] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 705 debugShowSort [3] {{6,4}, {0,1}} tStart=0.492387914 tEnd=0.285714286 sign=1 wind
Value=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 706 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 707 debugShowSort [1] {{6,4}, {0,1}} tStart=0.492387914 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 708 debugShowSort [2] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 709 debugShowSort [3] {{6,4}, {0,1}} tStart=0.492387914 tEnd=0.285714286 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 710 debugShowSort [0] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 711 markWinding id=3 (3,4 4,6 1,0 6,2) t=0.333333333 [3] (3.11111116,3.92592597) tEn
d=0.580941393 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 712 markWinding id=2 (6,4 0,1) t=0.285714286 [1] (4.28571415,3.14285707) tEnd=0.4923
87914 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 713 markWinding id=3 (3,4 4,6 1,0 6,2) t=0.580941393 [4] (3.04567242,2.52283621) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 714 markWinding id=4 (6,2 3,4) t=0 [0] (6,2) tEnd=0.571428571 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 715 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.5 (3,4) tEnd=0.521137715 other=4
otherT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 716 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.521137715 (3.12682629,3.99743247
) tEnd=1 other=3 otherT=0.317571165 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 717 debugShowActiveSpans id=2 (6,4 0,1) t=0 (6,4) tEnd=0.285714286 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 718 debugShowActiveSpans id=2 (6,4 0,1) t=0.285714286 (4.28571415,3.14285707) tEnd=0
.492387914 other=4 otherT=0.571428571 otherIndex=1 windSum=1 windValue=1 oppValu
e=0 | |
| 719 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0 (3,4) tEnd=0.317571165 other=1 o
therT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 720 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.317571165 (3.12682629,3.99743247
) tEnd=0.333333333 other=1 otherT=0.521137715 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 721 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.333333333 (3.11111116,3.92592597
) tEnd=0.580941393 other=4 otherT=0.962962963 otherIndex=2 windSum=-1 windValue=
1 oppValue=0 | |
| 722 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.580941393 (3.04567242,2.52283621
) tEnd=1 other=2 otherT=0.492387914 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 723 debugShowActiveSpans id=4 (6,2 3,4) t=0 (6,2) tEnd=0.571428571 other=3 otherT=1
otherIndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 724 debugShowActiveSpans id=4 (6,2 3,4) t=0.571428571 (4.28571415,3.14285707) tEnd=0
.962962963 other=2 otherT=0.285714286 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 725 debugShowActiveSpans id=4 (6,2 3,4) t=0.962962963 (3.11111116,3.92592597) tEnd=1
other=3 otherT=0.333333333 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 726 activeOp op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 727 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 728 debugShowSort [1] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.333333333 tEnd=0.5809413
93 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 729 debugShowSort [2] {{6,2}, {3,4}} tStart=0.962962963 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 730 debugShowSort [3] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.333333333 tEnd=0.3175711
65 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 731 debugShowSort [0] {{6,2}, {3,4}} tStart=0.962962963 tEnd=0.571428571 sign=1 wind
Value=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 732 findNextOp firstIndex=[1] sign=-1 | |
| 733 activeOp op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 734 markWinding id=4 (6,2 3,4) t=0.962962963 [2] (3.11111116,3.92592597) tEnd=1 newW
indSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 735 findNextOp chase.append id=4 | |
| 736 activeOp op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 737 markWinding id=3 (3,4 4,6 1,0 6,2) t=0.317571165 [2] (3.12682629,3.99743247) tEn
d=0.333333333 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 738 findNextOp chase.append id=3 | |
| 739 activeOp op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 740 markWinding id=4 (6,2 3,4) t=0.571428571 [1] (4.28571415,3.14285707) tEnd=0.9629
62963 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 741 findNextOp chase.append id=4 | |
| 742 markDoneBinary id=3 (3,4 4,6 1,0 6,2) t=0.333333333 [3] (3.11111116,3.92592597)
tEnd=0.580941393 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 743 findNextOp from:[3] to:[4] start=2 end=3 | |
| 744 bridgeOp current id=3 from=(3.04567242,2.52283621) to=(3.11111116,3.92592597) | |
| 745 path.moveTo(3.04567242,2.52283621); | |
| 746 path.cubicTo(2.9460392,2.99209714, 3.02857494,3.54075789, 3.11111116,3.92592597)
; | |
| 747 markUnsortable id=4 (6,2 3,4) t=0.962962963 [2] (3.11111116,3.92592597) tEnd=1 n
ewWindSum=0 windSum=1 windValue=1 | |
| 748 markUnsortable id=1 (0,1 2,6 4,3 6,4) t=0.5 [2] (3,4) tEnd=0.521137715 newWindSu
m=0 windSum=? windValue=1 | |
| 749 markUnsortable id=1 (0,1 2,6 4,3 6,4) t=0.5 [1] (3,4) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 750 markUnsortable id=3 (3,4 4,6 1,0 6,2) t=0 [1] (3,4) tEnd=0.317571165 newWindSum=
0 windSum=? windValue=1 | |
| 751 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 752 debugShowSort [0] {{6,2}, {3,4}} tStart=1 tEnd=0.962962963 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 753 debugShowSort [1] {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.5 tEnd=0.521137715 sign=
-1 windValue=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 754 debugShowSort [2] *** UNSORTABLE *** {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.5 tEn
d=0.5 sign=1 windValue=1 windSum=? 2->1 (max=2) done=1 tiny=1 opp=1 | |
| 755 debugShowSort [3] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0 tEnd=0.317571165 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 756 markDoneBinary id=4 (6,2 3,4) t=0.962962963 [2] (3.11111116,3.92592597) tEnd=1 n
ewWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 757 path.lineTo(3,4); | |
| 758 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.5 (3,4) tEnd=0.521137715 other=4
otherT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 759 debugShowActiveSpans id=1 (0,1 2,6 4,3 6,4) t=0.521137715 (3.12682629,3.99743247
) tEnd=1 other=3 otherT=0.317571165 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 760 debugShowActiveSpans id=2 (6,4 0,1) t=0 (6,4) tEnd=0.285714286 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 761 debugShowActiveSpans id=2 (6,4 0,1) t=0.285714286 (4.28571415,3.14285707) tEnd=0
.492387914 other=4 otherT=0.571428571 otherIndex=1 windSum=1 windValue=1 oppValu
e=0 | |
| 762 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0 (3,4) tEnd=0.317571165 other=1 o
therT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 763 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.317571165 (3.12682629,3.99743247
) tEnd=0.333333333 other=1 otherT=0.521137715 otherIndex=3 windSum=1 windValue=1
oppValue=0 | |
| 764 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.580941393 (3.04567242,2.52283621
) tEnd=1 other=2 otherT=0.492387914 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 765 debugShowActiveSpans id=4 (6,2 3,4) t=0 (6,2) tEnd=0.571428571 other=3 otherT=1
otherIndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 766 debugShowActiveSpans id=4 (6,2 3,4) t=0.571428571 (4.28571415,3.14285707) tEnd=0
.962962963 other=2 otherT=0.285714286 otherIndex=1 windSum=-1 windValue=1 oppVal
ue=0 | |
| 767 activeOp op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 768 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 769 debugShowSort [0] {{6,2}, {3,4}} tStart=0.962962963 tEnd=0.571428571 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 770 debugShowSort [1] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.333333333 tEnd=0.5809413
93 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 771 debugShowSort [2] {{6,2}, {3,4}} tStart=0.962962963 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 772 debugShowSort [3] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.333333333 tEnd=0.3175711
65 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 773 findNextOp firstIndex=[0] sign=1 | |
| 774 activeOp op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 775 activeOp op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 776 activeOp op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 777 markDoneBinary id=4 (6,2 3,4) t=0.571428571 [1] (4.28571415,3.14285707) tEnd=0.9
62962963 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 778 findNextOp from:[4] to:[3] start=3 end=2 | |
| 779 bridgeOp current id=4 from=(4.28571415,3.14285707) to=(3.11111116,3.92592597) | |
| 780 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=-1 | |
| 781 debugShowSort [1] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.317571165 tEnd=0.3333333
33 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 782 debugShowSort [2] {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.521137715 tEnd=0.5 sign=
1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 783 debugShowSort [3] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.317571165 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 784 debugShowSort [0] {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.521137715 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 785 findNextOp firstIndex=[1] sign=-1 | |
| 786 activeOp op=sect miFrom=1 miTo=0 suFrom=1 suTo=1 result=1 | |
| 787 markWinding id=1 (0,1 2,6 4,3 6,4) t=0.5 [2] (3,4) tEnd=0.521137715 newWindSum=1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 788 findNextOp chase.append id=1 | |
| 789 activeOp op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 790 markDoneBinary id=3 (3,4 4,6 1,0 6,2) t=0 [0] (3,4) tEnd=0 newWindSum=1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 791 markDoneBinary id=3 (3,4 4,6 1,0 6,2) t=0 [1] (3,4) tEnd=0.317571165 newWindSum=
1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 792 findNextOp chase.append id=3 | |
| 793 activeOp op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0 | |
| 794 markDoneBinary id=1 (0,1 2,6 4,3 6,4) t=0.521137715 [3] (3.12682629,3.99743247)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 795 markDoneBinary id=2 (6,4 0,1) t=0 [0] (6,4) tEnd=0.285714286 newWindSum=1 newOpp
Sum=0 oppSum=? windSum=? windValue=1 | |
| 796 findNextOp chase.append id=2 | |
| 797 markDoneBinary id=3 (3,4 4,6 1,0 6,2) t=0.317571165 [2] (3.12682629,3.99743247)
tEnd=0.333333333 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 798 findNextOp from:[3] to:[1] start=3 end=2 | |
| 799 bridgeOp current id=3 from=(3.11111116,3.92592597) to=(3.12682629,3.99743247) | |
| 800 path.moveTo(4.28571415,3.14285707); | |
| 801 path.lineTo(3.11111116,3.92592597); | |
| 802 path.cubicTo(3.11636519,3.9504447, 3.12161922,3.97430134, 3.12682629,3.99743247)
; | |
| 803 setSpans unsortable [2] (3,4) [3] (3.12682629,3.99743247) | |
| 804 setSpans unsortable [3] (3,4) [2] (3.11111116,3.92592597) | |
| 805 markUnsortable id=1 (0,1 2,6 4,3 6,4) t=0.5 [2] (3,4) tEnd=0.521137715 newWindSu
m=0 windSum=1 windValue=1 | |
| 806 markUnsortable id=1 (0,1 2,6 4,3 6,4) t=0.5 [1] (3,4) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 807 markUnsortable id=4 (6,2 3,4) t=0.962962963 [2] (3.11111116,3.92592597) tEnd=1 n
ewWindSum=0 windSum=1 windValue=1 | |
| 808 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=-1 | |
| 809 debugShowSort [0] *** UNSORTABLE *** {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.5 tEn
d=0.521137715 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 810 debugShowSort [1] *** UNSORTABLE *** {{0,1}, {2,6}, {4,3}, {6,4}} tStart=0.5 tEn
d=0.5 sign=1 windValue=1 windSum=? 1->0 (max=1) done=1 tiny=1 opp=0 | |
| 811 debugShowSort [2] *** UNSORTABLE *** {{6,2}, {3,4}} tStart=1 tEnd=0.962962963 si
gn=1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 812 path.cubicTo(3.08455086,3.99910641, 3.04227543,4, 3,4); | |
| 813 markDoneBinary id=1 (0,1 2,6 4,3 6,4) t=0.5 [2] (3,4) tEnd=0.521137715 newWindSu
m=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 814 debugShowActiveSpans id=2 (6,4 0,1) t=0.285714286 (4.28571415,3.14285707) tEnd=0
.492387914 other=4 otherT=0.571428571 otherIndex=1 windSum=1 windValue=1 oppValu
e=0 | |
| 815 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.580941393 (3.04567242,2.52283621
) tEnd=1 other=2 otherT=0.492387914 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 816 debugShowActiveSpans id=4 (6,2 3,4) t=0 (6,2) tEnd=0.571428571 other=3 otherT=1
otherIndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 817 activeOp op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1 | |
| 818 findNextOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 819 debugShowSort [3] {{6,4}, {0,1}} tStart=0.492387914 tEnd=0.285714286 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 820 debugShowSort [0] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 821 debugShowSort [1] {{6,4}, {0,1}} tStart=0.492387914 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 822 debugShowSort [2] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=0.3333333
33 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 823 findNextOp firstIndex=[3] sign=1 | |
| 824 activeOp op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 825 activeOp op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0 | |
| 826 activeOp op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 827 markDoneBinary id=2 (6,4 0,1) t=0.285714286 [1] (4.28571415,3.14285707) tEnd=0.4
92387914 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 828 findNextOp from:[2] to:[3] start=4 end=3 | |
| 829 bridgeOp current id=2 from=(4.28571415,3.14285707) to=(3.04567242,2.52283621) | |
| 830 path.moveTo(4.28571415,3.14285707); | |
| 831 path.lineTo(3.04567242,2.52283621); | |
| 832 setSpans unsortable [1] (3,4) [2] (3.12682629,3.99743247) | |
| 833 setSpans all tiny unsortable [1] (3,4) [0] (0,1) | |
| 834 setSpans unsortable [3] (3,4) [2] (3.11111116,3.92592597) | |
| 835 setSpans unsortable [2] (3,4) [3] (3.12682629,3.99743247) | |
| 836 setSpans unsortable [1] (3,4) [2] (3.12682629,3.99743247) | |
| 837 setSpans unsortable [3] (3,4) [2] (3.11111116,3.92592597) | |
| 838 setSpans unsortable [3] (3,4) [2] (3.11111116,3.92592597) | |
| 839 setSpans unsortable [2] (3,4) [3] (3.12682629,3.99743247) | |
| 840 setSpans unsortable [1] (3,4) [2] (3.12682629,3.99743247) | |
| 841 debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0.580941393 (3.04567242,2.52283621
) tEnd=1 other=2 otherT=0.492387914 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 842 debugShowActiveSpans id=4 (6,2 3,4) t=0 (6,2) tEnd=0.571428571 other=3 otherT=1
otherIndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 843 activeOp op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 844 markDoneBinary id=3 (3,4 4,6 1,0 6,2) t=0.580941393 [4] (3.04567242,2.52283621)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 845 markDoneBinary id=4 (6,2 3,4) t=0 [0] (6,2) tEnd=0.571428571 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 846 </div> | |
| 847 | |
| 848 <div id="cubicOp42d"> | |
| 849 SimplifyNew_Test [cubicOp42d] | |
| 850 {{0,1}, {1,2}, {6,5}, {5,4}}, | |
| 851 {{5,4}, {0,1}}, | |
| 852 op difference | |
| 853 {{5,6}, {4,5}, {1,0}, {2,1}}, | |
| 854 {{2,1}, {5,6}}, | |
| 855 debugShowCubicIntersection no self intersect {{5,6}, {4,5}, {1,0}, {2,1}} | |
| 856 debugShowCubicLineIntersection wtTs[0]=0 {{5,6}, {4,5}, {1,0}, {2,1}} {{5,6}} wt
Ts[1]=1 {{2,1}} wnTs[0]=1 {{2,1}, {5,6}} wnTs[1]=0 | |
| 857 debugShowCubicIntersection no intersect {{5,6}, {4,5}, {1,0}, {2,1}} {{0,1}, {1,
2}, {6,5}, {5,4}} | |
| 858 debugShowCubicLineIntersection wtTs[0]=0.520955385 {{5,6}, {4,5}, {1,0}, {2,1}}
{{2.6570733652881806,2.5942440191729084}} wnTs[0]=0.468585 {{5,4}, {0,1}} | |
| 859 debugShowCubicLineIntersection wtTs[0]=0.520955385 {{0,1}, {1,2}, {6,5}, {5,4}}
{{3.4057559808270916,3.3429266347118194}} wnTs[0]=0.468585 {{2,1}, {5,6}} | |
| 860 debugShowLineIntersection wtTs[0]=0.375 {{2,1}, {5,6}} {{3.125,2.875}} wnTs[0]=0
.375 {{5,4}, {0,1}} | |
| 861 debugShowCubicIntersection no self intersect {{0,1}, {1,2}, {6,5}, {5,4}} | |
| 862 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {1,2}, {6,5}, {5,4}} {{0,1}} wt
Ts[1]=1 {{5,4}} wnTs[0]=1 {{5,4}, {0,1}} wnTs[1]=0 | |
| 863 debugShowActiveSpans id=3 (5,6 4,5 1,0 2,1) t=0 (5,6) tEnd=0.520955385 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 864 debugShowActiveSpans id=3 (5,6 4,5 1,0 2,1) t=0.520955385 (2.65707326,2.594244)
tEnd=1 other=2 otherT=0.468585327 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 865 debugShowActiveSpans id=4 (2,1 5,6) t=0 (2,1) tEnd=0.375 other=3 otherT=1 otherI
ndex=2 windSum=? windValue=1 oppValue=0 | |
| 866 debugShowActiveSpans id=4 (2,1 5,6) t=0.375 (3.125,2.875) tEnd=0.468585327 other
=2 otherT=0.375 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 867 debugShowActiveSpans id=4 (2,1 5,6) t=0.468585327 (3.405756,3.34292674) tEnd=1 o
ther=1 otherT=0.520955385 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 868 debugShowActiveSpans id=1 (0,1 1,2 6,5 5,4) t=0 (0,1) tEnd=0.520955385 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 869 debugShowActiveSpans id=1 (0,1 1,2 6,5 5,4) t=0.520955385 (3.405756,3.34292674)
tEnd=1 other=4 otherT=0.468585327 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 870 debugShowActiveSpans id=2 (5,4 0,1) t=0 (5,4) tEnd=0.375 other=1 otherT=1 otherI
ndex=2 windSum=? windValue=1 oppValue=0 | |
| 871 debugShowActiveSpans id=2 (5,4 0,1) t=0.375 (3.125,2.875) tEnd=0.468585327 other
=4 otherT=0.375 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 872 debugShowActiveSpans id=2 (5,4 0,1) t=0.468585327 (2.65707326,2.594244) tEnd=1 o
ther=3 otherT=0.520955385 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 873 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 874 debugShowSort [0] {{0,1}, {1,2}, {6,5}, {5,4}} tStart=0 tEnd=0.520955385 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 875 debugShowSort [1] {{5,4}, {0,1}} tStart=1 tEnd=0.468585327 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 876 findTop xyE=(0,1) xyS=(3.405756,3.34292674) | |
| 877 findTop dxyE=(3,3) dxyS=(7.361094,4.36636353) cross=-8.98419189 bumpsUp=false | |
| 878 markWinding id=1 (0,1 1,2 6,5 5,4) t=0 [0] (0,1) tEnd=0.520955385 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 879 markWinding id=2 (5,4 0,1) t=0.468585327 [2] (2.65707326,2.594244) tEnd=1 newWin
dSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 880 markWinding id=1 (0,1 1,2 6,5 5,4) t=0 [0] (0,1) tEnd=0.520955385 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 881 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 882 findNextOp simple | |
| 883 markDoneBinary id=1 (0,1 1,2 6,5 5,4) t=0 [0] (0,1) tEnd=0.520955385 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 884 bridgeOp current id=1 from=(3.405756,3.34292674) to=(0,1) | |
| 885 path.moveTo(3.405756,3.34292674); | |
| 886 path.cubicTo(2.12748885,2.58469963, 0.520955384,1.52095544, 0,1); | |
| 887 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 888 debugShowSort [1] {{5,4}, {0,1}} tStart=0.468585327 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 889 debugShowSort [2] {{5,6}, {4,5}, {1,0}, {2,1}} tStart=0.520955385 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 890 debugShowSort [3] {{5,4}, {0,1}} tStart=0.468585327 tEnd=0.375 sign=1 windValue=
1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 891 debugShowSort [0] {{5,6}, {4,5}, {1,0}, {2,1}} tStart=0.520955385 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 892 findNextOp firstIndex=[1] sign=-1 | |
| 893 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 894 markWinding id=3 (5,6 4,5 1,0 2,1) t=0 [0] (5,6) tEnd=0.520955385 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 895 markWinding id=4 (2,1 5,6) t=0.468585327 [2] (3.405756,3.34292674) tEnd=1 newWin
dSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 896 findNextOp chase.append id=4 | |
| 897 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 898 markDoneBinary id=2 (5,4 0,1) t=0.375 [1] (3.125,2.875) tEnd=0.468585327 newWind
Sum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 899 findNextOp chase.append id=2 | |
| 900 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 901 markDoneBinary id=3 (5,6 4,5 1,0 2,1) t=0.520955385 [1] (2.65707326,2.594244) tE
nd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 902 markDoneBinary id=4 (2,1 5,6) t=0 [0] (2,1) tEnd=0.375 newWindSum=-1 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 903 findNextOp chase.append id=4 | |
| 904 markDoneBinary id=2 (5,4 0,1) t=0.468585327 [2] (2.65707326,2.594244) tEnd=1 new
WindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 905 findNextOp from:[2] to:[3] start=1 end=0 | |
| 906 bridgeOp current id=2 from=(0,1) to=(2.65707326,2.594244) | |
| 907 findNextOp simple | |
| 908 markDoneBinary id=3 (5,6 4,5 1,0 2,1) t=0 [0] (5,6) tEnd=0.520955385 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 909 bridgeOp current id=3 from=(2.65707326,2.594244) to=(5,6) | |
| 910 path.lineTo(2.65707326,2.594244); | |
| 911 path.cubicTo(3.41530037,3.87251115, 4.47904444,5.47904444, 5,6); | |
| 912 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 913 debugShowSort [2] {{2,1}, {5,6}} tStart=0.468585327 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 914 debugShowSort [3] {{0,1}, {1,2}, {6,5}, {5,4}} tStart=0.520955385 tEnd=1 sign=-1
windValue=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 915 debugShowSort [0] {{2,1}, {5,6}} tStart=0.468585327 tEnd=0.375 sign=1 windValue=
1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 916 debugShowSort [1] {{0,1}, {1,2}, {6,5}, {5,4}} tStart=0.520955385 tEnd=0 sign=1
windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 917 findNextOp firstIndex=[2] sign=-1 | |
| 918 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 919 markDoneBinary id=1 (0,1 1,2 6,5 5,4) t=0.520955385 [1] (3.405756,3.34292674) tE
nd=1 newWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 920 markDoneBinary id=2 (5,4 0,1) t=0 [0] (5,4) tEnd=0.375 newWindSum=2 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 921 findNextOp chase.append id=2 | |
| 922 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 923 markWinding id=4 (2,1 5,6) t=0.375 [1] (3.125,2.875) tEnd=0.468585327 newWindSum
=-1 newOppSum=2 oppSum=? windSum=? windValue=1 | |
| 924 findNextOp chase.append id=4 | |
| 925 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 926 markDoneBinary id=4 (2,1 5,6) t=0.468585327 [2] (3.405756,3.34292674) tEnd=1 new
WindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 927 findNextOp from:[4] to:[4] start=2 end=1 | |
| 928 bridgeOp current id=4 from=(5,6) to=(3.405756,3.34292674) | |
| 929 path.lineTo(3.405756,3.34292674); | |
| 930 path.close(); | |
| 931 debugShowActiveSpans id=4 (2,1 5,6) t=0.375 (3.125,2.875) tEnd=0.468585327 other
=2 otherT=0.375 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 932 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 933 findNextOp debugShowSort contourWinding=0 oppContourWinding=2 sign=1 | |
| 934 debugShowSort [0] {{2,1}, {5,6}} tStart=0.468585327 tEnd=0.375 sign=1 windValue=
1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 935 debugShowSort [1] {{0,1}, {1,2}, {6,5}, {5,4}} tStart=0.520955385 tEnd=0 sign=1
windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 936 debugShowSort [2] {{2,1}, {5,6}} tStart=0.468585327 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 937 debugShowSort [3] {{0,1}, {1,2}, {6,5}, {5,4}} tStart=0.520955385 tEnd=1 sign=-1
windValue=1 windSum=2 1->2 (max=2) done=1 tiny=0 opp=1 | |
| 938 findNextOp firstIndex=[0] sign=1 | |
| 939 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 940 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 941 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 942 markDoneBinary id=4 (2,1 5,6) t=0.375 [1] (3.125,2.875) tEnd=0.468585327 newWind
Sum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 | |
| 943 findNextOp from:[4] to:[4] start=2 end=3 | |
| 944 bridgeOp current id=4 from=(3.125,2.875) to=(3.405756,3.34292674) | |
| 945 </div> | |
| 946 | |
| 947 <div id="cubicOp42da"> | |
| 948 computed quadratics given | |
| 949 {{0,1}, {1,2}, {6,5}, {5,4}}, | |
| 950 {{5,6}, {4,5}, {1,0}, {2,1}}, | |
| 951 computed quadratics set 1 | |
| 952 {{0,1}, {0.4140625,1.3984375}, {1.34375,2.03125}}, | |
| 953 {{1.34375,2.03125}, {2.2734375,2.6640625}, {3.25,3.25}}, | |
| 954 {{3.25,3.25}, {4.2265625,3.8359375}, {4.78125,4.09375}}, | |
| 955 {{4.78125,4.09375}, {5.3359375,4.3515625}, {5,4}}, | |
| 956 computed quadratics set 2 | |
| 957 {{5,6}, {4.6015625,5.5859375}, {3.96875,4.65625}}, | |
| 958 {{3.96875,4.65625}, {3.3359375,3.7265625}, {2.75,2.75}}, | |
| 959 {{2.75,2.75}, {2.1640625,1.7734375}, {1.90625,1.21875}}, | |
| 960 {{1.90625,1.21875}, {1.6484375,0.6640625}, {2,1}}, | |
| 961 </div> | |
| 962 | |
| 963 <div id="cubicOp42db"> | |
| 964 {{1.34375,2.03125}, {2.2734375,2.6640625}, {3.25,3.25}}, | |
| 965 {{3.96875,4.65625}, {3.3359375,3.7265625}, {2.75,2.75}}, | |
| 966 </div> | |
| 967 | |
| 968 <div id="cubicOp43d"> | |
| 969 SimplifyNew_Test [cubicOp43d] | |
| 970 {{0,2}, {1,2}, {4,0}, {3,1}}, | |
| 971 {{3,1}, {0,2}}, | |
| 972 op difference | |
| 973 {{0,4}, {1,3}, {2,0}, {2,1}}, | |
| 974 {{2,1}, {0,4}}, | |
| 975 debugShowCubicIntersection no self intersect {{0,2}, {1,2}, {4,0}, {3,1}} | |
| 976 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {1,2}, {4,0}, {3,1}} {{0,2}} wt
Ts[1]=0.333333333 {{1.4444444444444446,1.5185185185185186}} wtTs[2]=1 {{3,1}} wn
Ts[0]=1 {{3,1}, {0,2}} wnTs[1]=0.518518519 wnTs[2]=0 | |
| 977 debugShowCubicIntersection wtTs[0]=0.345547542 {{0,2}, {1,2}, {4,0}, {3,1}} {{1.
5055045552472988,1.4898786220870244}} wnTs[0]=0.560544 {{0,4}, {1,3}, {2,0}, {2,
1}} | |
| 978 debugShowCubicLineIntersection wtTs[0]=0.395188999 {{0,2}, {1,2}, {4,0}, {3,1}}
{{1.7523027701818603,1.3715458447272095}} wnTs[0]=0.123849 {{2,1}, {0,4}} | |
| 979 debugShowCubicLineIntersection wtTs[0]=0.558102564 {{0,4}, {1,3}, {2,0}, {2,1}}
{{1.5004707573680853,1.4998430808773049}} wnTs[0]=0.499843 {{3,1}, {0,2}} | |
| 980 debugShowLineIntersection wtTs[0]=0.428571429 {{3,1}, {0,2}} {{1.714285714285714
2,1.4285714285714284}} wnTs[0]=0.142857 {{2,1}, {0,4}} | |
| 981 debugShowCubicIntersection no self intersect {{0,4}, {1,3}, {2,0}, {2,1}} | |
| 982 debugShowCubicLineIntersection wtTs[0]=0 {{0,4}, {1,3}, {2,0}, {2,1}} {{0,4}} wt
Ts[1]=0.333333333 {{0.96296296296296258,2.5555555555555562}} wtTs[2]=1 {{2,1}} w
nTs[0]=1 {{2,1}, {0,4}} wnTs[1]=0.518518519 wnTs[2]=0 | |
| 983 debugShowActiveSpans id=1 (0,2 1,2 4,0 3,1) t=0 (0,2) tEnd=0.333333333 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 984 debugShowActiveSpans id=1 (0,2 1,2 4,0 3,1) t=0.333333333 (1.44444442,1.51851857
) tEnd=0.345547542 other=2 otherT=0.518518519 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 985 debugShowActiveSpans id=1 (0,2 1,2 4,0 3,1) t=0.345547542 (1.50550461,1.48987865
) tEnd=0.395188999 other=3 otherT=0.560544414 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 986 debugShowActiveSpans id=1 (0,2 1,2 4,0 3,1) t=0.395188999 (1.75230277,1.37154579
) tEnd=1 other=4 otherT=0.123848615 otherIndex=1 windSum=? windValue=1 oppValue=
0 | |
| 987 debugShowActiveSpans id=2 (3,1 0,2) t=0 (3,1) tEnd=0.428571429 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 988 debugShowActiveSpans id=2 (3,1 0,2) t=0.428571429 (1.71428573,1.42857146) tEnd=0
.499843081 other=4 otherT=0.142857143 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 989 debugShowActiveSpans id=2 (3,1 0,2) t=0.499843081 (1.50047076,1.49984312) tEnd=0
.518518519 other=3 otherT=0.558102564 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 990 debugShowActiveSpans id=2 (3,1 0,2) t=0.518518519 (1.44444442,1.51851857) tEnd=1
other=1 otherT=0.333333333 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 991 debugShowActiveSpans id=3 (0,4 1,3 2,0 2,1) t=0 (0,4) tEnd=0.333333333 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 992 debugShowActiveSpans id=3 (0,4 1,3 2,0 2,1) t=0.333333333 (0.962962985,2.5555555
8) tEnd=0.558102564 other=4 otherT=0.518518519 otherIndex=3 windSum=? windValue=
1 oppValue=0 | |
| 993 debugShowActiveSpans id=3 (0,4 1,3 2,0 2,1) t=0.558102564 (1.50047076,1.49984312
) tEnd=0.560544414 other=2 otherT=0.499843081 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 994 debugShowActiveSpans id=3 (0,4 1,3 2,0 2,1) t=0.560544414 (1.50550461,1.48987865
) tEnd=1 other=1 otherT=0.345547542 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 995 debugShowActiveSpans id=4 (2,1 0,4) t=0 (2,1) tEnd=0.123848615 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 996 debugShowActiveSpans id=4 (2,1 0,4) t=0.123848615 (1.75230277,1.37154579) tEnd=0
.142857143 other=1 otherT=0.395188999 otherIndex=3 windSum=? windValue=1 oppValu
e=0 | |
| 997 debugShowActiveSpans id=4 (2,1 0,4) t=0.142857143 (1.71428573,1.42857146) tEnd=0
.518518519 other=2 otherT=0.428571429 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 998 debugShowActiveSpans id=4 (2,1 0,4) t=0.518518519 (0.962962985,2.55555558) tEnd=
1 other=3 otherT=0.333333333 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 999 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1000 debugShowSort [0] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=1 tEnd=0.395188999 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1001 debugShowSort [1] {{3,1}, {0,2}} tStart=0 tEnd=0.428571429 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1002 findTop xyE=(3,1) xyS=(1.75230277,1.37154579) | |
| 1003 findTop dxyE=(-3,3) dxyS=(4.93112993,-2.39965272) cross=-7.59443188 bumpsUp=true | |
| 1004 findTop cross bump disagree | |
| 1005 findTop swap | |
| 1006 markWinding id=1 (0,2 1,2 4,0 3,1) t=0.395188999 [3] (1.75230277,1.37154579) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1007 markWinding id=1 (0,2 1,2 4,0 3,1) t=0.395188999 [3] (1.75230277,1.37154579) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1008 markWinding id=2 (3,1 0,2) t=0 [0] (3,1) tEnd=0.428571429 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 1009 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1010 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1011 debugShowSort [0] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.395188999 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1012 debugShowSort [1] {{2,1}, {0,4}} tStart=0.123848615 tEnd=0 sign=1 windValue=1 wi
ndSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1013 debugShowSort [2] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.395188999 tEnd=0.3455475
42 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1014 debugShowSort [3] {{2,1}, {0,4}} tStart=0.123848615 tEnd=0.142857143 sign=-1 win
dValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1015 findNextOp firstIndex=[0] sign=-1 | |
| 1016 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1017 markWinding id=4 (2,1 0,4) t=0 [0] (2,1) tEnd=0.123848615 newWindSum=-1 newOppSu
m=1 oppSum=? windSum=? windValue=1 | |
| 1018 markWinding id=3 (0,4 1,3 2,0 2,1) t=0.560544414 [3] (1.50550461,1.48987865) tEn
d=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1019 findNextOp chase.append id=3 | |
| 1020 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1021 markDoneBinary id=1 (0,2 1,2 4,0 3,1) t=0.345547542 [2] (1.50550461,1.48987865)
tEnd=0.395188999 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1022 findNextOp chase.append id=1 | |
| 1023 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1024 markDoneBinary id=4 (2,1 0,4) t=0.123848615 [1] (1.75230277,1.37154579) tEnd=0.1
42857143 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1025 findNextOp chase.append id=4 | |
| 1026 markDoneBinary id=1 (0,2 1,2 4,0 3,1) t=0.395188999 [3] (1.75230277,1.37154579)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1027 findNextOp from:[1] to:[4] start=1 end=0 | |
| 1028 bridgeOp current id=1 from=(3,1) to=(1.75230277,1.37154579) | |
| 1029 path.moveTo(3,1); | |
| 1030 path.cubicTo(3.60481095,0.395188987, 2.7464366,0.887767076, 1.75230277,1.3715457
9); | |
| 1031 findNextOp simple | |
| 1032 markDoneBinary id=4 (2,1 0,4) t=0 [0] (2,1) tEnd=0.123848615 newWindSum=-1 newOp
pSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1033 bridgeOp current id=4 from=(1.75230277,1.37154579) to=(2,1) | |
| 1034 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1035 debugShowSort [1] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.560544414 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1036 debugShowSort [2] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.345547542 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1037 debugShowSort [3] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.560544414 tEnd=0.5581025
64 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1038 debugShowSort [0] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.345547542 tEnd=0.3951889
99 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 1039 findNextOp firstIndex=[1] sign=-1 | |
| 1040 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1041 markWinding id=1 (0,2 1,2 4,0 3,1) t=0.333333333 [1] (1.44444442,1.51851857) tEn
d=0.345547542 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1042 findNextOp chase.append id=1 | |
| 1043 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1044 markDoneBinary id=3 (0,4 1,3 2,0 2,1) t=0.558102564 [2] (1.50047076,1.49984312)
tEnd=0.560544414 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1045 findNextOp chase.append id=3 | |
| 1046 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1047 markDoneBinary id=3 (0,4 1,3 2,0 2,1) t=0.560544414 [3] (1.50550461,1.48987865)
tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1048 findNextOp from:[3] to:[1] start=2 end=1 | |
| 1049 bridgeOp current id=3 from=(2,1) to=(1.50550461,1.48987865) | |
| 1050 path.lineTo(2,1); | |
| 1051 path.cubicTo(2,0.560544431, 1.80687881,0.893573642, 1.50550461,1.48987865); | |
| 1052 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1053 debugShowSort [1] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.333333333 tEnd=0.3455475
42 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1054 debugShowSort [2] {{3,1}, {0,2}} tStart=0.518518519 tEnd=1 sign=-1 windValue=1 w
indSum=? 1->2 (max=2) done=0 tiny=0 opp=0 | |
| 1055 debugShowSort [3] {{0,2}, {1,2}, {4,0}, {3,1}} tStart=0.333333333 tEnd=0 sign=1
windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 1056 debugShowSort [0] {{3,1}, {0,2}} tStart=0.518518519 tEnd=0.499843081 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1057 findNextOp firstIndex=[1] sign=-1 | |
| 1058 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1059 markDoneBinary id=2 (3,1 0,2) t=0.518518519 [3] (1.44444442,1.51851857) tEnd=1 n
ewWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1060 markDoneBinary id=1 (0,2 1,2 4,0 3,1) t=0 [0] (0,2) tEnd=0.333333333 newWindSum=
2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1061 findNextOp chase.append id=1 | |
| 1062 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1063 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1064 markWinding id=2 (3,1 0,2) t=0.499843081 [2] (1.50047076,1.49984312) tEnd=0.5185
18519 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1065 findNextOp chase.append id=2 | |
| 1066 markDoneBinary id=1 (0,2 1,2 4,0 3,1) t=0.333333333 [1] (1.44444442,1.51851857)
tEnd=0.345547542 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1067 findNextOp from:[1] to:[2] start=3 end=2 | |
| 1068 bridgeOp current id=1 from=(1.50550461,1.48987865) to=(1.44444442,1.51851857) | |
| 1069 path.cubicTo(1.48515844,1.49946892, 1.46480155,1.50901854, 1.44444442,1.51851857
); | |
| 1070 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1071 debugShowSort [2] {{3,1}, {0,2}} tStart=0.499843081 tEnd=0.518518519 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1072 debugShowSort [3] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.558102564 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1073 debugShowSort [0] {{3,1}, {0,2}} tStart=0.499843081 tEnd=0.428571429 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1074 debugShowSort [1] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.558102564 tEnd=0.5605444
14 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 1075 findNextOp firstIndex=[2] sign=-1 | |
| 1076 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1077 markWinding id=3 (0,4 1,3 2,0 2,1) t=0.333333333 [1] (0.962962985,2.55555558) tE
nd=0.558102564 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1078 findNextOp chase.append id=3 | |
| 1079 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1080 markDoneBinary id=2 (3,1 0,2) t=0.428571429 [1] (1.71428573,1.42857146) tEnd=0.4
99843081 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1081 findNextOp chase.append id=2 | |
| 1082 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1083 markDoneBinary id=2 (3,1 0,2) t=0.499843081 [2] (1.50047076,1.49984312) tEnd=0.5
18518519 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1084 findNextOp from:[2] to:[3] start=2 end=1 | |
| 1085 bridgeOp current id=2 from=(1.44444442,1.51851857) to=(1.50047076,1.49984312) | |
| 1086 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1087 debugShowSort [1] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.333333333 tEnd=0.5581025
64 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1088 debugShowSort [2] {{2,1}, {0,4}} tStart=0.518518519 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1089 debugShowSort [3] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.333333333 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1090 debugShowSort [0] {{2,1}, {0,4}} tStart=0.518518519 tEnd=0.142857143 sign=1 wind
Value=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1091 findNextOp firstIndex=[1] sign=-1 | |
| 1092 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1093 markWinding id=4 (2,1 0,4) t=0.518518519 [3] (0.962962985,2.55555558) tEnd=1 new
WindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1094 markWinding id=3 (0,4 1,3 2,0 2,1) t=0 [0] (0,4) tEnd=0.333333333 newWindSum=1 n
ewOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1095 findNextOp chase.append id=3 | |
| 1096 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1097 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1098 markWinding id=4 (2,1 0,4) t=0.142857143 [2] (1.71428573,1.42857146) tEnd=0.5185
18519 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1099 findNextOp chase.append id=4 | |
| 1100 markDoneBinary id=3 (0,4 1,3 2,0 2,1) t=0.333333333 [1] (0.962962985,2.55555558)
tEnd=0.558102564 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1101 findNextOp from:[3] to:[4] start=3 end=4 | |
| 1102 bridgeOp current id=3 from=(1.50047076,1.49984312) to=(0.962962985,2.55555558) | |
| 1103 path.lineTo(1.50047076,1.49984312); | |
| 1104 path.cubicTo(1.3457123,1.80632472, 1.16275787,2.18094015, 0.962962985,2.55555558
); | |
| 1105 findNextOp simple | |
| 1106 markDoneBinary id=4 (2,1 0,4) t=0.518518519 [3] (0.962962985,2.55555558) tEnd=1
newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 1107 bridgeOp current id=4 from=(0.962962985,2.55555558) to=(0,4) | |
| 1108 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 1109 debugShowSort [3] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.333333333 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1110 debugShowSort [0] {{2,1}, {0,4}} tStart=0.518518519 tEnd=0.142857143 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1111 debugShowSort [1] {{0,4}, {1,3}, {2,0}, {2,1}} tStart=0.333333333 tEnd=0.5581025
64 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1112 debugShowSort [2] {{2,1}, {0,4}} tStart=0.518518519 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 1113 findNextOp firstIndex=[3] sign=1 | |
| 1114 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1115 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1116 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1117 markDoneBinary id=3 (0,4 1,3 2,0 2,1) t=0 [0] (0,4) tEnd=0.333333333 newWindSum=
1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 1118 findNextOp from:[3] to:[4] start=3 end=2 | |
| 1119 bridgeOp current id=3 from=(0,4) to=(0.962962985,2.55555558) | |
| 1120 path.lineTo(0,4); | |
| 1121 path.cubicTo(0.333333343,3.66666675, 0.666666627,3.11111116, 0.962962985,2.55555
558); | |
| 1122 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1123 debugShowSort [3] {{2,1}, {0,4}} tStart=0.142857143 tEnd=0.518518519 sign=-1 win
dValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1124 debugShowSort [0] {{3,1}, {0,2}} tStart=0.428571429 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1125 debugShowSort [1] {{2,1}, {0,4}} tStart=0.142857143 tEnd=0.123848615 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1126 debugShowSort [2] {{3,1}, {0,2}} tStart=0.428571429 tEnd=0.499843081 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 1127 findNextOp firstIndex=[3] sign=-1 | |
| 1128 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1129 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1130 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1131 markDoneBinary id=4 (2,1 0,4) t=0.142857143 [2] (1.71428573,1.42857146) tEnd=0.5
18518519 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1132 findNextOp from:[4] to:[2] start=1 end=0 | |
| 1133 bridgeOp current id=4 from=(0.962962985,2.55555558) to=(1.71428573,1.42857146) | |
| 1134 findNextOp simple | |
| 1135 markDoneBinary id=2 (3,1 0,2) t=0 [0] (3,1) tEnd=0.428571429 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 1136 bridgeOp current id=2 from=(1.71428573,1.42857146) to=(3,1) | |
| 1137 path.lineTo(1.71428573,1.42857146); | |
| 1138 path.lineTo(3,1); | |
| 1139 path.close(); | |
| 1140 assemble | |
| 1141 assemble contour start=(3,1) end=(3,1) | |
| 1142 </div> | |
| 1143 | |
| 1144 <div id="cubicOp44d"> | |
| 1145 SimplifyNew_Test [cubicOp44d] | |
| 1146 {{0,2}, {3,6}, {4,0}, {3,2}}, | |
| 1147 {{3,2}, {0,2}}, | |
| 1148 op difference | |
| 1149 {{0,4}, {2,3}, {2,0}, {6,3}}, | |
| 1150 {{6,3}, {0,4}}, | |
| 1151 debugShowCubicIntersection no self intersect {{0,2}, {3,6}, {4,0}, {3,2}} | |
| 1152 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {3,6}, {4,0}, {3,2}} {{0,2}} wt
Ts[1]=1 {{3,2}} wnTs[0]=1 {{3,2}, {0,2}} wnTs[1]=0 | |
| 1153 debugShowCubicIntersection wtTs[0]=0.135342164 {{0,2}, {3,6}, {4,0}, {3,2}} {{1.
1081744689414279,3.1192052729330815}} wtTs[1]=0.754165096 {{3.3748959118747366,1
.708000079031383}} wtTs[2]=0.93333707 {{3.1733251116708114,1.7013446943452044}}
wnTs[0]=0.223477 {{0,4}, {2,3}, {2,0}, {6,3}} wnTs[1]=0.708782366 wnTs[2]=0.6769
2927 | |
| 1154 debugShowCubicLineIntersection no intersect {{0,2}, {3,6}, {4,0}, {3,2}} {{6,3},
{0,4}} | |
| 1155 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,4}, {2,3}, {2,0}, {6,3}} {{2.25,2
}} wnTs[0]=0.25 {{3,2}, {0,2}} | |
| 1156 debugShowCubicIntersection no self intersect {{0,4}, {2,3}, {2,0}, {6,3}} | |
| 1157 debugShowCubicLineIntersection wtTs[0]=0 {{0,4}, {2,3}, {2,0}, {6,3}} {{0,4}} wt
Ts[1]=1 {{6,3}} wnTs[0]=1 {{6,3}, {0,4}} wnTs[1]=0 | |
| 1158 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0 (0,2) tEnd=0.135342164 other=2 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1159 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.135342164 (1.10817444,3.11920524
) tEnd=0.754165096 other=3 otherT=0.223476766 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1160 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.754165096 (3.37489581,1.70800006
) tEnd=0.93333707 other=3 otherT=0.708782366 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 1161 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.93333707 (3.17332506,1.70134473)
tEnd=1 other=3 otherT=0.67692927 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1162 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.25 other=1 otherT=1 otherIn
dex=4 windSum=? windValue=1 oppValue=0 | |
| 1163 debugShowActiveSpans id=2 (3,2 0,2) t=0.25 (2.25,2) tEnd=1 other=3 otherT=0.5 ot
herIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1164 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0 (0,4) tEnd=0.223476766 other=4 o
therT=1 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1165 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.223476766 (1.10817444,3.11920524
) tEnd=0.5 other=1 otherT=0.135342164 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1166 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.5 (2.25,2) tEnd=0.67692927 other
=2 otherT=0.25 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1167 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.67692927 (3.17332506,1.70134473)
tEnd=0.708782366 other=1 otherT=0.93333707 otherIndex=3 windSum=? windValue=1 o
ppValue=0 | |
| 1168 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.708782366 (3.37489581,1.70800006
) tEnd=1 other=1 otherT=0.754165096 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 1169 debugShowActiveSpans id=4 (6,3 0,4) t=0 (6,3) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=? windValue=1 oppValue=0 | |
| 1170 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1171 debugShowSort [0] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.67692927 tEnd=0.70878236
6 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1172 debugShowSort [1] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.93333707 tEnd=0.75416509
6 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1173 debugShowSort [2] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.67692927 tEnd=0.5 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1174 debugShowSort [3] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.93333707 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1175 findTop swap | |
| 1176 markWinding id=3 (0,4 2,3 2,0 6,3) t=0.67692927 [3] (3.17332506,1.70134473) tEnd
=0.708782366 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1177 markWinding id=3 (0,4 2,3 2,0 6,3) t=0.67692927 [3] (3.17332506,1.70134473) tEnd
=0.708782366 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1178 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1179 markDoneBinary id=3 (0,4 2,3 2,0 6,3) t=0.67692927 [3] (3.17332506,1.70134473) t
End=0.708782366 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1180 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 1181 debugShowSort [0] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.9333370
7 sign=-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1182 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=0.6769292
7 sign=1 windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 1183 debugShowSort [2] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.1353421
64 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1184 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=1 sign=-1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 1185 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1186 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=0.6769292
7 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1187 debugShowSort [2] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.1353421
64 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1188 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1189 debugShowSort [0] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.9333370
7 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1190 markWinding id=1 (0,2 3,6 4,0 3,2) t=0.135342164 [1] (1.10817444,3.11920524) tEn
d=0.754165096 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1191 markWinding id=3 (0,4 2,3 2,0 6,3) t=0.708782366 [4] (3.37489581,1.70800006) tEn
d=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1192 markWinding id=4 (6,3 0,4) t=0 [0] (6,3) tEnd=1 newWindSum=-1 newOppSum=-1 oppSu
m=? windSum=? windValue=1 | |
| 1193 markWinding id=3 (0,4 2,3 2,0 6,3) t=0 [0] (0,4) tEnd=0.223476766 newWindSum=-1
newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1194 markWinding id=1 (0,2 3,6 4,0 3,2) t=0.754165096 [2] (3.37489581,1.70800006) tEn
d=0.93333707 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1195 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0 (0,2) tEnd=0.135342164 other=2 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1196 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.135342164 (1.10817444,3.11920524
) tEnd=0.754165096 other=3 otherT=0.223476766 otherIndex=1 windSum=-1 windValue=
1 oppValue=0 | |
| 1197 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.754165096 (3.37489581,1.70800006
) tEnd=0.93333707 other=3 otherT=0.708782366 otherIndex=4 windSum=-1 windValue=1
oppValue=0 | |
| 1198 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.93333707 (3.17332506,1.70134473)
tEnd=1 other=3 otherT=0.67692927 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1199 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.25 other=1 otherT=1 otherIn
dex=4 windSum=? windValue=1 oppValue=0 | |
| 1200 debugShowActiveSpans id=2 (3,2 0,2) t=0.25 (2.25,2) tEnd=1 other=3 otherT=0.5 ot
herIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1201 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0 (0,4) tEnd=0.223476766 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1202 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.223476766 (1.10817444,3.11920524
) tEnd=0.5 other=1 otherT=0.135342164 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1203 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.5 (2.25,2) tEnd=0.67692927 other
=2 otherT=0.25 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1204 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.708782366 (3.37489581,1.70800006
) tEnd=1 other=1 otherT=0.754165096 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 1205 debugShowActiveSpans id=4 (6,3 0,4) t=0 (6,3) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1206 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1207 markDoneBinary id=1 (0,2 3,6 4,0 3,2) t=0.135342164 [1] (1.10817444,3.11920524)
tEnd=0.754165096 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 1208 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0 (0,2) tEnd=0.135342164 other=2 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1209 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.754165096 (3.37489581,1.70800006
) tEnd=0.93333707 other=3 otherT=0.708782366 otherIndex=4 windSum=-1 windValue=1
oppValue=0 | |
| 1210 debugShowActiveSpans id=1 (0,2 3,6 4,0 3,2) t=0.93333707 (3.17332506,1.70134473)
tEnd=1 other=3 otherT=0.67692927 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1211 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.25 other=1 otherT=1 otherIn
dex=4 windSum=? windValue=1 oppValue=0 | |
| 1212 debugShowActiveSpans id=2 (3,2 0,2) t=0.25 (2.25,2) tEnd=1 other=3 otherT=0.5 ot
herIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1213 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0 (0,4) tEnd=0.223476766 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1214 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.223476766 (1.10817444,3.11920524
) tEnd=0.5 other=1 otherT=0.135342164 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1215 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.5 (2.25,2) tEnd=0.67692927 other
=2 otherT=0.25 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1216 debugShowActiveSpans id=3 (0,4 2,3 2,0 6,3) t=0.708782366 (3.37489581,1.70800006
) tEnd=1 other=1 otherT=0.754165096 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 1217 debugShowActiveSpans id=4 (6,3 0,4) t=0 (6,3) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1218 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1219 findNextOp simple | |
| 1220 markDoneBinary id=3 (0,4 2,3 2,0 6,3) t=0 [0] (0,4) tEnd=0.223476766 newWindSum=
-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 1221 bridgeOp current id=3 from=(1.10817444,3.11920524) to=(0,4) | |
| 1222 path.moveTo(1.10817444,3.11920524); | |
| 1223 path.cubicTo(0.794023395,3.45316267, 0.446953505,3.77652311, 0,4); | |
| 1224 findNextOp simple | |
| 1225 markDoneBinary id=4 (6,3 0,4) t=0 [0] (6,3) tEnd=1 newWindSum=-1 newOppSum=-1 op
pSum=-1 windSum=-1 windValue=1 | |
| 1226 bridgeOp current id=4 from=(0,4) to=(6,3) | |
| 1227 findNextOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 1228 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1229 debugShowSort [0] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.9333370
7 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1230 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.708782366 tEnd=0.6769292
7 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1231 debugShowSort [2] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.754165096 tEnd=0.1353421
64 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 1232 findNextOp firstIndex=[3] sign=-1 | |
| 1233 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1234 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1235 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1236 markDoneBinary id=3 (0,4 2,3 2,0 6,3) t=0.708782366 [4] (3.37489581,1.70800006)
tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 1237 findNextOp from:[3] to:[1] start=2 end=3 | |
| 1238 bridgeOp current id=3 from=(6,3) to=(3.37489581,1.70800006) | |
| 1239 path.lineTo(6,3); | |
| 1240 path.cubicTo(4.83512926,2.12634706, 4.00949001,1.76154041, 3.37489581,1.70800006
); | |
| 1241 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1242 debugShowSort [1] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.93333707 tEnd=0.75416509
6 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1243 debugShowSort [2] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.67692927 tEnd=0.5 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1244 debugShowSort [3] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.93333707 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1245 debugShowSort [0] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.67692927 tEnd=0.70878236
6 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 1246 findNextOp firstIndex=[1] sign=1 | |
| 1247 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1248 markWinding id=3 (0,4 2,3 2,0 6,3) t=0.5 [2] (2.25,2) tEnd=0.67692927 newWindSum
=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1249 findNextOp chase.append id=3 | |
| 1250 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1251 markDoneBinary id=1 (0,2 3,6 4,0 3,2) t=0.93333707 [3] (3.17332506,1.70134473) t
End=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1252 markDoneBinary id=2 (3,2 0,2) t=0 [0] (3,2) tEnd=0.25 newWindSum=-1 newOppSum=-1
oppSum=? windSum=? windValue=1 | |
| 1253 findNextOp chase.append id=2 | |
| 1254 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1255 markDoneBinary id=1 (0,2 3,6 4,0 3,2) t=0.754165096 [2] (3.37489581,1.70800006)
tEnd=0.93333707 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1256 findNextOp from:[1] to:[3] start=3 end=2 | |
| 1257 bridgeOp current id=1 from=(3.37489581,1.70800006) to=(3.17332506,1.70134473) | |
| 1258 path.cubicTo(3.37191081,1.55650449, 3.30472064,1.51977468, 3.17332506,1.70134473
); | |
| 1259 findNextOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 1260 debugShowSort [0] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.5 tEnd=0.67692927 sign=-
1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1261 debugShowSort [1] {{3,2}, {0,2}} tStart=0.25 tEnd=1 sign=-1 windValue=1 windSum=
? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1262 debugShowSort [2] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.5 tEnd=0.223476766 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1263 debugShowSort [3] {{3,2}, {0,2}} tStart=0.25 tEnd=0 sign=1 windValue=1 windSum=-
1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 1264 findNextOp firstIndex=[0] sign=-1 | |
| 1265 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1266 markWinding id=2 (3,2 0,2) t=0.25 [1] (2.25,2) tEnd=1 newWindSum=-1 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 1267 markWinding id=1 (0,2 3,6 4,0 3,2) t=0 [0] (0,2) tEnd=0.135342164 newWindSum=-1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1268 findNextOp chase.append id=1 | |
| 1269 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1270 markDoneBinary id=3 (0,4 2,3 2,0 6,3) t=0.223476766 [1] (1.10817444,3.11920524)
tEnd=0.5 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1271 findNextOp chase.append id=3 | |
| 1272 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1273 markDoneBinary id=3 (0,4 2,3 2,0 6,3) t=0.5 [2] (2.25,2) tEnd=0.67692927 newWind
Sum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 1274 findNextOp from:[3] to:[2] start=1 end=2 | |
| 1275 bridgeOp current id=3 from=(3.17332506,1.70134473) to=(2.25,2) | |
| 1276 path.cubicTo(2.81209183,1.70874941, 2.51539397,1.82307076, 2.25,2); | |
| 1277 findNextOp simple | |
| 1278 markDoneBinary id=2 (3,2 0,2) t=0.25 [1] (2.25,2) tEnd=1 newWindSum=-1 newOppSum
=0 oppSum=0 windSum=-1 windValue=1 | |
| 1279 bridgeOp current id=2 from=(2.25,2) to=(0,2) | |
| 1280 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1281 debugShowSort [1] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.135342164 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1282 debugShowSort [2] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.223476766 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 1283 debugShowSort [3] {{0,2}, {3,6}, {4,0}, {3,2}} tStart=0.135342164 tEnd=0.7541650
96 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1284 debugShowSort [0] {{0,4}, {2,3}, {2,0}, {6,3}} tStart=0.223476766 tEnd=0.5 sign=
-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 1285 findNextOp firstIndex=[1] sign=1 | |
| 1286 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1287 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1288 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1289 markDoneBinary id=1 (0,2 3,6 4,0 3,2) t=0 [0] (0,2) tEnd=0.135342164 newWindSum=
-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1290 findNextOp from:[1] to:[3] start=1 end=0 | |
| 1291 bridgeOp current id=1 from=(0,2) to=(1.10817444,3.11920524) | |
| 1292 path.lineTo(0,2); | |
| 1293 path.cubicTo(0.406026483,2.54136872, 0.775417984,2.89956236, 1.10817444,3.119205
24); | |
| 1294 path.close(); | |
| 1295 assemble | |
| 1296 assemble contour start=(1.10817444,3.11920524) end=(1.10817444,3.11920524) | |
| 1297 </div> | |
| 1298 | |
| 1299 <div id="cubicOp45d"> | |
| 1300 SimplifyNew_Test [cubicOp45d] | |
| 1301 {{0,2}, {2,4}, {4,0}, {3,2}}, | |
| 1302 {{3,2}, {0,2}}, | |
| 1303 op difference | |
| 1304 {{0,4}, {2,3}, {2,0}, {4,2}}, | |
| 1305 {{4,2}, {0,4}}, | |
| 1306 debugShowCubicIntersection no self intersect {{0,4}, {2,3}, {2,0}, {4,2}} | |
| 1307 debugShowCubicLineIntersection wtTs[0]=0 {{0,4}, {2,3}, {2,0}, {4,2}} {{0,4}} wt
Ts[1]=1 {{4,2}} wnTs[0]=1 {{4,2}, {0,4}} wnTs[1]=0 | |
| 1308 debugShowCubicIntersection wtTs[0]=0.341662805 {{0,4}, {2,3}, {2,0}, {4,2}} {{1.
5091099386066631,2.5537951499735922}} wtTs[1]=0.856247521 {{3.2495913270767485,1
.4266624658205882}} wtTs[2]=0.859816875 {{3.2657899721435943,1.4343874043112959}
} wnTs[0]=0.260341 {{0,2}, {2,4}, {4,0}, {3,2}} wnTs[1]=0.768795564 wnTs[2]=0.82
1660252 | |
| 1309 debugShowCubicLineIntersection wtTs[0]=0.467845317 {{0,4}, {2,3}, {2,0}, {4,2}}
{{1.9034029684653309,1.9999999999999998}} wnTs[0]=0.365532 {{3,2}, {0,2}} | |
| 1310 debugShowCubicLineIntersection no intersect {{0,2}, {2,4}, {4,0}, {3,2}} {{4,2},
{0,4}} | |
| 1311 debugShowLineIntersection no intersect {{4,2}, {0,4}} {{3,2}, {0,2}} | |
| 1312 debugShowCubicIntersection no self intersect {{0,2}, {2,4}, {4,0}, {3,2}} | |
| 1313 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {2,4}, {4,0}, {3,2}} {{0,2}} wt
Ts[1]=0.5 {{2.625,2}} wtTs[2]=1 {{3,2}} wnTs[0]=1 {{3,2}, {0,2}} wnTs[1]=0.125 w
nTs[2]=0 | |
| 1314 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0 (0,4) tEnd=0.341662805 other=4 o
therT=1 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1315 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.341662805 (1.50910997,2.5537951)
tEnd=0.467845317 other=1 otherT=0.260340927 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1316 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.467845317 (1.90340292,2) tEnd=0.
856247521 other=2 otherT=0.365532344 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1317 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.856247521 (3.24959135,1.42666245
) tEnd=0.859816875 other=1 otherT=0.768795564 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 1318 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.859816875 (3.26578999,1.43438745
) tEnd=1 other=1 otherT=0.821660252 otherIndex=4 windSum=? windValue=1 oppValue=
0 | |
| 1319 debugShowActiveSpans id=4 (4,2 0,4) t=0 (4,2) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=? windValue=1 oppValue=0 | |
| 1320 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0 (0,2) tEnd=0.260340927 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1321 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 1322 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.5 (2.625,2) tEnd=0.768795564 oth
er=2 otherT=0.125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1323 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.768795564 (3.24959135,1.42666245
) tEnd=0.821660252 other=3 otherT=0.856247521 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 1324 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.821660252 (3.26578999,1.43438745
) tEnd=1 other=3 otherT=0.859816875 otherIndex=4 windSum=? windValue=1 oppValue=
0 | |
| 1325 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=? windValue=1 oppValue=0 | |
| 1326 debugShowActiveSpans id=2 (3,2 0,2) t=0.125 (2.625,2) tEnd=0.365532344 other=1 o
therT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1327 debugShowActiveSpans id=2 (3,2 0,2) t=0.365532344 (1.90340292,2) tEnd=1 other=3
otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1328 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1329 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=0.8562475
21 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1330 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1331 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1332 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=0.7687955
64 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1333 markWinding id=3 (0,4 2,3 2,0 4,2) t=0.856247521 [3] (3.24959135,1.42666245) tEn
d=0.859816875 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1334 markWinding id=3 (0,4 2,3 2,0 4,2) t=0.856247521 [3] (3.24959135,1.42666245) tEn
d=0.859816875 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1335 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1336 markDoneBinary id=3 (0,4 2,3 2,0 4,2) t=0.856247521 [3] (3.24959135,1.42666245)
tEnd=0.859816875 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1337 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 1338 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=0.7687955
64 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1339 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=0.8562475
21 sign=1 windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 1340 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=1 sign=-1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1341 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=1 sign=-1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 1342 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1343 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=0.8562475
21 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1344 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1345 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1346 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=0.7687955
64 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1347 markWinding id=1 (0,2 2,4 4,0 3,2) t=0.821660252 [4] (3.26578999,1.43438745) tEn
d=1 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1348 markWinding id=2 (3,2 0,2) t=0 [0] (3,2) tEnd=0.125 newWindSum=1 newOppSum=-1 op
pSum=? windSum=? windValue=1 | |
| 1349 markWinding id=3 (0,4 2,3 2,0 4,2) t=0.859816875 [4] (3.26578999,1.43438745) tEn
d=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1350 markWinding id=4 (4,2 0,4) t=0 [0] (4,2) tEnd=1 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1351 markWinding id=3 (0,4 2,3 2,0 4,2) t=0 [0] (0,4) tEnd=0.341662805 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1352 markWinding id=1 (0,2 2,4 4,0 3,2) t=0.768795564 [3] (3.24959135,1.42666245) tEn
d=0.821660252 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1353 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0 (0,4) tEnd=0.341662805 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1354 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.341662805 (1.50910997,2.5537951)
tEnd=0.467845317 other=1 otherT=0.260340927 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1355 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.467845317 (1.90340292,2) tEnd=0.
856247521 other=2 otherT=0.365532344 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1356 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.859816875 (3.26578999,1.43438745
) tEnd=1 other=1 otherT=0.821660252 otherIndex=4 windSum=-1 windValue=1 oppValue
=0 | |
| 1357 debugShowActiveSpans id=4 (4,2 0,4) t=0 (4,2) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1358 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0 (0,2) tEnd=0.260340927 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1359 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 1360 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.5 (2.625,2) tEnd=0.768795564 oth
er=2 otherT=0.125 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1361 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.768795564 (3.24959135,1.42666245
) tEnd=0.821660252 other=3 otherT=0.856247521 otherIndex=3 windSum=1 windValue=1
oppValue=0 | |
| 1362 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.821660252 (3.26578999,1.43438745
) tEnd=1 other=3 otherT=0.859816875 otherIndex=4 windSum=1 windValue=1 oppValue=
0 | |
| 1363 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=1 windValue=1 oppValue=0 | |
| 1364 debugShowActiveSpans id=2 (3,2 0,2) t=0.125 (2.625,2) tEnd=0.365532344 other=1 o
therT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1365 debugShowActiveSpans id=2 (3,2 0,2) t=0.365532344 (1.90340292,2) tEnd=1 other=3
otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1366 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1367 markDoneBinary id=1 (0,2 2,4 4,0 3,2) t=0.821660252 [4] (3.26578999,1.43438745)
tEnd=1 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 1368 markDoneBinary id=2 (3,2 0,2) t=0 [0] (3,2) tEnd=0.125 newWindSum=1 newOppSum=-1
oppSum=-1 windSum=1 windValue=1 | |
| 1369 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 1370 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.5 tEnd=0.768795564 sign=
-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1371 debugShowSort [1] {{3,2}, {0,2}} tStart=0.125 tEnd=0.365532344 sign=-1 windValue
=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1372 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.5 tEnd=0.260340927 sign=
1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1373 debugShowSort [3] {{3,2}, {0,2}} tStart=0.125 tEnd=0 sign=1 windValue=1 windSum=
1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 1374 findChaseOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 1375 debugShowSort [3] {{3,2}, {0,2}} tStart=0.125 tEnd=0 sign=1 windValue=1 windSum=
1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 1376 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.5 tEnd=0.768795564 sign=
-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1377 debugShowSort [1] {{3,2}, {0,2}} tStart=0.125 tEnd=0.365532344 sign=-1 windValue
=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=0 | |
| 1378 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.5 tEnd=0.260340927 sign=
1 windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 1379 markWinding id=1 (0,2 2,4 4,0 3,2) t=0.5 [2] (2.625,2) tEnd=0.768795564 newWindS
um=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1380 markWinding id=2 (3,2 0,2) t=0.125 [1] (2.625,2) tEnd=0.365532344 newWindSum=2 n
ewOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1381 markWinding id=1 (0,2 2,4 4,0 3,2) t=0.260340927 [1] (1.50910997,2.5537951) tEnd
=0.5 newWindSum=2 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1382 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0 (0,4) tEnd=0.341662805 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1383 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.341662805 (1.50910997,2.5537951)
tEnd=0.467845317 other=1 otherT=0.260340927 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1384 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.467845317 (1.90340292,2) tEnd=0.
856247521 other=2 otherT=0.365532344 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1385 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.859816875 (3.26578999,1.43438745
) tEnd=1 other=1 otherT=0.821660252 otherIndex=4 windSum=-1 windValue=1 oppValue
=0 | |
| 1386 debugShowActiveSpans id=4 (4,2 0,4) t=0 (4,2) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1387 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0 (0,2) tEnd=0.260340927 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1388 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=2 windValue=1 oppValue
=0 | |
| 1389 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.5 (2.625,2) tEnd=0.768795564 oth
er=2 otherT=0.125 otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 1390 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.768795564 (3.24959135,1.42666245
) tEnd=0.821660252 other=3 otherT=0.856247521 otherIndex=3 windSum=1 windValue=1
oppValue=0 | |
| 1391 debugShowActiveSpans id=2 (3,2 0,2) t=0.125 (2.625,2) tEnd=0.365532344 other=1 o
therT=0.5 otherIndex=2 windSum=2 windValue=1 oppValue=0 | |
| 1392 debugShowActiveSpans id=2 (3,2 0,2) t=0.365532344 (1.90340292,2) tEnd=1 other=3
otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1393 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1394 markDoneBinary id=1 (0,2 2,4 4,0 3,2) t=0.5 [2] (2.625,2) tEnd=0.768795564 newWi
ndSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 1395 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0 (0,4) tEnd=0.341662805 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1396 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.341662805 (1.50910997,2.5537951)
tEnd=0.467845317 other=1 otherT=0.260340927 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1397 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.467845317 (1.90340292,2) tEnd=0.
856247521 other=2 otherT=0.365532344 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1398 debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0.859816875 (3.26578999,1.43438745
) tEnd=1 other=1 otherT=0.821660252 otherIndex=4 windSum=-1 windValue=1 oppValue
=0 | |
| 1399 debugShowActiveSpans id=4 (4,2 0,4) t=0 (4,2) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1400 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0 (0,2) tEnd=0.260340927 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1401 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=2 windValue=1 oppValue
=0 | |
| 1402 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.768795564 (3.24959135,1.42666245
) tEnd=0.821660252 other=3 otherT=0.856247521 otherIndex=3 windSum=1 windValue=1
oppValue=0 | |
| 1403 debugShowActiveSpans id=2 (3,2 0,2) t=0.125 (2.625,2) tEnd=0.365532344 other=1 o
therT=0.5 otherIndex=2 windSum=2 windValue=1 oppValue=0 | |
| 1404 debugShowActiveSpans id=2 (3,2 0,2) t=0.365532344 (1.90340292,2) tEnd=1 other=3
otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1405 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1406 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 1407 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=0.7687955
64 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1408 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=0.8562475
21 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 1409 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.821660252 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 1410 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.859816875 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1411 findNextOp firstIndex=[0] sign=1 | |
| 1412 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1413 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1414 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1415 markDoneBinary id=1 (0,2 2,4 4,0 3,2) t=0.768795564 [3] (3.24959135,1.42666245)
tEnd=0.821660252 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1416 findNextOp from:[1] to:[3] start=4 end=5 | |
| 1417 bridgeOp current id=1 from=(3.24959135,1.42666245) to=(3.26578999,1.43438745) | |
| 1418 path.moveTo(3.24959135,1.42666245); | |
| 1419 path.cubicTo(3.26158428,1.4196322, 3.26713157,1.42161608, 3.26578999,1.43438745)
; | |
| 1420 findNextOp simple | |
| 1421 markDoneBinary id=3 (0,4 2,3 2,0 4,2) t=0.859816875 [4] (3.26578999,1.43438745)
tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1422 bridgeOp current id=3 from=(3.26578999,1.43438745) to=(4,2) | |
| 1423 path.cubicTo(3.47857022,1.53752398, 3.71963382,1.71963382, 4,2); | |
| 1424 findNextOp simple | |
| 1425 markDoneBinary id=4 (4,2 0,4) t=0 [0] (4,2) tEnd=1 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1426 bridgeOp current id=4 from=(4,2) to=(0,4) | |
| 1427 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 1428 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.341662805 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1429 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.260340927 tEnd=0.5 sign=
-1 windValue=1 windSum=2 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 1430 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.341662805 tEnd=0.4678453
17 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1431 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.260340927 tEnd=0 sign=1
windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=1 | |
| 1432 findNextOp firstIndex=[3] sign=1 | |
| 1433 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1434 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1435 markWinding id=3 (0,4 2,3 2,0 4,2) t=0.341662805 [1] (1.50910997,2.5537951) tEnd
=0.467845317 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 | |
| 1436 findNextOp chase.append id=3 | |
| 1437 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1438 markDoneBinary id=1 (0,2 2,4 4,0 3,2) t=0 [0] (0,2) tEnd=0.260340927 newWindSum=
2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1439 markDoneBinary id=2 (3,2 0,2) t=0.365532344 [2] (1.90340292,2) tEnd=1 newWindSum
=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1440 findNextOp chase.append id=2 | |
| 1441 markDoneBinary id=3 (0,4 2,3 2,0 4,2) t=0 [0] (0,4) tEnd=0.341662805 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1442 findNextOp from:[3] to:[3] start=1 end=2 | |
| 1443 bridgeOp current id=3 from=(0,4) to=(1.50910997,2.5537951) | |
| 1444 path.lineTo(0,4); | |
| 1445 path.cubicTo(0.683325648,3.65833712, 1.13318419,3.08320737, 1.50910997,2.5537951
); | |
| 1446 findNextOp debugShowSort contourWinding=0 oppContourWinding=2 sign=1 | |
| 1447 debugShowSort [2] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.467845317 tEnd=0.3416628
05 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1448 debugShowSort [3] {{3,2}, {0,2}} tStart=0.365532344 tEnd=0.125 sign=1 windValue=
1 windSum=2 2->1 (max=2) done=0 tiny=0 opp=1 | |
| 1449 debugShowSort [0] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.467845317 tEnd=0.8562475
21 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1450 debugShowSort [1] {{3,2}, {0,2}} tStart=0.365532344 tEnd=1 sign=-1 windValue=1 w
indSum=2 1->2 (max=2) done=1 tiny=0 opp=1 | |
| 1451 findNextOp firstIndex=[2] sign=1 | |
| 1452 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1453 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1454 markWinding id=3 (0,4 2,3 2,0 4,2) t=0.467845317 [2] (1.90340292,2) tEnd=0.85624
7521 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1455 findNextOp chase.append id=3 | |
| 1456 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1457 markDoneBinary id=3 (0,4 2,3 2,0 4,2) t=0.341662805 [1] (1.50910997,2.5537951) t
End=0.467845317 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 | |
| 1458 findNextOp from:[3] to:[3] start=2 end=3 | |
| 1459 bridgeOp current id=3 from=(1.50910997,2.5537951) to=(1.90340292,2) | |
| 1460 path.cubicTo(1.64794636,2.35827327, 1.77669871,2.16898704, 1.90340292,2); | |
| 1461 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 1462 debugShowSort [1] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.856247521 tEnd=0.4678453
17 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1463 debugShowSort [2] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.768795564 tEnd=0.5 sign=
1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 1464 debugShowSort [3] {{0,4}, {2,3}, {2,0}, {4,2}} tStart=0.856247521 tEnd=0.8598168
75 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1465 debugShowSort [0] {{0,2}, {2,4}, {4,0}, {3,2}} tStart=0.768795564 tEnd=0.8216602
52 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 1466 findNextOp firstIndex=[1] sign=1 | |
| 1467 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1468 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1469 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1470 markDoneBinary id=3 (0,4 2,3 2,0 4,2) t=0.467845317 [2] (1.90340292,2) tEnd=0.85
6247521 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1471 findNextOp from:[3] to:[1] start=3 end=4 | |
| 1472 bridgeOp current id=3 from=(1.90340292,2) to=(3.24959135,1.42666245) | |
| 1473 path.cubicTo(2.29341149,1.47984147, 2.66401696,1.15201211, 3.24959135,1.42666245
); | |
| 1474 path.close(); | |
| 1475 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=2 windValue=1 oppValue
=0 | |
| 1476 debugShowActiveSpans id=2 (3,2 0,2) t=0.125 (2.625,2) tEnd=0.365532344 other=1 o
therT=0.5 otherIndex=2 windSum=2 windValue=1 oppValue=0 | |
| 1477 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1478 markDoneBinary id=2 (3,2 0,2) t=0.125 [1] (2.625,2) tEnd=0.365532344 newWindSum=
2 newOppSum=-1 oppSum=-1 windSum=2 windValue=1 | |
| 1479 debugShowActiveSpans id=1 (0,2 2,4 4,0 3,2) t=0.260340927 (1.50910997,2.5537951)
tEnd=0.5 other=3 otherT=0.341662805 otherIndex=1 windSum=2 windValue=1 oppValue
=0 | |
| 1480 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1481 markDoneBinary id=1 (0,2 2,4 4,0 3,2) t=0.260340927 [1] (1.50910997,2.5537951) t
End=0.5 newWindSum=2 newOppSum=-1 oppSum=-1 windSum=2 windValue=1 | |
| 1482 </div> | |
| 1483 | |
| 1484 <div id="cubicOp46d"> | |
| 1485 SimplifyNew_Test [cubicOp46d] | |
| 1486 {{0,2}, {3,5}, {5,0}, {4,2}}, | |
| 1487 {{4,2}, {0,2}}, | |
| 1488 op difference | |
| 1489 {{0,5}, {2,4}, {2,0}, {5,3}}, | |
| 1490 {{5,3}, {0,5}}, | |
| 1491 debugShowCubicIntersection no self intersect {{0,2}, {3,5}, {5,0}, {4,2}} | |
| 1492 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {3,5}, {5,0}, {4,2}} {{0,2}} wt
Ts[1]=0.6 {{3.887999999999999,2.0000000000000013}} wtTs[2]=1 {{4,2}} wnTs[0]=1 {
{4,2}, {0,2}} wnTs[1]=0.028 wnTs[2]=0 | |
| 1493 debugShowCubicIntersection wtTs[0]=0.215060475 {{0,2}, {3,5}, {5,0}, {4,2}} {{1.
7768977226209808,2.9747215410507057}} wtTs[1]=0.578517386 {{3.8153702411617676,2
.0785732044555085}} wnTs[0]=0.404694 {{0,5}, {2,4}, {2,0}, {5,3}} wnTs[1]=0.8469
38928 | |
| 1494 debugShowCubicLineIntersection wtTs[0]=0.64696132 {{0,5}, {2,4}, {2,0}, {5,3}} {
{2.7243714728959709,2}} wtTs[1]=0.819132784 {{3.6370281018311013,1.9999999999999
996}} wnTs[0]=0.318907 {{4,2}, {0,2}} wnTs[1]=0.0907429745 | |
| 1495 debugShowCubicIntersection no self intersect {{0,5}, {2,4}, {2,0}, {5,3}} | |
| 1496 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {2,4}, {2,0}, {5,3}} {{0,5}} wt
Ts[1]=1 {{5,3}} wnTs[0]=1 {{5,3}, {0,5}} wnTs[1]=0 | |
| 1497 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0 (0,2) tEnd=0.215060475 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1498 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0.215060475 (1.77689767,2.97472143
) tEnd=0.578517386 other=3 otherT=0.404693629 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1499 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0.578517386 (3.81537032,2.07857323
) tEnd=0.6 other=3 otherT=0.846938928 otherIndex=4 windSum=? windValue=1 oppValu
e=0 | |
| 1500 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0.6 (3.88800001,2) tEnd=1 other=2
otherT=0.028 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1501 debugShowActiveSpans id=2 (4,2 0,2) t=0 (4,2) tEnd=0.028 other=1 otherT=1 otherI
ndex=4 windSum=? windValue=1 oppValue=0 | |
| 1502 debugShowActiveSpans id=2 (4,2 0,2) t=0.028 (3.88800001,2) tEnd=0.0907429745 oth
er=1 otherT=0.6 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1503 debugShowActiveSpans id=2 (4,2 0,2) t=0.0907429745 (3.63702822,2) tEnd=0.3189071
32 other=3 otherT=0.819132784 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1504 debugShowActiveSpans id=2 (4,2 0,2) t=0.318907132 (2.72437143,2) tEnd=1 other=3
otherT=0.64696132 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1505 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0 (0,5) tEnd=0.404693629 other=4 o
therT=1 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1506 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.404693629 (1.77689767,2.97472143
) tEnd=0.64696132 other=1 otherT=0.215060475 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1507 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.64696132 (2.72437143,2) tEnd=0.8
19132784 other=2 otherT=0.318907132 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 1508 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.819132784 (3.63702822,2) tEnd=0.
846938928 other=2 otherT=0.0907429745 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 1509 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.846938928 (3.81537032,2.07857323
) tEnd=1 other=1 otherT=0.578517386 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 1510 debugShowActiveSpans id=4 (5,3 0,5) t=0 (5,3) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=? windValue=1 oppValue=0 | |
| 1511 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1512 debugShowSort [0] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=1 tEnd=0.6 sign=1 windValu
e=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1513 debugShowSort [1] {{4,2}, {0,2}} tStart=0 tEnd=0.028 sign=-1 windValue=1 windSum
=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1514 findTop swap | |
| 1515 markWinding id=1 (0,2 3,5 5,0 4,2) t=0.6 [3] (3.88800001,2) tEnd=1 newWindSum=1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1516 markWinding id=1 (0,2 3,5 5,0 4,2) t=0.6 [3] (3.88800001,2) tEnd=1 newWindSum=1
newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1517 markWinding id=2 (4,2 0,2) t=0 [0] (4,2) tEnd=0.028 newWindSum=1 newOppSum=0 opp
Sum=? windSum=? windValue=1 | |
| 1518 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1519 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1520 debugShowSort [0] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.6 tEnd=1 sign=-1 windVal
ue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1521 debugShowSort [1] {{4,2}, {0,2}} tStart=0.028 tEnd=0.0907429745 sign=-1 windValu
e=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=0 | |
| 1522 debugShowSort [2] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.6 tEnd=0.578517386 sign=
1 windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 1523 debugShowSort [3] {{4,2}, {0,2}} tStart=0.028 tEnd=0 sign=1 windValue=1 windSum=
1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1524 findNextOp firstIndex=[0] sign=-1 | |
| 1525 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1526 markDoneBinary id=2 (4,2 0,2) t=0.028 [1] (3.88800001,2) tEnd=0.0907429745 newWi
ndSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1527 findNextOp chase.append id=2 | |
| 1528 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1529 markDoneBinary id=1 (0,2 3,5 5,0 4,2) t=0.578517386 [2] (3.81537032,2.07857323)
tEnd=0.6 newWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1530 findNextOp chase.append id=1 | |
| 1531 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1532 markDoneBinary id=1 (0,2 3,5 5,0 4,2) t=0.6 [3] (3.88800001,2) tEnd=1 newWindSum
=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1533 findNextOp from:[1] to:[2] start=1 end=0 | |
| 1534 bridgeOp current id=1 from=(4,2) to=(3.88800001,2) | |
| 1535 path.moveTo(4,2); | |
| 1536 path.cubicTo(4.4000001,1.20000005, 4.32000017,1.51999998, 3.88800001,2); | |
| 1537 findNextOp simple | |
| 1538 markDoneBinary id=2 (4,2 0,2) t=0 [0] (4,2) tEnd=0.028 newWindSum=1 newOppSum=0
oppSum=0 windSum=1 windValue=1 | |
| 1539 bridgeOp current id=2 from=(3.88800001,2) to=(4,2) | |
| 1540 path.lineTo(4,2); | |
| 1541 path.close(); | |
| 1542 findChaseOp debugShowSort contourWinding=1 oppContourWinding=0 sign=-1 | |
| 1543 debugShowSort [0] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.6 sign=
-1 windValue=1 windSum=2 1->2 (max=2) done=1 tiny=0 opp=0 | |
| 1544 debugShowSort [1] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=0.8191327
84 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1545 debugShowSort [2] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.2150604
75 sign=1 windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 1546 debugShowSort [3] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1547 findChaseOp debugShowSort contourWinding=1 oppContourWinding=0 sign=-1 | |
| 1548 debugShowSort [0] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.6 sign=
-1 windValue=1 windSum=2 1->2 (max=2) done=1 tiny=0 opp=0 | |
| 1549 debugShowSort [1] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=0.8191327
84 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1550 debugShowSort [2] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.2150604
75 sign=1 windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 1551 debugShowSort [3] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1552 markWinding id=3 (0,5 2,4 2,0 5,3) t=0.819132784 [3] (3.63702822,2) tEnd=0.84693
8928 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 | |
| 1553 markWinding id=1 (0,2 3,5 5,0 4,2) t=0.215060475 [1] (1.77689767,2.97472143) tEn
d=0.578517386 newWindSum=2 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1554 markWinding id=3 (0,5 2,4 2,0 5,3) t=0.846938928 [4] (3.81537032,2.07857323) tEn
d=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1555 markWinding id=4 (5,3 0,5) t=0 [0] (5,3) tEnd=1 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1556 markWinding id=3 (0,5 2,4 2,0 5,3) t=0 [0] (0,5) tEnd=0.404693629 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1557 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0 (0,2) tEnd=0.215060475 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1558 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0.215060475 (1.77689767,2.97472143
) tEnd=0.578517386 other=3 otherT=0.404693629 otherIndex=1 windSum=2 windValue=1
oppValue=0 | |
| 1559 debugShowActiveSpans id=2 (4,2 0,2) t=0.0907429745 (3.63702822,2) tEnd=0.3189071
32 other=3 otherT=0.819132784 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1560 debugShowActiveSpans id=2 (4,2 0,2) t=0.318907132 (2.72437143,2) tEnd=1 other=3
otherT=0.64696132 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1561 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0 (0,5) tEnd=0.404693629 other=4 o
therT=1 otherIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 1562 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.404693629 (1.77689767,2.97472143
) tEnd=0.64696132 other=1 otherT=0.215060475 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 1563 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.64696132 (2.72437143,2) tEnd=0.8
19132784 other=2 otherT=0.318907132 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 1564 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.819132784 (3.63702822,2) tEnd=0.
846938928 other=2 otherT=0.0907429745 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 1565 debugShowActiveSpans id=3 (0,5 2,4 2,0 5,3) t=0.846938928 (3.81537032,2.07857323
) tEnd=1 other=1 otherT=0.578517386 otherIndex=2 windSum=-1 windValue=1 oppValue
=0 | |
| 1566 debugShowActiveSpans id=4 (5,3 0,5) t=0 (5,3) tEnd=1 other=3 otherT=1 otherIndex
=5 windSum=-1 windValue=1 oppValue=0 | |
| 1567 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1568 findNextOp debugShowSort contourWinding=-1 oppContourWinding=2 sign=-1 | |
| 1569 debugShowSort [2] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.819132784 tEnd=0.8469389
28 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1570 debugShowSort [3] {{4,2}, {0,2}} tStart=0.0907429745 tEnd=0.028 sign=1 windValue
=1 windSum=2 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1571 debugShowSort [0] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.819132784 tEnd=0.6469613
2 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1572 debugShowSort [1] {{4,2}, {0,2}} tStart=0.0907429745 tEnd=0.318907132 sign=-1 wi
ndValue=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 1573 findNextOp firstIndex=[2] sign=-1 | |
| 1574 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1575 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1576 markWinding id=3 (0,5 2,4 2,0 5,3) t=0.64696132 [2] (2.72437143,2) tEnd=0.819132
784 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1577 findNextOp chase.append id=3 | |
| 1578 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1579 markDoneBinary id=2 (4,2 0,2) t=0.0907429745 [2] (3.63702822,2) tEnd=0.318907132
newWindSum=2 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1580 findNextOp chase.append id=2 | |
| 1581 markDoneBinary id=3 (0,5 2,4 2,0 5,3) t=0.819132784 [3] (3.63702822,2) tEnd=0.84
6938928 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 | |
| 1582 findNextOp from:[3] to:[3] start=3 end=2 | |
| 1583 bridgeOp current id=3 from=(3.81537032,2.07857323) to=(3.63702822,2) | |
| 1584 path.moveTo(3.81537032,2.07857323); | |
| 1585 path.cubicTo(3.75423074,2.04822493, 3.69481921,2.02210546, 3.63702822,2); | |
| 1586 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1587 debugShowSort [0] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.64696132 tEnd=0.81913278
4 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1588 debugShowSort [1] {{4,2}, {0,2}} tStart=0.318907132 tEnd=1 sign=-1 windValue=1 w
indSum=? 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 1589 debugShowSort [2] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.64696132 tEnd=0.40469362
9 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1590 debugShowSort [3] {{4,2}, {0,2}} tStart=0.318907132 tEnd=0.0907429745 sign=1 win
dValue=1 windSum=2 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1591 findNextOp firstIndex=[0] sign=-1 | |
| 1592 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1593 markDoneBinary id=2 (4,2 0,2) t=0.318907132 [3] (2.72437143,2) tEnd=1 newWindSum
=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1594 markDoneBinary id=1 (0,2 3,5 5,0 4,2) t=0 [0] (0,2) tEnd=0.215060475 newWindSum=
2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1595 findNextOp chase.append id=1 | |
| 1596 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1597 markWinding id=3 (0,5 2,4 2,0 5,3) t=0.404693629 [1] (1.77689767,2.97472143) tEn
d=0.64696132 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 | |
| 1598 findNextOp chase.append id=3 | |
| 1599 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1600 markDoneBinary id=3 (0,5 2,4 2,0 5,3) t=0.64696132 [2] (2.72437143,2) tEnd=0.819
132784 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1601 findNextOp from:[3] to:[3] start=2 end=1 | |
| 1602 bridgeOp current id=3 from=(3.63702822,2) to=(2.72437143,2) | |
| 1603 path.cubicTo(3.2791934,1.86312568, 2.98348093,1.88013792, 2.72437143,2); | |
| 1604 findNextOp debugShowSort contourWinding=-1 oppContourWinding=2 sign=-1 | |
| 1605 debugShowSort [0] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.404693629 tEnd=0.6469613
2 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1606 debugShowSort [1] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.215060475 tEnd=0 sign=1
windValue=1 windSum=2 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1607 debugShowSort [2] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.404693629 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1608 debugShowSort [3] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.215060475 tEnd=0.5785173
86 sign=-1 windValue=1 windSum=2 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 1609 findNextOp firstIndex=[0] sign=-1 | |
| 1610 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1611 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1612 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1613 markDoneBinary id=3 (0,5 2,4 2,0 5,3) t=0.404693629 [1] (1.77689767,2.97472143)
tEnd=0.64696132 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 | |
| 1614 findNextOp from:[3] to:[3] start=1 end=0 | |
| 1615 bridgeOp current id=3 from=(2.72437143,2) to=(1.77689767,2.97472143) | |
| 1616 path.cubicTo(2.35977101,2.16866159, 2.06764531,2.54096746, 1.77689767,2.97472143
); | |
| 1617 findNextOp simple | |
| 1618 markDoneBinary id=3 (0,5 2,4 2,0 5,3) t=0 [0] (0,5) tEnd=0.404693629 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1619 bridgeOp current id=3 from=(1.77689767,2.97472143) to=(0,5) | |
| 1620 path.cubicTo(1.29122055,3.69928193, 0.809387267,4.5953064, 0,5); | |
| 1621 findNextOp simple | |
| 1622 markDoneBinary id=4 (5,3 0,5) t=0 [0] (5,3) tEnd=1 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1623 bridgeOp current id=4 from=(0,5) to=(5,3) | |
| 1624 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1625 debugShowSort [3] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1626 debugShowSort [0] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.6 sign=
-1 windValue=1 windSum=2 1->2 (max=2) done=1 tiny=0 opp=1 | |
| 1627 debugShowSort [1] {{0,5}, {2,4}, {2,0}, {5,3}} tStart=0.846938928 tEnd=0.8191327
84 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1628 debugShowSort [2] {{0,2}, {3,5}, {5,0}, {4,2}} tStart=0.578517386 tEnd=0.2150604
75 sign=1 windValue=1 windSum=2 2->1 (max=2) done=0 tiny=0 opp=1 | |
| 1629 findNextOp firstIndex=[3] sign=-1 | |
| 1630 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1631 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1632 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1633 markDoneBinary id=3 (0,5 2,4 2,0 5,3) t=0.846938928 [4] (3.81537032,2.07857323)
tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1634 findNextOp from:[3] to:[3] start=4 end=3 | |
| 1635 bridgeOp current id=3 from=(5,3) to=(3.81537032,2.07857323) | |
| 1636 path.lineTo(5,3); | |
| 1637 path.cubicTo(4.54081678,2.54081678, 4.1519165,2.2456274, 3.81537032,2.07857323); | |
| 1638 path.close(); | |
| 1639 debugShowActiveSpans id=1 (0,2 3,5 5,0 4,2) t=0.215060475 (1.77689767,2.97472143
) tEnd=0.578517386 other=3 otherT=0.404693629 otherIndex=1 windSum=2 windValue=1
oppValue=0 | |
| 1640 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1641 markDoneBinary id=1 (0,2 3,5 5,0 4,2) t=0.215060475 [1] (1.77689767,2.97472143)
tEnd=0.578517386 newWindSum=2 newOppSum=-1 oppSum=-1 windSum=2 windValue=1 | |
| 1642 assemble | |
| 1643 assemble contour start=(4,2) end=(4,2) | |
| 1644 </div> | |
| 1645 | |
| 1646 <div id="cubicOp46da"> | |
| 1647 {{0,2}, {3,5}, {5,0}, {4,2}}, | |
| 1648 | |
| 1649 {{0,2}, {1.1328125,3.06640625}, {2.03125,2.984375}}, | |
| 1650 {{2.03125,2.984375}, {2.9296875,2.90234375}, {3.5,2.375}}, | |
| 1651 {{3.5,2.375}, {4.0703125,1.84765625}, {4.21875,1.578125}}, | |
| 1652 {{4.21875,1.578125}, {4.3671875,1.30859375}, {4,2}}, | |
| 1653 </div> | |
| 1654 | |
| 1655 <div id="cubicOp46db"> | |
| 1656 {{x = 3, y = 4}, {x = 4.0000000000000009, y = 6}, {x = 0.99999999999999845, y =
7.894919286223335e-16}, {x = 6, y = 2}} | |
| 1657 </div> | |
| 1658 | |
| 1659 <div id="cubicOp47d"> | |
| 1660 SimplifyNew_Test [cubicOp47d] | |
| 1661 {{0,1}, {1,6}, {6,2}, {5,4}}, | |
| 1662 {{5,4}, {0,1}}, | |
| 1663 op difference | |
| 1664 {{2,6}, {4,5}, {1,0}, {6,1}}, | |
| 1665 {{6,1}, {2,6}}, | |
| 1666 debugShowCubicIntersection no self intersect {{2,6}, {4,5}, {1,0}, {6,1}} | |
| 1667 debugShowCubicLineIntersection wtTs[0]=0 {{2,6}, {4,5}, {1,0}, {6,1}} {{2,6}} wt
Ts[1]=0.171428571 {{2.6532478134110784,5.1834402332361513}} wtTs[2]=1 {{6,1}} wn
Ts[0]=1 {{6,1}, {2,6}} wnTs[1]=0.836688047 wnTs[2]=0 | |
| 1668 debugShowCubicIntersection no intersect {{2,6}, {4,5}, {1,0}, {6,1}} {{0,1}, {1,
6}, {6,2}, {5,4}} | |
| 1669 debugShowCubicLineIntersection wtTs[0]=0.503145036 {{2,6}, {4,5}, {1,0}, {6,1}}
{{2.8774036920020918,2.7264422152012551}} wnTs[0]=0.424519 {{5,4}, {0,1}} | |
| 1670 debugShowCubicLineIntersection wtTs[0]=0.604274731 {{0,1}, {1,6}, {6,2}, {5,4}}
{{3.9881028045490883,3.5148714943136397}} wnTs[0]=0.502974 {{6,1}, {2,6}} | |
| 1671 debugShowLineIntersection wtTs[0]=0.486486486 {{6,1}, {2,6}} {{4.054054054054053
5,3.4324324324324329}} wnTs[0]=0.189189 {{5,4}, {0,1}} | |
| 1672 debugShowCubicIntersection no self intersect {{0,1}, {1,6}, {6,2}, {5,4}} | |
| 1673 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {1,6}, {6,2}, {5,4}} {{0,1}} wt
Ts[1]=0.628571429 {{4.1434402332361522,3.486064139941691}} wtTs[2]=1 {{5,4}} wnT
s[0]=1 {{5,4}, {0,1}} wnTs[1]=0.171311953 wnTs[2]=0 | |
| 1674 debugShowActiveSpans id=3 (2,6 4,5 1,0 6,1) t=0 (2,6) tEnd=0.171428571 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1675 debugShowActiveSpans id=3 (2,6 4,5 1,0 6,1) t=0.171428571 (2.65324783,5.18344021
) tEnd=0.503145036 other=4 otherT=0.836688047 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 1676 debugShowActiveSpans id=3 (2,6 4,5 1,0 6,1) t=0.503145036 (2.87740374,2.7264421)
tEnd=1 other=2 otherT=0.424519262 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1677 debugShowActiveSpans id=4 (6,1 2,6) t=0 (6,1) tEnd=0.486486486 other=3 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1678 debugShowActiveSpans id=4 (6,1 2,6) t=0.486486486 (4.05405426,3.43243241) tEnd=0
.502974299 other=2 otherT=0.189189189 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 1679 debugShowActiveSpans id=4 (6,1 2,6) t=0.502974299 (3.98810291,3.5148716) tEnd=0.
836688047 other=1 otherT=0.604274731 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 1680 debugShowActiveSpans id=4 (6,1 2,6) t=0.836688047 (2.65324783,5.18344021) tEnd=1
other=3 otherT=0.171428571 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1681 debugShowActiveSpans id=1 (0,1 1,6 6,2 5,4) t=0 (0,1) tEnd=0.604274731 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1682 debugShowActiveSpans id=1 (0,1 1,6 6,2 5,4) t=0.604274731 (3.98810291,3.5148716)
tEnd=0.628571429 other=4 otherT=0.502974299 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 1683 debugShowActiveSpans id=1 (0,1 1,6 6,2 5,4) t=0.628571429 (4.14344025,3.4860642)
tEnd=1 other=2 otherT=0.171311953 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1684 debugShowActiveSpans id=2 (5,4 0,1) t=0 (5,4) tEnd=0.171311953 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1685 debugShowActiveSpans id=2 (5,4 0,1) t=0.171311953 (4.14344025,3.4860642) tEnd=0.
189189189 other=1 otherT=0.628571429 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1686 debugShowActiveSpans id=2 (5,4 0,1) t=0.189189189 (4.05405426,3.43243241) tEnd=0
.424519262 other=4 otherT=0.486486486 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1687 debugShowActiveSpans id=2 (5,4 0,1) t=0.424519262 (2.87740374,2.7264421) tEnd=1
other=3 otherT=0.503145036 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1688 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1689 debugShowSort [0] {{0,1}, {1,6}, {6,2}, {5,4}} tStart=0 tEnd=0.604274731 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1690 debugShowSort [1] {{5,4}, {0,1}} tStart=1 tEnd=0.424519262 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1691 markWinding id=1 (0,1 1,6 6,2 5,4) t=0 [0] (0,1) tEnd=0.604274731 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1692 markWinding id=2 (5,4 0,1) t=0.424519262 [3] (2.87740374,2.7264421) tEnd=1 newWi
ndSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1693 markWinding id=1 (0,1 1,6 6,2 5,4) t=0 [0] (0,1) tEnd=0.604274731 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1694 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 1695 findNextOp simple | |
| 1696 markDoneBinary id=1 (0,1 1,6 6,2 5,4) t=0 [0] (0,1) tEnd=0.604274731 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1697 bridgeOp current id=1 from=(3.98810291,3.5148716) to=(0,1) | |
| 1698 path.moveTo(3.98810291,3.5148716); | |
| 1699 path.cubicTo(2.66914129,3.75641561, 0.60427475,4.02137375, 0,1); | |
| 1700 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 1701 debugShowSort [1] {{5,4}, {0,1}} tStart=0.424519262 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1702 debugShowSort [2] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.503145036 tEnd=0.1714285
71 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1703 debugShowSort [3] {{5,4}, {0,1}} tStart=0.424519262 tEnd=0.189189189 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1704 debugShowSort [0] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.503145036 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1705 findNextOp firstIndex=[1] sign=-1 | |
| 1706 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1707 markWinding id=3 (2,6 4,5 1,0 6,1) t=0.171428571 [1] (2.65324783,5.18344021) tEn
d=0.503145036 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1708 findNextOp chase.append id=3 | |
| 1709 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1710 markDoneBinary id=2 (5,4 0,1) t=0.189189189 [2] (4.05405426,3.43243241) tEnd=0.4
24519262 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1711 findNextOp chase.append id=2 | |
| 1712 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1713 markDoneBinary id=3 (2,6 4,5 1,0 6,1) t=0.503145036 [2] (2.87740374,2.7264421) t
End=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1714 markDoneBinary id=4 (6,1 2,6) t=0 [0] (6,1) tEnd=0.486486486 newWindSum=-1 newOp
pSum=0 oppSum=? windSum=? windValue=1 | |
| 1715 findNextOp chase.append id=4 | |
| 1716 markDoneBinary id=2 (5,4 0,1) t=0.424519262 [3] (2.87740374,2.7264421) tEnd=1 ne
wWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1717 findNextOp from:[2] to:[3] start=2 end=1 | |
| 1718 bridgeOp current id=2 from=(0,1) to=(2.87740374,2.7264421) | |
| 1719 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1720 debugShowSort [1] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.171428571 tEnd=0.5031450
36 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1721 debugShowSort [2] {{6,1}, {2,6}} tStart=0.836688047 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1722 debugShowSort [3] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.171428571 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1723 debugShowSort [0] {{6,1}, {2,6}} tStart=0.836688047 tEnd=0.502974299 sign=1 wind
Value=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1724 findNextOp firstIndex=[1] sign=-1 | |
| 1725 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1726 markWinding id=4 (6,1 2,6) t=0.836688047 [3] (2.65324783,5.18344021) tEnd=1 newW
indSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1727 markWinding id=3 (2,6 4,5 1,0 6,1) t=0 [0] (2,6) tEnd=0.171428571 newWindSum=1 n
ewOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1728 findNextOp chase.append id=3 | |
| 1729 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1730 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1731 markWinding id=4 (6,1 2,6) t=0.502974299 [2] (3.98810291,3.5148716) tEnd=0.83668
8047 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1732 findNextOp chase.append id=4 | |
| 1733 markDoneBinary id=3 (2,6 4,5 1,0 6,1) t=0.171428571 [1] (2.65324783,5.18344021)
tEnd=0.503145036 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1734 findNextOp from:[3] to:[4] start=3 end=4 | |
| 1735 bridgeOp current id=3 from=(2.87740374,2.7264421) to=(2.65324783,5.18344021) | |
| 1736 path.lineTo(2.87740374,2.7264421); | |
| 1737 path.cubicTo(2.7913022,3.55361414, 2.87475324,4.49428225, 2.65324783,5.18344021)
; | |
| 1738 findNextOp simple | |
| 1739 markDoneBinary id=4 (6,1 2,6) t=0.836688047 [3] (2.65324783,5.18344021) tEnd=1 n
ewWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 1740 bridgeOp current id=4 from=(2.65324783,5.18344021) to=(2,6) | |
| 1741 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 1742 debugShowSort [3] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.171428571 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1743 debugShowSort [0] {{6,1}, {2,6}} tStart=0.836688047 tEnd=0.502974299 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1744 debugShowSort [1] {{2,6}, {4,5}, {1,0}, {6,1}} tStart=0.171428571 tEnd=0.5031450
36 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1745 debugShowSort [2] {{6,1}, {2,6}} tStart=0.836688047 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 1746 findNextOp firstIndex=[3] sign=1 | |
| 1747 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1748 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1749 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1750 markDoneBinary id=3 (2,6 4,5 1,0 6,1) t=0 [0] (2,6) tEnd=0.171428571 newWindSum=
1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 1751 findNextOp from:[3] to:[4] start=3 end=2 | |
| 1752 bridgeOp current id=3 from=(2,6) to=(2.65324783,5.18344021) | |
| 1753 path.lineTo(2,6); | |
| 1754 path.cubicTo(2.34285712,5.82857132, 2.53877544,5.53959179, 2.65324783,5.18344021
); | |
| 1755 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 1756 debugShowSort [3] {{6,1}, {2,6}} tStart=0.502974299 tEnd=0.836688047 sign=-1 win
dValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1757 debugShowSort [0] {{0,1}, {1,6}, {6,2}, {5,4}} tStart=0.604274731 tEnd=0.6285714
29 sign=-1 windValue=1 windSum=? 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 1758 debugShowSort [1] {{6,1}, {2,6}} tStart=0.502974299 tEnd=0.486486486 sign=1 wind
Value=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1759 debugShowSort [2] {{0,1}, {1,6}, {6,2}, {5,4}} tStart=0.604274731 tEnd=0 sign=1
windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1760 findNextOp firstIndex=[3] sign=-1 | |
| 1761 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1762 markDoneBinary id=1 (0,1 1,6 6,2 5,4) t=0.604274731 [1] (3.98810291,3.5148716) t
End=0.628571429 newWindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1763 findNextOp chase.append id=1 | |
| 1764 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 1765 markWinding id=4 (6,1 2,6) t=0.486486486 [1] (4.05405426,3.43243241) tEnd=0.5029
74299 newWindSum=-1 newOppSum=2 oppSum=? windSum=? windValue=1 | |
| 1766 findNextOp chase.append id=4 | |
| 1767 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1768 markDoneBinary id=4 (6,1 2,6) t=0.502974299 [2] (3.98810291,3.5148716) tEnd=0.83
6688047 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1769 findNextOp from:[4] to:[4] start=2 end=1 | |
| 1770 bridgeOp current id=4 from=(2.65324783,5.18344021) to=(3.98810291,3.5148716) | |
| 1771 path.lineTo(3.98810291,3.5148716); | |
| 1772 path.close(); | |
| 1773 debugShowActiveSpans id=4 (6,1 2,6) t=0.486486486 (4.05405426,3.43243241) tEnd=0
.502974299 other=2 otherT=0.189189189 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 1774 debugShowActiveSpans id=1 (0,1 1,6 6,2 5,4) t=0.628571429 (4.14344025,3.4860642)
tEnd=1 other=2 otherT=0.171311953 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1775 debugShowActiveSpans id=2 (5,4 0,1) t=0 (5,4) tEnd=0.171311953 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1776 debugShowActiveSpans id=2 (5,4 0,1) t=0.171311953 (4.14344025,3.4860642) tEnd=0.
189189189 other=1 otherT=0.628571429 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1777 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1778 findNextOp debugShowSort contourWinding=0 oppContourWinding=2 sign=1 | |
| 1779 debugShowSort [1] {{6,1}, {2,6}} tStart=0.502974299 tEnd=0.486486486 sign=1 wind
Value=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1780 debugShowSort [2] {{0,1}, {1,6}, {6,2}, {5,4}} tStart=0.604274731 tEnd=0 sign=1
windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1781 debugShowSort [3] {{6,1}, {2,6}} tStart=0.502974299 tEnd=0.836688047 sign=-1 win
dValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1782 debugShowSort [0] {{0,1}, {1,6}, {6,2}, {5,4}} tStart=0.604274731 tEnd=0.6285714
29 sign=-1 windValue=1 windSum=2 1->2 (max=2) done=1 tiny=0 opp=1 | |
| 1783 findNextOp firstIndex=[1] sign=1 | |
| 1784 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1785 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1786 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1787 markDoneBinary id=4 (6,1 2,6) t=0.486486486 [1] (4.05405426,3.43243241) tEnd=0.5
02974299 newWindSum=-1 newOppSum=2 oppSum=2 windSum=-1 windValue=1 | |
| 1788 findNextOp from:[4] to:[4] start=2 end=3 | |
| 1789 bridgeOp current id=4 from=(4.05405426,3.43243241) to=(3.98810291,3.5148716) | |
| 1790 debugShowActiveSpans id=1 (0,1 1,6 6,2 5,4) t=0.628571429 (4.14344025,3.4860642)
tEnd=1 other=2 otherT=0.171311953 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1791 debugShowActiveSpans id=2 (5,4 0,1) t=0 (5,4) tEnd=0.171311953 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 1792 debugShowActiveSpans id=2 (5,4 0,1) t=0.171311953 (4.14344025,3.4860642) tEnd=0.
189189189 other=1 otherT=0.628571429 otherIndex=2 windSum=? windValue=1 oppValue
=0 | |
| 1793 </div> | |
| 1794 | |
| 1795 <div id="cubicOp47da"> | |
| 1796 computed quadratics given | |
| 1797 {{2,6}, {4,5}, {1,0}, {6,1}}, | |
| 1798 {{0,1}, {1,6}, {6,2}, {5,4}}, | |
| 1799 computed quadratics set 1 | |
| 1800 {{2,6}, {2.2404737,5.87759298}, {2.39345162,5.68487367}}, | |
| 1801 {{2.39345162,5.68487367}, {2.67348969,5.31541246}, {2.74792918,4.77711896}}, | |
| 1802 {{2.74792918,4.77711896}, {2.82236867,4.23882547}, {2.82848144,3.63729341}}, | |
| 1803 {{2.82848144,3.63729341}, {2.83027876,3.57616472}, {2.83215462,3.51498289}}, | |
| 1804 {{2.83215462,3.51498289}, {2.78850872,2.32758859}, {3.26769775,1.50382966}}, | |
| 1805 {{3.26769775,1.50382966}, {3.55499101,1.08453908}, {4.20162956,0.930553195}}, | |
| 1806 {{4.20162956,0.930553195}, {4.84826812,0.776567313}, {6,1}}, | |
| 1807 computed quadratics set 2 | |
| 1808 {{0,1}, {0.337189878,2.53658624}, {1.06305813,3.09524088}}, | |
| 1809 {{1.06305813,3.09524088}, {1.78892639,3.65389552}, {2.62772567,3.64823958}}, | |
| 1810 {{2.62772567,3.64823958}, {3.46652495,3.64258364}, {4.1425079,3.48623815}}, | |
| 1811 {{4.1425079,3.48623815}, {4.88772835,3.3075243}, {5.09137748,3.46764237}}, | |
| 1812 {{5.09137748,3.46764237}, {5.20611277,3.58418013}, {5,4}}, | |
| 1813 </div> | |
| 1814 | |
| 1815 <div id="cubicOp47db"> | |
| 1816 {{2.74792918,4.77711896}, {2.82236867,4.23882547}, {2.82848144,3.63729341}}, | |
| 1817 {{2.62772567,3.64823958}, {3.46652495,3.64258364}, {4.1425079,3.48623815}}, | |
| 1818 </div> | |
| 1819 | |
| 1820 <div id="cubicOp48d"> | |
| 1821 SimplifyNew_Test [cubicOp48d] | |
| 1822 {{0,2}, {2,3}, {5,1}, {3,2}}, | |
| 1823 {{3,2}, {0,2}}, | |
| 1824 op difference | |
| 1825 {{1,5}, {2,3}, {2,0}, {3,2}}, | |
| 1826 {{3,2}, {1,5}}, | |
| 1827 debugShowCubicIntersection no self intersect {{1,5}, {2,3}, {2,0}, {3,2}} | |
| 1828 debugShowCubicLineIntersection wtTs[0]=0 {{1,5}, {2,3}, {2,0}, {3,2}} {{1,5}} wt
Ts[1]=1 {{3,2}} wnTs[0]=1 {{3,2}, {1,5}} wnTs[1]=0 | |
| 1829 debugShowCubicIntersection wtTs[0]=0.447821962 {{1,5}, {2,3}, {2,0}, {3,2}} {{1.
921448828321461,2.2502841146969206}} wtTs[1]=1 {{3,2}} wnTs[0]=0.302178 {{0,2},
{2,3}, {5,1}, {3,2}} wnTs[1]=1 | |
| 1830 debugShowCubicLineIntersection wtTs[0]=0.5 {{1,5}, {2,3}, {2,0}, {3,2}} {{2,2}}
wtTs[1]=1 {{3,2}} wnTs[0]=0.333333 {{3,2}, {0,2}} wnTs[1]=0 | |
| 1831 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,2}, {2,3}, {5,1}, {3,2}} {{3,2}}
wtTs[1]=1 {{3,2}} wnTs[0]=0 {{3,2}, {1,5}} wnTs[1]=0 | |
| 1832 debugShowLineIntersection wtTs[0]=0 {{3,2}, {1,5}} {{3,2}} wnTs[0]=0 {{3,2}, {0,
2}} | |
| 1833 debugShowCubicIntersection wtTs[0]=0.5 {{0,2}, {2,3}, {5,1}, {3,2}} {{3,2}} wtTs
[1]=1 | |
| 1834 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {2,3}, {5,1}, {3,2}} {{0,2}} wt
Ts[1]=0.5 {{3,2}} wtTs[2]=1 {{3,2}} wnTs[0]=1 {{3,2}, {0,2}} wnTs[1]=0 wnTs[2]=0 | |
| 1835 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0 (1,5) tEnd=0.447821962 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1836 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0.447821962 (1.92144883,2.25028419
) tEnd=0.5 other=1 otherT=0.302178051 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1837 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0.5 (2,2) tEnd=1 other=2 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 1838 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 1839 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0 (0,2) tEnd=0.302178051 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 1840 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.302178051 (1.92144883,2.25028419
) tEnd=0.5 other=3 otherT=0.447821962 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1841 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.5 (3,2) tEnd=1 other=4 otherT=0
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 1842 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.333333333 other=3 otherT=1
otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 1843 debugShowActiveSpans id=2 (3,2 0,2) t=0.333333333 (2,2) tEnd=1 other=3 otherT=0.
5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1844 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1845 debugShowSort [1] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1846 debugShowSort [2] {{3,2}, {0,2}} tStart=0 tEnd=0.333333333 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1847 debugShowSort [3] {{3,2}, {1,5}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? -
1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1848 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1849 markWinding id=3 (1,5 2,3 2,0 3,2) t=0.5 [2] (2,2) tEnd=1 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 1850 markWinding id=3 (1,5 2,3 2,0 3,2) t=0.5 [2] (2,2) tEnd=1 newWindSum=-1 newOppSu
m=0 oppSum=0 windSum=-1 windValue=1 | |
| 1851 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1852 markDoneBinary id=3 (1,5 2,3 2,0 3,2) t=0.5 [2] (2,2) tEnd=1 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 1853 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 1854 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1855 debugShowSort [1] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 1856 debugShowSort [2] {{3,2}, {0,2}} tStart=0 tEnd=0.333333333 sign=-1 windValue=1 w
indSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 1857 debugShowSort [3] {{3,2}, {1,5}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? ?
->? (max=?) done=0 tiny=0 opp=1 | |
| 1858 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 1859 debugShowSort [1] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 1860 debugShowSort [2] {{3,2}, {0,2}} tStart=0 tEnd=0.333333333 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1861 debugShowSort [3] {{3,2}, {1,5}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? -
1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 1862 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 1863 markWinding id=2 (3,2 0,2) t=0 [0] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 1864 markWinding id=2 (3,2 0,2) t=0 [1] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 1865 markWinding id=2 (3,2 0,2) t=0 [2] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 1866 markWinding id=2 (3,2 0,2) t=0 [3] (3,2) tEnd=0.333333333 newWindSum=1 newOppSum
=-1 oppSum=? windSum=? windValue=1 | |
| 1867 markWinding id=4 (3,2 1,5) t=0 [0] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1868 markWinding id=4 (3,2 1,5) t=0 [1] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1869 markWinding id=4 (3,2 1,5) t=0 [2] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1870 markWinding id=4 (3,2 1,5) t=0 [3] (3,2) tEnd=1 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 1871 markWinding id=3 (1,5 2,3 2,0 3,2) t=0 [0] (1,5) tEnd=0.447821962 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1872 markWinding id=1 (0,2 2,3 5,1 3,2) t=0.5 [3] (3,2) tEnd=0.5 newWindSum=1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 1873 markWinding id=1 (0,2 2,3 5,1 3,2) t=0.5 [2] (3,2) tEnd=0.5 newWindSum=1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 1874 markWinding id=1 (0,2 2,3 5,1 3,2) t=0.5 [4] (3,2) tEnd=1 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 1875 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0 (1,5) tEnd=0.447821962 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 1876 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0.447821962 (1.92144883,2.25028419
) tEnd=0.5 other=1 otherT=0.302178051 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1877 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=-1 windValue=1 oppValue=0 | |
| 1878 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0 (0,2) tEnd=0.302178051 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 1879 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.302178051 (1.92144883,2.25028419
) tEnd=0.5 other=3 otherT=0.447821962 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1880 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.5 (3,2) tEnd=1 other=4 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 1881 debugShowActiveSpans id=2 (3,2 0,2) t=0 (3,2) tEnd=0.333333333 other=3 otherT=1
otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 1882 debugShowActiveSpans id=2 (3,2 0,2) t=0.333333333 (2,2) tEnd=1 other=3 otherT=0.
5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 1883 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1884 markDoneBinary id=2 (3,2 0,2) t=0 [0] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 1885 markDoneBinary id=2 (3,2 0,2) t=0 [1] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 1886 markDoneBinary id=2 (3,2 0,2) t=0 [2] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 1887 markDoneBinary id=2 (3,2 0,2) t=0 [3] (3,2) tEnd=0.333333333 newWindSum=1 newOpp
Sum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 1888 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 1889 debugShowSort [0] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1890 debugShowSort [1] {{3,2}, {0,2}} tStart=0.333333333 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1891 debugShowSort [2] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=0.447821962 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1892 debugShowSort [3] {{3,2}, {0,2}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 1893 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 1894 debugShowSort [0] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1895 debugShowSort [1] {{3,2}, {0,2}} tStart=0.333333333 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 1896 debugShowSort [2] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=0.447821962 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1897 debugShowSort [3] {{3,2}, {0,2}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 1898 markWinding id=2 (3,2 0,2) t=0.333333333 [4] (2,2) tEnd=1 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 1899 markWinding id=1 (0,2 2,3 5,1 3,2) t=0 [0] (0,2) tEnd=0.302178051 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 1900 markWinding id=3 (1,5 2,3 2,0 3,2) t=0.447821962 [1] (1.92144883,2.25028419) tEn
d=0.5 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 1901 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0 (1,5) tEnd=0.447821962 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 1902 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0.447821962 (1.92144883,2.25028419
) tEnd=0.5 other=1 otherT=0.302178051 otherIndex=1 windSum=-1 windValue=1 oppVal
ue=0 | |
| 1903 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=-1 windValue=1 oppValue=0 | |
| 1904 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0 (0,2) tEnd=0.302178051 other=2 o
therT=1 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 1905 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.302178051 (1.92144883,2.25028419
) tEnd=0.5 other=3 otherT=0.447821962 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 1906 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.5 (3,2) tEnd=1 other=4 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 1907 debugShowActiveSpans id=2 (3,2 0,2) t=0.333333333 (2,2) tEnd=1 other=3 otherT=0.
5 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 1908 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1909 findNextOp simple | |
| 1910 markDoneBinary id=2 (3,2 0,2) t=0.333333333 [4] (2,2) tEnd=1 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 1911 bridgeOp current id=2 from=(2,2) to=(0,2) | |
| 1912 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 1913 debugShowSort [2] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.302178051 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1914 debugShowSort [3] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.447821962 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 1915 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.302178051 tEnd=0.5 sign=
-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1916 debugShowSort [1] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.447821962 tEnd=0.5 sign=
-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1917 findNextOp firstIndex=[2] sign=1 | |
| 1918 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1919 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1920 markDoneBinary id=1 (0,2 2,3 5,1 3,2) t=0.302178051 [1] (1.92144883,2.25028419)
tEnd=0.5 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 1921 findNextOp chase.append id=1 | |
| 1922 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1923 markDoneBinary id=1 (0,2 2,3 5,1 3,2) t=0 [0] (0,2) tEnd=0.302178051 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1924 findNextOp from:[1] to:[3] start=1 end=2 | |
| 1925 bridgeOp current id=1 from=(0,2) to=(1.92144883,2.25028419) | |
| 1926 path.moveTo(2,2); | |
| 1927 path.lineTo(0,2); | |
| 1928 path.cubicTo(0.60435605,2.30217814, 1.30002379,2.33042121, 1.92144883,2.25028419
); | |
| 1929 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 1930 debugShowSort [2] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=0.447821962 sign=
1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1931 debugShowSort [3] {{3,2}, {0,2}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 1932 debugShowSort [0] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1933 debugShowSort [1] {{3,2}, {0,2}} tStart=0.333333333 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 1934 findNextOp firstIndex=[2] sign=1 | |
| 1935 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1936 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1937 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1938 markDoneBinary id=3 (1,5 2,3 2,0 3,2) t=0.447821962 [1] (1.92144883,2.25028419)
tEnd=0.5 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1939 findNextOp from:[3] to:[2] start=4 end=5 | |
| 1940 bridgeOp current id=3 from=(1.92144883,2.25028419) to=(2,2) | |
| 1941 path.cubicTo(1.94782197,2.1619792, 1.97391093,2.0782671, 2,2); | |
| 1942 path.close(); | |
| 1943 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0 (1,5) tEnd=0.447821962 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 1944 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=-1 windValue=1 oppValue=0 | |
| 1945 debugShowActiveSpans id=1 (0,2 2,3 5,1 3,2) t=0.5 (3,2) tEnd=1 other=4 otherT=0
otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 1946 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1947 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 1948 debugShowSort [1] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 1949 debugShowSort [2] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=1 tEnd=0.5 sign=1 windValu
e=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 1950 debugShowSort [3] {{3,2}, {0,2}} tStart=0 tEnd=0.333333333 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 1951 debugShowSort [4] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.5 tEnd=0.302178051 sign=
1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 1952 debugShowSort [5] {{3,2}, {1,5}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=-1
-1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 1953 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.5 tEnd=1 sign=-1 windVal
ue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 1954 findNextOp firstIndex=[1] sign=1 | |
| 1955 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 1956 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1957 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 1958 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 1959 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 1960 markDoneBinary id=1 (0,2 2,3 5,1 3,2) t=0.5 [2] (3,2) tEnd=0.5 newWindSum=1 newO
ppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1961 markDoneBinary id=1 (0,2 2,3 5,1 3,2) t=0.5 [3] (3,2) tEnd=0.5 newWindSum=1 newO
ppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 1962 markDoneBinary id=1 (0,2 2,3 5,1 3,2) t=0.5 [4] (3,2) tEnd=1 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 1963 findNextOp from:[1] to:[1] start=3 end=5 | |
| 1964 bridgeOp current id=1 from=(3,2) to=(3,2) | |
| 1965 path.moveTo(3,2); | |
| 1966 path.cubicTo(3.75,1.75, 4,1.5, 3,2); | |
| 1967 path.close(); | |
| 1968 debugShowActiveSpans id=3 (1,5 2,3 2,0 3,2) t=0 (1,5) tEnd=0.447821962 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 1969 debugShowActiveSpans id=4 (3,2 1,5) t=0 (3,2) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=-1 windValue=1 oppValue=0 | |
| 1970 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1971 findNextOp simple | |
| 1972 markDoneBinary id=4 (3,2 1,5) t=0 [0] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1973 markDoneBinary id=4 (3,2 1,5) t=0 [1] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1974 markDoneBinary id=4 (3,2 1,5) t=0 [2] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1975 markDoneBinary id=4 (3,2 1,5) t=0 [3] (3,2) tEnd=1 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 1976 bridgeOp current id=4 from=(3,2) to=(1,5) | |
| 1977 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 1978 debugShowSort [3] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.447821962 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 1979 debugShowSort [0] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.302178051 tEnd=0.5 sign=
-1 windValue=1 windSum=1 1->2 (max=2) done=1 tiny=0 opp=1 | |
| 1980 debugShowSort [1] {{1,5}, {2,3}, {2,0}, {3,2}} tStart=0.447821962 tEnd=0.5 sign=
-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 1981 debugShowSort [2] {{0,2}, {2,3}, {5,1}, {3,2}} tStart=0.302178051 tEnd=0 sign=1
windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 1982 findNextOp firstIndex=[3] sign=1 | |
| 1983 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 1984 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 1985 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=0 result=0 | |
| 1986 markDoneBinary id=3 (1,5 2,3 2,0 3,2) t=0 [0] (1,5) tEnd=0.447821962 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 1987 findNextOp from:[3] to:[3] start=1 end=2 | |
| 1988 bridgeOp current id=3 from=(1,5) to=(1.92144883,2.25028419) | |
| 1989 path.moveTo(3,2); | |
| 1990 path.lineTo(1,5); | |
| 1991 path.cubicTo(1.44782197,4.10435629, 1.69509947,3.00816751, 1.92144883,2.25028419
); | |
| 1992 </div> | |
| 1993 | |
| 1994 <div id="cubicOp48da"> | |
| 1995 {{0,2}, {2,3}, {5,1}, {3,2}}, | |
| 1996 | |
| 1997 {{0,2}, {0.796711951,2.36012932}, {1.63878124,2.27837338}}, | |
| 1998 {{1.63878124,2.27837338}, {2.48085053,2.19661745}, {3.06246392,1.97878949}}, | |
| 1999 {{3.06246392,1.97878949}, {3.64407731,1.76096154}, {3.65942155,1.71287481}}, | |
| 2000 {{3.65942155,1.71287481}, {3.66835761,1.67480112}, {3,2}}, | |
| 2001 </div> | |
| 2002 | |
| 2003 <div id="cubicOp32d"> | |
| 2004 SimplifyNew_Test [cubicOp32d] | |
| 2005 {{0,1}, {1,2}, {6,0}, {3,1}}, | |
| 2006 {{3,1}, {0,1}}, | |
| 2007 op difference | |
| 2008 {{0,6}, {1,3}, {1,0}, {2,1}}, | |
| 2009 {{2,1}, {0,6}}, | |
| 2010 insert t=0.5 pts roughly equal | |
| 2011 insert t=0.5 pts roughly equal | |
| 2012 insert t=0.5 pts roughly equal | |
| 2013 debugShowCubicIntersection wtTs[0]=1 {{0,1}, {1,2}, {6,0}, {3,1}} {{3,1}} wtTs[1
]=0.5 | |
| 2014 insert t=0.5 pts roughly equal | |
| 2015 debugShowCubicLineIntersection wtTs[0]=0 {{0,1}, {1,2}, {6,0}, {3,1}} {{0,1}} wt
Ts[1]=0.5 {{3,1}} wtTs[2]=1 {{3,1}} wnTs[0]=1 {{3,1}, {0,1}} wnTs[1]=0 wnTs[2]=0 | |
| 2016 debugShowCubicIntersection wtTs[0]=0.235702334 {{0,1}, {1,2}, {6,0}, {3,1}} {{1.
2166390977965289,1.2856741834504377}} wnTs[0]=0.640711 {{0,6}, {1,3}, {1,0}, {2,
1}} | |
| 2017 debugShowCubicLineIntersection wtTs[0]=0.336702456 {{0,1}, {1,2}, {6,0}, {3,1}}
{{1.9124722896380537,1.2188192759048657}} wnTs[0]=0.0437639 {{2,1}, {0,6}} | |
| 2018 debugShowCubicLineIntersection wtTs[0]=0.724744871 {{0,6}, {1,3}, {1,0}, {2,1}}
{{1.359821149611685,1.0000000000000004}} wtTs[1]=1 {{2,1}} wnTs[0]=0.546726 {{3,
1}, {0,1}} wnTs[1]=0.333333333 | |
| 2019 debugShowLineIntersection wtTs[0]=0 {{3,1}, {0,1}} {{2,1}} wnTs[0]=0.333333 {{2,
1}, {0,6}} | |
| 2020 debugShowCubicIntersection no self intersect {{0,6}, {1,3}, {1,0}, {2,1}} | |
| 2021 debugShowCubicLineIntersection wtTs[0]=0 {{0,6}, {1,3}, {1,0}, {2,1}} {{0,6}} wt
Ts[1]=1 {{2,1}} wnTs[0]=1 {{2,1}, {0,6}} wnTs[1]=0 | |
| 2022 debugShowActiveSpans id=1 (0,1 1,2 6,0 3,1) t=0 (0,1) tEnd=0.235702334 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 2023 debugShowActiveSpans id=1 (0,1 1,2 6,0 3,1) t=0.235702334 (1.21663904,1.28567421
) tEnd=0.336702456 other=3 otherT=0.640711351 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2024 debugShowActiveSpans id=1 (0,1 1,2 6,0 3,1) t=0.336702456 (1.91247225,1.21881926
) tEnd=0.5 other=4 otherT=0.0437638552 otherIndex=2 windSum=? windValue=1 oppVal
ue=0 | |
| 2025 </div> | |
| 2026 | |
| 2027 <div id="cubicOp48db"> | |
| 2028 computed quadratics given | |
| 2029 {{0,2}, {2,3}, {5,1}, {3,2}}, | |
| 2030 {{1,5}, {2,3}, {2,0}, {3,2}}, | |
| 2031 computed quadratics set 1 | |
| 2032 {{0,2}, {0.796711951,2.36012932}, {1.63878124,2.27837338}}, | |
| 2033 {{1.63878124,2.27837338}, {2.48085053,2.19661745}, {3.06246392,1.97878949}}, | |
| 2034 {{3.06246392,1.97878949}, {3.64407731,1.76096154}, {3.65942155,1.71287481}}, | |
| 2035 {{3.65942155,1.71287481}, {3.66835761,1.67480112}, {3,2}}, | |
| 2036 computed quadratics set 2 | |
| 2037 {{1,5}, {1.50173477,3.89061296}, {1.76597918,2.79793753}}, | |
| 2038 {{1.76597918,2.79793753}, {2.0153684,1.78464605}, {2.27205088,1.42969352}}, | |
| 2039 {{2.27205088,1.42969352}, {2.52873337,1.07474099}, {3,2}}, | |
| 2040 </div> | |
| 2041 | |
| 2042 <div id="cubicOp48dc"> | |
| 2043 {{1.63878124,2.27837338}, {2.48085053,2.19661745}, {3.06246392,1.97878949}}, | |
| 2044 {{2.27205088,1.42969352}, {2.52873337,1.07474099}, {3,2}}, | |
| 2045 </div> | |
| 2046 | |
| 2047 <div id="cubicOp49d"> | |
| 2048 SimplifyNew_Test [cubicOp49d] | |
| 2049 {{0,2}, {1,5}, {3,2}, {4,1}}, | |
| 2050 {{4,1}, {0,2}}, | |
| 2051 op difference | |
| 2052 {{2,3}, {1,4}, {2,0}, {5,1}}, | |
| 2053 {{5,1}, {2,3}}, | |
| 2054 debugShowCubicIntersection no self intersect {{2,3}, {1,4}, {2,0}, {5,1}} | |
| 2055 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {1,4}, {2,0}, {5,1}} {{2,3}} wt
Ts[1]=1 {{5,1}} wnTs[0]=1 {{5,1}, {2,3}} wnTs[1]=0 | |
| 2056 debugShowCubicIntersection wtTs[0]=1.74609417e-09 {{2,3}, {1,4}, {2,0}, {5,1}} {
{1.9999999947617175,3.0000000052382827}} wtTs[1]=0.122781788 {{1.722106840638358
2,3.1607246577308117}} wnTs[0]=0.5 {{0,2}, {1,5}, {3,2}, {4,1}} wnTs[1]=0.438140
761 | |
| 2057 debugShowCubicLineIntersection wtTs[0]=0.651913155 {{2,3}, {1,4}, {2,0}, {5,1}}
{{2.5942051033446676,1.3514487241638331}} wnTs[0]=0.351449 {{4,1}, {0,2}} | |
| 2058 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,2}, {1,5}, {3,2}, {4,1}} {{2,3}}
wnTs[0]=1 {{5,1}, {2,3}} | |
| 2059 debugShowLineIntersection no intersect {{5,1}, {2,3}} {{4,1}, {0,2}} | |
| 2060 debugShowCubicIntersection no self intersect {{0,2}, {1,5}, {3,2}, {4,1}} | |
| 2061 debugShowCubicLineIntersection wtTs[0]=0 {{0,2}, {1,5}, {3,2}, {4,1}} {{0,2}} wt
Ts[1]=1 {{4,1}} wnTs[0]=1 {{4,1}, {0,2}} wnTs[1]=0 | |
| 2062 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 (2,3) tEnd=0.122781
788 other=1 otherT=0.499999999 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2063 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=0.122781788 (1.72210681,3.16072464
) tEnd=0.651913155 other=1 otherT=0.438140761 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2064 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=0.651913155 (2.59420514,1.35144877
) tEnd=1 other=2 otherT=0.351448724 otherIndex=1 windSum=? windValue=1 oppValue=
0 | |
| 2065 debugShowActiveSpans id=4 (5,1 2,3) t=0 (5,1) tEnd=1 other=3 otherT=1 otherIndex
=4 windSum=? windValue=1 oppValue=0 | |
| 2066 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0 (0,2) tEnd=0.438140761 other=2 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2067 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0.438140761 (1.72210681,3.16072464
) tEnd=0.499999999 other=3 otherT=0.122781788 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2068 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2069 debugShowActiveSpans id=2 (4,1 0,2) t=0 (4,1) tEnd=0.351448724 other=1 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2070 debugShowActiveSpans id=2 (4,1 0,2) t=0.351448724 (2.59420514,1.35144877) tEnd=1
other=3 otherT=0.651913155 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2071 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2072 debugShowSort [1] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.122781788 tEnd=0.6519131
55 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2073 debugShowSort [2] {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.438140761 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 2074 debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.122781788 tEnd=1.7460941
7e-09 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2075 debugShowSort [0] {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.438140761 tEnd=0.4999999
99 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 2076 findTop swap | |
| 2077 markWinding id=3 (2,3 1,4 2,0 5,1) t=0.122781788 [2] (1.72210681,3.16072464) tEn
d=0.651913155 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2078 markWinding id=3 (2,3 1,4 2,0 5,1) t=0.122781788 [2] (1.72210681,3.16072464) tEn
d=0.651913155 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2079 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2080 markDoneBinary id=3 (2,3 1,4 2,0 5,1) t=0.122781788 [2] (1.72210681,3.16072464)
tEnd=0.651913155 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2081 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 2082 debugShowSort [0] {{4,1}, {0,2}} tStart=0.351448724 tEnd=0 sign=1 windValue=1 wi
ndSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 2083 debugShowSort [1] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=1 sign=-1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 2084 debugShowSort [2] {{4,1}, {0,2}} tStart=0.351448724 tEnd=1 sign=-1 windValue=1 w
indSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 2085 debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=0.1227817
88 sign=1 windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 2086 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2087 debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=0.1227817
88 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2088 debugShowSort [0] {{4,1}, {0,2}} tStart=0.351448724 tEnd=0 sign=1 windValue=1 wi
ndSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 2089 debugShowSort [1] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2090 debugShowSort [2] {{4,1}, {0,2}} tStart=0.351448724 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 2091 markWinding id=2 (4,1 0,2) t=0 [0] (4,1) tEnd=0.351448724 newWindSum=-1 newOppSu
m=-1 oppSum=? windSum=? windValue=1 | |
| 2092 markWinding id=1 (0,2 1,5 3,2 4,1) t=0.5 [3] (2,3) tEnd=1 newWindSum=-1 newOppSu
m=-1 oppSum=? windSum=? windValue=1 | |
| 2093 markWinding id=3 (2,3 1,4 2,0 5,1) t=0.651913155 [3] (2.59420514,1.35144877) tEn
d=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2094 markWinding id=4 (5,1 2,3) t=0 [0] (5,1) tEnd=1 newWindSum=-1 newOppSum=-1 oppSu
m=? windSum=? windValue=1 | |
| 2095 markWinding id=2 (4,1 0,2) t=0.351448724 [1] (2.59420514,1.35144877) tEnd=1 newW
indSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2096 markWinding id=1 (0,2 1,5 3,2 4,1) t=0 [0] (0,2) tEnd=0.438140761 newWindSum=-1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2097 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 (2,3) tEnd=0.122781
788 other=1 otherT=0.499999999 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2098 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=0.651913155 (2.59420514,1.35144877
) tEnd=1 other=2 otherT=0.351448724 otherIndex=1 windSum=-1 windValue=1 oppValue
=0 | |
| 2099 debugShowActiveSpans id=4 (5,1 2,3) t=0 (5,1) tEnd=1 other=3 otherT=1 otherIndex
=4 windSum=-1 windValue=1 oppValue=0 | |
| 2100 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0 (0,2) tEnd=0.438140761 other=2 o
therT=1 otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2101 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0.438140761 (1.72210681,3.16072464
) tEnd=0.499999999 other=3 otherT=0.122781788 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2102 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0.5 (2,3) tEnd=1 other=4 otherT=1
otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2103 debugShowActiveSpans id=2 (4,1 0,2) t=0 (4,1) tEnd=0.351448724 other=1 otherT=1
otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2104 debugShowActiveSpans id=2 (4,1 0,2) t=0.351448724 (2.59420514,1.35144877) tEnd=1
other=3 otherT=0.651913155 otherIndex=3 windSum=-1 windValue=1 oppValue=0 | |
| 2105 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2106 markDoneBinary id=2 (4,1 0,2) t=0 [0] (4,1) tEnd=0.351448724 newWindSum=-1 newOp
pSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 2107 markDoneBinary id=1 (0,2 1,5 3,2 4,1) t=0.5 [3] (2,3) tEnd=1 newWindSum=-1 newOp
pSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 2108 setSpans unsortable [1] (2,3) [2] (1.72210681,3.16072464) | |
| 2109 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 (2,3) tEnd=0.122781
788 other=1 otherT=0.499999999 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2110 debugShowActiveSpans id=3 (2,3 1,4 2,0 5,1) t=0.651913155 (2.59420514,1.35144877
) tEnd=1 other=2 otherT=0.351448724 otherIndex=1 windSum=-1 windValue=1 oppValue
=0 | |
| 2111 debugShowActiveSpans id=4 (5,1 2,3) t=0 (5,1) tEnd=1 other=3 otherT=1 otherIndex
=4 windSum=-1 windValue=1 oppValue=0 | |
| 2112 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0 (0,2) tEnd=0.438140761 other=2 o
therT=1 otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2113 debugShowActiveSpans id=1 (0,2 1,5 3,2 4,1) t=0.438140761 (1.72210681,3.16072464
) tEnd=0.499999999 other=3 otherT=0.122781788 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2114 debugShowActiveSpans id=2 (4,1 0,2) t=0.351448724 (2.59420514,1.35144877) tEnd=1
other=3 otherT=0.651913155 otherIndex=3 windSum=-1 windValue=1 oppValue=0 | |
| 2115 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2116 findNextOp simple | |
| 2117 markDoneBinary id=4 (5,1 2,3) t=0 [0] (5,1) tEnd=1 newWindSum=-1 newOppSum=-1 op
pSum=-1 windSum=-1 windValue=1 | |
| 2118 bridgeOp current id=4 from=(2,3) to=(5,1) | |
| 2119 findNextOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 2120 debugShowSort [1] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2121 debugShowSort [2] {{4,1}, {0,2}} tStart=0.351448724 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 2122 debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=0.1227817
88 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2123 debugShowSort [0] {{4,1}, {0,2}} tStart=0.351448724 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 2124 findNextOp firstIndex=[1] sign=-1 | |
| 2125 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2126 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2127 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2128 markDoneBinary id=3 (2,3 1,4 2,0 5,1) t=0.651913155 [3] (2.59420514,1.35144877)
tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 2129 findNextOp from:[3] to:[2] start=1 end=2 | |
| 2130 bridgeOp current id=3 from=(5,1) to=(2.59420514,1.35144877) | |
| 2131 path.moveTo(2,3); | |
| 2132 path.lineTo(5,1); | |
| 2133 path.cubicTo(3.9557395,0.651913166, 3.15380788,0.909648538, 2.59420514,1.3514487
7); | |
| 2134 findNextOp simple | |
| 2135 markDoneBinary id=2 (4,1 0,2) t=0.351448724 [1] (2.59420514,1.35144877) tEnd=1 n
ewWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2136 bridgeOp current id=2 from=(2.59420514,1.35144877) to=(0,2) | |
| 2137 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2138 debugShowSort [2] {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.438140761 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2139 debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.122781788 tEnd=1.7460941
7e-09 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 2140 debugShowSort [0] {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.438140761 tEnd=0.4999999
99 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2141 debugShowSort [1] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.122781788 tEnd=0.6519131
55 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 2142 findNextOp firstIndex=[2] sign=1 | |
| 2143 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2144 markWinding id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 [1] (2,3) tEnd=0.122781788 n
ewWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2145 findNextOp chase.append id=3 | |
| 2146 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2147 markDoneBinary id=1 (0,2 1,5 3,2 4,1) t=0.438140761 [1] (1.72210681,3.16072464)
tEnd=0.499999999 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2148 findNextOp chase.append id=1 | |
| 2149 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2150 markDoneBinary id=1 (0,2 1,5 3,2 4,1) t=0 [0] (0,2) tEnd=0.438140761 newWindSum=
-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2151 findNextOp from:[1] to:[3] start=2 end=1 | |
| 2152 bridgeOp current id=1 from=(0,2) to=(1.72210681,3.16072464) | |
| 2153 path.lineTo(0,2); | |
| 2154 path.cubicTo(0.43814075,3.31442237, 1.06824887,3.47704053, 1.72210681,3.16072464
); | |
| 2155 setSpans unsortable [1] (2,3) [2] (1.72210681,3.16072464) | |
| 2156 setSpans all tiny unsortable [2] (2,3) [1] (1.72210681,3.16072464) | |
| 2157 markUnsortable id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 [1] (2,3) tEnd=0.12278178
8 newWindSum=0 windSum=-1 windValue=1 | |
| 2158 markUnsortable id=3 (2,3 1,4 2,0 5,1) t=0 [0] (2,3) tEnd=1.74609417e-09 newWindS
um=0 windSum=? windValue=1 | |
| 2159 markUnsortable id=1 (0,2 1,5 3,2 4,1) t=0.499999999 [2] (2,3) tEnd=0.5 newWindSu
m=0 windSum=? windValue=1 | |
| 2160 markUnsortable id=1 (0,2 1,5 3,2 4,1) t=0.438140761 [1] (1.72210681,3.16072464)
tEnd=0.499999999 newWindSum=0 windSum=-1 windValue=1 | |
| 2161 findNextOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 2162 debugShowSort [0] *** UNSORTABLE *** {{2,3}, {1,4}, {2,0}, {5,1}} tStart=1.74609
417e-09 tEnd=0.122781788 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 ti
ny=0 opp=0 | |
| 2163 debugShowSort [1] *** UNSORTABLE *** {{2,3}, {1,4}, {2,0}, {5,1}} tStart=1.74609
417e-09 tEnd=0 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=1 tiny=1 opp=0 | |
| 2164 debugShowSort [2] *** UNSORTABLE *** {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.49999
9999 tEnd=0.5 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=1 tiny=1 opp=1 | |
| 2165 debugShowSort [3] *** UNSORTABLE *** {{0,2}, {1,5}, {3,2}, {4,1}} tStart=0.49999
9999 tEnd=0.438140761 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0
opp=1 | |
| 2166 path.cubicTo(1.78458714,3.17018676, 1.87721825,3.12278175, 2,3); | |
| 2167 markDoneBinary id=3 (2,3 1,4 2,0 5,1) t=1.74609417e-09 [1] (2,3) tEnd=0.12278178
8 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 2168 path.close(); | |
| 2169 setSpans all tiny unsortable [2] (2,3) [1] (1.72210681,3.16072464) | |
| 2170 setSpans unsortable [1] (2,3) [2] (1.72210681,3.16072464) | |
| 2171 setSpans unsortable [1] (2,3) [2] (1.72210681,3.16072464) | |
| 2172 setSpans all tiny unsortable [2] (2,3) [1] (1.72210681,3.16072464) | |
| 2173 setSpans unsortable [1] (2,3) [2] (1.72210681,3.16072464) | |
| 2174 assemble | |
| 2175 assemble contour start=(2,3) end=(2,3) | |
| 2176 </div> | |
| 2177 | |
| 2178 <div id="cubicOp50d"> | |
| 2179 SimplifyNew_Test [cubicOp50d] | |
| 2180 {{0,3}, {1,6}, {5,0}, {5,1}}, | |
| 2181 {{5,1}, {0,3}}, | |
| 2182 op difference | |
| 2183 {{0,5}, {1,5}, {3,0}, {6,1}}, | |
| 2184 {{6,1}, {0,5}}, | |
| 2185 debugShowCubicIntersection no self intersect {{0,5}, {1,5}, {3,0}, {6,1}} | |
| 2186 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {1,5}, {3,0}, {6,1}} {{0,5}} wt
Ts[1]=0.181818182 {{0.64462809917355357,4.5702479338842981}} wtTs[2]=1 {{6,1}} w
nTs[0]=1 {{6,1}, {0,5}} wnTs[1]=0.892561983 wnTs[2]=0 | |
| 2187 debugShowCubicIntersection wtTs[0]=0.326064989 {{0,5}, {1,5}, {3,0}, {6,1}} {{1.
2971500960309803,3.7865580517965118}} wnTs[0]=0.265062 {{0,3}, {1,6}, {5,0}, {5,
1}} | |
| 2188 debugShowCubicLineIntersection wtTs[0]=0.639696212 {{0,5}, {1,5}, {3,0}, {6,1}}
{{3.1467223651509295,1.7413110539396279}} wnTs[0]=0.370656 {{5,1}, {0,3}} | |
| 2189 debugShowCubicLineIntersection no intersect {{0,3}, {1,6}, {5,0}, {5,1}} {{6,1},
{0,5}} | |
| 2190 debugShowLineIntersection no intersect {{6,1}, {0,5}} {{5,1}, {0,3}} | |
| 2191 debugShowCubicIntersection no self intersect {{0,3}, {1,6}, {5,0}, {5,1}} | |
| 2192 debugShowCubicLineIntersection wtTs[0]=0 {{0,3}, {1,6}, {5,0}, {5,1}} {{0,3}} wt
Ts[1]=0.772727273 {{4.4623403456048081,1.2150638617580767}} wtTs[2]=1 {{5,1}} wn
Ts[0]=1 {{5,1}, {0,3}} wnTs[1]=0.107531931 wnTs[2]=0 | |
| 2193 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0 (0,5) tEnd=0.181818182 other=4 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2194 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.181818182 (0.644628108,4.5702481
3) tEnd=0.326064989 other=4 otherT=0.892561983 otherIndex=1 windSum=? windValue=
1 oppValue=0 | |
| 2195 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.326064989 (1.29715014,3.78655815
) tEnd=0.639696212 other=1 otherT=0.26506234 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2196 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.639696212 (3.14672232,1.74131107
) tEnd=1 other=2 otherT=0.370655527 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 2197 debugShowActiveSpans id=4 (6,1 0,5) t=0 (6,1) tEnd=0.892561983 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2198 debugShowActiveSpans id=4 (6,1 0,5) t=0.892561983 (0.644628108,4.57024813) tEnd=
1 other=3 otherT=0.181818182 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2199 debugShowActiveSpans id=1 (0,3 1,6 5,0 5,1) t=0 (0,3) tEnd=0.26506234 other=2 ot
herT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2200 debugShowActiveSpans id=1 (0,3 1,6 5,0 5,1) t=0.26506234 (1.29715014,3.78655815)
tEnd=0.772727273 other=3 otherT=0.326064989 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2201 debugShowActiveSpans id=1 (0,3 1,6 5,0 5,1) t=0.772727273 (4.46234035,1.21506381
) tEnd=1 other=2 otherT=0.107531931 otherIndex=1 windSum=? windValue=1 oppValue=
0 | |
| 2202 debugShowActiveSpans id=2 (5,1 0,3) t=0 (5,1) tEnd=0.107531931 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2203 debugShowActiveSpans id=2 (5,1 0,3) t=0.107531931 (4.46234035,1.21506381) tEnd=0
.370655527 other=1 otherT=0.772727273 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2204 debugShowActiveSpans id=2 (5,1 0,3) t=0.370655527 (3.14672232,1.74131107) tEnd=1
other=3 otherT=0.639696212 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2205 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2206 debugShowSort [0] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=1 tEnd=0.772727273 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2207 debugShowSort [1] {{5,1}, {0,3}} tStart=0 tEnd=0.107531931 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2208 markWinding id=1 (0,3 1,6 5,0 5,1) t=0.772727273 [2] (4.46234035,1.21506381) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2209 markWinding id=2 (5,1 0,3) t=0 [0] (5,1) tEnd=0.107531931 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 2210 markWinding id=1 (0,3 1,6 5,0 5,1) t=0.772727273 [2] (4.46234035,1.21506381) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2211 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2212 findNextOp simple | |
| 2213 markDoneBinary id=1 (0,3 1,6 5,0 5,1) t=0.772727273 [2] (4.46234035,1.21506381)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2214 bridgeOp current id=1 from=(4.46234035,1.21506381) to=(5,1) | |
| 2215 path.moveTo(4.46234035,1.21506381); | |
| 2216 path.cubicTo(4.79338837,0.90702486, 5,0.772727251, 5,1); | |
| 2217 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2218 debugShowSort [0] {{5,1}, {0,3}} tStart=0.107531931 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2219 debugShowSort [1] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.772727273 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 2220 debugShowSort [2] {{5,1}, {0,3}} tStart=0.107531931 tEnd=0.370655527 sign=-1 win
dValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2221 debugShowSort [3] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.772727273 tEnd=0.2650623
4 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2222 findNextOp firstIndex=[0] sign=1 | |
| 2223 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2224 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2225 markWinding id=2 (5,1 0,3) t=0.107531931 [1] (4.46234035,1.21506381) tEnd=0.3706
55527 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2226 findNextOp chase.append id=2 | |
| 2227 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2228 markWinding id=1 (0,3 1,6 5,0 5,1) t=0.26506234 [1] (1.29715014,3.78655815) tEnd
=0.772727273 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2229 findNextOp chase.append id=1 | |
| 2230 markDoneBinary id=2 (5,1 0,3) t=0 [0] (5,1) tEnd=0.107531931 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2231 findNextOp from:[2] to:[1] start=2 end=1 | |
| 2232 bridgeOp current id=2 from=(5,1) to=(4.46234035,1.21506381) | |
| 2233 path.lineTo(4.46234035,1.21506381); | |
| 2234 path.close(); | |
| 2235 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0 (0,5) tEnd=0.181818182 other=4 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2236 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.181818182 (0.644628108,4.5702481
3) tEnd=0.326064989 other=4 otherT=0.892561983 otherIndex=1 windSum=? windValue=
1 oppValue=0 | |
| 2237 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.326064989 (1.29715014,3.78655815
) tEnd=0.639696212 other=1 otherT=0.26506234 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2238 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0.639696212 (3.14672232,1.74131107
) tEnd=1 other=2 otherT=0.370655527 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 2239 debugShowActiveSpans id=4 (6,1 0,5) t=0 (6,1) tEnd=0.892561983 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2240 debugShowActiveSpans id=4 (6,1 0,5) t=0.892561983 (0.644628108,4.57024813) tEnd=
1 other=3 otherT=0.181818182 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2241 debugShowActiveSpans id=1 (0,3 1,6 5,0 5,1) t=0 (0,3) tEnd=0.26506234 other=2 ot
herT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2242 debugShowActiveSpans id=1 (0,3 1,6 5,0 5,1) t=0.26506234 (1.29715014,3.78655815)
tEnd=0.772727273 other=3 otherT=0.326064989 otherIndex=2 windSum=1 windValue=1
oppValue=0 | |
| 2243 debugShowActiveSpans id=2 (5,1 0,3) t=0.107531931 (4.46234035,1.21506381) tEnd=0
.370655527 other=1 otherT=0.772727273 otherIndex=2 windSum=1 windValue=1 oppValu
e=0 | |
| 2244 debugShowActiveSpans id=2 (5,1 0,3) t=0.370655527 (3.14672232,1.74131107) tEnd=1
other=3 otherT=0.639696212 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2245 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2246 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2247 debugShowSort [3] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.772727273 tEnd=0.2650623
4 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2248 debugShowSort [0] {{5,1}, {0,3}} tStart=0.107531931 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2249 debugShowSort [1] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.772727273 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 2250 debugShowSort [2] {{5,1}, {0,3}} tStart=0.107531931 tEnd=0.370655527 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2251 findNextOp firstIndex=[3] sign=1 | |
| 2252 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2253 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2254 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2255 markDoneBinary id=1 (0,3 1,6 5,0 5,1) t=0.26506234 [1] (1.29715014,3.78655815) t
End=0.772727273 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2256 findNextOp from:[1] to:[2] start=1 end=2 | |
| 2257 bridgeOp current id=1 from=(1.29715014,3.78655815) to=(4.46234035,1.21506381) | |
| 2258 path.moveTo(1.29715014,3.78655815); | |
| 2259 path.cubicTo(2.36251926,3.45810199, 3.72286963,1.90313876, 4.46234035,1.21506381
); | |
| 2260 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2261 debugShowSort [0] {{5,1}, {0,3}} tStart=0.370655527 tEnd=0.107531931 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2262 debugShowSort [1] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.639696212 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2263 debugShowSort [2] {{5,1}, {0,3}} tStart=0.370655527 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2264 debugShowSort [3] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.639696212 tEnd=0.3260649
89 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2265 findNextOp firstIndex=[0] sign=1 | |
| 2266 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2267 markDoneBinary id=3 (0,5 1,5 3,0 6,1) t=0.639696212 [3] (3.14672232,1.74131107)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2268 markDoneBinary id=4 (6,1 0,5) t=0 [0] (6,1) tEnd=0.892561983 newWindSum=1 newOpp
Sum=0 oppSum=? windSum=? windValue=1 | |
| 2269 findNextOp chase.append id=4 | |
| 2270 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2271 markDoneBinary id=2 (5,1 0,3) t=0.370655527 [2] (3.14672232,1.74131107) tEnd=1 n
ewWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2272 markDoneBinary id=1 (0,3 1,6 5,0 5,1) t=0 [0] (0,3) tEnd=0.26506234 newWindSum=1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2273 findNextOp chase.append id=1 | |
| 2274 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 2275 markWinding id=3 (0,5 1,5 3,0 6,1) t=0.326064989 [2] (1.29715014,3.78655815) tEn
d=0.639696212 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2276 findNextOp chase.append id=3 | |
| 2277 markDoneBinary id=2 (5,1 0,3) t=0.107531931 [1] (4.46234035,1.21506381) tEnd=0.3
70655527 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2278 findNextOp from:[2] to:[3] start=3 end=2 | |
| 2279 bridgeOp current id=2 from=(4.46234035,1.21506381) to=(3.14672232,1.74131107) | |
| 2280 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=-1 | |
| 2281 debugShowSort [1] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.326064989 tEnd=0.6396962
12 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2282 debugShowSort [2] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.26506234 tEnd=0 sign=1 w
indValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 2283 debugShowSort [3] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.326064989 tEnd=0.1818181
82 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2284 debugShowSort [0] {{0,3}, {1,6}, {5,0}, {5,1}} tStart=0.26506234 tEnd=0.77272727
3 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 2285 findNextOp firstIndex=[1] sign=-1 | |
| 2286 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2287 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2288 markDoneBinary id=3 (0,5 1,5 3,0 6,1) t=0.181818182 [1] (0.644628108,4.57024813)
tEnd=0.326064989 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2289 findNextOp chase.append id=3 | |
| 2290 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2291 markDoneBinary id=3 (0,5 1,5 3,0 6,1) t=0.326064989 [2] (1.29715014,3.78655815)
tEnd=0.639696212 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 2292 findNextOp from:[3] to:[1] start=1 end=2 | |
| 2293 bridgeOp current id=3 from=(3.14672232,1.74131107) to=(1.29715014,3.78655815) | |
| 2294 path.lineTo(3.14672232,1.74131107); | |
| 2295 path.cubicTo(2.43183374,2.33584237, 1.81530964,3.13070869, 1.29715014,3.78655815
); | |
| 2296 path.close(); | |
| 2297 findChaseOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2298 debugShowSort [0] {{6,1}, {0,5}} tStart=0.892561983 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2299 debugShowSort [1] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.181818182 tEnd=0.3260649
89 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2300 debugShowSort [2] {{6,1}, {0,5}} tStart=0.892561983 tEnd=1 sign=-1 windValue=1 w
indSum=? 1->2 (max=2) done=0 tiny=0 opp=0 | |
| 2301 debugShowSort [3] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.181818182 tEnd=0 sign=1
windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 2302 findChaseOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2303 debugShowSort [0] {{6,1}, {0,5}} tStart=0.892561983 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2304 debugShowSort [1] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.181818182 tEnd=0.3260649
89 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2305 debugShowSort [2] {{6,1}, {0,5}} tStart=0.892561983 tEnd=1 sign=-1 windValue=1 w
indSum=? 1->2 (max=2) done=0 tiny=0 opp=0 | |
| 2306 debugShowSort [3] {{0,5}, {1,5}, {3,0}, {6,1}} tStart=0.181818182 tEnd=0 sign=1
windValue=1 windSum=? 2->1 (max=2) done=0 tiny=0 opp=0 | |
| 2307 markWinding id=4 (6,1 0,5) t=0.892561983 [1] (0.644628108,4.57024813) tEnd=1 new
WindSum=2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2308 markWinding id=3 (0,5 1,5 3,0 6,1) t=0 [0] (0,5) tEnd=0.181818182 newWindSum=2 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2309 markWinding id=3 (0,5 1,5 3,0 6,1) t=0 [0] (0,5) tEnd=0.181818182 newWindSum=2 n
ewOppSum=0 oppSum=0 windSum=2 windValue=1 | |
| 2310 debugShowActiveSpans id=3 (0,5 1,5 3,0 6,1) t=0 (0,5) tEnd=0.181818182 other=4 o
therT=1 otherIndex=2 windSum=2 windValue=1 oppValue=0 | |
| 2311 debugShowActiveSpans id=4 (6,1 0,5) t=0.892561983 (0.644628108,4.57024813) tEnd=
1 other=3 otherT=0.181818182 otherIndex=1 windSum=2 windValue=1 oppValue=0 | |
| 2312 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2313 markDoneBinary id=4 (6,1 0,5) t=0.892561983 [1] (0.644628108,4.57024813) tEnd=1
newWindSum=2 newOppSum=0 oppSum=0 windSum=2 windValue=1 | |
| 2314 markDoneBinary id=3 (0,5 1,5 3,0 6,1) t=0 [0] (0,5) tEnd=0.181818182 newWindSum=
2 newOppSum=0 oppSum=0 windSum=2 windValue=1 | |
| 2315 assemble | |
| 2316 assemble contour start=(4.46234035,1.21506381) end=(4.46234035,1.21506381) | |
| 2317 path.moveTo(4.46234035,1.21506381); | |
| 2318 path.cubicTo(4.79338837,0.90702486, 5,0.772727251, 5,1); | |
| 2319 path.lineTo(4.46234035,1.21506381); | |
| 2320 path.close(); | |
| 2321 assemble contour start=(1.29715014,3.78655815) end=(1.29715014,3.78655815) | |
| 2322 </div> | |
| 2323 | |
| 2324 <div id="cubicOp51d"> | |
| 2325 SimplifyNew_Test [cubicOp51d] | |
| 2326 {{0,3}, {1,2}, {4,1}, {6,0}}, | |
| 2327 {{6,0}, {0,3}}, | |
| 2328 op difference | |
| 2329 {{1,4}, {0,6}, {3,0}, {2,1}}, | |
| 2330 {{2,1}, {1,4}}, | |
| 2331 debugShowCubicIntersection no self intersect {{0,3}, {1,2}, {4,1}, {6,0}} | |
| 2332 debugShowCubicLineIntersection wtTs[0]=0 {{0,3}, {1,2}, {4,1}, {6,0}} {{0,3}} wt
Ts[1]=1 {{6,0}} wnTs[0]=1 {{6,0}, {0,3}} wnTs[1]=0 | |
| 2333 debugShowCubicIntersection wtTs[0]=0.397354824 {{0,3}, {1,2}, {4,1}, {6,0}} {{1.
9511935265302276,1.8079355291007386}} wnTs[0]=0.661665 {{1,4}, {0,6}, {3,0}, {2,
1}} | |
| 2334 debugShowCubicLineIntersection wtTs[0]=0.355273081 {{0,3}, {1,2}, {4,1}, {6,0}}
{{1.6886064138367243,1.9341807584898274}} wnTs[0]=0.311394 {{2,1}, {1,4}} | |
| 2335 debugShowCubicLineIntersection wtTs[0]=0.6185225 {{1,4}, {0,6}, {3,0}, {2,1}} {{
1.8422478636338226,2.0788760681830887}} wnTs[0]=0.692959 {{6,0}, {0,3}} | |
| 2336 debugShowLineIntersection wtTs[0]=0.733333333 {{6,0}, {0,3}} {{1.600000000000000
3,2.1999999999999997}} wnTs[0]=0.4 {{2,1}, {1,4}} | |
| 2337 debugShowCubicIntersection no self intersect {{1,4}, {0,6}, {3,0}, {2,1}} | |
| 2338 debugShowCubicLineIntersection wtTs[0]=0 {{1,4}, {0,6}, {3,0}, {2,1}} {{1,4}} wt
Ts[1]=0.333333333 {{1.0370370370370368,3.8888888888888897}} wtTs[2]=1 {{2,1}} wn
Ts[0]=1 {{2,1}, {1,4}} wnTs[1]=0.962962963 wnTs[2]=0 | |
| 2339 debugShowActiveSpans id=1 (0,3 1,2 4,1 6,0) t=0 (0,3) tEnd=0.355273081 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2340 debugShowActiveSpans id=1 (0,3 1,2 4,1 6,0) t=0.355273081 (1.68860638,1.93418074
) tEnd=0.397354824 other=4 otherT=0.311393586 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2341 debugShowActiveSpans id=1 (0,3 1,2 4,1 6,0) t=0.397354824 (1.95119357,1.80793548
) tEnd=1 other=3 otherT=0.66166507 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2342 debugShowActiveSpans id=2 (6,0 0,3) t=0 (6,0) tEnd=0.692958689 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2343 debugShowActiveSpans id=2 (6,0 0,3) t=0.692958689 (1.84224784,2.07887602) tEnd=0
.733333333 other=3 otherT=0.6185225 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 2344 debugShowActiveSpans id=2 (6,0 0,3) t=0.733333333 (1.60000002,2.20000005) tEnd=1
other=4 otherT=0.4 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2345 debugShowActiveSpans id=3 (1,4 0,6 3,0 2,1) t=0 (1,4) tEnd=0.333333333 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2346 debugShowActiveSpans id=3 (1,4 0,6 3,0 2,1) t=0.333333333 (1.03703701,3.88888884
) tEnd=0.6185225 other=4 otherT=0.962962963 otherIndex=3 windSum=? windValue=1 o
ppValue=0 | |
| 2347 debugShowActiveSpans id=3 (1,4 0,6 3,0 2,1) t=0.6185225 (1.84224784,2.07887602)
tEnd=0.66166507 other=2 otherT=0.692958689 otherIndex=1 windSum=? windValue=1 op
pValue=0 | |
| 2348 debugShowActiveSpans id=3 (1,4 0,6 3,0 2,1) t=0.66166507 (1.95119357,1.80793548)
tEnd=1 other=1 otherT=0.397354824 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2349 debugShowActiveSpans id=4 (2,1 1,4) t=0 (2,1) tEnd=0.311393586 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2350 debugShowActiveSpans id=4 (2,1 1,4) t=0.311393586 (1.68860638,1.93418074) tEnd=0
.4 other=1 otherT=0.355273081 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2351 debugShowActiveSpans id=4 (2,1 1,4) t=0.4 (1.60000002,2.20000005) tEnd=0.9629629
63 other=2 otherT=0.733333333 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2352 debugShowActiveSpans id=4 (2,1 1,4) t=0.962962963 (1.03703701,3.88888884) tEnd=1
other=3 otherT=0.333333333 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2353 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2354 debugShowSort [0] {{0,3}, {1,2}, {4,1}, {6,0}} tStart=1 tEnd=0.397354824 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2355 debugShowSort [1] {{6,0}, {0,3}} tStart=0 tEnd=0.692958689 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2356 findTop swap | |
| 2357 markWinding id=1 (0,3 1,2 4,1 6,0) t=0.397354824 [2] (1.95119357,1.80793548) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2358 markWinding id=1 (0,3 1,2 4,1 6,0) t=0.397354824 [2] (1.95119357,1.80793548) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2359 markWinding id=2 (6,0 0,3) t=0 [0] (6,0) tEnd=0.692958689 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 2360 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2361 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2362 debugShowSort [0] {{0,3}, {1,2}, {4,1}, {6,0}} tStart=0.397354824 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2363 debugShowSort [1] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.66166507 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2364 debugShowSort [2] {{0,3}, {1,2}, {4,1}, {6,0}} tStart=0.397354824 tEnd=0.3552730
81 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2365 debugShowSort [3] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.66166507 tEnd=0.6185225
sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2366 findNextOp firstIndex=[0] sign=-1 | |
| 2367 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2368 markWinding id=3 (1,4 0,6 3,0 2,1) t=0.66166507 [3] (1.95119357,1.80793548) tEnd
=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2369 markWinding id=4 (2,1 1,4) t=0 [0] (2,1) tEnd=0.311393586 newWindSum=1 newOppSum
=1 oppSum=? windSum=? windValue=1 | |
| 2370 findNextOp chase.append id=4 | |
| 2371 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2372 markDoneBinary id=1 (0,3 1,2 4,1 6,0) t=0.355273081 [1] (1.68860638,1.93418074)
tEnd=0.397354824 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2373 findNextOp chase.append id=1 | |
| 2374 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2375 markDoneBinary id=3 (1,4 0,6 3,0 2,1) t=0.6185225 [2] (1.84224784,2.07887602) tE
nd=0.66166507 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2376 findNextOp chase.append id=3 | |
| 2377 markDoneBinary id=1 (0,3 1,2 4,1 6,0) t=0.397354824 [2] (1.95119357,1.80793548)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2378 findNextOp from:[1] to:[3] start=3 end=4 | |
| 2379 bridgeOp current id=1 from=(6,0) to=(1.95119357,1.80793548) | |
| 2380 path.moveTo(6,0); | |
| 2381 path.cubicTo(4.79470968,0.602645159, 3.22623801,1.20529044, 1.95119357,1.8079354
8); | |
| 2382 findNextOp simple | |
| 2383 markDoneBinary id=3 (1,4 0,6 3,0 2,1) t=0.66166507 [3] (1.95119357,1.80793548) t
End=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 2384 bridgeOp current id=3 from=(1.95119357,1.80793548) to=(2,1) | |
| 2385 path.cubicTo(2.21878767,1.12462389, 2.33833504,0.661665022, 2,1); | |
| 2386 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 2387 debugShowSort [1] {{2,1}, {1,4}} tStart=0.311393586 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2388 debugShowSort [2] {{0,3}, {1,2}, {4,1}, {6,0}} tStart=0.355273081 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2389 debugShowSort [3] {{2,1}, {1,4}} tStart=0.311393586 tEnd=0.4 sign=-1 windValue=1
windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2390 debugShowSort [0] {{0,3}, {1,2}, {4,1}, {6,0}} tStart=0.355273081 tEnd=0.3973548
24 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 2391 findNextOp firstIndex=[1] sign=1 | |
| 2392 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2393 markWinding id=1 (0,3 1,2 4,1 6,0) t=0 [0] (0,3) tEnd=0.355273081 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2394 markWinding id=2 (6,0 0,3) t=0.733333333 [2] (1.60000002,2.20000005) tEnd=1 newW
indSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2395 findNextOp chase.append id=2 | |
| 2396 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2397 markDoneBinary id=4 (2,1 1,4) t=0.311393586 [1] (1.68860638,1.93418074) tEnd=0.4
newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2398 findNextOp chase.append id=4 | |
| 2399 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2400 markDoneBinary id=4 (2,1 1,4) t=0 [0] (2,1) tEnd=0.311393586 newWindSum=1 newOpp
Sum=1 oppSum=1 windSum=1 windValue=1 | |
| 2401 findNextOp from:[4] to:[1] start=1 end=0 | |
| 2402 bridgeOp current id=4 from=(2,1) to=(1.68860638,1.93418074) | |
| 2403 findNextOp simple | |
| 2404 markDoneBinary id=1 (0,3 1,2 4,1 6,0) t=0 [0] (0,3) tEnd=0.355273081 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2405 bridgeOp current id=1 from=(1.68860638,1.93418074) to=(0,3) | |
| 2406 path.lineTo(1.68860638,1.93418074); | |
| 2407 path.cubicTo(0.962984085,2.28945374, 0.355273068,2.64472699, 0,3); | |
| 2408 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2409 debugShowSort [2] {{6,0}, {0,3}} tStart=0.733333333 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2410 debugShowSort [3] {{2,1}, {1,4}} tStart=0.4 tEnd=0.962962963 sign=-1 windValue=1
windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2411 debugShowSort [0] {{6,0}, {0,3}} tStart=0.733333333 tEnd=0.692958689 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2412 debugShowSort [1] {{2,1}, {1,4}} tStart=0.4 tEnd=0.311393586 sign=1 windValue=1
windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 2413 findNextOp firstIndex=[2] sign=-1 | |
| 2414 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2415 markWinding id=4 (2,1 1,4) t=0.4 [2] (1.60000002,2.20000005) tEnd=0.962962963 ne
wWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2416 findNextOp chase.append id=4 | |
| 2417 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2418 markDoneBinary id=2 (6,0 0,3) t=0.692958689 [1] (1.84224784,2.07887602) tEnd=0.7
33333333 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2419 findNextOp chase.append id=2 | |
| 2420 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2421 markDoneBinary id=2 (6,0 0,3) t=0.733333333 [2] (1.60000002,2.20000005) tEnd=1 n
ewWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2422 findNextOp from:[2] to:[4] start=2 end=3 | |
| 2423 bridgeOp current id=2 from=(0,3) to=(1.60000002,2.20000005) | |
| 2424 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 2425 debugShowSort [1] {{2,1}, {1,4}} tStart=0.962962963 tEnd=0.4 sign=1 windValue=1
windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2426 debugShowSort [2] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.333333333 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2427 debugShowSort [3] {{2,1}, {1,4}} tStart=0.962962963 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2428 debugShowSort [0] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.333333333 tEnd=0.6185225
sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2429 findNextOp firstIndex=[1] sign=1 | |
| 2430 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2431 markWinding id=3 (1,4 0,6 3,0 2,1) t=0 [0] (1,4) tEnd=0.333333333 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2432 markWinding id=4 (2,1 1,4) t=0.962962963 [3] (1.03703701,3.88888884) tEnd=1 newW
indSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2433 findNextOp chase.append id=4 | |
| 2434 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 2435 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2436 markWinding id=3 (1,4 0,6 3,0 2,1) t=0.333333333 [1] (1.03703701,3.88888884) tEn
d=0.6185225 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2437 findNextOp chase.append id=3 | |
| 2438 markDoneBinary id=4 (2,1 1,4) t=0.4 [2] (1.60000002,2.20000005) tEnd=0.962962963
newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 2439 findNextOp from:[4] to:[3] start=1 end=0 | |
| 2440 bridgeOp current id=4 from=(1.60000002,2.20000005) to=(1.03703701,3.88888884) | |
| 2441 path.lineTo(1.60000002,2.20000005); | |
| 2442 findNextOp simple | |
| 2443 markDoneBinary id=3 (1,4 0,6 3,0 2,1) t=0 [0] (1,4) tEnd=0.333333333 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 2444 bridgeOp current id=3 from=(1.03703701,3.88888884) to=(1,4) | |
| 2445 path.lineTo(1.03703701,3.88888884); | |
| 2446 path.cubicTo(0.777777791,4.44444466, 0.666666687,4.66666651, 1,4); | |
| 2447 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 2448 debugShowSort [3] {{2,1}, {1,4}} tStart=0.962962963 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2449 debugShowSort [0] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.333333333 tEnd=0.6185225
sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2450 debugShowSort [1] {{2,1}, {1,4}} tStart=0.962962963 tEnd=0.4 sign=1 windValue=1
windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2451 debugShowSort [2] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.333333333 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2452 findNextOp firstIndex=[3] sign=-1 | |
| 2453 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2454 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 2455 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2456 markDoneBinary id=4 (2,1 1,4) t=0.962962963 [3] (1.03703701,3.88888884) tEnd=1 n
ewWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 2457 findNextOp from:[4] to:[3] start=1 end=2 | |
| 2458 bridgeOp current id=4 from=(1,4) to=(1.03703701,3.88888884) | |
| 2459 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 2460 debugShowSort [3] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.6185225 tEnd=0.333333333
sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2461 debugShowSort [0] {{6,0}, {0,3}} tStart=0.692958689 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2462 debugShowSort [1] {{1,4}, {0,6}, {3,0}, {2,1}} tStart=0.6185225 tEnd=0.66166507
sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2463 debugShowSort [2] {{6,0}, {0,3}} tStart=0.692958689 tEnd=0.733333333 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 2464 findNextOp firstIndex=[3] sign=1 | |
| 2465 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2466 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2467 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2468 markDoneBinary id=3 (1,4 0,6 3,0 2,1) t=0.333333333 [1] (1.03703701,3.88888884)
tEnd=0.6185225 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 2469 findNextOp from:[3] to:[2] start=1 end=0 | |
| 2470 bridgeOp current id=3 from=(1.03703701,3.88888884) to=(1.84224784,2.07887602) | |
| 2471 path.lineTo(1.03703701,3.88888884); | |
| 2472 path.cubicTo(1.25885081,3.41357374, 1.58910847,2.69425988, 1.84224784,2.07887602
); | |
| 2473 findNextOp simple | |
| 2474 markDoneBinary id=2 (6,0 0,3) t=0 [0] (6,0) tEnd=0.692958689 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 2475 bridgeOp current id=2 from=(1.84224784,2.07887602) to=(6,0) | |
| 2476 path.lineTo(6,0); | |
| 2477 path.close(); | |
| 2478 assemble | |
| 2479 assemble contour start=(6,0) end=(6,0) | |
| 2480 </div> | |
| 2481 | |
| 2482 <div id="cubicOp51da"> | |
| 2483 $1 = {{x = 1.9511935265302274, y = 1.8079355291007388}, {x = 3.2262380859340407,
y = 1.2052903527338259}, {x = 4.794709647266175, y = 0.60264517636691295}, {x =
6, y = 0}} | |
| 2484 (gdb) p startEdge | |
| 2485 $2 = {{x = 1.9511935265302274, y = 1.8079355291007388}, {x = 2.5538387028971403,
y = 3.0829800885045522}} | |
| 2486 (gdb) p endEdge | |
| 2487 $3 = {{x = 6, y = 0}, {x = 5.3973548236330871, y = -1.205290352733825}} | |
| 2488 </div> | |
| 2489 | |
| 2490 <div id="cubicOp52da"> | |
| 2491 $3 = {{fX = 2.625, fY = 2.25}, {fX = 2.25, fY = 1.25}, {fX = 2, fY = 0.5}, {fX =
2, fY = 1}} | |
| 2492 </div> | |
| 2493 | |
| 2494 <div id="cubicOp52db"> | |
| 2495 $3 = {{x = 1.9511935265302274, y = 1.8079355291007388}, {x = 3.2262380859340407,
y = 1.2052903527338259}, {x = 4.794709647266175, y = 0.60264517636691295}, {x =
6, y = 0}} | |
| 2496 (gdb) p startEdge | |
| 2497 $4 = {{x = 1.9511935265302274, y = 1.8079355291007388}, {x = 3.7591290556309662,
y = 5.8567420025705115}} | |
| 2498 (gdb) p endEdge | |
| 2499 $5 = {{x = 6, y = 0}, {x = 7.8079355291007388, y = 4.0488064734697726}} | |
| 2500 </div> | |
| 2501 | |
| 2502 <div id="cubicOp53d"> | |
| 2503 SimplifyNew_Test [cubicOp53d] | |
| 2504 {{0,3}, {1,2}, {5,3}, {2,1}}, | |
| 2505 {{2,1}, {0,3}}, | |
| 2506 op difference | |
| 2507 {{3,5}, {1,2}, {3,0}, {2,1}}, | |
| 2508 {{2,1}, {3,5}}, | |
| 2509 debugShowCubicIntersection no self intersect {{3,5}, {1,2}, {3,0}, {2,1}} | |
| 2510 debugShowCubicLineIntersection wtTs[0]=0 {{3,5}, {1,2}, {3,0}, {2,1}} {{3,5}} wt
Ts[1]=0.5 {{2.125,1.5}} wtTs[2]=1 {{2,1}} wnTs[0]=1 {{2,1}, {3,5}} wnTs[1]=0.125
wnTs[2]=0 | |
| 2511 debugShowCubicIntersection wtTs[0]=0.32953467 {{3,5}, {1,2}, {3,0}, {2,1}} {{2.0
754128281547217,2.4315376490509659}} wtTs[1]=0.59235675 {{2.2015477442470841,1.1
371488033015213}} wtTs[2]=1 {{2,1}} wnTs[0]=0.414081 {{0,3}, {1,2}, {5,3}, {2,1}
} wnTs[1]=0.976311205 wnTs[2]=1 | |
| 2512 debugShowCubicLineIntersection wtTs[0]=1 {{3,5}, {1,2}, {3,0}, {2,1}} {{2,1}} wn
Ts[0]=0 {{2,1}, {0,3}} | |
| 2513 debugShowCubicLineIntersection wtTs[0]=0.467845317 {{0,3}, {1,2}, {5,3}, {2,1}}
{{2.3494328385891112,2.3977313543564462}} wtTs[1]=1 {{2,1}} wnTs[0]=0.349433 {{2
,1}, {3,5}} wnTs[1]=0 | |
| 2514 debugShowLineIntersection wtTs[0]=-0 {{2,1}, {3,5}} {{2,1}} wnTs[0]=0 {{2,1}, {0
,3}} | |
| 2515 debugShowCubicIntersection no self intersect {{0,3}, {1,2}, {5,3}, {2,1}} | |
| 2516 debugShowCubicLineIntersection wtTs[0]=0 {{0,3}, {1,2}, {5,3}, {2,1}} {{0,3}} wt
Ts[1]=1 {{2,1}} wnTs[0]=1 {{2,1}, {0,3}} wnTs[1]=0 | |
| 2517 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0 (3,5) tEnd=0.32953467 other=4 ot
herT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 2518 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.32953467 (2.07541275,2.43153763)
tEnd=0.5 other=1 otherT=0.414080655 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 2519 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2520 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.59235675 (2.20154786,1.13714886)
tEnd=1 other=1 otherT=0.976311205 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2521 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=? windValue=1 oppValue=0 | |
| 2522 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=? windValue=1 oppValue=0 | |
| 2523 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=? windValue=1 oppValue=0 | |
| 2524 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2525 debugShowActiveSpans id=4 (2,1 3,5) t=0.349432839 (2.34943295,2.3977313) tEnd=1
other=1 otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2526 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0 (0,3) tEnd=0.414080655 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2527 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.414080655 (2.07541275,2.43153763
) tEnd=0.467845317 other=3 otherT=0.32953467 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2528 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2529 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2530 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=3 otherT=1 otherIndex
=6 windSum=? windValue=1 oppValue=0 | |
| 2531 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=4 otherT=-0 otherInde
x=2 windSum=? windValue=1 oppValue=0 | |
| 2532 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=1 otherT=1 otherIndex
=6 windSum=? windValue=1 oppValue=0 | |
| 2533 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2534 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=1 tEnd=0.59235675 sign=1 w
indValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2535 debugShowSort [1] {{2,1}, {0,3}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? 0
->1 (max=1) done=0 tiny=0 opp=1 | |
| 2536 debugShowSort [2] {{2,1}, {3,5}} tStart=0 tEnd=0.125 sign=-1 windValue=1 windSum
=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2537 debugShowSort [3] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=1 tEnd=0.976311205 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2538 markWinding id=3 (3,5 1,2 3,0 2,1) t=0.59235675 [3] (2.20154786,1.13714886) tEnd
=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2539 markWinding id=3 (3,5 1,2 3,0 2,1) t=0.59235675 [3] (2.20154786,1.13714886) tEnd
=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2540 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2541 markDoneBinary id=3 (3,5 1,2 3,0 2,1) t=0.59235675 [3] (2.20154786,1.13714886) t
End=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2542 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2543 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=1 tEnd=0.59235675 sign=1 w
indValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2544 debugShowSort [1] {{2,1}, {0,3}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? 0
->1 (max=1) done=0 tiny=0 opp=1 | |
| 2545 debugShowSort [2] {{2,1}, {3,5}} tStart=0 tEnd=0.125 sign=-1 windValue=1 windSum
=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2546 debugShowSort [3] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=1 tEnd=0.976311205 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2547 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2548 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=1 tEnd=0.59235675 sign=1 w
indValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2549 debugShowSort [1] {{2,1}, {0,3}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? 0
->1 (max=1) done=0 tiny=0 opp=1 | |
| 2550 debugShowSort [2] {{2,1}, {3,5}} tStart=0 tEnd=0.125 sign=-1 windValue=1 windSum
=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2551 debugShowSort [3] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=1 tEnd=0.976311205 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2552 markWinding id=2 (2,1 0,3) t=0 [0] (2,1) tEnd=0 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 2553 markWinding id=2 (2,1 0,3) t=0 [1] (2,1) tEnd=0 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 2554 markWinding id=2 (2,1 0,3) t=0 [2] (2,1) tEnd=1 newWindSum=1 newOppSum=-1 oppSum
=? windSum=? windValue=1 | |
| 2555 markWinding id=1 (0,3 1,2 5,3 2,1) t=0 [0] (0,3) tEnd=0.414080655 newWindSum=1 n
ewOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2556 markWinding id=4 (2,1 3,5) t=0 [0] (2,1) tEnd=0 newWindSum=-1 newOppSum=1 oppSum
=? windSum=? windValue=1 | |
| 2557 markWinding id=4 (2,1 3,5) t=0 [1] (2,1) tEnd=-0 newWindSum=-1 newOppSum=1 oppSu
m=? windSum=? windValue=1 | |
| 2558 markWinding id=4 (2,1 3,5) t=-0 [2] (2,1) tEnd=0.125 newWindSum=-1 newOppSum=1 o
ppSum=? windSum=? windValue=1 | |
| 2559 markWinding id=1 (0,3 1,2 5,3 2,1) t=0.976311205 [3] (2.20154786,1.13714886) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2560 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0 (3,5) tEnd=0.32953467 other=4 ot
herT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 2561 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.32953467 (2.07541275,2.43153763)
tEnd=0.5 other=1 otherT=0.414080655 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 2562 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2563 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2564 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 2565 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=-1 windValue=1 oppValue=0 | |
| 2566 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2567 debugShowActiveSpans id=4 (2,1 3,5) t=0.349432839 (2.34943295,2.3977313) tEnd=1
other=1 otherT=0.467845317 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2568 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0 (0,3) tEnd=0.414080655 other=2 o
therT=1 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2569 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.414080655 (2.07541275,2.43153763
) tEnd=0.467845317 other=3 otherT=0.32953467 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2570 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2571 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2572 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=3 otherT=1 otherIndex
=6 windSum=1 windValue=1 oppValue=0 | |
| 2573 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=4 otherT=-0 otherInde
x=2 windSum=1 windValue=1 oppValue=0 | |
| 2574 debugShowActiveSpans id=2 (2,1 0,3) t=0 (2,1) tEnd=1 other=1 otherT=1 otherIndex
=6 windSum=1 windValue=1 oppValue=0 | |
| 2575 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2576 markDoneBinary id=2 (2,1 0,3) t=0 [0] (2,1) tEnd=0 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 2577 markDoneBinary id=2 (2,1 0,3) t=0 [1] (2,1) tEnd=0 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 2578 markDoneBinary id=2 (2,1 0,3) t=0 [2] (2,1) tEnd=1 newWindSum=1 newOppSum=-1 opp
Sum=-1 windSum=1 windValue=1 | |
| 2579 markDoneBinary id=1 (0,3 1,2 5,3 2,1) t=0 [0] (0,3) tEnd=0.414080655 newWindSum=
1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 2580 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 2581 debugShowSort [0] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.414080655 tEnd=0.4678453
17 sign=-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 2582 debugShowSort [1] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.32953467 tEnd=0.5 sign=-
1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 2583 debugShowSort [2] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.414080655 tEnd=0 sign=1
windValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 2584 debugShowSort [3] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.32953467 tEnd=0 sign=1 w
indValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 2585 findChaseOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 2586 debugShowSort [2] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.414080655 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2587 debugShowSort [3] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.32953467 tEnd=0 sign=1 w
indValue=1 windSum=? -1->-2 (max=-2) done=0 tiny=0 opp=1 | |
| 2588 debugShowSort [0] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.414080655 tEnd=0.4678453
17 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2589 debugShowSort [1] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.32953467 tEnd=0.5 sign=-
1 windValue=1 windSum=? -2->-1 (max=-2) done=0 tiny=0 opp=1 | |
| 2590 markWinding id=3 (3,5 1,2 3,0 2,1) t=0 [0] (3,5) tEnd=0.32953467 newWindSum=-2 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2591 markWinding id=4 (2,1 3,5) t=0.349432839 [4] (2.34943295,2.3977313) tEnd=1 newWi
ndSum=-2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2592 markWinding id=1 (0,3 1,2 5,3 2,1) t=0.414080655 [1] (2.07541275,2.43153763) tEn
d=0.467845317 newWindSum=1 newOppSum=-2 oppSum=? windSum=? windValue=1 | |
| 2593 markWinding id=3 (3,5 1,2 3,0 2,1) t=0.32953467 [1] (2.07541275,2.43153763) tEnd
=0.5 newWindSum=-2 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2594 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0 (3,5) tEnd=0.32953467 other=4 ot
herT=1 otherIndex=5 windSum=-2 windValue=1 oppValue=0 | |
| 2595 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.32953467 (2.07541275,2.43153763)
tEnd=0.5 other=1 otherT=0.414080655 otherIndex=1 windSum=-2 windValue=1 oppValu
e=0 | |
| 2596 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2597 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2598 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 2599 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=-1 windValue=1 oppValue=0 | |
| 2600 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2601 debugShowActiveSpans id=4 (2,1 3,5) t=0.349432839 (2.34943295,2.3977313) tEnd=1
other=1 otherT=0.467845317 otherIndex=2 windSum=-2 windValue=1 oppValue=0 | |
| 2602 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.414080655 (2.07541275,2.43153763
) tEnd=0.467845317 other=3 otherT=0.32953467 otherIndex=1 windSum=1 windValue=1
oppValue=0 | |
| 2603 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2604 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2605 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2606 markDoneBinary id=3 (3,5 1,2 3,0 2,1) t=0 [0] (3,5) tEnd=0.32953467 newWindSum=-
2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 2607 markDoneBinary id=4 (2,1 3,5) t=0.349432839 [4] (2.34943295,2.3977313) tEnd=1 ne
wWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 2608 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.32953467 (2.07541275,2.43153763)
tEnd=0.5 other=1 otherT=0.414080655 otherIndex=1 windSum=-2 windValue=1 oppValu
e=0 | |
| 2609 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2610 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2611 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 2612 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=-1 windValue=1 oppValue=0 | |
| 2613 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2614 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.414080655 (2.07541275,2.43153763
) tEnd=0.467845317 other=3 otherT=0.32953467 otherIndex=1 windSum=1 windValue=1
oppValue=0 | |
| 2615 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2616 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2617 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2618 markDoneBinary id=1 (0,3 1,2 5,3 2,1) t=0.414080655 [1] (2.07541275,2.43153763)
tEnd=0.467845317 newWindSum=1 newOppSum=-2 oppSum=-2 windSum=1 windValue=1 | |
| 2619 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.32953467 (2.07541275,2.43153763)
tEnd=0.5 other=1 otherT=0.414080655 otherIndex=1 windSum=-2 windValue=1 oppValu
e=0 | |
| 2620 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2621 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2622 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 2623 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=-1 windValue=1 oppValue=0 | |
| 2624 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2625 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2626 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2627 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2628 markDoneBinary id=3 (3,5 1,2 3,0 2,1) t=0.32953467 [1] (2.07541275,2.43153763) t
End=0.5 newWindSum=-2 newOppSum=1 oppSum=1 windSum=-2 windValue=1 | |
| 2629 debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 ot
her=4 otherT=0.125 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2630 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=3 otherT=1 otherI
ndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2631 debugShowActiveSpans id=4 (2,1 3,5) t=0 (2,1) tEnd=0.125 other=1 otherT=1 otherI
ndex=5 windSum=-1 windValue=1 oppValue=0 | |
| 2632 debugShowActiveSpans id=4 (2,1 3,5) t=-0 (2,1) tEnd=0.125 other=2 otherT=0 other
Index=1 windSum=-1 windValue=1 oppValue=0 | |
| 2633 debugShowActiveSpans id=4 (2,1 3,5) t=0.125 (2.125,1.5) tEnd=0.349432839 other=3
otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2634 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.467845317 (2.34943295,2.3977313)
tEnd=0.976311205 other=4 otherT=0.349432839 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 2635 debugShowActiveSpans id=1 (0,3 1,2 5,3 2,1) t=0.976311205 (2.20154786,1.13714886
) tEnd=1 other=3 otherT=0.59235675 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2636 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2637 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 2638 debugShowSort [2] {{2,1}, {3,5}} tStart=-0 tEnd=0.125 sign=-1 windValue=1 windSu
m=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2639 debugShowSort [3] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=1 tEnd=0.976311205 sign=1
windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2640 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=1 tEnd=0.59235675 sign=1 w
indValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2641 debugShowSort [1] {{2,1}, {0,3}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=1 0
->1 (max=1) done=1 tiny=0 opp=1 | |
| 2642 findNextOp firstIndex=[2] sign=-1 | |
| 2643 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2644 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2645 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2646 markDoneBinary id=4 (2,1 3,5) t=0 [1] (2,1) tEnd=-0 newWindSum=-1 newOppSum=1 op
pSum=1 windSum=-1 windValue=1 | |
| 2647 markDoneBinary id=4 (2,1 3,5) t=0 [0] (2,1) tEnd=0 newWindSum=-1 newOppSum=1 opp
Sum=1 windSum=-1 windValue=1 | |
| 2648 markDoneBinary id=4 (2,1 3,5) t=-0 [2] (2,1) tEnd=0.125 newWindSum=-1 newOppSum=
1 oppSum=1 windSum=-1 windValue=1 | |
| 2649 findNextOp from:[4] to:[1] start=5 end=3 | |
| 2650 bridgeOp current id=4 from=(2.125,1.5) to=(2,1) | |
| 2651 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2652 debugShowSort [1] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.976311205 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2653 debugShowSort [2] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.59235675 tEnd=0.5 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 2654 debugShowSort [3] {{0,3}, {1,2}, {5,3}, {2,1}} tStart=0.976311205 tEnd=0.4678453
17 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2655 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.59235675 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 2656 findNextOp firstIndex=[1] sign=-1 | |
| 2657 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2658 markWinding id=3 (3,5 1,2 3,0 2,1) t=0.5 [2] (2.125,1.5) tEnd=0.59235675 newWind
Sum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2659 findNextOp chase.append id=3 | |
| 2660 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2661 markDoneBinary id=1 (0,3 1,2 5,3 2,1) t=0.467845317 [2] (2.34943295,2.3977313) t
End=0.976311205 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2662 findNextOp chase.append id=1 | |
| 2663 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2664 markDoneBinary id=1 (0,3 1,2 5,3 2,1) t=0.976311205 [3] (2.20154786,1.13714886)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2665 findNextOp from:[1] to:[3] start=3 end=2 | |
| 2666 bridgeOp current id=1 from=(2,1) to=(2.20154786,1.13714886) | |
| 2667 path.moveTo(2.125,1.5); | |
| 2668 path.lineTo(2,1); | |
| 2669 path.cubicTo(2.07106638,1.04737759, 2.13820457,1.0930717, 2.20154786,1.13714886)
; | |
| 2670 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 2671 debugShowSort [0] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.5 tEnd=0.59235675 sign=-
1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2672 debugShowSort [1] {{2,1}, {3,5}} tStart=0.125 tEnd=-0 sign=1 windValue=1 windSum
=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2673 debugShowSort [2] {{3,5}, {1,2}, {3,0}, {2,1}} tStart=0.5 tEnd=0.32953467 sign=1
windValue=1 windSum=-2 -1->-2 (max=-2) done=1 tiny=0 opp=0 | |
| 2674 debugShowSort [3] {{2,1}, {3,5}} tStart=0.125 tEnd=0.349432839 sign=-1 windValue
=1 windSum=? -2->-1 (max=-2) done=0 tiny=0 opp=0 | |
| 2675 findNextOp firstIndex=[0] sign=-1 | |
| 2676 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2677 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2678 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2679 markDoneBinary id=4 (2,1 3,5) t=0.125 [3] (2.125,1.5) tEnd=0.349432839 newWindSu
m=-2 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2680 findNextOp chase.append id=4 | |
| 2681 markDoneBinary id=3 (3,5 1,2 3,0 2,1) t=0.5 [2] (2.125,1.5) tEnd=0.59235675 newW
indSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 2682 findNextOp from:[3] to:[4] start=3 end=2 | |
| 2683 bridgeOp current id=3 from=(2.20154786,1.13714886) to=(2.125,1.5) | |
| 2684 path.cubicTo(2.17544317,1.23998928, 2.14808917,1.36146486, 2.125,1.5); | |
| 2685 path.close(); | |
| 2686 assemble | |
| 2687 assemble contour start=(2.125,1.5) end=(2.125,1.5) | |
| 2688 </div> | |
| 2689 | |
| 2690 <div id="cubicOp53da"> | |
| 2691 $1 = {{fX = 2.20154786, fY = 1.13714886}, {fX = 2.31676745, fY = 0.683232486}, {
fX = 2.40764332, fY = 0.592356741}, {fX = 2, fY = 1}} | |
| 2692 </div> | |
| 2693 | |
| 2694 <div id="cubicOp53db"> | |
| 2695 $5 = {{x = 2.2015477442470841, y = 1.1371488033015216}, {x = 2.3167674423028313,
y = 0.68323255769716895}, {x = 2.4076432497431508, y = 0.59235675025684875}, {x
= 2, y = 1}} | |
| 2696 (gdb) p startEdge | |
| 2697 $2 = {{x = 2.2015477442470841, y = 1.1371488033015216}, {x = 2.6554639898514365,
y = 1.2523685013572687}} | |
| 2698 (gdb) p endEdge | |
| 2699 $3 = {{x = 2, y = 1}, {x = 2.4076432497431512, y = 1.4076432497431508}} | |
| 2700 </div> | |
| 2701 | |
| 2702 <div id="cubicOp54d"> | |
| 2703 SimplifyNew_Test [cubicOp54d] | |
| 2704 {{0,4}, {1,3}, {5,4}, {4,2}}, | |
| 2705 {{4,2}, {0,4}}, | |
| 2706 op difference | |
| 2707 {{4,5}, {2,4}, {4,0}, {3,1}}, | |
| 2708 {{3,1}, {4,5}}, | |
| 2709 debugShowCubicIntersection no self intersect {{4,5}, {2,4}, {4,0}, {3,1}} | |
| 2710 debugShowCubicLineIntersection wtTs[0]=0 {{4,5}, {2,4}, {4,0}, {3,1}} {{4,5}} wt
Ts[1]=0.583333333 {{3.1938657407407405,1.7754629629629624}} wtTs[2]=1 {{3,1}} wn
Ts[0]=1 {{3,1}, {4,5}} wnTs[1]=0.193865741 wnTs[2]=0 | |
| 2711 debugShowCubicIntersection no intersect {{4,5}, {2,4}, {4,0}, {3,1}} {{0,4}, {1,
3}, {5,4}, {4,2}} | |
| 2712 debugShowCubicLineIntersection wtTs[0]=0.467349523 {{4,5}, {2,4}, {4,0}, {3,1}}
{{3.1023548730676489,2.4488225634661758}} wnTs[0]=0.224411 {{4,2}, {0,4}} | |
| 2713 debugShowCubicLineIntersection wtTs[0]=0.649488354 {{0,4}, {1,3}, {5,4}, {4,2}}
{{3.5531651685912107,3.2126606743648427}} wnTs[0]=0.553165 {{3,1}, {4,5}} | |
| 2714 debugShowLineIntersection wtTs[0]=0.333333333 {{3,1}, {4,5}} {{3.333333333333333
,2.333333333333333}} wnTs[0]=0.166667 {{4,2}, {0,4}} | |
| 2715 debugShowCubicIntersection no self intersect {{0,4}, {1,3}, {5,4}, {4,2}} | |
| 2716 debugShowCubicLineIntersection wtTs[0]=0 {{0,4}, {1,3}, {5,4}, {4,2}} {{0,4}} wt
Ts[1]=0.166666667 {{0.7129629629629628,3.6435185185185186}} wtTs[2]=1 {{4,2}} wn
Ts[0]=1 {{4,2}, {0,4}} wnTs[1]=0.821759259 wnTs[2]=0 | |
| 2717 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2718 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0.467349523 (3.10235476,2.4488225)
tEnd=0.583333333 other=2 otherT=0.224411282 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2719 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0.583333333 (3.19386578,1.77546299
) tEnd=1 other=4 otherT=0.193865741 otherIndex=1 windSum=? windValue=1 oppValue=
0 | |
| 2720 debugShowActiveSpans id=4 (3,1 4,5) t=0 (3,1) tEnd=0.193865741 other=3 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2721 debugShowActiveSpans id=4 (3,1 4,5) t=0.193865741 (3.19386578,1.77546299) tEnd=0
.333333333 other=3 otherT=0.583333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2722 debugShowActiveSpans id=4 (3,1 4,5) t=0.333333333 (3.33333325,2.33333325) tEnd=0
.553165169 other=2 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 2723 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2724 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0 (0,4) tEnd=0.166666667 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2725 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.166666667 (0.712962985,3.6435184
5) tEnd=0.649488354 other=2 otherT=0.821759259 otherIndex=3 windSum=? windValue=
1 oppValue=0 | |
| 2726 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.649488354 (3.5531652,3.21266079)
tEnd=1 other=4 otherT=0.553165169 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2727 debugShowActiveSpans id=2 (4,2 0,4) t=0 (4,2) tEnd=0.166666667 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2728 debugShowActiveSpans id=2 (4,2 0,4) t=0.166666667 (3.33333325,2.33333325) tEnd=0
.224411282 other=4 otherT=0.333333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2729 debugShowActiveSpans id=2 (4,2 0,4) t=0.224411282 (3.10235476,2.4488225) tEnd=0.
821759259 other=3 otherT=0.467349523 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 2730 debugShowActiveSpans id=2 (4,2 0,4) t=0.821759259 (0.712962985,3.64351845) tEnd=
1 other=1 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2731 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2732 debugShowSort [0] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=1 tEnd=0.583333333 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2733 debugShowSort [1] {{3,1}, {4,5}} tStart=0 tEnd=0.193865741 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2734 findTop swap serpentine=0 | |
| 2735 markWinding id=3 (4,5 2,4 4,0 3,1) t=0.583333333 [2] (3.19386578,1.77546299) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2736 markWinding id=3 (4,5 2,4 4,0 3,1) t=0.583333333 [2] (3.19386578,1.77546299) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2737 markWinding id=4 (3,1 4,5) t=0 [0] (3,1) tEnd=0.193865741 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 2738 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2739 markDoneBinary id=3 (4,5 2,4 4,0 3,1) t=0.583333333 [2] (3.19386578,1.77546299)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2740 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2741 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0.467349523 (3.10235476,2.4488225)
tEnd=0.583333333 other=2 otherT=0.224411282 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 2742 debugShowActiveSpans id=4 (3,1 4,5) t=0 (3,1) tEnd=0.193865741 other=3 otherT=1
otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 2743 debugShowActiveSpans id=4 (3,1 4,5) t=0.193865741 (3.19386578,1.77546299) tEnd=0
.333333333 other=3 otherT=0.583333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2744 debugShowActiveSpans id=4 (3,1 4,5) t=0.333333333 (3.33333325,2.33333325) tEnd=0
.553165169 other=2 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 2745 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2746 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0 (0,4) tEnd=0.166666667 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2747 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.166666667 (0.712962985,3.6435184
5) tEnd=0.649488354 other=2 otherT=0.821759259 otherIndex=3 windSum=? windValue=
1 oppValue=0 | |
| 2748 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.649488354 (3.5531652,3.21266079)
tEnd=1 other=4 otherT=0.553165169 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2749 debugShowActiveSpans id=2 (4,2 0,4) t=0 (4,2) tEnd=0.166666667 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2750 debugShowActiveSpans id=2 (4,2 0,4) t=0.166666667 (3.33333325,2.33333325) tEnd=0
.224411282 other=4 otherT=0.333333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2751 debugShowActiveSpans id=2 (4,2 0,4) t=0.224411282 (3.10235476,2.4488225) tEnd=0.
821759259 other=3 otherT=0.467349523 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 2752 debugShowActiveSpans id=2 (4,2 0,4) t=0.821759259 (0.712962985,3.64351845) tEnd=
1 other=1 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2753 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2754 markDoneBinary id=4 (3,1 4,5) t=0 [0] (3,1) tEnd=0.193865741 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 2755 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2756 debugShowSort [0] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.583333333 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2757 debugShowSort [1] {{3,1}, {4,5}} tStart=0.193865741 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2758 debugShowSort [2] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.583333333 tEnd=0.4673495
23 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2759 debugShowSort [3] {{3,1}, {4,5}} tStart=0.193865741 tEnd=0.333333333 sign=-1 win
dValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2760 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2761 debugShowSort [0] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.583333333 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2762 debugShowSort [1] {{3,1}, {4,5}} tStart=0.193865741 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2763 debugShowSort [2] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.583333333 tEnd=0.4673495
23 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2764 debugShowSort [3] {{3,1}, {4,5}} tStart=0.193865741 tEnd=0.333333333 sign=-1 win
dValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2765 markWinding id=3 (4,5 2,4 4,0 3,1) t=0.467349523 [1] (3.10235476,2.4488225) tEnd
=0.583333333 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2766 markWinding id=4 (3,1 4,5) t=0.193865741 [1] (3.19386578,1.77546299) tEnd=0.3333
33333 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2767 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2768 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0.467349523 (3.10235476,2.4488225)
tEnd=0.583333333 other=2 otherT=0.224411282 otherIndex=2 windSum=-1 windValue=1
oppValue=0 | |
| 2769 debugShowActiveSpans id=4 (3,1 4,5) t=0.193865741 (3.19386578,1.77546299) tEnd=0
.333333333 other=3 otherT=0.583333333 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 2770 debugShowActiveSpans id=4 (3,1 4,5) t=0.333333333 (3.33333325,2.33333325) tEnd=0
.553165169 other=2 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 2771 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2772 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0 (0,4) tEnd=0.166666667 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2773 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.166666667 (0.712962985,3.6435184
5) tEnd=0.649488354 other=2 otherT=0.821759259 otherIndex=3 windSum=? windValue=
1 oppValue=0 | |
| 2774 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.649488354 (3.5531652,3.21266079)
tEnd=1 other=4 otherT=0.553165169 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2775 debugShowActiveSpans id=2 (4,2 0,4) t=0 (4,2) tEnd=0.166666667 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2776 debugShowActiveSpans id=2 (4,2 0,4) t=0.166666667 (3.33333325,2.33333325) tEnd=0
.224411282 other=4 otherT=0.333333333 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 2777 debugShowActiveSpans id=2 (4,2 0,4) t=0.224411282 (3.10235476,2.4488225) tEnd=0.
821759259 other=3 otherT=0.467349523 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 2778 debugShowActiveSpans id=2 (4,2 0,4) t=0.821759259 (0.712962985,3.64351845) tEnd=
1 other=1 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2779 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2780 markDoneBinary id=3 (4,5 2,4 4,0 3,1) t=0.467349523 [1] (3.10235476,2.4488225) t
End=0.583333333 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2781 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 2782 debugShowSort [0] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.166666667 sign=1 wind
Value=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 2783 debugShowSort [1] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0.5833333
33 sign=-1 windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 2784 debugShowSort [2] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.821759259 sign=-1 win
dValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 2785 debugShowSort [3] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0 sign=1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 2786 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 2787 debugShowSort [1] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0.5833333
33 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 2788 debugShowSort [2] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.821759259 sign=-1 win
dValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2789 debugShowSort [3] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2790 debugShowSort [0] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.166666667 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2791 markWinding id=2 (4,2 0,4) t=0.224411282 [2] (3.10235476,2.4488225) tEnd=0.82175
9259 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2792 markWinding id=3 (4,5 2,4 4,0 3,1) t=0 [0] (4,5) tEnd=0.467349523 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2793 markWinding id=4 (3,1 4,5) t=0.553165169 [3] (3.5531652,3.21266079) tEnd=1 newWi
ndSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2794 markWinding id=2 (4,2 0,4) t=0.166666667 [1] (3.33333325,2.33333325) tEnd=0.2244
11282 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 2795 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2796 debugShowActiveSpans id=4 (3,1 4,5) t=0.193865741 (3.19386578,1.77546299) tEnd=0
.333333333 other=3 otherT=0.583333333 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 2797 debugShowActiveSpans id=4 (3,1 4,5) t=0.333333333 (3.33333325,2.33333325) tEnd=0
.553165169 other=2 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 2798 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2799 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0 (0,4) tEnd=0.166666667 other=2 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2800 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.166666667 (0.712962985,3.6435184
5) tEnd=0.649488354 other=2 otherT=0.821759259 otherIndex=3 windSum=? windValue=
1 oppValue=0 | |
| 2801 debugShowActiveSpans id=1 (0,4 1,3 5,4 4,2) t=0.649488354 (3.5531652,3.21266079)
tEnd=1 other=4 otherT=0.553165169 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2802 debugShowActiveSpans id=2 (4,2 0,4) t=0 (4,2) tEnd=0.166666667 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2803 debugShowActiveSpans id=2 (4,2 0,4) t=0.166666667 (3.33333325,2.33333325) tEnd=0
.224411282 other=4 otherT=0.333333333 otherIndex=2 windSum=1 windValue=1 oppValu
e=0 | |
| 2804 debugShowActiveSpans id=2 (4,2 0,4) t=0.224411282 (3.10235476,2.4488225) tEnd=0.
821759259 other=3 otherT=0.467349523 otherIndex=1 windSum=1 windValue=1 oppValue
=0 | |
| 2805 debugShowActiveSpans id=2 (4,2 0,4) t=0.821759259 (0.712962985,3.64351845) tEnd=
1 other=1 otherT=0.166666667 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2806 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2807 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2808 debugShowSort [1] {{4,2}, {0,4}} tStart=0.821759259 tEnd=0.224411282 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2809 debugShowSort [2] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.166666667 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2810 debugShowSort [3] {{4,2}, {0,4}} tStart=0.821759259 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2811 debugShowSort [0] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.166666667 tEnd=0.6494883
54 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2812 findNextOp firstIndex=[1] sign=1 | |
| 2813 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2814 markWinding id=1 (0,4 1,3 5,4 4,2) t=0 [0] (0,4) tEnd=0.166666667 newWindSum=-1
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2815 markWinding id=2 (4,2 0,4) t=0.821759259 [3] (0.712962985,3.64351845) tEnd=1 new
WindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2816 findNextOp chase.append id=2 | |
| 2817 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2818 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2819 markWinding id=1 (0,4 1,3 5,4 4,2) t=0.166666667 [1] (0.712962985,3.64351845) tE
nd=0.649488354 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2820 findNextOp chase.append id=1 | |
| 2821 markDoneBinary id=2 (4,2 0,4) t=0.224411282 [2] (3.10235476,2.4488225) tEnd=0.82
1759259 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2822 findNextOp from:[2] to:[1] start=1 end=0 | |
| 2823 bridgeOp current id=2 from=(3.10235476,2.4488225) to=(0.712962985,3.64351845) | |
| 2824 findNextOp simple | |
| 2825 markDoneBinary id=1 (0,4 1,3 5,4 4,2) t=0 [0] (0,4) tEnd=0.166666667 newWindSum=
-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2826 bridgeOp current id=1 from=(0.712962985,3.64351845) to=(0,4) | |
| 2827 path.moveTo(3.10235476,2.4488225); | |
| 2828 path.lineTo(0.712962985,3.64351845); | |
| 2829 path.cubicTo(0.416666657,3.72222233, 0.166666672,3.83333325, 0,4); | |
| 2830 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 2831 debugShowSort [3] {{4,2}, {0,4}} tStart=0.821759259 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2832 debugShowSort [0] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.166666667 tEnd=0.6494883
54 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2833 debugShowSort [1] {{4,2}, {0,4}} tStart=0.821759259 tEnd=0.224411282 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 2834 debugShowSort [2] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.166666667 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 2835 findNextOp firstIndex=[3] sign=-1 | |
| 2836 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2837 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2838 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2839 markDoneBinary id=2 (4,2 0,4) t=0.821759259 [3] (0.712962985,3.64351845) tEnd=1
newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2840 findNextOp from:[2] to:[1] start=1 end=2 | |
| 2841 bridgeOp current id=2 from=(0,4) to=(0.712962985,3.64351845) | |
| 2842 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 2843 debugShowSort [2] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.649488354 tEnd=0.1666666
67 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2844 debugShowSort [3] {{3,1}, {4,5}} tStart=0.553165169 tEnd=1 sign=-1 windValue=1 w
indSum=-1 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2845 debugShowSort [0] {{0,4}, {1,3}, {5,4}, {4,2}} tStart=0.649488354 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2846 debugShowSort [1] {{3,1}, {4,5}} tStart=0.553165169 tEnd=0.333333333 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2847 findNextOp firstIndex=[2] sign=1 | |
| 2848 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2849 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 2850 markDoneBinary id=1 (0,4 1,3 5,4 4,2) t=0.649488354 [2] (3.5531652,3.21266079) t
End=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2851 markDoneBinary id=2 (4,2 0,4) t=0 [0] (4,2) tEnd=0.166666667 newWindSum=1 newOpp
Sum=1 oppSum=? windSum=? windValue=1 | |
| 2852 findNextOp chase.append id=2 | |
| 2853 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 2854 markWinding id=4 (3,1 4,5) t=0.333333333 [2] (3.33333325,2.33333325) tEnd=0.5531
65169 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2855 findNextOp chase.append id=4 | |
| 2856 markDoneBinary id=1 (0,4 1,3 5,4 4,2) t=0.166666667 [1] (0.712962985,3.64351845)
tEnd=0.649488354 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2857 findNextOp from:[1] to:[4] start=3 end=2 | |
| 2858 bridgeOp current id=1 from=(0.712962985,3.64351845) to=(3.5531652,3.21266079) | |
| 2859 path.lineTo(0.712962985,3.64351845); | |
| 2860 path.cubicTo(1.57131267,3.41551948, 2.81819034,3.45948982, 3.5531652,3.21266079)
; | |
| 2861 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=-1 | |
| 2862 debugShowSort [3] {{3,1}, {4,5}} tStart=0.333333333 tEnd=0.553165169 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2863 debugShowSort [0] {{4,2}, {0,4}} tStart=0.166666667 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 2864 debugShowSort [1] {{3,1}, {4,5}} tStart=0.333333333 tEnd=0.193865741 sign=1 wind
Value=1 windSum=-1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2865 debugShowSort [2] {{4,2}, {0,4}} tStart=0.166666667 tEnd=0.224411282 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2866 findNextOp firstIndex=[3] sign=-1 | |
| 2867 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2868 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2869 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2870 markDoneBinary id=4 (3,1 4,5) t=0.333333333 [2] (3.33333325,2.33333325) tEnd=0.5
53165169 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 2871 findNextOp from:[4] to:[2] start=1 end=2 | |
| 2872 bridgeOp current id=4 from=(3.5531652,3.21266079) to=(3.33333325,2.33333325) | |
| 2873 findNextOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 2874 debugShowSort [0] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.166666667 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2875 debugShowSort [1] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0.5833333
33 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 2876 debugShowSort [2] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.821759259 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 2877 debugShowSort [3] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 2878 findNextOp firstIndex=[0] sign=1 | |
| 2879 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2880 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2881 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2882 markDoneBinary id=2 (4,2 0,4) t=0.166666667 [1] (3.33333325,2.33333325) tEnd=0.2
24411282 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 2883 findNextOp from:[2] to:[2] start=2 end=3 | |
| 2884 sharedlibrary apply-load-rules all | |
| 2885 bridgeOp current id=2 from=(3.33333325,2.33333325) to=(3.10235476,2.4488225) | |
| 2886 path.lineTo(3.33333325,2.33333325); | |
| 2887 path.lineTo(3.10235476,2.4488225); | |
| 2888 path.close(); | |
| 2889 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2890 debugShowActiveSpans id=4 (3,1 4,5) t=0.193865741 (3.19386578,1.77546299) tEnd=0
.333333333 other=3 otherT=0.583333333 otherIndex=2 windSum=-1 windValue=1 oppVal
ue=0 | |
| 2891 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2892 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 2893 markDoneBinary id=4 (3,1 4,5) t=0.193865741 [1] (3.19386578,1.77546299) tEnd=0.3
33333333 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 2894 debugShowActiveSpans id=3 (4,5 2,4 4,0 3,1) t=0 (4,5) tEnd=0.467349523 other=4 o
therT=1 otherIndex=4 windSum=-1 windValue=1 oppValue=0 | |
| 2895 debugShowActiveSpans id=4 (3,1 4,5) t=0.553165169 (3.5531652,3.21266079) tEnd=1
other=1 otherT=0.649488354 otherIndex=2 windSum=-1 windValue=1 oppValue=0 | |
| 2896 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 2897 findNextOp simple | |
| 2898 markDoneBinary id=4 (3,1 4,5) t=0.553165169 [3] (3.5531652,3.21266079) tEnd=1 ne
wWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 2899 bridgeOp current id=4 from=(3.5531652,3.21266079) to=(4,5) | |
| 2900 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 2901 debugShowSort [3] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0 sign=1
windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2902 debugShowSort [0] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.166666667 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 2903 debugShowSort [1] {{4,5}, {2,4}, {4,0}, {3,1}} tStart=0.467349523 tEnd=0.5833333
33 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 2904 debugShowSort [2] {{4,2}, {0,4}} tStart=0.224411282 tEnd=0.821759259 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 2905 findNextOp firstIndex=[3] sign=1 | |
| 2906 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 2907 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 2908 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 2909 markDoneBinary id=3 (4,5 2,4 4,0 3,1) t=0 [0] (4,5) tEnd=0.467349523 newWindSum=
-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 2910 findNextOp from:[3] to:[2] start=2 end=3 | |
| 2911 bridgeOp current id=3 from=(4,5) to=(3.10235476,2.4488225) | |
| 2912 path.moveTo(3.5531652,3.21266079); | |
| 2913 path.lineTo(4,5); | |
| 2914 path.cubicTo(3.06530094,4.53265047, 3.00426435,3.41005421, 3.10235476,2.4488225)
; | |
| 2915 </div> | |
| 2916 | |
| 2917 <div id="cubicOp54da"> | |
| 2918 computed quadratics given | |
| 2919 {{0,4}, {1,3}, {5,4}, {4,2}}, | |
| 2920 {{4,5}, {2,4}, {4,0}, {3,1}}, | |
| 2921 computed quadratics set 1 | |
| 2922 {{0,4}, {0.313151522,3.71221453}, {0.886767898,3.60197476}}, | |
| 2923 {{0.886767898,3.60197476}, {1.46038427,3.491735}, {2.10714698,3.44196686}}, | |
| 2924 {{2.10714698,3.44196686}, {3.12180288,3.38575704}, {3.75968569,3.1281838}}, | |
| 2925 {{3.75968569,3.1281838}, {4.3975685,2.87061055}, {4,2}}, | |
| 2926 computed quadratics set 2 | |
| 2927 {{4,5}, {3.59856947,4.79217123}, {3.39068129,4.44939202}}, | |
| 2928 {{3.39068129,4.44939202}, {3.03659239,3.81843234}, {3.06844529,3.02100922}}, | |
| 2929 {{3.06844529,3.02100922}, {3.09985637,2.22825976}, {3.22177695,1.60368348}}, | |
| 2930 {{3.22177695,1.60368348}, {3.35239933,0.944897345}, {3.25461667,0.846601983}}, | |
| 2931 {{3.25461667,0.846601983}, {3.19302952,0.807536747}, {3,1}}, | |
| 2932 </div> | |
| 2933 | |
| 2934 <div id="cubicOp54db"> | |
| 2935 {{3.39068129,4.44939202}, {3.03659239,3.81843234}, {3.06844529,3.02100922}}, | |
| 2936 {{2.10714698,3.44196686}, {3.12180288,3.38575704}, {3.75968569,3.1281838}}, | |
| 2937 </div> | |
| 2938 | |
| 2939 <div id="cubicOp54dc"> | |
| 2940 (gdb) p cSub1 | |
| 2941 $2 = {{x = 3.0774019473063863, y = 3.35198509346713}, {x = 3.0763003260366699, y
= 3.3355427495692078}, {x = 3.0753041923884408, y = 3.3190757607779853}, {x = 3
.0744102085015879, y = 3.3025879417907196}} | |
| 2942 (gdb) p cSub2 | |
| 2943 $3 = {{x = 3.053913680774329, y = 3.3310471586283938}, {x = 3.0685526504546785,
y = 3.3285797268698434}, {x = 3.0831050944309708, y = 3.3260658459407866}, {x =
3.0975671980059394, y = 3.3235031316554351}} | |
| 2944 (gdb) p s1 | |
| 2945 $4 = {{x = 3.0774019473063863, y = 3.35198509346713}, {x = 3.0757503498668397, y
= 3.327320623945933}, {x = 3.0744102085015879, y = 3.3025879417907196}} | |
| 2946 (gdb) p s2 | |
| 2947 $5 = {{x = 3.053913680774329, y = 3.3310471586283938}, {x = 3.0758730889691694,
y = 3.3273466070370152}, {x = 3.0975671980059394, y = 3.3235031316554351}} | |
| 2948 </div> | |
| 2949 | |
| 2950 <div id="cubicOp54dd"> | |
| 2951 {{x = 3.053913680774329, y = 3.3310471586283938}, {x = 3.0758730889691694, y = 3
.3273466070370152}, {x = 3.0975671980059394, y = 3.3235031316554351}} | |
| 2952 {{x = 3.0744102085015879, y = 3.3025879417907196}, {x = 3.0774019473063863, y =
3.35198509346713}} | |
| 2953 </div> | |
| 2954 | |
| 2955 <div id="cubicOp55d"> | |
| 2956 SimplifyNew_Test [cubicOp55d] | |
| 2957 {{0,5}, {1,3}, {3,2}, {5,0}}, | |
| 2958 {{5,0}, {0,5}}, | |
| 2959 op difference | |
| 2960 {{2,3}, {0,5}, {5,0}, {3,1}}, | |
| 2961 {{3,1}, {2,3}}, | |
| 2962 debugShowCubicIntersection no self intersect {{0,5}, {1,3}, {3,2}, {5,0}} | |
| 2963 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {1,3}, {3,2}, {5,0}} {{0,5}} wt
Ts[1]=1 {{5,0}} wnTs[0]=1 {{5,0}, {0,5}} wnTs[1]=0 | |
| 2964 debugShowCubicIntersection wtTs[0]=0.658239823 {{0,5}, {1,3}, {3,2}, {5,0}} {{2.
9893565350663849,1.7799961946192431}} wnTs[0]=0.613267 {{2,3}, {0,5}, {5,0}, {3,
1}} | |
| 2965 debugShowCubicLineIntersection wtTs[0]=0.540876747 {{0,5}, {1,3}, {3,2}, {5,0}}
{{2.3420409812806477,2.3159180374387045}} wnTs[0]=0.657959 {{3,1}, {2,3}} | |
| 2966 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {0,5}, {5,0}, {3,1}} {{2,3}} wn
Ts[0]=0.6 {{5,0}, {0,5}} | |
| 2967 debugShowLineIntersection wtTs[0]=0.6 {{5,0}, {0,5}} {{2,3}} wnTs[0]=1 {{3,1}, {
2,3}} | |
| 2968 debugShowCubicIntersection no self intersect {{2,3}, {0,5}, {5,0}, {3,1}} | |
| 2969 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {0,5}, {5,0}, {3,1}} {{2,3}} wt
Ts[1]=0.4 {{2.0640000000000005,2.871999999999999}} wtTs[2]=1 {{3,1}} wnTs[0]=1 {
{3,1}, {2,3}} wnTs[1]=0.936 wnTs[2]=0 | |
| 2970 debugShowActiveSpans id=1 (0,5 1,3 3,2 5,0) t=0 (0,5) tEnd=0.540876747 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 2971 debugShowActiveSpans id=1 (0,5 1,3 3,2 5,0) t=0.540876747 (2.34204102,2.31591797
) tEnd=0.658239823 other=4 otherT=0.657959019 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 2972 debugShowActiveSpans id=1 (0,5 1,3 3,2 5,0) t=0.658239823 (2.98935652,1.77999616
) tEnd=1 other=3 otherT=0.613266786 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 2973 debugShowActiveSpans id=2 (5,0 0,5) t=0 (5,0) tEnd=0.6 other=1 otherT=1 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 2974 debugShowActiveSpans id=2 (5,0 0,5) t=0.6 (2,3) tEnd=1 other=3 otherT=0 otherInd
ex=0 windSum=? windValue=1 oppValue=0 | |
| 2975 debugShowActiveSpans id=2 (5,0 0,5) t=0.6 (2,3) tEnd=1 other=4 otherT=1 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 2976 debugShowActiveSpans id=3 (2,3 0,5 5,0 3,1) t=0 (2,3) tEnd=0.4 other=2 otherT=0.
6 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2977 debugShowActiveSpans id=3 (2,3 0,5 5,0 3,1) t=0 (2,3) tEnd=0.4 other=4 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2978 debugShowActiveSpans id=3 (2,3 0,5 5,0 3,1) t=0.4 (2.06399989,2.87199998) tEnd=0
.613266786 other=4 otherT=0.936 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2979 debugShowActiveSpans id=3 (2,3 0,5 5,0 3,1) t=0.613266786 (2.98935652,1.77999616
) tEnd=1 other=1 otherT=0.658239823 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 2980 debugShowActiveSpans id=4 (3,1 2,3) t=0 (3,1) tEnd=0.657959019 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 2981 debugShowActiveSpans id=4 (3,1 2,3) t=0.657959019 (2.34204102,2.31591797) tEnd=0
.936 other=1 otherT=0.540876747 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 2982 debugShowActiveSpans id=4 (3,1 2,3) t=0.936 (2.06399989,2.87199998) tEnd=1 other
=3 otherT=0.4 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 2983 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 2984 debugShowSort [0] {{0,5}, {1,3}, {3,2}, {5,0}} tStart=1 tEnd=0.658239823 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 2985 debugShowSort [1] {{5,0}, {0,5}} tStart=0 tEnd=0.6 sign=-1 windValue=1 windSum=?
-1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 2986 findTop swap serpentine=0 | |
| 2987 markWinding id=1 (0,5 1,3 3,2 5,0) t=0.658239823 [2] (2.98935652,1.77999616) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 2988 markWinding id=1 (0,5 1,3 3,2 5,0) t=0.658239823 [2] (2.98935652,1.77999616) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 2989 markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.6 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 2990 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 2991 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 2992 debugShowSort [0] {{0,5}, {1,3}, {3,2}, {5,0}} tStart=0.658239823 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 2993 debugShowSort [1] {{2,3}, {0,5}, {5,0}, {3,1}} tStart=0.613266786 tEnd=1 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 2994 debugShowSort [2] {{0,5}, {1,3}, {3,2}, {5,0}} tStart=0.658239823 tEnd=0.5408767
47 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 2995 debugShowSort [3] {{2,3}, {0,5}, {5,0}, {3,1}} tStart=0.613266786 tEnd=0.4 sign=
1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 2996 findNextOp firstIndex=[0] sign=-1 | |
| 2997 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 2998 markWinding id=3 (2,3 0,5 5,0 3,1) t=0.613266786 [3] (2.98935652,1.77999616) tEn
d=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 2999 markWinding id=4 (3,1 2,3) t=0 [0] (3,1) tEnd=0.657959019 newWindSum=1 newOppSum
=1 oppSum=? windSum=? windValue=1 | |
| 3000 findNextOp chase.append id=4 | |
| 3001 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3002 markDoneBinary id=1 (0,5 1,3 3,2 5,0) t=0.540876747 [1] (2.34204102,2.31591797)
tEnd=0.658239823 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3003 findNextOp chase.append id=1 | |
| 3004 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3005 markDoneBinary id=3 (2,3 0,5 5,0 3,1) t=0.4 [2] (2.06399989,2.87199998) tEnd=0.6
13266786 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3006 findNextOp chase.append id=3 | |
| 3007 markDoneBinary id=1 (0,5 1,3 3,2 5,0) t=0.658239823 [2] (2.98935652,1.77999616)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3008 findNextOp from:[1] to:[3] start=3 end=4 | |
| 3009 bridgeOp current id=1 from=(5,0) to=(2.98935652,1.77999616) | |
| 3010 path.moveTo(5,0); | |
| 3011 path.cubicTo(4.31647968,0.683520317, 3.63295937,1.25024068, 2.98935652,1.7799961
6); | |
| 3012 findNextOp simple | |
| 3013 markDoneBinary id=3 (2,3 0,5 5,0 3,1) t=0.613266786 [3] (2.98935652,1.77999616)
tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 | |
| 3014 bridgeOp current id=3 from=(2.98935652,1.77999616) to=(3,1) | |
| 3015 path.cubicTo(3.49999475,1.123909, 3.77346635,0.613266766, 3,1); | |
| 3016 findNextOp debugShowSort contourWinding=1 oppContourWinding=1 sign=1 | |
| 3017 debugShowSort [1] {{3,1}, {2,3}} tStart=0.657959019 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3018 debugShowSort [2] {{0,5}, {1,3}, {3,2}, {5,0}} tStart=0.540876747 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3019 debugShowSort [3] {{3,1}, {2,3}} tStart=0.657959019 tEnd=0.936 sign=-1 windValue
=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3020 debugShowSort [0] {{0,5}, {1,3}, {3,2}, {5,0}} tStart=0.540876747 tEnd=0.6582398
23 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3021 findNextOp firstIndex=[1] sign=1 | |
| 3022 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3023 markWinding id=1 (0,5 1,3 3,2 5,0) t=0 [0] (0,5) tEnd=0.540876747 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3024 markWinding id=2 (5,0 0,5) t=0.6 [1] (2,3) tEnd=0.6 newWindSum=1 newOppSum=0 opp
Sum=? windSum=? windValue=1 | |
| 3025 markWinding id=2 (5,0 0,5) t=0.6 [2] (2,3) tEnd=1 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 3026 findNextOp chase.append id=2 | |
| 3027 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 3028 markDoneBinary id=4 (3,1 2,3) t=0.657959019 [1] (2.34204102,2.31591797) tEnd=0.9
36 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3029 findNextOp chase.append id=4 | |
| 3030 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3031 markDoneBinary id=4 (3,1 2,3) t=0 [0] (3,1) tEnd=0.657959019 newWindSum=1 newOpp
Sum=1 oppSum=1 windSum=1 windValue=1 | |
| 3032 findNextOp from:[4] to:[1] start=1 end=0 | |
| 3033 bridgeOp current id=4 from=(3,1) to=(2.34204102,2.31591797) | |
| 3034 findNextOp simple | |
| 3035 markDoneBinary id=1 (0,5 1,3 3,2 5,0) t=0 [0] (0,5) tEnd=0.540876747 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3036 bridgeOp current id=1 from=(2.34204102,2.31591797) to=(0,5) | |
| 3037 path.lineTo(2.34204102,2.31591797); | |
| 3038 path.cubicTo(1.37430108,3.12904072, 0.540876746,3.91824651, 0,5); | |
| 3039 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3040 debugShowSort [3] {{5,0}, {0,5}} tStart=0.6 tEnd=1 sign=-1 windValue=1 windSum=1
0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3041 debugShowSort [0] {{5,0}, {0,5}} tStart=0.6 tEnd=0 sign=1 windValue=1 windSum=1
1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3042 debugShowSort [1] {{3,1}, {2,3}} tStart=1 tEnd=0.936 sign=1 windValue=1 windSum=
? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3043 debugShowSort [2] {{2,3}, {0,5}, {5,0}, {3,1}} tStart=0 tEnd=0.4 sign=-1 windVal
ue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 3044 findNextOp firstIndex=[3] sign=-1 | |
| 3045 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3046 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 3047 markDoneBinary id=4 (3,1 2,3) t=0.936 [2] (2.06399989,2.87199998) tEnd=1 newWind
Sum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3048 findNextOp chase.append id=4 | |
| 3049 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3050 markDoneBinary id=3 (2,3 0,5 5,0 3,1) t=0 [0] (2,3) tEnd=0 newWindSum=-1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 3051 markDoneBinary id=3 (2,3 0,5 5,0 3,1) t=0 [1] (2,3) tEnd=0.4 newWindSum=-1 newOp
pSum=0 oppSum=? windSum=? windValue=1 | |
| 3052 findNextOp chase.append id=3 | |
| 3053 markDoneBinary id=2 (5,0 0,5) t=0.6 [1] (2,3) tEnd=0.6 newWindSum=1 newOppSum=0
oppSum=0 windSum=1 windValue=1 | |
| 3054 markDoneBinary id=2 (5,0 0,5) t=0.6 [2] (2,3) tEnd=1 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3055 findNextOp from:[2] to:[2] start=2 end=0 | |
| 3056 bridgeOp current id=2 from=(0,5) to=(2,3) | |
| 3057 findNextOp simple | |
| 3058 markDoneBinary id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.6 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3059 bridgeOp current id=2 from=(2,3) to=(5,0) | |
| 3060 path.lineTo(5,0); | |
| 3061 path.close(); | |
| 3062 assemble | |
| 3063 assemble contour start=(5,0) end=(5,0) | |
| 3064 </div> | |
| 3065 | |
| 3066 <div id="cubicOp55da"> | |
| 3067 $1 = {{x = 2.9893565350663844, y = 1.7799961946192431}, {x = 3.6329592934456443,
y = 1.250240688218315}, {x = 4.3164796467228257, y = 0.68352035327717708}, {x =
5, y = 0}} | |
| 3068 </div> | |
| 3069 | |
| 3070 <div id="cubicOp56da"> | |
| 3071 $3 = {{x = 3.2077595567431376, y = 1.2121007383531144}, {x = 3.0712003892698903,
y = 0.91360430885366861}, {x = 2.6980028578011237, y = 0.76733238073295829}, {x
= 2, y = 1}} | |
| 3072 </div> | |
| 3073 | |
| 3074 <div id="cubicOp57da"> | |
| 3075 computed quadratics given | |
| 3076 {{0,5}, {0,5}, {5,4}, {6,4}}, | |
| 3077 {{4,5}, {4,6}, {5,0}, {5,0}}, | |
| 3078 computed quadratics set 1 | |
| 3079 {{0,5}, {0.0833333333,4.98148148}, {1.33333333,4.74074074}}, | |
| 3080 {{1.33333333,4.74074074}, {2.58333333,4.5}, {4,4.25925926}}, | |
| 3081 {{4,4.25925926}, {5.41666667,4.01851852}, {6,4}}, | |
| 3082 computed quadratics set 2 | |
| 3083 {{4,5}, {4.0078125,5.32421875}, {4.15625,4.640625}}, | |
| 3084 {{4.15625,4.640625}, {4.3046875,3.95703125}, {4.5,2.875}}, | |
| 3085 {{4.5,2.875}, {4.6953125,1.79296875}, {4.84375,0.921875}}, | |
| 3086 {{4.84375,0.921875}, {4.9921875,0.05078125}, {5,0}}, | |
| 3087 </div> | |
| 3088 | |
| 3089 <div id="cubicOp58d"> | |
| 3090 SimplifyNew_Test [cubicOp58d] | |
| 3091 {{0,5}, {3,4}, {6,5}, {5,3}}, | |
| 3092 {{5,3}, {0,5}}, | |
| 3093 op difference | |
| 3094 {{5,6}, {3,5}, {5,0}, {4,3}}, | |
| 3095 {{4,3}, {5,6}}, | |
| 3096 debugShowCubicIntersection no self intersect {{5,6}, {3,5}, {5,0}, {4,3}} | |
| 3097 debugShowCubicLineIntersection wtTs[0]=0 {{5,6}, {3,5}, {5,0}, {4,3}} {{5,6}} wt
Ts[1]=0.454545455 {{4.0946656649135988,3.2839969947407956}} wtTs[2]=1 {{4,3}} wn
Ts[0]=1 {{4,3}, {5,6}} wnTs[1]=0.0946656649 wnTs[2]=0 | |
| 3098 debugShowCubicIntersection wtTs[0]=0.297296392 {{5,6}, {3,5}, {5,0}, {4,3}} {{4.
0929072920341625,4.362808103638363}} wnTs[0]=0.515735 {{0,5}, {3,4}, {6,5}, {5,3
}} | |
| 3099 debugShowCubicLineIntersection wtTs[0]=0.442158094 {{5,6}, {3,5}, {5,0}, {4,3}}
{{4.0879917456946373,3.3648033017221453}} wnTs[0]=0.182402 {{5,3}, {0,5}} | |
| 3100 debugShowCubicLineIntersection wtTs[0]=0.579011103 {{0,5}, {3,4}, {6,5}, {5,3}}
{{4.4346371023199076,4.3039113069597246}} wnTs[0]=0.434637 {{4,3}, {5,6}} | |
| 3101 debugShowLineIntersection wtTs[0]=0.117647059 {{4,3}, {5,6}} {{4.117647058823529
,3.3529411764705879}} wnTs[0]=0.176471 {{5,3}, {0,5}} | |
| 3102 debugShowCubicIntersection no self intersect {{0,5}, {3,4}, {6,5}, {5,3}} | |
| 3103 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {3,4}, {6,5}, {5,3}} {{0,5}} wt
Ts[1]=1 {{5,3}} wnTs[0]=1 {{5,3}, {0,5}} wnTs[1]=0 | |
| 3104 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3105 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.297296392 (4.09290743,4.36280823
) tEnd=0.442158094 other=1 otherT=0.515734731 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3106 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.442158094 (4.08799171,3.36480331
) tEnd=0.454545455 other=2 otherT=0.182401651 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 3107 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.454545455 (4.09466553,3.28399706
) tEnd=1 other=4 otherT=0.0946656649 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 3108 debugShowActiveSpans id=4 (4,3 5,6) t=0 (4,3) tEnd=0.0946656649 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3109 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=? windValue=1 oppVal
ue=0 | |
| 3110 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3111 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3112 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0 (0,5) tEnd=0.515734731 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3113 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3114 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3115 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3116 debugShowActiveSpans id=2 (5,3 0,5) t=0.176470588 (4.11764717,3.35294127) tEnd=0
.182401651 other=4 otherT=0.117647059 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 3117 debugShowActiveSpans id=2 (5,3 0,5) t=0.182401651 (4.08799171,3.36480331) tEnd=1
other=3 otherT=0.442158094 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3118 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 3119 debugShowSort [0] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=1 tEnd=0.454545455 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3120 debugShowSort [1] {{4,3}, {5,6}} tStart=0 tEnd=0.0946656649 sign=-1 windValue=1
windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3121 markWinding id=3 (5,6 3,5 5,0 4,3) t=0.454545455 [3] (4.09466553,3.28399706) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3122 markWinding id=4 (4,3 5,6) t=0 [0] (4,3) tEnd=0.0946656649 newWindSum=-1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 3123 markWinding id=3 (5,6 3,5 5,0 4,3) t=0.454545455 [3] (4.09466553,3.28399706) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3124 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3125 markDoneBinary id=3 (5,6 3,5 5,0 4,3) t=0.454545455 [3] (4.09466553,3.28399706)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3126 markDoneBinary id=4 (4,3 5,6) t=0 [0] (4,3) tEnd=0.0946656649 newWindSum=-1 newO
ppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3127 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 3128 debugShowSort [0] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.454545455 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 3129 debugShowSort [1] {{4,3}, {5,6}} tStart=0.0946656649 tEnd=0 sign=1 windValue=1 w
indSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 3130 debugShowSort [2] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.454545455 tEnd=0.4421580
94 sign=1 windValue=1 windSum=? -1->-2 (max=-2) done=0 tiny=0 opp=0 | |
| 3131 debugShowSort [3] {{4,3}, {5,6}} tStart=0.0946656649 tEnd=0.117647059 sign=-1 wi
ndValue=1 windSum=? -2->-1 (max=-2) done=0 tiny=0 opp=0 | |
| 3132 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 3133 debugShowSort [0] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.454545455 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 3134 debugShowSort [1] {{4,3}, {5,6}} tStart=0.0946656649 tEnd=0 sign=1 windValue=1 w
indSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 3135 debugShowSort [2] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.454545455 tEnd=0.4421580
94 sign=1 windValue=1 windSum=? -1->-2 (max=-2) done=0 tiny=0 opp=0 | |
| 3136 debugShowSort [3] {{4,3}, {5,6}} tStart=0.0946656649 tEnd=0.117647059 sign=-1 wi
ndValue=1 windSum=? -2->-1 (max=-2) done=0 tiny=0 opp=0 | |
| 3137 markWinding id=3 (5,6 3,5 5,0 4,3) t=0.442158094 [2] (4.08799171,3.36480331) tEn
d=0.454545455 newWindSum=-2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3138 markWinding id=4 (4,3 5,6) t=0.0946656649 [1] (4.09466553,3.28399706) tEnd=0.117
647059 newWindSum=-2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3139 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3140 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.297296392 (4.09290743,4.36280823
) tEnd=0.442158094 other=1 otherT=0.515734731 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3141 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.442158094 (4.08799171,3.36480331
) tEnd=0.454545455 other=2 otherT=0.182401651 otherIndex=2 windSum=-2 windValue=
1 oppValue=0 | |
| 3142 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=-2 windValue=1 oppVa
lue=0 | |
| 3143 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3144 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3145 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0 (0,5) tEnd=0.515734731 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3146 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3147 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3148 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3149 debugShowActiveSpans id=2 (5,3 0,5) t=0.176470588 (4.11764717,3.35294127) tEnd=0
.182401651 other=4 otherT=0.117647059 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 3150 debugShowActiveSpans id=2 (5,3 0,5) t=0.182401651 (4.08799171,3.36480331) tEnd=1
other=3 otherT=0.442158094 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3151 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3152 markDoneBinary id=3 (5,6 3,5 5,0 4,3) t=0.442158094 [2] (4.08799171,3.36480331)
tEnd=0.454545455 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 3153 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 3154 debugShowSort [0] {{5,3}, {0,5}} tStart=0.182401651 tEnd=0.176470588 sign=1 wind
Value=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3155 debugShowSort [1] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.442158094 tEnd=0.4545454
55 sign=-1 windValue=1 windSum=-2 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 3156 debugShowSort [2] {{5,3}, {0,5}} tStart=0.182401651 tEnd=1 sign=-1 windValue=1 w
indSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3157 debugShowSort [3] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.442158094 tEnd=0.2972963
92 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 3158 findChaseOp debugShowSort contourWinding=-2 oppContourWinding=0 sign=-1 | |
| 3159 debugShowSort [1] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.442158094 tEnd=0.4545454
55 sign=-1 windValue=1 windSum=-2 -2->-1 (max=-2) done=1 tiny=0 opp=0 | |
| 3160 debugShowSort [2] {{5,3}, {0,5}} tStart=0.182401651 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3161 debugShowSort [3] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.442158094 tEnd=0.2972963
92 sign=1 windValue=1 windSum=? -1->-2 (max=-2) done=0 tiny=0 opp=0 | |
| 3162 debugShowSort [0] {{5,3}, {0,5}} tStart=0.182401651 tEnd=0.176470588 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3163 markWinding id=2 (5,3 0,5) t=0.182401651 [2] (4.08799171,3.36480331) tEnd=1 newW
indSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3164 markWinding id=1 (0,5 3,4 6,5 5,3) t=0 [0] (0,5) tEnd=0.515734731 newWindSum=1 n
ewOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3165 markWinding id=3 (5,6 3,5 5,0 4,3) t=0.297296392 [1] (4.09290743,4.36280823) tEn
d=0.442158094 newWindSum=-2 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3166 markWinding id=2 (5,3 0,5) t=0.176470588 [1] (4.11764717,3.35294127) tEnd=0.1824
01651 newWindSum=1 newOppSum=-2 oppSum=? windSum=? windValue=1 | |
| 3167 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3168 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.297296392 (4.09290743,4.36280823
) tEnd=0.442158094 other=1 otherT=0.515734731 otherIndex=1 windSum=-2 windValue=
1 oppValue=0 | |
| 3169 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=-2 windValue=1 oppVa
lue=0 | |
| 3170 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3171 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3172 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0 (0,5) tEnd=0.515734731 other=2 o
therT=1 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3173 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3174 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3175 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3176 debugShowActiveSpans id=2 (5,3 0,5) t=0.176470588 (4.11764717,3.35294127) tEnd=0
.182401651 other=4 otherT=0.117647059 otherIndex=2 windSum=1 windValue=1 oppValu
e=0 | |
| 3177 debugShowActiveSpans id=2 (5,3 0,5) t=0.182401651 (4.08799171,3.36480331) tEnd=1
other=3 otherT=0.442158094 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 3178 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3179 markDoneBinary id=2 (5,3 0,5) t=0.182401651 [2] (4.08799171,3.36480331) tEnd=1 n
ewWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3180 markDoneBinary id=1 (0,5 3,4 6,5 5,3) t=0 [0] (0,5) tEnd=0.515734731 newWindSum=
1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3181 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3182 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0.297296392 (4.09290743,4.36280823
) tEnd=0.442158094 other=1 otherT=0.515734731 otherIndex=1 windSum=-2 windValue=
1 oppValue=0 | |
| 3183 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=-2 windValue=1 oppVa
lue=0 | |
| 3184 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3185 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3186 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3187 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3188 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3189 debugShowActiveSpans id=2 (5,3 0,5) t=0.176470588 (4.11764717,3.35294127) tEnd=0
.182401651 other=4 otherT=0.117647059 otherIndex=2 windSum=1 windValue=1 oppValu
e=0 | |
| 3190 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3191 markDoneBinary id=3 (5,6 3,5 5,0 4,3) t=0.297296392 [1] (4.09290743,4.36280823)
tEnd=0.442158094 newWindSum=-2 newOppSum=1 oppSum=1 windSum=-2 windValue=1 | |
| 3192 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3193 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=-2 windValue=1 oppVa
lue=0 | |
| 3194 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3195 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3196 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3197 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3198 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3199 debugShowActiveSpans id=2 (5,3 0,5) t=0.176470588 (4.11764717,3.35294127) tEnd=0
.182401651 other=4 otherT=0.117647059 otherIndex=2 windSum=1 windValue=1 oppValu
e=0 | |
| 3200 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3201 markDoneBinary id=2 (5,3 0,5) t=0.176470588 [1] (4.11764717,3.35294127) tEnd=0.1
82401651 newWindSum=1 newOppSum=-2 oppSum=-2 windSum=1 windValue=1 | |
| 3202 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3203 debugShowActiveSpans id=4 (4,3 5,6) t=0.0946656649 (4.09466553,3.28399706) tEnd=
0.117647059 other=3 otherT=0.454545455 otherIndex=3 windSum=-2 windValue=1 oppVa
lue=0 | |
| 3204 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3205 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3206 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3207 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3208 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3209 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3210 markDoneBinary id=4 (4,3 5,6) t=0.0946656649 [1] (4.09466553,3.28399706) tEnd=0.
117647059 newWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 3211 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 3212 debugShowSort [0] {{0,5}, {3,4}, {6,5}, {5,3}} tStart=0.515734731 tEnd=0.5790111
03 sign=-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3213 debugShowSort [1] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.297296392 tEnd=0.4421580
94 sign=-1 windValue=1 windSum=-2 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 3214 debugShowSort [2] {{0,5}, {3,4}, {6,5}, {5,3}} tStart=0.515734731 tEnd=0 sign=1
windValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 3215 debugShowSort [3] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.297296392 tEnd=0 sign=1
windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 3216 findChaseOp debugShowSort contourWinding=-2 oppContourWinding=1 sign=-1 | |
| 3217 debugShowSort [1] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.297296392 tEnd=0.4421580
94 sign=-1 windValue=1 windSum=-2 -2->-1 (max=-2) done=1 tiny=0 opp=0 | |
| 3218 debugShowSort [2] {{0,5}, {3,4}, {6,5}, {5,3}} tStart=0.515734731 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 3219 debugShowSort [3] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.297296392 tEnd=0 sign=1
windValue=1 windSum=? -1->-2 (max=-2) done=0 tiny=0 opp=0 | |
| 3220 debugShowSort [0] {{0,5}, {3,4}, {6,5}, {5,3}} tStart=0.515734731 tEnd=0.5790111
03 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3221 markWinding id=3 (5,6 3,5 5,0 4,3) t=0 [0] (5,6) tEnd=0.297296392 newWindSum=-2
newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3222 markWinding id=4 (4,3 5,6) t=0.434637102 [3] (4.43463707,4.30391121) tEnd=1 newW
indSum=-2 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3223 markWinding id=1 (0,5 3,4 6,5 5,3) t=0.515734731 [1] (4.09290743,4.36280823) tEn
d=0.579011103 newWindSum=1 newOppSum=-2 oppSum=? windSum=? windValue=1 | |
| 3224 debugShowActiveSpans id=3 (5,6 3,5 5,0 4,3) t=0 (5,6) tEnd=0.297296392 other=4 o
therT=1 otherIndex=4 windSum=-2 windValue=1 oppValue=0 | |
| 3225 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3226 debugShowActiveSpans id=4 (4,3 5,6) t=0.434637102 (4.43463707,4.30391121) tEnd=1
other=1 otherT=0.579011103 otherIndex=2 windSum=-2 windValue=1 oppValue=0 | |
| 3227 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=1 windValue=1
oppValue=0 | |
| 3228 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3229 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3230 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3231 markDoneBinary id=3 (5,6 3,5 5,0 4,3) t=0 [0] (5,6) tEnd=0.297296392 newWindSum=
-2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 3232 markDoneBinary id=4 (4,3 5,6) t=0.434637102 [3] (4.43463707,4.30391121) tEnd=1 n
ewWindSum=-2 newOppSum=0 oppSum=0 windSum=-2 windValue=1 | |
| 3233 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=? windValue=1 oppValu
e=0 | |
| 3234 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.515734731 (4.09290743,4.36280823
) tEnd=0.579011103 other=3 otherT=0.297296392 otherIndex=1 windSum=1 windValue=1
oppValue=0 | |
| 3235 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3236 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3237 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3238 markDoneBinary id=1 (0,5 3,4 6,5 5,3) t=0.515734731 [1] (4.09290743,4.36280823)
tEnd=0.579011103 newWindSum=1 newOppSum=-2 oppSum=-2 windSum=1 windValue=1 | |
| 3239 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 3240 debugShowSort [0] {{5,3}, {0,5}} tStart=0.176470588 tEnd=0 sign=1 windValue=1 wi
ndSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3241 debugShowSort [1] {{4,3}, {5,6}} tStart=0.117647059 tEnd=0.0946656649 sign=1 win
dValue=1 windSum=-2 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 3242 debugShowSort [2] {{5,3}, {0,5}} tStart=0.176470588 tEnd=0.182401651 sign=-1 win
dValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 3243 debugShowSort [3] {{4,3}, {5,6}} tStart=0.117647059 tEnd=0.434637102 sign=-1 win
dValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 3244 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=1 | |
| 3245 debugShowSort [1] {{4,3}, {5,6}} tStart=0.117647059 tEnd=0.0946656649 sign=1 win
dValue=1 windSum=-2 -1->-2 (max=-2) done=1 tiny=0 opp=0 | |
| 3246 debugShowSort [2] {{5,3}, {0,5}} tStart=0.176470588 tEnd=0.182401651 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3247 debugShowSort [3] {{4,3}, {5,6}} tStart=0.117647059 tEnd=0.434637102 sign=-1 win
dValue=1 windSum=? -2->-1 (max=-2) done=0 tiny=0 opp=0 | |
| 3248 debugShowSort [0] {{5,3}, {0,5}} tStart=0.176470588 tEnd=0 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3249 markWinding id=4 (4,3 5,6) t=0.117647059 [2] (4.11764717,3.35294127) tEnd=0.4346
37102 newWindSum=-2 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3250 markWinding id=2 (5,3 0,5) t=0 [0] (5,3) tEnd=0.176470588 newWindSum=1 newOppSum
=-1 oppSum=? windSum=? windValue=1 | |
| 3251 markWinding id=1 (0,5 3,4 6,5 5,3) t=0.579011103 [2] (4.43463707,4.30391121) tEn
d=1 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3252 debugShowActiveSpans id=4 (4,3 5,6) t=0.117647059 (4.11764717,3.35294127) tEnd=0
.434637102 other=2 otherT=0.176470588 otherIndex=1 windSum=-2 windValue=1 oppVal
ue=0 | |
| 3253 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=1 windValue=1 oppValue=
0 | |
| 3254 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3255 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3256 markDoneBinary id=4 (4,3 5,6) t=0.117647059 [2] (4.11764717,3.35294127) tEnd=0.4
34637102 newWindSum=-2 newOppSum=1 oppSum=1 windSum=-2 windValue=1 | |
| 3257 debugShowActiveSpans id=1 (0,5 3,4 6,5 5,3) t=0.579011103 (4.43463707,4.30391121
) tEnd=1 other=4 otherT=0.434637102 otherIndex=3 windSum=1 windValue=1 oppValue=
0 | |
| 3258 debugShowActiveSpans id=2 (5,3 0,5) t=0 (5,3) tEnd=0.176470588 other=1 otherT=1
otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3259 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3260 markDoneBinary id=1 (0,5 3,4 6,5 5,3) t=0.579011103 [2] (4.43463707,4.30391121)
tEnd=1 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3261 markDoneBinary id=2 (5,3 0,5) t=0 [0] (5,3) tEnd=0.176470588 newWindSum=1 newOpp
Sum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3262 assemble | |
| 3263 </div> | |
| 3264 | |
| 3265 <div id="cubicOp58da"> | |
| 3266 $1 = {{fX = 4.09466553, fY = 3.28399706}, {fX = 4.19834709, fY = 2.10743785}, {f
X = 4.5454545, fY = 1.36363637}, {fX = 4, fY = 3}} | |
| 3267 </div> | |
| 3268 | |
| 3269 <div id="cubicOp61d"> | |
| 3270 SimplifyNew_Test [cubicOp61d] | |
| 3271 {{1,2}, {0,5}, {3,2}, {6,1}}, | |
| 3272 {{6,1}, {1,2}}, | |
| 3273 op difference | |
| 3274 {{2,3}, {1,6}, {2,1}, {5,0}}, | |
| 3275 {{5,0}, {2,3}}, | |
| 3276 debugShowCubicIntersection wtTs[0]=0 {{2,3}, {1,6}, {2,1}, {5,0}} {{2,3}} wtTs[1
]=0.5 | |
| 3277 debugShowCubicLineIntersection wtTs[0]=0 {{2,3}, {1,6}, {2,1}, {5,0}} {{2,3}} wt
Ts[1]=0.5 {{2,3}} wtTs[2]=1 {{5,0}} wnTs[0]=1 {{5,0}, {2,3}} wnTs[1]=1 wnTs[2]=0 | |
| 3278 debugShowCubicIntersection wtTs[0]=0 {{2,3}, {1,6}, {2,1}, {5,0}} {{2,3}} wtTs[1
]=0.5 {{2.0000000000728706,2.9999999998542584}} wnTs[0]=0.5 {{1,2}, {0,5}, {3,2}
, {6,1}} wnTs[1]=0.500000029 | |
| 3279 debugShowCubicLineIntersection wtTs[0]=0.704088595 {{2,3}, {1,6}, {2,1}, {5,0}}
{{2.8621787139852466,1.6275642572029505}} wnTs[0]=0.627564 {{6,1}, {1,2}} | |
| 3280 debugShowCubicLineIntersection wtTs[0]=0.5 {{1,2}, {0,5}, {3,2}, {6,1}} {{2,3}}
wnTs[0]=1 {{5,0}, {2,3}} | |
| 3281 debugShowLineIntersection wtTs[0]=0.5 {{5,0}, {2,3}} {{3.5,1.5}} wnTs[0]=0.5 {{6
,1}, {1,2}} | |
| 3282 debugShowCubicIntersection no self intersect {{1,2}, {0,5}, {3,2}, {6,1}} | |
| 3283 debugShowCubicLineIntersection wtTs[0]=0 {{1,2}, {0,5}, {3,2}, {6,1}} {{1,2}} wt
Ts[1]=1 {{6,1}} wnTs[0]=1 {{6,1}, {1,2}} wnTs[1]=0 | |
| 3284 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3285 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3286 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3287 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.5 (2,3) tEnd=0.704088595 other=1
otherT=0.500000029 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3288 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.704088595 (2.8621788,1.62756431)
tEnd=1 other=2 otherT=0.627564257 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3289 debugShowActiveSpans id=4 (5,0 2,3) t=0 (5,0) tEnd=0.5 other=3 otherT=1 otherInd
ex=7 windSum=? windValue=1 oppValue=0 | |
| 3290 debugShowActiveSpans id=4 (5,0 2,3) t=0.5 (3.5,1.5) tEnd=1 other=2 otherT=0.5 ot
herIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3291 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0 (1,2) tEnd=0.5 other=2 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3292 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 3293 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=? windValue=1 oppValue=0 | |
| 3294 debugShowActiveSpans id=2 (6,1 1,2) t=0.5 (3.5,1.5) tEnd=0.627564257 other=4 oth
erT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3295 debugShowActiveSpans id=2 (6,1 1,2) t=0.627564257 (2.8621788,1.62756431) tEnd=1
other=3 otherT=0.704088595 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 3296 (gdb) continue | |
| 3297 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 3298 debugShowSort [0] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=1 tEnd=0.704088595 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3299 debugShowSort [1] {{5,0}, {2,3}} tStart=0 tEnd=0.5 sign=-1 windValue=1 windSum=?
-1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3300 markWinding id=3 (2,3 1,6 2,1 5,0) t=0.704088595 [6] (2.8621788,1.62756431) tEnd
=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3301 markWinding id=4 (5,0 2,3) t=0 [0] (5,0) tEnd=0.5 newWindSum=-1 newOppSum=0 oppS
um=? windSum=? windValue=1 | |
| 3302 markWinding id=3 (2,3 1,6 2,1 5,0) t=0.704088595 [6] (2.8621788,1.62756431) tEnd
=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3303 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3304 markDoneBinary id=3 (2,3 1,6 2,1 5,0) t=0.704088595 [6] (2.8621788,1.62756431) t
End=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3305 markDoneBinary id=4 (5,0 2,3) t=0 [0] (5,0) tEnd=0.5 newWindSum=-1 newOppSum=0 o
ppSum=0 windSum=-1 windValue=1 | |
| 3306 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 3307 debugShowSort [0] {{6,1}, {1,2}} tStart=0.5 tEnd=0 sign=1 windValue=1 windSum=?
?->? (max=?) done=0 tiny=0 opp=0 | |
| 3308 debugShowSort [1] {{5,0}, {2,3}} tStart=0.5 tEnd=0 sign=1 windValue=1 windSum=-1
?->? (max=?) done=1 tiny=0 opp=1 | |
| 3309 debugShowSort [2] {{6,1}, {1,2}} tStart=0.5 tEnd=0.627564257 sign=-1 windValue=1
windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3310 debugShowSort [3] {{5,0}, {2,3}} tStart=0.5 tEnd=1 sign=-1 windValue=1 windSum=?
?->? (max=?) done=0 tiny=0 opp=1 | |
| 3311 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 3312 debugShowSort [1] {{5,0}, {2,3}} tStart=0.5 tEnd=0 sign=1 windValue=1 windSum=-1
0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 3313 debugShowSort [2] {{6,1}, {1,2}} tStart=0.5 tEnd=0.627564257 sign=-1 windValue=1
windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3314 debugShowSort [3] {{5,0}, {2,3}} tStart=0.5 tEnd=1 sign=-1 windValue=1 windSum=?
-1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3315 debugShowSort [0] {{6,1}, {1,2}} tStart=0.5 tEnd=0 sign=1 windValue=1 windSum=?
1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3316 markWinding id=2 (6,1 1,2) t=0.5 [1] (3.5,1.5) tEnd=0.627564257 newWindSum=1 new
OppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3317 markWinding id=4 (5,0 2,3) t=0.5 [1] (3.5,1.5) tEnd=1 newWindSum=-1 newOppSum=1
oppSum=? windSum=? windValue=1 | |
| 3318 markWinding id=2 (6,1 1,2) t=0 [0] (6,1) tEnd=0.5 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 3319 markWinding id=1 (1,2 0,5 3,2 6,1) t=0.500000029 [3] (2,3) tEnd=1 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3320 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3321 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3322 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3323 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.5 (2,3) tEnd=0.704088595 other=1
otherT=0.500000029 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3324 debugShowActiveSpans id=4 (5,0 2,3) t=0.5 (3.5,1.5) tEnd=1 other=2 otherT=0.5 ot
herIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 3325 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0 (1,2) tEnd=0.5 other=2 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3326 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 3327 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=1 windValue=1 oppValue=0 | |
| 3328 debugShowActiveSpans id=2 (6,1 1,2) t=0.5 (3.5,1.5) tEnd=0.627564257 other=4 oth
erT=0.5 otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 3329 debugShowActiveSpans id=2 (6,1 1,2) t=0.627564257 (2.8621788,1.62756431) tEnd=1
other=3 otherT=0.704088595 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 3330 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3331 markDoneBinary id=2 (6,1 1,2) t=0.5 [1] (3.5,1.5) tEnd=0.627564257 newWindSum=1
newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3332 findChaseOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 3333 debugShowSort [0] {{6,1}, {1,2}} tStart=0.627564257 tEnd=0.5 sign=1 windValue=1
windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3334 debugShowSort [1] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.704088595 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3335 debugShowSort [2] {{6,1}, {1,2}} tStart=0.627564257 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3336 debugShowSort [3] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.704088595 tEnd=0.5 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3337 findChaseOp debugShowSort contourWinding=1 oppContourWinding=-1 sign=1 | |
| 3338 debugShowSort [0] {{6,1}, {1,2}} tStart=0.627564257 tEnd=0.5 sign=1 windValue=1
windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3339 debugShowSort [1] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.704088595 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3340 debugShowSort [2] {{6,1}, {1,2}} tStart=0.627564257 tEnd=1 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3341 debugShowSort [3] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.704088595 tEnd=0.5 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3342 markWinding id=2 (6,1 1,2) t=0.627564257 [2] (2.8621788,1.62756431) tEnd=1 newWi
ndSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3343 markWinding id=1 (1,2 0,5 3,2 6,1) t=0 [0] (1,2) tEnd=0.5 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 3344 markWinding id=3 (2,3 1,6 2,1 5,0) t=0.5 [5] (2,3) tEnd=0.704088595 newWindSum=-
1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3345 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3346 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3347 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3348 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.5 (2,3) tEnd=0.704088595 other=1
otherT=0.500000029 otherIndex=3 windSum=-1 windValue=1 oppValue=0 | |
| 3349 debugShowActiveSpans id=4 (5,0 2,3) t=0.5 (3.5,1.5) tEnd=1 other=2 otherT=0.5 ot
herIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 3350 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0 (1,2) tEnd=0.5 other=2 otherT=1
otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3351 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 3352 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=1 windValue=1 oppValue=0 | |
| 3353 debugShowActiveSpans id=2 (6,1 1,2) t=0.627564257 (2.8621788,1.62756431) tEnd=1
other=3 otherT=0.704088595 otherIndex=6 windSum=1 windValue=1 oppValue=0 | |
| 3354 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 3355 findNextOp simple | |
| 3356 markDoneBinary id=2 (6,1 1,2) t=0.627564257 [2] (2.8621788,1.62756431) tEnd=1 ne
wWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3357 bridgeOp current id=2 from=(2.8621788,1.62756431) to=(1,2) | |
| 3358 setSpans all tiny unsortable [1] (2,3) [0] (1,2) | |
| 3359 setSpans all tiny unsortable [1] (2,3) [3] (2.00000024,3) | |
| 3360 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0 [0] (1,2) tEnd=0.5 newWindSum=0 windSu
m=1 windValue=1 | |
| 3361 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [1] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3362 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0 [2] (2,3) tEnd=0.5 newWindSum=0 windSu
m=? windValue=1 | |
| 3363 markUnsortable id=4 (5,0 2,3) t=1 [3] (2,3) tEnd=1 newWindSum=0 windSum=? windVa
lue=1 | |
| 3364 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 3365 debugShowSort [0] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.5 tEn
d=0 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3366 debugShowSort [1] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.5 tEn
d=0.500000029 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=1 tiny=1 opp=0 | |
| 3367 debugShowSort [2] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0 tEnd=0.5 sign=-1 windVal
ue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3368 debugShowSort [3] {{5,0}, {2,3}} tStart=1 tEnd=0.5 sign=1 windValue=1 windSum=-1
1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3369 path.moveTo(2.8621788,1.62756431); | |
| 3370 path.lineTo(1,2); | |
| 3371 path.cubicTo(0.5,3.5, 1,3.5, 2,3); | |
| 3372 markDoneBinary id=1 (1,2 0,5 3,2 6,1) t=0 [0] (1,2) tEnd=0.5 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 3373 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3374 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3375 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3376 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.5 (2,3) tEnd=0.704088595 other=1
otherT=0.500000029 otherIndex=3 windSum=-1 windValue=1 oppValue=0 | |
| 3377 debugShowActiveSpans id=4 (5,0 2,3) t=0.5 (3.5,1.5) tEnd=1 other=2 otherT=0.5 ot
herIndex=1 windSum=-1 windValue=1 oppValue=0 | |
| 3378 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 3379 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=1 windValue=1 oppValue=0 | |
| 3380 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 3381 setSpans unsortable [2] (2,3) [3] (2,3) | |
| 3382 setSpans all tiny unsortable [4] (2,3) [2] (2,3) | |
| 3383 setSpans all tiny unsortable [2] (2,3) [3] (2.00000024,3) | |
| 3384 setSpans all tiny unsortable [2] (2,3) [0] (1,2) | |
| 3385 markUnsortable id=4 (5,0 2,3) t=0.5 [1] (3.5,1.5) tEnd=1 newWindSum=0 windSum=-1
windValue=1 | |
| 3386 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0 [1] (2,3) tEnd=0 newWindSum=0 windSum=
? windValue=1 | |
| 3387 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [4] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3388 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [3] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3389 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [2] (2,3) tEnd=0.500000029 newWindSu
m=0 windSum=? windValue=1 | |
| 3390 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [1] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3391 findNextOp debugShowSort contourWinding=0 oppContourWinding=1 sign=1 | |
| 3392 debugShowSort [0] {{5,0}, {2,3}} tStart=1 tEnd=0.5 sign=1 windValue=1 windSum=-1
0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3393 debugShowSort [1] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0 tEnd=
0.5 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3394 debugShowSort [2] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEn
d=0.5 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=1 tiny=1 opp=0 | |
| 3395 debugShowSort [3] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEn
d=0 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3396 debugShowSort [4] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.5 tEn
d=0.500000029 sign=-1 windValue=1 windSum=? 1->2 (max=2) done=1 tiny=1 opp=1 | |
| 3397 debugShowSort [5] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.5 tEn
d=0 sign=1 windValue=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=1 | |
| 3398 markDoneBinary id=4 (5,0 2,3) t=0.5 [1] (3.5,1.5) tEnd=1 newWindSum=-1 newOppSum
=1 oppSum=1 windSum=-1 windValue=1 | |
| 3399 path.moveTo(3.5,1.5); | |
| 3400 path.lineTo(2,3); | |
| 3401 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3402 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3403 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3404 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0.5 (2,3) tEnd=0.704088595 other=1
otherT=0.500000029 otherIndex=3 windSum=-1 windValue=1 oppValue=0 | |
| 3405 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 3406 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=1 windValue=1 oppValue=0 | |
| 3407 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 3408 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [5] (2,3) tEnd=0.704088595 newWindSu
m=0 windSum=-1 windValue=1 | |
| 3409 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [4] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3410 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.500000029 [3] (2,3) tEnd=1 newWindSum=
0 windSum=1 windValue=1 | |
| 3411 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [2] (2,3) tEnd=0.500000029 newWindSu
m=0 windSum=? windValue=1 | |
| 3412 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 3413 debugShowSort [0] {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEnd=0.704088595 sign=
-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3414 debugShowSort [1] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEn
d=0.5 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=1 tiny=1 opp=0 | |
| 3415 debugShowSort [2] {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.500000029 tEnd=1 sign=-1
windValue=1 windSum=1 1->2 (max=2) done=0 tiny=0 opp=1 | |
| 3416 debugShowSort [3] {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.500000029 tEnd=0.5 sign=
1 windValue=1 windSum=? 2->1 (max=2) done=1 tiny=1 opp=1 | |
| 3417 path.moveTo(2.8621788,1.62756431); | |
| 3418 path.cubicTo(2.49148154,2.10034132, 2.20408869,2.59182286, 2,3); | |
| 3419 markDoneBinary id=3 (2,3 1,6 2,1 5,0) t=0.5 [5] (2,3) tEnd=0.704088595 newWindSu
m=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 3420 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3421 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3422 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3423 debugShowActiveSpans id=1 (1,2 0,5 3,2 6,1) t=0.500000029 (2,3) tEnd=1 other=3 o
therT=0.5 otherIndex=5 windSum=1 windValue=1 oppValue=0 | |
| 3424 debugShowActiveSpans id=2 (6,1 1,2) t=0 (6,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=4 windSum=1 windValue=1 oppValue=0 | |
| 3425 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3426 findNextOp simple | |
| 3427 markDoneBinary id=2 (6,1 1,2) t=0 [0] (6,1) tEnd=0.5 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3428 bridgeOp current id=2 from=(3.5,1.5) to=(6,1) | |
| 3429 setSpans unsortable [3] (2.00000024,3) [4] (6,1) | |
| 3430 setSpans unsortable [3] (2.00000024,3) [2] (2,3) | |
| 3431 setSpans unsortable [5] (2,3) [6] (2.8621788,1.62756431) | |
| 3432 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.500000029 [3] (2,3) tEnd=1 newWindSum=
0 windSum=1 windValue=1 | |
| 3433 markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [2] (2,3) tEnd=0.500000029 newWindSu
m=0 windSum=? windValue=1 | |
| 3434 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [5] (2,3) tEnd=0.704088595 newWindSu
m=0 windSum=-1 windValue=1 | |
| 3435 markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0.5 [4] (2,3) tEnd=0.5 newWindSum=0 wind
Sum=? windValue=1 | |
| 3436 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3437 debugShowSort [0] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.50000
0029 tEnd=1 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3438 debugShowSort [1] *** UNSORTABLE *** {{1,2}, {0,5}, {3,2}, {6,1}} tStart=0.50000
0029 tEnd=0.5 sign=1 windValue=1 windSum=? 1->0 (max=1) done=1 tiny=1 opp=0 | |
| 3439 debugShowSort [2] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEn
d=0.704088595 sign=-1 windValue=1 windSum=-1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3440 debugShowSort [3] *** UNSORTABLE *** {{2,3}, {1,6}, {2,1}, {5,0}} tStart=0.5 tEn
d=0.5 sign=1 windValue=1 windSum=? 1->0 (max=1) done=1 tiny=1 opp=1 | |
| 3441 path.moveTo(3.5,1.5); | |
| 3442 path.lineTo(6,1); | |
| 3443 path.cubicTo(4.5,1.5, 3.00000024,2.49999976, 2,3); | |
| 3444 markDoneBinary id=1 (1,2 0,5 3,2 6,1) t=0.500000029 [3] (2,3) tEnd=1 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3445 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=3 otherT=0.
5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3446 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=4 otherT=1
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3447 debugShowActiveSpans id=3 (2,3 1,6 2,1 5,0) t=0 (2,3) tEnd=0.5 other=1 otherT=0.
5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3448 </div> | |
| 3449 | |
| 3450 <div id="cubicOp62d"> | |
| 3451 SimplifyNew_Test [cubicOp62d] | |
| 3452 {{1,3}, {5,6}, {5,3}, {5,4}}, | |
| 3453 {{5,4}, {1,3}}, | |
| 3454 op difference | |
| 3455 {{3,5}, {4,5}, {3,1}, {6,5}}, | |
| 3456 {{6,5}, {3,5}}, | |
| 3457 debugShowCubicIntersection no self intersect {{1,3}, {5,6}, {5,3}, {5,4}} | |
| 3458 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {5,6}, {5,3}, {5,4}} {{1,3}} wt
Ts[1]=0.666666667 {{4.8518518518518512,3.9629629629629628}} wtTs[2]=1 {{5,4}} wn
Ts[0]=1 {{5,4}, {1,3}} wnTs[1]=0.037037037 wnTs[2]=0 | |
| 3459 debugShowCubicIntersection wtTs[0]=0.278899971 {{1,3}, {5,6}, {5,3}, {5,4}} {{3.
5001544800676263,4.3269091333431628}} wtTs[1]=0.855895664 {{4.9880300830066844,3
.7869549154423883}} wtTs[2]=0.865207906 {{4.9902038991416013,3.7891603690182212}
} wtTs[3]=0.865213351 {{4.9902050861407137,3.789162057358868}} wnTs[0]=0.2789 {{
3,5}, {4,5}, {3,1}, {6,5}} wnTs[1]=0.864850875 wnTs[2]=0.865207887 wnTs[3]=0.865
208087 | |
| 3460 debugShowCubicLineIntersection wtTs[0]=0.448187637 {{3,5}, {4,5}, {3,1}, {6,5}}
{{3.6795004703683416,3.6698751175920856}} wnTs[0]=0.330125 {{5,4}, {1,3}} | |
| 3461 debugShowCubicIntersection no self intersect {{3,5}, {4,5}, {3,1}, {6,5}} | |
| 3462 debugShowCubicLineIntersection wtTs[0]=0 {{3,5}, {4,5}, {3,1}, {6,5}} {{3,5}} wt
Ts[1]=1 {{6,5}} wnTs[0]=1 {{6,5}, {3,5}} wnTs[1]=0 | |
| 3463 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0 (1,3) tEnd=0.278899971 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3464 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.278899971 (3.5001545,4.32690907)
tEnd=0.666666667 other=3 otherT=0.278899971 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3465 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.666666667 (4.85185194,3.96296287
) tEnd=0.855895664 other=2 otherT=0.037037037 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3466 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.855895664 (4.98802996,3.78695488
) tEnd=0.865207906 other=3 otherT=0.864850875 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3467 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.865207906 (4.99020386,3.78916025
) tEnd=0.865213351 other=3 otherT=0.865207887 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 3468 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.865213351 (4.99020529,3.78916216
) tEnd=1 other=3 otherT=0.865208087 otherIndex=5 windSum=? windValue=1 oppValue=
0 | |
| 3469 debugShowActiveSpans id=2 (5,4 1,3) t=0 (5,4) tEnd=0.037037037 other=1 otherT=1
otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 3470 debugShowActiveSpans id=2 (5,4 1,3) t=0.037037037 (4.85185194,3.96296287) tEnd=0
.330124882 other=1 otherT=0.666666667 otherIndex=2 windSum=? windValue=1 oppValu
e=0 | |
| 3471 debugShowActiveSpans id=2 (5,4 1,3) t=0.330124882 (3.67950058,3.66987514) tEnd=1
other=3 otherT=0.448187637 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3472 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0 (3,5) tEnd=0.278899971 other=4 o
therT=1 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3473 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.278899971 (3.5001545,4.32690907)
tEnd=0.448187637 other=1 otherT=0.278899971 otherIndex=1 windSum=? windValue=1
oppValue=0 | |
| 3474 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.448187637 (3.67950058,3.66987514
) tEnd=0.864850875 other=2 otherT=0.330124882 otherIndex=2 windSum=? windValue=1
oppValue=0 | |
| 3475 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.864850875 (4.98802996,3.78695488
) tEnd=0.865207887 other=1 otherT=0.855895664 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3476 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.865207887 (4.99020386,3.78916025
) tEnd=0.865208087 other=1 otherT=0.865207906 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 3477 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.865208087 (4.99020529,3.78916216
) tEnd=1 other=1 otherT=0.865213351 otherIndex=5 windSum=? windValue=1 oppValue=
0 | |
| 3478 debugShowActiveSpans id=4 (6,5 3,5) t=0 (6,5) tEnd=1 other=3 otherT=1 otherIndex
=6 windSum=? windValue=1 oppValue=0 | |
| 3479 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3480 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0 tEnd=0.278899971 sign=-1
windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3481 debugShowSort [1] {{5,4}, {1,3}} tStart=1 tEnd=0.330124882 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3482 markWinding id=1 (1,3 5,6 5,3 5,4) t=0 [0] (1,3) tEnd=0.278899971 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3483 markWinding id=2 (5,4 1,3) t=0.330124882 [2] (3.67950058,3.66987514) tEnd=1 newW
indSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3484 markWinding id=1 (1,3 5,6 5,3 5,4) t=0 [0] (1,3) tEnd=0.278899971 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3485 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3486 findNextOp simple | |
| 3487 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0 [0] (1,3) tEnd=0.278899971 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3488 bridgeOp current id=1 from=(3.5001545,4.32690907) to=(1,3) | |
| 3489 path.moveTo(3.5001545,4.32690907); | |
| 3490 path.cubicTo(2.92005897,4.20668888, 2.11559987,3.83669996, 1,3); | |
| 3491 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3492 debugShowSort [1] {{5,4}, {1,3}} tStart=0.330124882 tEnd=1 sign=-1 windValue=1 w
indSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3493 debugShowSort [2] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.448187637 tEnd=0.2788999
71 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3494 debugShowSort [3] {{5,4}, {1,3}} tStart=0.330124882 tEnd=0.037037037 sign=1 wind
Value=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3495 debugShowSort [0] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.448187637 tEnd=0.8648508
75 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 3496 findNextOp firstIndex=[1] sign=-1 | |
| 3497 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 3498 markWinding id=3 (3,5 4,5 3,1 6,5) t=0.278899971 [1] (3.5001545,4.32690907) tEnd
=0.448187637 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3499 findNextOp chase.append id=3 | |
| 3500 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3501 markDoneBinary id=2 (5,4 1,3) t=0.037037037 [1] (4.85185194,3.96296287) tEnd=0.3
30124882 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3502 findNextOp chase.append id=2 | |
| 3503 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3504 markDoneBinary id=3 (3,5 4,5 3,1 6,5) t=0.448187637 [2] (3.67950058,3.66987514)
tEnd=0.864850875 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3505 findNextOp chase.append id=3 | |
| 3506 markDoneBinary id=2 (5,4 1,3) t=0.330124882 [2] (3.67950058,3.66987514) tEnd=1 n
ewWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3507 findNextOp from:[2] to:[3] start=2 end=1 | |
| 3508 bridgeOp current id=2 from=(1,3) to=(3.67950058,3.66987514) | |
| 3509 findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 3510 debugShowSort [0] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.278899971 tEnd=0.4481876
37 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3511 debugShowSort [1] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.278899971 tEnd=0 sign=1
windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 3512 debugShowSort [2] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.278899971 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3513 debugShowSort [3] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.278899971 tEnd=0.6666666
67 sign=-1 windValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3514 findNextOp firstIndex=[0] sign=-1 | |
| 3515 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3516 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 3517 markDoneBinary id=3 (3,5 4,5 3,1 6,5) t=0 [0] (3,5) tEnd=0.278899971 newWindSum=
-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3518 markDoneBinary id=4 (6,5 3,5) t=0 [0] (6,5) tEnd=1 newWindSum=-1 newOppSum=0 opp
Sum=? windSum=? windValue=1 | |
| 3519 markDoneBinary id=3 (3,5 4,5 3,1 6,5) t=0.865208087 [5] (4.99020529,3.78916216)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3520 findNextOp chase.append id=3 | |
| 3521 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3522 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0.278899971 [1] (3.5001545,4.32690907) t
End=0.666666667 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3523 findNextOp chase.append id=1 | |
| 3524 markDoneBinary id=3 (3,5 4,5 3,1 6,5) t=0.278899971 [1] (3.5001545,4.32690907) t
End=0.448187637 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 3525 findNextOp from:[3] to:[1] start=1 end=0 | |
| 3526 bridgeOp current id=3 from=(3.67950058,3.66987514) to=(3.5001545,4.32690907) | |
| 3527 path.lineTo(3.67950058,3.66987514); | |
| 3528 path.cubicTo(3.60967231,3.86879396, 3.5595932,4.10721159, 3.5001545,4.32690907); | |
| 3529 path.close(); | |
| 3530 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 3531 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.8558956
64 sign=-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3532 debugShowSort [1] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0.330124882 sign=-1 win
dValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 3533 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.2788999
71 sign=1 windValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 3534 debugShowSort [3] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0 sign=1 windValue=1 wi
ndSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3535 findChaseOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=-1 | |
| 3536 debugShowSort [1] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0.330124882 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 3537 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.2788999
71 sign=1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3538 debugShowSort [3] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0 sign=1 windValue=1 wi
ndSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3539 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.8558956
64 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3540 markWinding id=2 (5,4 1,3) t=0 [0] (5,4) tEnd=0.037037037 newWindSum=-1 newOppSu
m=-1 oppSum=? windSum=? windValue=1 | |
| 3541 markWinding id=1 (1,3 5,6 5,3 5,4) t=0.865213351 [5] (4.99020529,3.78916216) tEn
d=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3542 markWinding id=1 (1,3 5,6 5,3 5,4) t=0.666666667 [2] (4.85185194,3.96296287) tEn
d=0.855895664 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3543 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.666666667 (4.85185194,3.96296287
) tEnd=0.855895664 other=2 otherT=0.037037037 otherIndex=1 windSum=-1 windValue=
1 oppValue=0 | |
| 3544 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.855895664 (4.98802996,3.78695488
) tEnd=0.865207906 other=3 otherT=0.864850875 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3545 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.865207906 (4.99020386,3.78916025
) tEnd=0.865213351 other=3 otherT=0.865207887 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 3546 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.865213351 (4.99020529,3.78916216
) tEnd=1 other=3 otherT=0.865208087 otherIndex=5 windSum=-1 windValue=1 oppValue
=0 | |
| 3547 debugShowActiveSpans id=2 (5,4 1,3) t=0 (5,4) tEnd=0.037037037 other=1 otherT=1
otherIndex=6 windSum=-1 windValue=1 oppValue=0 | |
| 3548 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.864850875 (4.98802996,3.78695488
) tEnd=0.865207887 other=1 otherT=0.855895664 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3549 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.865207887 (4.99020386,3.78916025
) tEnd=0.865208087 other=1 otherT=0.865207906 otherIndex=4 windSum=? windValue=1
oppValue=0 | |
| 3550 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3551 markDoneBinary id=2 (5,4 1,3) t=0 [0] (5,4) tEnd=0.037037037 newWindSum=-1 newOp
pSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 3552 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0.865213351 [5] (4.99020529,3.78916216)
tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 3553 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 3554 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865213351 tEnd=0.8652079
06 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 3555 debugShowSort [1] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865208087 tEnd=0.8652078
87 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 3556 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865213351 tEnd=1 sign=-1
windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=0 | |
| 3557 debugShowSort [3] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865208087 tEnd=1 sign=-1
windValue=1 windSum=-1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 3558 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 3559 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865213351 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 3560 debugShowSort [3] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865208087 tEnd=1 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3561 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865213351 tEnd=0.8652079
06 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3562 debugShowSort [1] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865208087 tEnd=0.8652078
87 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3563 markWinding id=1 (1,3 5,6 5,3 5,4) t=0.865207906 [4] (4.99020386,3.78916025) tEn
d=0.865213351 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3564 markWinding id=3 (3,5 4,5 3,1 6,5) t=0.865207887 [4] (4.99020386,3.78916025) tEn
d=0.865208087 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3565 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.666666667 (4.85185194,3.96296287
) tEnd=0.855895664 other=2 otherT=0.037037037 otherIndex=1 windSum=-1 windValue=
1 oppValue=0 | |
| 3566 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.855895664 (4.98802996,3.78695488
) tEnd=0.865207906 other=3 otherT=0.864850875 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3567 debugShowActiveSpans id=1 (1,3 5,6 5,3 5,4) t=0.865207906 (4.99020386,3.78916025
) tEnd=0.865213351 other=3 otherT=0.865207887 otherIndex=4 windSum=-1 windValue=
1 oppValue=0 | |
| 3568 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.864850875 (4.98802996,3.78695488
) tEnd=0.865207887 other=1 otherT=0.855895664 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 3569 debugShowActiveSpans id=3 (3,5 4,5 3,1 6,5) t=0.865207887 (4.99020386,3.78916025
) tEnd=0.865208087 other=1 otherT=0.865207906 otherIndex=4 windSum=-1 windValue=
1 oppValue=0 | |
| 3570 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 3571 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 3572 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865207906 tEnd=0.8652133
51 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3573 debugShowSort [3] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865207887 tEnd=0.8652080
87 sign=-1 windValue=1 windSum=-1 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3574 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.865207906 tEnd=0.8558956
64 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3575 debugShowSort [1] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.865207887 tEnd=0.8648508
75 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3576 findNextOp firstIndex=[2] sign=-1 | |
| 3577 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 3578 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3579 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0.855895664 [3] (4.98802996,3.78695488)
tEnd=0.865207906 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3580 findNextOp chase.append id=1 | |
| 3581 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 3582 markWinding id=3 (3,5 4,5 3,1 6,5) t=0.864850875 [3] (4.98802996,3.78695488) tEn
d=0.865207887 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3583 findNextOp chase.append id=3 | |
| 3584 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0.865207906 [4] (4.99020386,3.78916025)
tEnd=0.865213351 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3585 findNextOp from:[1] to:[3] start=4 end=3 | |
| 3586 bridgeOp current id=1 from=(4.99020529,3.78916216) to=(4.99020386,3.78916025) | |
| 3587 path.moveTo(4.99020529,3.78916216); | |
| 3588 path.cubicTo(4.99020433,3.78916144, 4.99020433,3.78916097, 4.99020386,3.78916025
); | |
| 3589 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=-1 | |
| 3590 debugShowSort [2] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.864850875 tEnd=0.8652078
87 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3591 debugShowSort [3] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.855895664 tEnd=0.8652079
06 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3592 debugShowSort [0] {{3,5}, {4,5}, {3,1}, {6,5}} tStart=0.864850875 tEnd=0.4481876
37 sign=1 windValue=1 windSum=-1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3593 debugShowSort [1] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.855895664 tEnd=0.6666666
67 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3594 findNextOp firstIndex=[2] sign=-1 | |
| 3595 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3596 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 3597 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 3598 markDoneBinary id=3 (3,5 4,5 3,1 6,5) t=0.864850875 [3] (4.98802996,3.78695488)
tEnd=0.865207887 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 3599 findNextOp from:[3] to:[1] start=3 end=2 | |
| 3600 bridgeOp current id=3 from=(4.99020386,3.78916025) to=(4.98802996,3.78695488) | |
| 3601 path.cubicTo(4.98947859,3.78842425, 4.98875427,3.78768921, 4.98802996,3.78695488
); | |
| 3602 findNextOp debugShowSort contourWinding=-1 oppContourWinding=-1 sign=-1 | |
| 3603 debugShowSort [0] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.8558956
64 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3604 debugShowSort [1] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0.330124882 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 3605 debugShowSort [2] {{1,3}, {5,6}, {5,3}, {5,4}} tStart=0.666666667 tEnd=0.2788999
71 sign=1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3606 debugShowSort [3] {{5,4}, {1,3}} tStart=0.037037037 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 3607 findNextOp firstIndex=[0] sign=-1 | |
| 3608 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3609 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3610 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3611 markDoneBinary id=1 (1,3 5,6 5,3 5,4) t=0.666666667 [2] (4.85185194,3.96296287)
tEnd=0.855895664 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 3612 path.cubicTo(4.97231197,3.77658033, 4.93595362,3.85783577, 4.85185194,3.96296287
); | |
| 3613 </div> | |
| 3614 | |
| 3615 <div id="testQuad1"> | |
| 3616 RunTestSet [testQuad1] | |
| 3617 {{0,0}, {0,0}, {0,1}}, | |
| 3618 {{0,1}, {1,1}}, | |
| 3619 {{1,1}, {0,0}}, | |
| 3620 {{0,0}, {1,1}, {0,2}}, | |
| 3621 {{0,2}, {0,0}}, | |
| 3622 debugShowLineIntersection wtTs[0]=0 {{0,0}, {0,1}} {{0,1}} wnTs[0]=1 {{0,1}, {1,
1}} | |
| 3623 debugShowLineIntersection wtTs[0]=1 {{0,0}, {0,1}} {{0,0}} wnTs[0]=0 {{1,1}, {0,
0}} | |
| 3624 debugShowLineIntersection wtTs[0]=-0 {{0,1}, {1,1}} {{1,1}} wnTs[0]=1 {{1,1}, {0
,0}} | |
| 3625 debugShowQuadLineIntersection wtTs[0]=0 {{0,0}, {1,1}, {0,2}} {{0,0}} wnTs[0]=0
{{0,0}, {0,1}} | |
| 3626 debugShowLineIntersection wtTs[0]=1 {{0,0}, {0,1}} {{0,0}} wtTs[1]=0.5 {{0,1}} w
nTs[0]=-0 {{0,2}, {0,0}} wnTs[1]=1 | |
| 3627 debugShowQuadLineIntersection wtTs[0]=0.5 {{0,0}, {1,1}, {0,2}} {{0.5,1}} wnTs[0
]=0.5 {{0,1}, {1,1}} | |
| 3628 debugShowLineIntersection wtTs[0]=0.5 {{0,1}, {1,1}} {{0,1}} wnTs[0]=0 {{0,2}, {
0,0}} | |
| 3629 debugShowQuadLineIntersection wtTs[0]=0 {{0,0}, {1,1}, {0,2}} {{0,0}} wnTs[0]=1
{{1,1}, {0,0}} | |
| 3630 debugShowLineIntersection wtTs[0]=1 {{1,1}, {0,0}} {{0,0}} wnTs[0]=1 {{0,2}, {0,
0}} | |
| 3631 debugShowQuadLineIntersection wtTs[0]=0 {{0,0}, {1,1}, {0,2}} {{0,0}} wtTs[1]=1
{{0,2}} wnTs[0]=1 {{0,2}, {0,0}} wnTs[1]=0 | |
| 3632 debugShowTs id=1 [o=3,4 t=0 0,0 w=1 o=0] [o=2 t=1 0,1 w=1 o=0] | |
| 3633 debugShowTs id=5 [o=4 t=0 0,2 w=1 o=0] [o=2 t=0.5 0,1 w=1 o=0] [o=3,4 t=1 0,0 w=
1 o=0] | |
| 3634 addTPair addTPair this=5 0.5 other=1 1 | |
| 3635 debugShowTs id=1 [o=3,4 t=0 0,0 w=1 o=0] [o=2,5 t=1 0,1 w=1 o=0] | |
| 3636 debugShowTs id=5 [o=4 t=0 0,2 w=1 o=0] [o=2,1 t=0.5 0,1 w=1 o=0] [o=3,4 t=1 0,0
w=1 o=0] | |
| 3637 debugShowTs id=1 [o=3,4 t=0 0,0 w=0 o=0] [o=2,5 t=1 0,1 w=1 o=0] done | |
| 3638 debugShowTs id=5 [o=4 t=0 0,2 w=1 o=0] [o=2,1 t=0.5 0,1 w=0 o=0] [o=3,4 t=1 0,0
w=1 o=0] | |
| 3639 debugShowActiveSpans id=2 (0,1 1,1) t=0 (0,1) tEnd=0.5 other=1 otherT=1 otherInd
ex=2 windSum=? windValue=1 oppValue=0 | |
| 3640 debugShowActiveSpans id=2 (0,1 1,1) t=0 (0,1) tEnd=0.5 other=5 otherT=0.5 otherI
ndex=1 windSum=? windValue=1 oppValue=0 | |
| 3641 debugShowActiveSpans id=2 (0,1 1,1) t=0.5 (0.5,1) tEnd=1 other=4 otherT=0.5 othe
rIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3642 debugShowActiveSpans id=3 (1,1 0,0) t=-0 (1,1) tEnd=1 other=2 otherT=1 otherInde
x=3 windSum=? windValue=1 oppValue=0 | |
| 3643 debugShowActiveSpans id=4 (0,0 1,1 0,2) t=0 (0,0) tEnd=0.5 other=1 otherT=0 othe
rIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3644 debugShowActiveSpans id=4 (0,0 1,1 0,2) t=0 (0,0) tEnd=0.5 other=3 otherT=1 othe
rIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3645 debugShowActiveSpans id=4 (0,0 1,1 0,2) t=0 (0,0) tEnd=0.5 other=5 otherT=1 othe
rIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3646 debugShowActiveSpans id=4 (0,0 1,1 0,2) t=0.5 (0.5,1) tEnd=1 other=2 otherT=0.5
otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3647 debugShowActiveSpans id=5 (0,2 0,0) t=0 (0,2) tEnd=0.5 other=4 otherT=1 otherInd
ex=4 windSum=? windValue=1 oppValue=0 | |
| 3648 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3649 debugShowSort [0] {{0,0}, {1,1}, {0,2}} tStart=0 tEnd=0.5 sign=-1 windValue=1 wi
ndSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3650 debugShowSort [1] {{1,1}, {0,0}} tStart=1 tEnd=-0 sign=1 windValue=1 windSum=? 1
->0 (max=1) done=0 tiny=0 opp=0 | |
| 3651 findTop swap=1 serpentine=0 controls_contained_by_ends=0 | |
| 3652 markWinding id=4 (0,0 1,1 0,2) t=0 [0] (0,0) tEnd=0 newWindSum=-1 newOppSum=0 op
pSum=? windSum=? windValue=1 | |
| 3653 markWinding id=4 (0,0 1,1 0,2) t=0 [1] (0,0) tEnd=0 newWindSum=-1 newOppSum=0 op
pSum=? windSum=? windValue=1 | |
| 3654 markWinding id=4 (0,0 1,1 0,2) t=0 [2] (0,0) tEnd=0.5 newWindSum=-1 newOppSum=0
oppSum=? windSum=? windValue=1 | |
| 3655 markWinding id=4 (0,0 1,1 0,2) t=0 [0] (0,0) tEnd=0 newWindSum=-1 newOppSum=0 op
pSum=0 windSum=-1 windValue=1 | |
| 3656 markWinding id=4 (0,0 1,1 0,2) t=0 [1] (0,0) tEnd=0 newWindSum=-1 newOppSum=0 op
pSum=0 windSum=-1 windValue=1 | |
| 3657 markWinding id=4 (0,0 1,1 0,2) t=0 [2] (0,0) tEnd=0.5 newWindSum=-1 newOppSum=0
oppSum=0 windSum=-1 windValue=1 | |
| 3658 findNextWinding debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 3659 debugShowSort [0] {{0,0}, {1,1}, {0,2}} tStart=0.5 tEnd=0 sign=1 windValue=1 win
dSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3660 debugShowSort [1] {{0,1}, {1,1}} tStart=0.5 tEnd=0 sign=1 windValue=1 windSum=?
-1->-2 (max=-2) done=0 tiny=0 opp=0 | |
| 3661 debugShowSort [2] {{0,0}, {1,1}, {0,2}} tStart=0.5 tEnd=1 sign=-1 windValue=1 wi
ndSum=? -2->-1 (max=-2) done=0 tiny=0 opp=0 | |
| 3662 debugShowSort [3] {{0,1}, {1,1}} tStart=0.5 tEnd=1 sign=-1 windValue=1 windSum=?
-1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3663 findNextWinding firstIndex=[0] sign=1 | |
| 3664 markDone id=2 (0,1 1,1) t=0 [0] (0,1) tEnd=0 newWindSum=-2 windSum=? windValue=1 | |
| 3665 markDone id=2 (0,1 1,1) t=0 [1] (0,1) tEnd=0.5 newWindSum=-2 windSum=? windValue
=1 | |
| 3666 findNextWinding chase.append id=2 | |
| 3667 markDone id=4 (0,0 1,1 0,2) t=0.5 [3] (0.5,1) tEnd=1 newWindSum=-2 windSum=? win
dValue=1 | |
| 3668 markDone id=5 (0,2 0,0) t=0 [0] (0,2) tEnd=0.5 newWindSum=-2 windSum=? windValue
=1 | |
| 3669 findNextWinding chase.append id=5 | |
| 3670 markWinding id=2 (0,1 1,1) t=0.5 [2] (0.5,1) tEnd=1 newWindSum=-1 windSum=? wind
Value=1 | |
| 3671 markWinding id=3 (1,1 0,0) t=-0 [0] (1,1) tEnd=1 newWindSum=-1 windSum=? windVal
ue=1 | |
| 3672 findNextWinding chase.append id=3 | |
| 3673 markDoneUnary id=4 (0,0 1,1 0,2) t=0 [0] (0,0) tEnd=0 newWindSum=-1 windSum=-1 w
indValue=1 | |
| 3674 markDoneUnary id=4 (0,0 1,1 0,2) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 w
indValue=1 | |
| 3675 markDoneUnary id=4 (0,0 1,1 0,2) t=0 [2] (0,0) tEnd=0.5 newWindSum=-1 windSum=-1
windValue=1 | |
| 3676 findNextWinding from:[4] to:[2] start=2 end=3 | |
| 3677 bridgeWinding current id=4 from=(0,0) to=(0.5,1) | |
| 3678 path.moveTo(0,0); | |
| 3679 path.quadTo(0.5,0.5, 0.5,1); | |
| 3680 findNextWinding simple | |
| 3681 markDoneUnary id=2 (0,1 1,1) t=0.5 [2] (0.5,1) tEnd=1 newWindSum=-1 windSum=-1 w
indValue=1 | |
| 3682 bridgeWinding current id=2 from=(0.5,1) to=(1,1) | |
| 3683 findNextWinding debugShowSort contourWinding=0 oppContourWinding=? sign=1 | |
| 3684 debugShowSort [1] {{1,1}, {0,0}} tStart=1 tEnd=-0 sign=1 windValue=1 windSum=-1
0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3685 debugShowSort [0] {{0,0}, {1,1}, {0,2}} tStart=0 tEnd=0.5 sign=-1 windValue=1 wi
ndSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 3686 findNextWinding firstIndex=[1] sign=1 | |
| 3687 markDoneUnary id=3 (1,1 0,0) t=-0 [0] (1,1) tEnd=1 newWindSum=-1 windSum=-1 wind
Value=1 | |
| 3688 findNextWinding from:[3] to:[4] start=1 end=3 | |
| 3689 bridgeWinding current id=3 from=(1,1) to=(0,0) | |
| 3690 path.lineTo(1,1); | |
| 3691 path.lineTo(0,0); | |
| 3692 path.close(); | |
| 3693 </div> | |
| 3694 | |
| 3695 <div id="cubicOp67u"> | |
| 3696 RunTestSet [cubicOp67u] | |
| 3697 {{3,5}, {1,6}, {5,0}, {3,1}}, | |
| 3698 {{3,1}, {3,5}}, | |
| 3699 op union | |
| 3700 {{0,5}, {1,3}, {5,3}, {6,1}}, | |
| 3701 {{6,1}, {0,5}}, | |
| 3702 debugShowCubicIntersection no self intersect {{3,5}, {1,6}, {5,0}, {3,1}} | |
| 3703 debugShowCubicLineIntersection wtTs[0]=0 {{3,5}, {1,6}, {5,0}, {3,1}} {{3,5}} wt
Ts[1]=0.5 {{3,3}} wtTs[2]=1 {{3,1}} wnTs[0]=1 {{3,1}, {3,5}} wnTs[1]=0.5 wnTs[2]
=0 | |
| 3704 debugShowCubicIntersection no intersect {{3,5}, {1,6}, {5,0}, {3,1}} {{0,5}, {1,
3}, {5,3}, {6,1}} | |
| 3705 debugShowCubicLineIntersection wtTs[0]=0.5 {{3,5}, {1,6}, {5,0}, {3,1}} {{2.9999
999999999991,3.0000000000000004}} wnTs[0]=0.5 {{6,1}, {0,5}} | |
| 3706 debugShowCubicLineIntersection wtTs[0]=0.5 {{0,5}, {1,3}, {5,3}, {6,1}} {{2.9999
999999999991,2.9999999999999991}} wnTs[0]=0.5 {{3,1}, {3,5}} | |
| 3707 debugShowLineIntersection wtTs[0]=0.5 {{3,1}, {3,5}} {{3,3}} wnTs[0]=0.5 {{6,1},
{0,5}} | |
| 3708 debugShowCubicIntersection no self intersect {{0,5}, {1,3}, {5,3}, {6,1}} | |
| 3709 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {1,3}, {5,3}, {6,1}} {{0,5}} wt
Ts[1]=0.5 {{3,3}} wtTs[2]=1 {{6,1}} wnTs[0]=1 {{6,1}, {0,5}} wnTs[1]=0.5 wnTs[2]
=0 | |
| 3710 SkOpSegment::debugShowActiveSpans id=1 (3,5 1,6 5,0 3,1) t=0 (3,5) tEnd=0.5 othe
r=2 otherT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3711 SkOpSegment::debugShowActiveSpans id=1 (3,5 1,6 5,0 3,1) t=0.5 (3,3) tEnd=1 othe
r=4 otherT=0.5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3712 SkOpSegment::debugShowActiveSpans id=1 (3,5 1,6 5,0 3,1) t=0.5 (3,3) tEnd=1 othe
r=2 otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3713 SkOpSegment::debugShowActiveSpans id=2 (3,1 3,5) t=0 (3,1) tEnd=0.5 other=1 othe
rT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3714 SkOpSegment::debugShowActiveSpans id=2 (3,1 3,5) t=0.5 (3,3) tEnd=1 other=3 othe
rT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3715 SkOpSegment::debugShowActiveSpans id=2 (3,1 3,5) t=0.5 (3,3) tEnd=1 other=1 othe
rT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3716 SkOpSegment::debugShowActiveSpans id=2 (3,1 3,5) t=0.5 (3,3) tEnd=1 other=4 othe
rT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3717 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0 (0,5) tEnd=0.5 othe
r=4 otherT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3718 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0.5 (3,3) tEnd=1 othe
r=2 otherT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3719 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0.5 (3,3) tEnd=1 othe
r=4 otherT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3720 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0 (6,1) tEnd=0.5 other=3 othe
rT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3721 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=2 othe
rT=0.5 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3722 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=3 othe
rT=0.5 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3723 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=1 othe
rT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3724 SkOpSegment::findTop SkOpSegment::debugShowSort contourWinding=0 oppContourWindi
ng=0 sign=1 | |
| 3725 SkOpSegment::debugShowSort [0] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=1 tEnd=0.5 si
gn=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3726 SkOpSegment::debugShowSort [1] {{3,1}, {3,5}} tStart=0 tEnd=0.5 sign=-1 windValu
e=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3727 SkOpSegment::findTop swap=1 serpentine=0 containedByEnds=0 monotonic=0 | |
| 3728 SkOpSegment::markWinding id=1 (3,5 1,6 5,0 3,1) t=0.5 [1] (3,3) tEnd=0.5 newWind
Sum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3729 SkOpSegment::markWinding id=1 (3,5 1,6 5,0 3,1) t=0.5 [2] (3,3) tEnd=1 newWindSu
m=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3730 SkOpSegment::markWinding id=1 (3,5 1,6 5,0 3,1) t=0.5 [1] (3,3) tEnd=0.5 newWind
Sum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3731 SkOpSegment::markWinding id=1 (3,5 1,6 5,0 3,1) t=0.5 [2] (3,3) tEnd=1 newWindSu
m=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3732 SkOpSegment::markWinding id=2 (3,1 3,5) t=0 [0] (3,1) tEnd=0.5 newWindSum=1 newO
ppSum=0 oppSum=? windSum=? windValue=1 | |
| 3733 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3734 SkOpSegment::findNextOp SkOpSegment::debugShowSort contourWinding=0 oppContourWi
nding=0 sign=-1 | |
| 3735 SkOpSegment::debugShowSort [1] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=1 si
gn=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3736 SkOpSegment::debugShowSort [2] {{3,1}, {3,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3737 SkOpSegment::debugShowSort [3] {{6,1}, {0,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3738 SkOpSegment::debugShowSort [4] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=0 si
gn=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3739 SkOpSegment::debugShowSort [5] {{3,1}, {3,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3740 SkOpSegment::debugShowSort [0] {{6,1}, {0,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3741 SkOpSegment::findNextOp firstIndex=[1] sign=-1 | |
| 3742 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3743 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 3744 SkOpSegment::markWinding id=4 (6,1 0,5) t=0.5 [2] (3,3) tEnd=0.5 newWindSum=1 ne
wOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3745 SkOpSegment::markWinding id=4 (6,1 0,5) t=0.5 [1] (3,3) tEnd=0.5 newWindSum=1 ne
wOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3746 SkOpSegment::markWinding id=4 (6,1 0,5) t=0.5 [3] (3,3) tEnd=1 newWindSum=1 newO
ppSum=0 oppSum=? windSum=? windValue=1 | |
| 3747 SkOpSegment::markWinding id=3 (0,5 1,3 5,3 6,1) t=0 [0] (0,5) tEnd=0.5 newWindSu
m=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3748 SkOpSegment::findNextOp chase.append id=3 | |
| 3749 SkOpSegment::activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3750 SkOpSegment::markDoneBinary id=1 (3,5 1,6 5,0 3,1) t=0 [0] (3,5) tEnd=0.5 newWin
dSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3751 SkOpSegment::markDoneBinary id=2 (3,1 3,5) t=0.5 [2] (3,3) tEnd=0.5 newWindSum=-
1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3752 SkOpSegment::markDoneBinary id=2 (3,1 3,5) t=0.5 [1] (3,3) tEnd=0.5 newWindSum=-
1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3753 SkOpSegment::markDoneBinary id=2 (3,1 3,5) t=0.5 [3] (3,3) tEnd=1 newWindSum=-1
newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3754 SkOpSegment::findNextOp chase.append id=2 | |
| 3755 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3756 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3757 SkOpSegment::markWinding id=4 (6,1 0,5) t=0 [0] (6,1) tEnd=0.5 newWindSum=1 newO
ppSum=0 oppSum=? windSum=? windValue=1 | |
| 3758 SkOpSegment::markWinding id=3 (0,5 1,3 5,3 6,1) t=0.5 [1] (3,3) tEnd=0.5 newWind
Sum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3759 SkOpSegment::markWinding id=3 (0,5 1,3 5,3 6,1) t=0.5 [2] (3,3) tEnd=1 newWindSu
m=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3760 SkOpSegment::findNextOp chase.append id=3 | |
| 3761 SkOpSegment::markDoneBinary id=1 (3,5 1,6 5,0 3,1) t=0.5 [1] (3,3) tEnd=0.5 newW
indSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3762 SkOpSegment::markDoneBinary id=1 (3,5 1,6 5,0 3,1) t=0.5 [2] (3,3) tEnd=1 newWin
dSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3763 SkOpSegment::findNextOp from:[1] to:[2] start=2 end=0 | |
| 3764 bridgeOp current id=1 from=(3,1) to=(3,3) | |
| 3765 path.moveTo(3,1); | |
| 3766 path.cubicTo(4,0.5, 3.5,1.75, 3,3); | |
| 3767 SkOpSegment::findNextOp simple | |
| 3768 SkOpSegment::markDoneBinary id=2 (3,1 3,5) t=0 [0] (3,1) tEnd=0.5 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3769 bridgeOp current id=2 from=(3,3) to=(3,1) | |
| 3770 path.lineTo(3,1); | |
| 3771 path.close(); | |
| 3772 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0 (0,5) tEnd=0.5 othe
r=4 otherT=1 otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 3773 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0.5 (3,3) tEnd=1 othe
r=2 otherT=0.5 otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 3774 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0.5 (3,3) tEnd=1 othe
r=4 otherT=0.5 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 3775 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0 (6,1) tEnd=0.5 other=3 othe
rT=1 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3776 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=2 othe
rT=0.5 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3777 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=3 othe
rT=0.5 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 3778 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=1 othe
rT=0.5 otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 3779 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 3780 SkOpSegment::findNextOp simple | |
| 3781 SkOpSegment::markDoneBinary id=3 (0,5 1,3 5,3 6,1) t=0.5 [1] (3,3) tEnd=0.5 newW
indSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3782 SkOpSegment::markDoneBinary id=3 (0,5 1,3 5,3 6,1) t=0.5 [2] (3,3) tEnd=1 newWin
dSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3783 bridgeOp current id=3 from=(3,3) to=(6,1) | |
| 3784 path.moveTo(3,3); | |
| 3785 path.cubicTo(4.25,2.5, 5.5,2, 6,1); | |
| 3786 SkOpSegment::findNextOp SkOpSegment::debugShowSort contourWinding=1 oppContourWi
nding=0 sign=1 | |
| 3787 SkOpSegment::debugShowSort [1] {{6,1}, {0,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3788 SkOpSegment::debugShowSort [2] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=1 si
gn=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3789 SkOpSegment::debugShowSort [3] {{3,1}, {3,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 3790 SkOpSegment::debugShowSort [4] {{0,5}, {1,3}, {5,3}, {6,1}} tStart=0.5 tEnd=0 si
gn=1 windValue=1 windSum=1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3791 SkOpSegment::debugShowSort [5] {{6,1}, {0,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3792 SkOpSegment::debugShowSort [6] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=0 si
gn=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 3793 SkOpSegment::debugShowSort [7] {{3,1}, {3,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3794 SkOpSegment::debugShowSort [0] {{0,5}, {1,3}, {5,3}, {6,1}} tStart=0.5 tEnd=1 si
gn=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 3795 SkOpSegment::findNextOp firstIndex=[1] sign=1 | |
| 3796 SkOpSegment::activeOp op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 3797 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3798 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 3799 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3800 SkOpSegment::activeOp op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 3801 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3802 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 | |
| 3803 SkOpSegment::markDoneBinary id=4 (6,1 0,5) t=0 [0] (6,1) tEnd=0.5 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3804 SkOpSegment::findNextOp from:[4] to:[3] start=2 end=0 | |
| 3805 bridgeOp current id=4 from=(6,1) to=(3,3) | |
| 3806 path.lineTo(3,3); | |
| 3807 path.close(); | |
| 3808 SkOpSegment::debugShowActiveSpans id=3 (0,5 1,3 5,3 6,1) t=0 (0,5) tEnd=0.5 othe
r=4 otherT=1 otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 3809 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=2 othe
rT=0.5 otherIndex=3 windSum=1 windValue=1 oppValue=0 | |
| 3810 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=3 othe
rT=0.5 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 3811 SkOpSegment::debugShowActiveSpans id=4 (6,1 0,5) t=0.5 (3,3) tEnd=1 other=1 othe
rT=0.5 otherIndex=1 windSum=1 windValue=1 oppValue=0 | |
| 3812 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3813 SkOpSegment::findNextOp simple | |
| 3814 SkOpSegment::markDoneBinary id=3 (0,5 1,3 5,3 6,1) t=0 [0] (0,5) tEnd=0.5 newWin
dSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3815 bridgeOp current id=3 from=(3,3) to=(0,5) | |
| 3816 path.moveTo(3,3); | |
| 3817 path.cubicTo(1.75,3.5, 0.5,4, 0,5); | |
| 3818 SkOpSegment::findNextOp SkOpSegment::debugShowSort contourWinding=0 oppContourWi
nding=0 sign=-1 | |
| 3819 SkOpSegment::debugShowSort [5] {{6,1}, {0,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3820 SkOpSegment::debugShowSort [6] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=0 si
gn=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 3821 SkOpSegment::debugShowSort [7] {{3,1}, {3,5}} tStart=0.5 tEnd=1 sign=-1 windValu
e=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 3822 SkOpSegment::debugShowSort [0] {{0,5}, {1,3}, {5,3}, {6,1}} tStart=0.5 tEnd=1 si
gn=-1 windValue=1 windSum=1 1->2 (max=2) done=1 tiny=0 opp=0 | |
| 3823 SkOpSegment::debugShowSort [1] {{6,1}, {0,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=1 2->1 (max=2) done=1 tiny=0 opp=0 | |
| 3824 SkOpSegment::debugShowSort [2] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=1 si
gn=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3825 SkOpSegment::debugShowSort [3] {{3,1}, {3,5}} tStart=0.5 tEnd=0 sign=1 windValue
=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 3826 SkOpSegment::debugShowSort [4] {{0,5}, {1,3}, {5,3}, {6,1}} tStart=0.5 tEnd=0 si
gn=1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3827 SkOpSegment::findNextOp firstIndex=[5] sign=-1 | |
| 3828 SkOpSegment::activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3829 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3830 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3831 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3832 SkOpSegment::activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3833 SkOpSegment::activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3834 SkOpSegment::activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3835 SkOpSegment::markDoneBinary id=4 (6,1 0,5) t=0.5 [2] (3,3) tEnd=0.5 newWindSum=1
newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3836 SkOpSegment::markDoneBinary id=4 (6,1 0,5) t=0.5 [1] (3,3) tEnd=0.5 newWindSum=1
newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3837 SkOpSegment::markDoneBinary id=4 (6,1 0,5) t=0.5 [3] (3,3) tEnd=1 newWindSum=1 n
ewOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3838 SkOpSegment::findNextOp from:[4] to:[3] start=2 end=0 | |
| 3839 bridgeOp current id=4 from=(0,5) to=(3,3) | |
| 3840 path.lineTo(3,3); | |
| 3841 path.close(); | |
| 3842 </div> | |
| 3843 | |
| 3844 <div id="cubicOp68u"> | |
| 3845 RunTestSet [cubicOp68u] | |
| 3846 {{0,5}, {4,5}, {4,1}, {5,0}}, | |
| 3847 {{5,0}, {0,5}}, | |
| 3848 op union | |
| 3849 {{1,4}, {0,5}, {5,0}, {5,4}}, | |
| 3850 {{5,4}, {1,4}}, | |
| 3851 debugShowCubicIntersection no self intersect {{0,5}, {4,5}, {4,1}, {5,0}} | |
| 3852 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {4,5}, {4,1}, {5,0}} {{0,5}} wt
Ts[1]=1 {{5,0}} wnTs[0]=1 {{5,0}, {0,5}} wnTs[1]=0 | |
| 3853 debugShowCubicIntersection wtTs[0]=0.565184359 {{0,5}, {4,5}, {4,1}, {5,0}} {{3.
8517056846571536,2.4305708556260548}} wnTs[0]=0.684396 {{1,4}, {0,5}, {5,0}, {5,
4}} | |
| 3854 debugShowCubicLineIntersection wtTs[0]=0.320104156 {{0,5}, {4,5}, {4,1}, {5,0}}
{{2.7756498612431599,4.0000000000000018}} wnTs[0]=0.556088 {{5,4}, {1,4}} | |
| 3855 debugShowCubicLineIntersection wtTs[0]=0 {{1,4}, {0,5}, {5,0}, {5,4}} {{0.999999
99999999978,4}} wnTs[0]=0.8 {{5,0}, {0,5}} | |
| 3856 debugShowLineIntersection no intersect {{5,0}, {0,5}} {{5,4}, {1,4}} | |
| 3857 debugShowCubicIntersection no self intersect {{1,4}, {0,5}, {5,0}, {5,4}} | |
| 3858 debugShowCubicLineIntersection wtTs[0]=0 {{1,4}, {0,5}, {5,0}, {5,4}} {{1,4}} wt
Ts[1]=0.2 {{1.0320000000000003,4.0000000000000009}} wtTs[2]=1 {{5,4}} wnTs[0]=1
{{5,4}, {1,4}} wnTs[1]=0.992 wnTs[2]=0 | |
| 3859 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0 (0,5) tEnd=0.320104156 other=2 o
therT=1 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3860 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0.320104156 (2.77564979,4) tEnd=0.
565184359 other=4 otherT=0.556087535 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 3861 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0.565184359 (3.85170579,2.43057084
) tEnd=1 other=3 otherT=0.684395636 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3862 debugShowActiveSpans id=2 (5,0 0,5) t=0 (5,0) tEnd=0.8 other=1 otherT=1 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 3863 debugShowActiveSpans id=2 (5,0 0,5) t=0.8 (1,4) tEnd=1 other=3 otherT=0 otherInd
ex=0 windSum=? windValue=1 oppValue=0 | |
| 3864 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0 (1,4) tEnd=0.2 other=2 otherT=0.
8 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3865 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0 (1,4) tEnd=0.2 other=4 otherT=1
otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3866 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0.2 (1.03199995,4) tEnd=0.68439563
6 other=4 otherT=0.992 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3867 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0.684395636 (3.85170579,2.43057084
) tEnd=1 other=1 otherT=0.565184359 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 3868 debugShowActiveSpans id=4 (5,4 1,4) t=0 (5,4) tEnd=0.556087535 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3869 debugShowActiveSpans id=4 (5,4 1,4) t=0.556087535 (2.77564979,4) tEnd=0.992 othe
r=1 otherT=0.320104156 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3870 debugShowActiveSpans id=4 (5,4 1,4) t=0.992 (1.03199995,4) tEnd=1 other=3 otherT
=0.2 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3871 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3872 debugShowSort [0] {{5,0}, {0,5}} tStart=0 tEnd=0.8 sign=-1 windValue=1 windSum=?
0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3873 debugShowSort [1] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=1 tEnd=0.565184359 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3874 markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 3875 markWinding id=1 (0,5 4,5 4,1 5,0) t=0.565184359 [2] (3.85170579,2.43057084) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3876 markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSu
m=0 windSum=1 windValue=1 | |
| 3877 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3878 findNextOp simple | |
| 3879 markDoneBinary id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3880 bridgeOp current id=2 from=(1,4) to=(5,0) | |
| 3881 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3882 debugShowSort [1] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.565184359 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3883 debugShowSort [2] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0.684395636 tEnd=0.2 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3884 debugShowSort [3] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.565184359 tEnd=0.3201041
56 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3885 debugShowSort [0] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0.684395636 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 3886 findNextOp firstIndex=[1] sign=-1 | |
| 3887 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 3888 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0.2 [2] (1.03199995,4) tEnd=0.684395636
newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3889 findNextOp chase.append id=3 | |
| 3890 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3891 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0.320104156 [1] (2.77564979,4) tEnd=0.56
5184359 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3892 findNextOp chase.append id=1 | |
| 3893 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3894 markWinding id=3 (1,4 0,5 5,0 5,4) t=0.684395636 [3] (3.85170579,2.43057084) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3895 markWinding id=4 (5,4 1,4) t=0 [0] (5,4) tEnd=0.556087535 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 3896 findNextOp chase.append id=4 | |
| 3897 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0.565184359 [2] (3.85170579,2.43057084)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3898 findNextOp from:[1] to:[3] start=3 end=4 | |
| 3899 bridgeOp current id=1 from=(5,0) to=(3.85170579,2.43057084) | |
| 3900 path.moveTo(1,4); | |
| 3901 path.lineTo(5,0); | |
| 3902 path.cubicTo(4.56518459,0.434815645, 4.31943321,1.43682528, 3.85170579,2.4305708
4); | |
| 3903 findNextOp simple | |
| 3904 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0.684395636 [3] (3.85170579,2.43057084)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3905 bridgeOp current id=3 from=(3.85170579,2.43057084) to=(5,4) | |
| 3906 path.cubicTo(4.50196934,2.37162018, 5,2.73758245, 5,4); | |
| 3907 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 3908 debugShowSort [3] {{5,4}, {1,4}} tStart=0.556087535 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 3909 debugShowSort [0] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.320104156 tEnd=0.5651843
59 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 3910 debugShowSort [1] {{5,4}, {1,4}} tStart=0.556087535 tEnd=0.992 sign=-1 windValue
=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 3911 debugShowSort [2] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.320104156 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 3912 findNextOp firstIndex=[3] sign=1 | |
| 3913 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 3914 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 3915 markDoneBinary id=4 (5,4 1,4) t=0.556087535 [1] (2.77564979,4) tEnd=0.992 newWin
dSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3916 findNextOp chase.append id=4 | |
| 3917 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3918 markWinding id=1 (0,5 4,5 4,1 5,0) t=0 [0] (0,5) tEnd=0.320104156 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3919 markWinding id=2 (5,0 0,5) t=0.8 [1] (1,4) tEnd=1 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 3920 findNextOp chase.append id=2 | |
| 3921 markDoneBinary id=4 (5,4 1,4) t=0 [0] (5,4) tEnd=0.556087535 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 3922 findNextOp from:[4] to:[1] start=1 end=0 | |
| 3923 bridgeOp current id=4 from=(5,4) to=(2.77564979,4) | |
| 3924 findNextOp simple | |
| 3925 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0 [0] (0,5) tEnd=0.320104156 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3926 bridgeOp current id=1 from=(2.77564979,4) to=(0,5) | |
| 3927 path.lineTo(2.77564979,4); | |
| 3928 path.cubicTo(2.15096664,4.59013319, 1.28041661,5, 0,5); | |
| 3929 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3930 debugShowSort [1] {{5,0}, {0,5}} tStart=0.8 tEnd=1 sign=-1 windValue=1 windSum=1
0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3931 debugShowSort [2] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0 tEnd=0.2 sign=-1 windVal
ue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 3932 debugShowSort [0] {{5,0}, {0,5}} tStart=0.8 tEnd=0 sign=1 windValue=1 windSum=1
1->0 (max=1) done=1 tiny=0 opp=0 | |
| 3933 findNextOp firstIndex=[1] sign=-1 | |
| 3934 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 3935 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0 [0] (1,4) tEnd=0 newWindSum=1 newOppSu
m=1 oppSum=? windSum=? windValue=1 | |
| 3936 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0 [1] (1,4) tEnd=0.2 newWindSum=1 newOpp
Sum=1 oppSum=? windSum=? windValue=1 | |
| 3937 findNextOp chase.append id=3 | |
| 3938 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3939 markDoneBinary id=2 (5,0 0,5) t=0.8 [1] (1,4) tEnd=1 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3940 ../../src/pathops/SkPathOpsOp.cpp:183: failed assertion "unsortable" | |
| 3941 </div> | |
| 3942 | |
| 3943 <div id="cubicOp68ua"> | |
| 3944 RunTestSet [cubicOp68u] | |
| 3945 {{0,5}, {4,5}, {4,1}, {5,0}}, | |
| 3946 {{5,0}, {0,5}}, | |
| 3947 op union | |
| 3948 {{1,4}, {0,5}, {5,0}, {5,4}}, | |
| 3949 {{5,4}, {1,4}}, | |
| 3950 debugShowCubicIntersection no self intersect {{0,5}, {4,5}, {4,1}, {5,0}} | |
| 3951 debugShowCubicLineIntersection wtTs[0]=0 {{0,5}, {4,5}, {4,1}, {5,0}} {{0,5}} wt
Ts[1]=1 {{5,0}} wnTs[0]=1 {{5,0}, {0,5}} wnTs[1]=0 | |
| 3952 debugShowCubicIntersection wtTs[0]=0.565184359 {{0,5}, {4,5}, {4,1}, {5,0}} {{3.
851705684657154,2.4305708556260521}} wnTs[0]=0.684396 {{1,4}, {0,5}, {5,0}, {5,4
}} | |
| 3953 debugShowCubicLineIntersection wtTs[0]=0.320104156 {{0,5}, {4,5}, {4,1}, {5,0}}
{{2.7756498612431599,4.0000000000000018}} wnTs[0]=0.556088 {{5,4}, {1,4}} | |
| 3954 debugShowCubicLineIntersection wtTs[0]=0 {{1,4}, {0,5}, {5,0}, {5,4}} {{0.999999
99999999978,4}} wnTs[0]=0.8 {{5,0}, {0,5}} | |
| 3955 debugShowLineIntersection wtTs[0]=0.8 {{5,0}, {0,5}} {{0.99999999999999978,4}} w
nTs[0]=1 {{5,4}, {1,4}} | |
| 3956 debugShowCubicIntersection no self intersect {{1,4}, {0,5}, {5,0}, {5,4}} | |
| 3957 debugShowCubicLineIntersection wtTs[0]=0 {{1,4}, {0,5}, {5,0}, {5,4}} {{1,4}} wt
Ts[1]=0.2 {{1.0320000000000003,4.0000000000000009}} wtTs[2]=1 {{5,4}} wnTs[0]=1
{{5,4}, {1,4}} wnTs[1]=0.992 wnTs[2]=0 | |
| 3958 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0 (0,5) tEnd=0.320104156 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 3959 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0.320104156 (2.77564979,4) tEnd=0.
565184359 other=4 otherT=0.556087535 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 3960 debugShowActiveSpans id=1 (0,5 4,5 4,1 5,0) t=0.565184359 (3.85170579,2.43057084
) tEnd=1 other=3 otherT=0.684395636 otherIndex=3 windSum=? windValue=1 oppValue=
0 | |
| 3961 debugShowActiveSpans id=2 (5,0 0,5) t=0 (5,0) tEnd=0.8 other=1 otherT=1 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 3962 debugShowActiveSpans id=2 (5,0 0,5) t=0.8 (1,4) tEnd=1 other=3 otherT=0 otherInd
ex=0 windSum=? windValue=1 oppValue=0 | |
| 3963 debugShowActiveSpans id=2 (5,0 0,5) t=0.8 (1,4) tEnd=1 other=4 otherT=1 otherInd
ex=3 windSum=? windValue=1 oppValue=0 | |
| 3964 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0 (1,4) tEnd=0.2 other=2 otherT=0.
8 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3965 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0 (1,4) tEnd=0.2 other=4 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3966 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0.2 (1.03199995,4) tEnd=0.68439563
6 other=4 otherT=0.992 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3967 debugShowActiveSpans id=3 (1,4 0,5 5,0 5,4) t=0.684395636 (3.85170579,2.43057084
) tEnd=1 other=1 otherT=0.565184359 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 3968 debugShowActiveSpans id=4 (5,4 1,4) t=0 (5,4) tEnd=0.556087535 other=3 otherT=1
otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 3969 debugShowActiveSpans id=4 (5,4 1,4) t=0.556087535 (2.77564979,4) tEnd=0.992 othe
r=1 otherT=0.320104156 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 3970 debugShowActiveSpans id=4 (5,4 1,4) t=0.992 (1.03199995,4) tEnd=1 other=3 otherT
=0.2 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 3971 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3972 debugShowSort [0] {{5,0}, {0,5}} tStart=0 tEnd=0.8 sign=-1 windValue=1 windSum=?
0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3973 debugShowSort [1] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=1 tEnd=0.565184359 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3974 markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 3975 markWinding id=1 (0,5 4,5 4,1 5,0) t=0.565184359 [2] (3.85170579,2.43057084) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3976 markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSu
m=0 windSum=1 windValue=1 | |
| 3977 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 3978 findNextOp simple | |
| 3979 markDoneBinary id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 3980 bridgeOp current id=2 from=(1,4) to=(5,0) | |
| 3981 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 3982 debugShowSort [1] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.565184359 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 3983 debugShowSort [2] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0.684395636 tEnd=0.2 sign=
1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 3984 debugShowSort [3] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.565184359 tEnd=0.3201041
56 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 3985 debugShowSort [0] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0.684395636 tEnd=1 sign=-1
windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 3986 findNextOp firstIndex=[1] sign=-1 | |
| 3987 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 3988 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0.2 [2] (1.03199995,4) tEnd=0.684395636
newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 3989 findNextOp chase.append id=3 | |
| 3990 activeOp op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 3991 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0.320104156 [1] (2.77564979,4) tEnd=0.56
5184359 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 3992 findNextOp chase.append id=1 | |
| 3993 activeOp op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 | |
| 3994 markWinding id=3 (1,4 0,5 5,0 5,4) t=0.684395636 [3] (3.85170579,2.43057084) tEn
d=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 3995 markWinding id=4 (5,4 1,4) t=0 [0] (5,4) tEnd=0.556087535 newWindSum=-1 newOppSu
m=0 oppSum=? windSum=? windValue=1 | |
| 3996 findNextOp chase.append id=4 | |
| 3997 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0.565184359 [2] (3.85170579,2.43057084)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 3998 findNextOp from:[1] to:[3] start=3 end=4 | |
| 3999 bridgeOp current id=1 from=(5,0) to=(3.85170579,2.43057084) | |
| 4000 path.moveTo(1,4); | |
| 4001 path.lineTo(5,0); | |
| 4002 path.cubicTo(4.56518459,0.434815645, 4.31943321,1.43682528, 3.85170579,2.4305708
4); | |
| 4003 findNextOp simple | |
| 4004 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0.684395636 [3] (3.85170579,2.43057084)
tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 4005 bridgeOp current id=3 from=(3.85170579,2.43057084) to=(5,4) | |
| 4006 path.cubicTo(4.50196934,2.37162018, 5,2.73758245, 5,4); | |
| 4007 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=1 | |
| 4008 debugShowSort [3] {{5,4}, {1,4}} tStart=0.556087535 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4009 debugShowSort [0] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.320104156 tEnd=0.5651843
59 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 4010 debugShowSort [1] {{5,4}, {1,4}} tStart=0.556087535 tEnd=0.992 sign=-1 windValue
=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4011 debugShowSort [2] {{0,5}, {4,5}, {4,1}, {5,0}} tStart=0.320104156 tEnd=0 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 4012 findNextOp firstIndex=[3] sign=1 | |
| 4013 activeOp op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 4014 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 4015 markDoneBinary id=4 (5,4 1,4) t=0.556087535 [1] (2.77564979,4) tEnd=0.992 newWin
dSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 4016 findNextOp chase.append id=4 | |
| 4017 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 4018 markWinding id=1 (0,5 4,5 4,1 5,0) t=0 [0] (0,5) tEnd=0.320104156 newWindSum=1 n
ewOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4019 markWinding id=2 (5,0 0,5) t=0.8 [1] (1,4) tEnd=0.8 newWindSum=1 newOppSum=0 opp
Sum=? windSum=? windValue=1 | |
| 4020 markWinding id=2 (5,0 0,5) t=0.8 [2] (1,4) tEnd=1 newWindSum=1 newOppSum=0 oppSu
m=? windSum=? windValue=1 | |
| 4021 findNextOp chase.append id=2 | |
| 4022 markDoneBinary id=4 (5,4 1,4) t=0 [0] (5,4) tEnd=0.556087535 newWindSum=-1 newOp
pSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 4023 findNextOp from:[4] to:[1] start=1 end=0 | |
| 4024 bridgeOp current id=4 from=(5,4) to=(2.77564979,4) | |
| 4025 findNextOp simple | |
| 4026 markDoneBinary id=1 (0,5 4,5 4,1 5,0) t=0 [0] (0,5) tEnd=0.320104156 newWindSum=
1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4027 bridgeOp current id=1 from=(2.77564979,4) to=(0,5) | |
| 4028 path.lineTo(2.77564979,4); | |
| 4029 path.cubicTo(2.15096664,4.59013319, 1.28041661,5, 0,5); | |
| 4030 findNextOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4031 debugShowSort [1] {{5,0}, {0,5}} tStart=0.8 tEnd=1 sign=-1 windValue=1 windSum=1
0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4032 debugShowSort [2] {{1,4}, {0,5}, {5,0}, {5,4}} tStart=0 tEnd=0.2 sign=-1 windVal
ue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 4033 debugShowSort [3] {{5,4}, {1,4}} tStart=1 tEnd=0.992 sign=1 windValue=1 windSum=
? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 4034 debugShowSort [0] {{5,0}, {0,5}} tStart=0.8 tEnd=0 sign=1 windValue=1 windSum=1
1->0 (max=1) done=1 tiny=0 opp=0 | |
| 4035 findNextOp firstIndex=[1] sign=-1 | |
| 4036 activeOp op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 | |
| 4037 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0 [0] (1,4) tEnd=0 newWindSum=1 newOppSu
m=1 oppSum=? windSum=? windValue=1 | |
| 4038 markDoneBinary id=3 (1,4 0,5 5,0 5,4) t=0 [1] (1,4) tEnd=0.2 newWindSum=1 newOpp
Sum=1 oppSum=? windSum=? windValue=1 | |
| 4039 findNextOp chase.append id=3 | |
| 4040 activeOp op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 | |
| 4041 markDoneBinary id=4 (5,4 1,4) t=0.992 [2] (1.03199995,4) tEnd=1 newWindSum=1 new
OppSum=1 oppSum=? windSum=? windValue=1 | |
| 4042 findNextOp chase.append id=4 | |
| 4043 activeOp op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 4044 markDoneBinary id=2 (5,0 0,5) t=0.8 [1] (1,4) tEnd=0.8 newWindSum=1 newOppSum=0
oppSum=0 windSum=1 windValue=1 | |
| 4045 markDoneBinary id=2 (5,0 0,5) t=0.8 [2] (1,4) tEnd=1 newWindSum=1 newOppSum=0 op
pSum=0 windSum=1 windValue=1 | |
| 4046 findNextOp from:[2] to:[2] start=2 end=0 | |
| 4047 bridgeOp current id=2 from=(0,5) to=(1,4) | |
| 4048 path.lineTo(1,4); | |
| 4049 path.close(); | |
| 4050 </div> | |
| 4051 | |
| 4052 <div id="cubicOp69d"> | |
| 4053 RunTestSet [cubicOp69d] | |
| 4054 {{1,3}, {0,1}, {3,1}, {2,0}}, | |
| 4055 {{2,0}, {1,3}}, | |
| 4056 op difference | |
| 4057 {{1,3}, {0,2}, {3,1}, {1,0}}, | |
| 4058 {{1,0}, {1,3}}, | |
| 4059 debugShowCubicIntersection no self intersect {{1,3}, {0,2}, {3,1}, {1,0}} | |
| 4060 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wt
Ts[1]=0.333333333 {{1.0000000000000002,2.0000000000000004}} wtTs[2]=1 {{1,0}} wn
Ts[0]=1 {{1,0}, {1,3}} wnTs[1]=0.666666667 wnTs[2]=0 | |
| 4061 debugShowCubicIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wtTs[1
]=0.195806707 {{0.80509754536484868,2.412579877819526}} wtTs[2]=0.665291365 {{1.
6652800396786596,1.0041259050152926}} wnTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} wnT
s[1]=0.109171117 wnTs[2]=0.555550487 | |
| 4062 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wt
Ts[1]=0.666666667 {{1.6666666666666665,1.0000000000000002}} wnTs[0]=1 {{2,0}, {1
,3}} wnTs[1]=0.333333333 | |
| 4063 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} {{1,3}} wt
Ts[1]=0.316987298 {{1,1.6054083424670758}} wnTs[0]=1 {{1,0}, {1,3}} wnTs[1]=0.53
5136114 | |
| 4064 debugShowLineIntersection wtTs[0]=1 {{1,0}, {1,3}} {{1,3}} wnTs[0]=1 {{2,0}, {1,
3}} | |
| 4065 debugShowCubicIntersection no self intersect {{1,3}, {0,1}, {3,1}, {2,0}} | |
| 4066 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} {{1,3}} wt
Ts[1]=0.555555556 {{1.6652949245541837,1.0041152263374487}} wtTs[2]=1 {{2,0}} wn
Ts[0]=1 {{2,0}, {1,3}} wnTs[1]=0.334705075 wnTs[2]=0 | |
| 4067 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4068 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=1 o
therT=0 otherIndex=0 windSum=? windValue=1 oppValue=0 | |
| 4069 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4070 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.195806707 (0.80509752,2.41257977
) tEnd=0.333333333 other=1 otherT=0.109171117 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4071 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.333333333 (1,2) tEnd=0.665291365
other=4 otherT=0.666666667 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 4072 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.665291365 (1.66527998,1.00412595
) tEnd=0.666666667 other=1 otherT=0.555550487 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 4073 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.666666667 (1.66666663,1) tEnd=1
other=2 otherT=0.333333333 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4074 debugShowActiveSpans id=4 (1,0 1,3) t=0 (1,0) tEnd=0.535136114 other=3 otherT=1
otherIndex=7 windSum=? windValue=1 oppValue=0 | |
| 4075 debugShowActiveSpans id=4 (1,0 1,3) t=0.535136114 (1,1.60540831) tEnd=0.66666666
7 other=1 otherT=0.316987298 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4076 debugShowActiveSpans id=4 (1,0 1,3) t=0.666666667 (1,2) tEnd=1 other=3 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4077 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=3 o
therT=0 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4078 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4079 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 4080 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.109171117 (0.80509752,2.41257977
) tEnd=0.316987298 other=3 otherT=0.195806707 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4081 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.316987298 (1,1.60540831) tEnd=0.
555550487 other=4 otherT=0.535136114 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 4082 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555550487 (1.66527998,1.00412595
) tEnd=0.555555556 other=3 otherT=0.665291365 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 4083 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555555556 (1.66529489,1.00411522
) tEnd=1 other=2 otherT=0.334705075 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 4084 debugShowActiveSpans id=2 (2,0 1,3) t=0 (2,0) tEnd=0.333333333 other=1 otherT=1
otherIndex=7 windSum=? windValue=1 oppValue=0 | |
| 4085 debugShowActiveSpans id=2 (2,0 1,3) t=0.333333333 (1.66666663,1) tEnd=0.33470507
5 other=3 otherT=0.666666667 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4086 debugShowActiveSpans id=2 (2,0 1,3) t=0.334705075 (1.66529489,1.00411522) tEnd=1
other=1 otherT=0.555555556 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4087 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4088 debugShowSort [0] {{1,0}, {1,3}} tStart=0 tEnd=0.535136114 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4089 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=1 tEnd=0.666666667 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4090 markWinding id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 4091 markWinding id=3 (1,3 0,2 3,1 1,0) t=0.666666667 [6] (1.66666663,1) tEnd=1 newWi
ndSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4092 markWinding id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOppSum
=0 oppSum=0 windSum=1 windValue=1 | |
| 4093 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4094 markDoneBinary id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 4095 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0.666666667 [6] (1.66666663,1) tEnd=1 ne
wWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4096 </div> | |
| 4097 | |
| 4098 <div id="cubicOp69da"> | |
| 4099 RunTestSet [cubicOp69da] | |
| 4100 {{1,3}, {0,1}, {3,1}, {2,0}}, | |
| 4101 {{2,0}, {1,3}}, | |
| 4102 op difference | |
| 4103 {{1,3}, {0,2}, {3,1}, {1,0}}, | |
| 4104 {{1,0}, {1,3}}, | |
| 4105 debugShowCubicIntersection no self intersect {{1,3}, {0,2}, {3,1}, {1,0}} | |
| 4106 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wt
Ts[1]=0.333333333 {{1,2.0000000000000004}} wtTs[2]=1 {{1,0}} wnTs[0]=1 {{1,0}, {
1,3}} wnTs[1]=0.666666667 wnTs[2]=0 | |
| 4107 debugShowCubicIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wtTs[1
]=0.195806707 {{0.80509754536484845,2.4125798778195251}} wtTs[2]=0.665291365 {{1
.6652800396786593,1.0041259050152929}} wnTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} wn
Ts[1]=0.109171117 wnTs[2]=0.555550487 | |
| 4108 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wt
Ts[1]=0.666666667 {{1.6666666666666667,1}} wnTs[0]=1 {{2,0}, {1,3}} wnTs[1]=0.33
3333333 | |
| 4109 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} {{1,3}} wt
Ts[1]=0.316987298 {{1,1.6054083424670758}} wnTs[0]=1 {{1,0}, {1,3}} wnTs[1]=0.53
5136114 | |
| 4110 debugShowLineIntersection wtTs[0]=1 {{1,0}, {1,3}} {{1,3}} wnTs[0]=1 {{2,0}, {1,
3}} | |
| 4111 debugShowCubicIntersection no self intersect {{1,3}, {0,1}, {3,1}, {2,0}} | |
| 4112 debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} {{1,3}} wt
Ts[1]=0.555555556 {{1.6652949245541839,1.0041152263374484}} wtTs[2]=1 {{2,0}} wn
Ts[0]=1 {{2,0}, {1,3}} wnTs[1]=0.334705075 wnTs[2]=0 | |
| 4113 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4114 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=1 o
therT=0 otherIndex=0 windSum=? windValue=1 oppValue=0 | |
| 4115 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4116 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.195806707 (0.80509752,2.41257977
) tEnd=0.333333333 other=1 otherT=0.109171117 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4117 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.333333333 (1,2) tEnd=0.665291365
other=4 otherT=0.666666667 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 4118 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.665291365 (1.66527998,1.00412595
) tEnd=0.666666667 other=1 otherT=0.555550487 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 4119 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.666666667 (1.66666663,1) tEnd=1
other=2 otherT=0.333333333 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4120 debugShowActiveSpans id=4 (1,0 1,3) t=0 (1,0) tEnd=0.535136114 other=3 otherT=1
otherIndex=7 windSum=? windValue=1 oppValue=0 | |
| 4121 debugShowActiveSpans id=4 (1,0 1,3) t=0.535136114 (1,1.60540831) tEnd=0.66666666
7 other=1 otherT=0.316987298 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4122 debugShowActiveSpans id=4 (1,0 1,3) t=0.666666667 (1,2) tEnd=1 other=3 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4123 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=3 o
therT=0 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4124 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4125 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 4126 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.109171117 (0.80509752,2.41257977
) tEnd=0.316987298 other=3 otherT=0.195806707 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4127 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.316987298 (1,1.60540831) tEnd=0.
555550487 other=4 otherT=0.535136114 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 4128 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555550487 (1.66527998,1.00412595
) tEnd=0.555555556 other=3 otherT=0.665291365 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 4129 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555555556 (1.66529489,1.00411522
) tEnd=1 other=2 otherT=0.334705075 otherIndex=2 windSum=? windValue=1 oppValue=
0 | |
| 4130 debugShowActiveSpans id=2 (2,0 1,3) t=0 (2,0) tEnd=0.333333333 other=1 otherT=1
otherIndex=7 windSum=? windValue=1 oppValue=0 | |
| 4131 debugShowActiveSpans id=2 (2,0 1,3) t=0.333333333 (1.66666663,1) tEnd=0.33470507
5 other=3 otherT=0.666666667 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4132 debugShowActiveSpans id=2 (2,0 1,3) t=0.334705075 (1.66529489,1.00411522) tEnd=1
other=1 otherT=0.555555556 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4133 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4134 debugShowSort [0] {{1,0}, {1,3}} tStart=0 tEnd=0.535136114 sign=-1 windValue=1 w
indSum=? 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4135 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=1 tEnd=0.666666667 sign=1
windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4136 markWinding id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 4137 markWinding id=3 (1,3 0,2 3,1 1,0) t=0.666666667 [6] (1.66666663,1) tEnd=1 newWi
ndSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4138 markWinding id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOppSum
=0 oppSum=0 windSum=1 windValue=1 | |
| 4139 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4140 markDoneBinary id=4 (1,0 1,3) t=0 [0] (1,0) tEnd=0.535136114 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 4141 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0.666666667 [6] (1.66666663,1) tEnd=1 ne
wWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4142 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=1 | |
| 4143 debugShowSort [0] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 4144 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=1 sign=-1
windValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 4145 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=0.6652913
65 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 4146 debugShowSort [3] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0.334705075 sign=-1 win
dValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 4147 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4148 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 4149 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=0.6652913
65 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4150 debugShowSort [3] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0.334705075 sign=-1 win
dValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 4151 debugShowSort [0] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=? 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 4152 markWinding id=3 (1,3 0,2 3,1 1,0) t=0.665291365 [5] (1.66527998,1.00412595) tEn
d=0.666666667 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4153 markWinding id=2 (2,0 1,3) t=0.333333333 [1] (1.66666663,1) tEnd=0.334705075 new
WindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4154 markWinding id=2 (2,0 1,3) t=0 [0] (2,0) tEnd=0.333333333 newWindSum=1 newOppSum
=0 oppSum=? windSum=? windValue=1 | |
| 4155 markWinding id=1 (1,3 0,1 3,1 2,0) t=0.555555556 [6] (1.66529489,1.00411522) tEn
d=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4156 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4157 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=1 o
therT=0 otherIndex=0 windSum=? windValue=1 oppValue=0 | |
| 4158 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4159 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.195806707 (0.80509752,2.41257977
) tEnd=0.333333333 other=1 otherT=0.109171117 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4160 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.333333333 (1,2) tEnd=0.665291365
other=4 otherT=0.666666667 otherIndex=2 windSum=? windValue=1 oppValue=0 | |
| 4161 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.665291365 (1.66527998,1.00412595
) tEnd=0.666666667 other=1 otherT=0.555550487 otherIndex=5 windSum=1 windValue=1
oppValue=0 | |
| 4162 debugShowActiveSpans id=4 (1,0 1,3) t=0.535136114 (1,1.60540831) tEnd=0.66666666
7 other=1 otherT=0.316987298 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4163 debugShowActiveSpans id=4 (1,0 1,3) t=0.666666667 (1,2) tEnd=1 other=3 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4164 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=3 o
therT=0 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4165 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4166 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 4167 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.109171117 (0.80509752,2.41257977
) tEnd=0.316987298 other=3 otherT=0.195806707 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4168 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.316987298 (1,1.60540831) tEnd=0.
555550487 other=4 otherT=0.535136114 otherIndex=1 windSum=? windValue=1 oppValue
=0 | |
| 4169 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555550487 (1.66527998,1.00412595
) tEnd=0.555555556 other=3 otherT=0.665291365 otherIndex=5 windSum=? windValue=1
oppValue=0 | |
| 4170 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555555556 (1.66529489,1.00411522
) tEnd=1 other=2 otherT=0.334705075 otherIndex=2 windSum=1 windValue=1 oppValue=
0 | |
| 4171 debugShowActiveSpans id=2 (2,0 1,3) t=0 (2,0) tEnd=0.333333333 other=1 otherT=1
otherIndex=7 windSum=1 windValue=1 oppValue=0 | |
| 4172 debugShowActiveSpans id=2 (2,0 1,3) t=0.333333333 (1.66666663,1) tEnd=0.33470507
5 other=3 otherT=0.666666667 otherIndex=6 windSum=1 windValue=1 oppValue=0 | |
| 4173 debugShowActiveSpans id=2 (2,0 1,3) t=0.334705075 (1.66529489,1.00411522) tEnd=1
other=1 otherT=0.555555556 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4174 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4175 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0.665291365 [5] (1.66527998,1.00412595)
tEnd=0.666666667 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4176 findChaseOp debugShowSort contourWinding=? oppContourWinding=? sign=-1 | |
| 4177 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.5555555
56 sign=-1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 4178 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.6666666
67 sign=-1 windValue=1 windSum=1 ?->? (max=?) done=1 tiny=0 opp=1 | |
| 4179 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.3169872
98 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=0 | |
| 4180 debugShowSort [3] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? ?->? (max=?) done=0 tiny=0 opp=1 | |
| 4181 findChaseOp debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4182 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.6666666
67 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 4183 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.3169872
98 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 4184 debugShowSort [3] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.3333333
33 sign=1 windValue=1 windSum=? 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4185 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.5555555
56 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 4186 markWinding id=1 (1,3 0,1 3,1 2,0) t=0.316987298 [4] (1,1.60540831) tEnd=0.55555
0487 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 | |
| 4187 markWinding id=3 (1,3 0,2 3,1 1,0) t=0.333333333 [4] (1,2) tEnd=0.665291365 newW
indSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 4188 markWinding id=1 (1,3 0,1 3,1 2,0) t=0.555550487 [5] (1.66527998,1.00412595) tEn
d=0.555555556 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4189 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4190 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=1 o
therT=0 otherIndex=0 windSum=? windValue=1 oppValue=0 | |
| 4191 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4192 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.195806707 (0.80509752,2.41257977
) tEnd=0.333333333 other=1 otherT=0.109171117 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4193 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.333333333 (1,2) tEnd=0.665291365
other=4 otherT=0.666666667 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 4194 debugShowActiveSpans id=4 (1,0 1,3) t=0.535136114 (1,1.60540831) tEnd=0.66666666
7 other=1 otherT=0.316987298 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4195 debugShowActiveSpans id=4 (1,0 1,3) t=0.666666667 (1,2) tEnd=1 other=3 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4196 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=3 o
therT=0 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4197 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4198 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 4199 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.109171117 (0.80509752,2.41257977
) tEnd=0.316987298 other=3 otherT=0.195806707 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4200 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.316987298 (1,1.60540831) tEnd=0.
555550487 other=4 otherT=0.535136114 otherIndex=1 windSum=-1 windValue=1 oppValu
e=0 | |
| 4201 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555550487 (1.66527998,1.00412595
) tEnd=0.555555556 other=3 otherT=0.665291365 otherIndex=5 windSum=-1 windValue=
1 oppValue=0 | |
| 4202 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555555556 (1.66529489,1.00411522
) tEnd=1 other=2 otherT=0.334705075 otherIndex=2 windSum=1 windValue=1 oppValue=
0 | |
| 4203 debugShowActiveSpans id=2 (2,0 1,3) t=0 (2,0) tEnd=0.333333333 other=1 otherT=1
otherIndex=7 windSum=1 windValue=1 oppValue=0 | |
| 4204 debugShowActiveSpans id=2 (2,0 1,3) t=0.333333333 (1.66666663,1) tEnd=0.33470507
5 other=3 otherT=0.666666667 otherIndex=6 windSum=1 windValue=1 oppValue=0 | |
| 4205 debugShowActiveSpans id=2 (2,0 1,3) t=0.334705075 (1.66529489,1.00411522) tEnd=1
other=1 otherT=0.555555556 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4206 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 4207 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0.316987298 [4] (1,1.60540831) tEnd=0.55
5550487 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 | |
| 4208 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 4209 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.5555504
87 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 4210 debugShowSort [1] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 4211 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.1091711
17 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4212 debugShowSort [3] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0.666666667 sign=-1 win
dValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 4213 findChaseOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1 | |
| 4214 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.5555504
87 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 4215 debugShowSort [1] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 4216 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.1091711
17 sign=1 windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4217 debugShowSort [3] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0.666666667 sign=-1 win
dValue=1 windSum=? 0->1 (max=1) done=0 tiny=0 opp=1 | |
| 4218 markWinding id=1 (1,3 0,1 3,1 2,0) t=0.109171117 [3] (0.80509752,2.41257977) tEn
d=0.316987298 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4219 markWinding id=4 (1,0 1,3) t=0.535136114 [1] (1,1.60540831) tEnd=0.666666667 new
WindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 4220 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=4 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4221 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=1 o
therT=0 otherIndex=0 windSum=? windValue=1 oppValue=0 | |
| 4222 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0 (1,3) tEnd=0.195806707 other=2 o
therT=1 otherIndex=3 windSum=? windValue=1 oppValue=0 | |
| 4223 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.195806707 (0.80509752,2.41257977
) tEnd=0.333333333 other=1 otherT=0.109171117 otherIndex=3 windSum=? windValue=1
oppValue=0 | |
| 4224 debugShowActiveSpans id=3 (1,3 0,2 3,1 1,0) t=0.333333333 (1,2) tEnd=0.665291365
other=4 otherT=0.666666667 otherIndex=2 windSum=1 windValue=1 oppValue=0 | |
| 4225 debugShowActiveSpans id=4 (1,0 1,3) t=0.535136114 (1,1.60540831) tEnd=0.66666666
7 other=1 otherT=0.316987298 otherIndex=4 windSum=1 windValue=1 oppValue=0 | |
| 4226 debugShowActiveSpans id=4 (1,0 1,3) t=0.666666667 (1,2) tEnd=1 other=3 otherT=0.
333333333 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4227 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=3 o
therT=0 otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4228 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=4 o
therT=1 otherIndex=4 windSum=? windValue=1 oppValue=0 | |
| 4229 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0 (1,3) tEnd=0.109171117 other=2 o
therT=1 otherIndex=5 windSum=? windValue=1 oppValue=0 | |
| 4230 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.109171117 (0.80509752,2.41257977
) tEnd=0.316987298 other=3 otherT=0.195806707 otherIndex=3 windSum=-1 windValue=
1 oppValue=0 | |
| 4231 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555550487 (1.66527998,1.00412595
) tEnd=0.555555556 other=3 otherT=0.665291365 otherIndex=5 windSum=-1 windValue=
1 oppValue=0 | |
| 4232 debugShowActiveSpans id=1 (1,3 0,1 3,1 2,0) t=0.555555556 (1.66529489,1.00411522
) tEnd=1 other=2 otherT=0.334705075 otherIndex=2 windSum=1 windValue=1 oppValue=
0 | |
| 4233 debugShowActiveSpans id=2 (2,0 1,3) t=0 (2,0) tEnd=0.333333333 other=1 otherT=1
otherIndex=7 windSum=1 windValue=1 oppValue=0 | |
| 4234 debugShowActiveSpans id=2 (2,0 1,3) t=0.333333333 (1.66666663,1) tEnd=0.33470507
5 other=3 otherT=0.666666667 otherIndex=6 windSum=1 windValue=1 oppValue=0 | |
| 4235 debugShowActiveSpans id=2 (2,0 1,3) t=0.334705075 (1.66529489,1.00411522) tEnd=1
other=1 otherT=0.555555556 otherIndex=6 windSum=? windValue=1 oppValue=0 | |
| 4236 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4237 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 4238 debugShowSort [1] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.109171117 tEnd=0.3169872
98 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4239 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.195806707 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 4240 debugShowSort [3] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.109171117 tEnd=0 sign=1
windValue=1 windSum=? 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4241 debugShowSort [0] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.195806707 tEnd=0.3333333
33 sign=-1 windValue=1 windSum=? -1->0 (max=-1) done=0 tiny=0 opp=1 | |
| 4242 findNextOp firstIndex=[1] sign=-1 | |
| 4243 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 4244 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0 [1] (1,3) tEnd=0 newWindSum=-1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 4245 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0 [0] (1,3) tEnd=0 newWindSum=-1 newOppS
um=0 oppSum=? windSum=? windValue=1 | |
| 4246 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0 [2] (1,3) tEnd=0.195806707 newWindSum=
-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4247 findNextOp chase.append id=3 | |
| 4248 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 4249 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0 [1] (1,3) tEnd=0 newWindSum=-1 newOppS
um=-1 oppSum=? windSum=? windValue=1 | |
| 4250 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0 [0] (1,3) tEnd=0 newWindSum=-1 newOppS
um=-1 oppSum=? windSum=? windValue=1 | |
| 4251 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0 [2] (1,3) tEnd=0.109171117 newWindSum=
-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 4252 findNextOp chase.append id=1 | |
| 4253 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4254 markWinding id=3 (1,3 0,2 3,1 1,0) t=0.195806707 [3] (0.80509752,2.41257977) tEn
d=0.333333333 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 | |
| 4255 findNextOp chase.append id=3 | |
| 4256 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0.109171117 [3] (0.80509752,2.41257977)
tEnd=0.316987298 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 4257 findNextOp from:[1] to:[3] start=3 end=4 | |
| 4258 bridgeOp current id=1 from=(1,1.60540831) to=(0.80509752,2.41257977) | |
| 4259 path.moveTo(1,1.60540831); | |
| 4260 path.cubicTo(0.847867966,1.82018507, 0.758966982,2.08026719, 0.80509752,2.412579
77); | |
| 4261 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=1 | |
| 4262 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.333333333 tEnd=0.1958067
07 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4263 debugShowSort [3] {{1,0}, {1,3}} tStart=0.666666667 tEnd=1 sign=-1 windValue=1 w
indSum=? -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4264 debugShowSort [0] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.333333333 tEnd=0.6652913
65 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4265 debugShowSort [1] {{1,0}, {1,3}} tStart=0.666666667 tEnd=0.535136114 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4266 findNextOp firstIndex=[2] sign=1 | |
| 4267 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4268 markWinding id=4 (1,0 1,3) t=0.666666667 [2] (1,2) tEnd=1 newWindSum=-1 newOppSu
m=-1 oppSum=? windSum=? windValue=1 | |
| 4269 findNextOp chase.append id=4 | |
| 4270 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 4271 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4272 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0.195806707 [3] (0.80509752,2.41257977)
tEnd=0.333333333 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 4273 findNextOp from:[3] to:[4] start=2 end=3 | |
| 4274 bridgeOp current id=3 from=(0.80509752,2.41257977) to=(1,2) | |
| 4275 path.cubicTo(0.835544765,2.27505326, 0.908315599,2.13752651, 1,2); | |
| 4276 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=1 | |
| 4277 debugShowSort [1] {{1,0}, {1,3}} tStart=1 tEnd=0.666666667 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4278 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0 tEnd=0.109171117 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 4279 debugShowSort [3] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0 tEnd=0.195806707 sign=-1
windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 4280 debugShowSort [0] {{2,0}, {1,3}} tStart=1 tEnd=0.334705075 sign=1 windValue=1 wi
ndSum=? 0->-1 (max=-1) done=0 tiny=0 opp=1 | |
| 4281 findNextOp firstIndex=[1] sign=1 | |
| 4282 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 4283 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4284 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4285 markWinding id=2 (2,0 1,3) t=0.334705075 [2] (1.66529489,1.00411522) tEnd=1 newW
indSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 | |
| 4286 findNextOp chase.append id=2 | |
| 4287 markDoneBinary id=4 (1,0 1,3) t=0.666666667 [2] (1,2) tEnd=1 newWindSum=-1 newOp
pSum=-1 oppSum=-1 windSum=-1 windValue=1 | |
| 4288 findNextOp from:[4] to:[2] start=4 end=2 | |
| 4289 bridgeOp current id=4 from=(1,2) to=(1,3) | |
| 4290 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 4291 debugShowSort [3] {{2,0}, {1,3}} tStart=0.334705075 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4292 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555555556 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4293 debugShowSort [1] {{2,0}, {1,3}} tStart=0.334705075 tEnd=0.333333333 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4294 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555555556 tEnd=0.5555504
87 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4295 findNextOp firstIndex=[3] sign=-1 | |
| 4296 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4297 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 4298 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4299 markDoneBinary id=2 (2,0 1,3) t=0.334705075 [2] (1.66529489,1.00411522) tEnd=1 n
ewWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 4300 findNextOp from:[2] to:[1] start=6 end=7 | |
| 4301 bridgeOp current id=2 from=(1,3) to=(1.66529489,1.00411522) | |
| 4302 path.lineTo(1,3); | |
| 4303 findNextOp simple | |
| 4304 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0.555555556 [6] (1.66529489,1.00411522)
tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4305 bridgeOp current id=1 from=(1.66529489,1.00411522) to=(2,0) | |
| 4306 path.lineTo(1.66529489,1.00411522); | |
| 4307 path.cubicTo(2.09876537,0.69135803, 2.44444442,0.444444448, 2,0); | |
| 4308 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 4309 debugShowSort [0] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4310 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 4311 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.666666667 tEnd=0.6652913
65 sign=1 windValue=1 windSum=1 1->0 (max=1) done=1 tiny=0 opp=1 | |
| 4312 debugShowSort [3] {{2,0}, {1,3}} tStart=0.333333333 tEnd=0.334705075 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4313 findNextOp firstIndex=[0] sign=1 | |
| 4314 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 4315 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4316 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4317 markDoneBinary id=2 (2,0 1,3) t=0 [0] (2,0) tEnd=0.333333333 newWindSum=1 newOpp
Sum=0 oppSum=0 windSum=1 windValue=1 | |
| 4318 findNextOp from:[2] to:[2] start=1 end=2 | |
| 4319 bridgeOp current id=2 from=(2,0) to=(1.66666663,1) | |
| 4320 findNextOp debugShowSort contourWinding=1 oppContourWinding=0 sign=1 | |
| 4321 debugShowSort [1] {{2,0}, {1,3}} tStart=0.334705075 tEnd=0.333333333 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4322 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555555556 tEnd=0.5555504
87 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4323 debugShowSort [3] {{2,0}, {1,3}} tStart=0.334705075 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 4324 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555555556 tEnd=1 sign=-1
windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=0 | |
| 4325 findNextOp firstIndex=[1] sign=1 | |
| 4326 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4327 activeOp op=diff miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 | |
| 4328 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4329 markDoneBinary id=2 (2,0 1,3) t=0.333333333 [1] (1.66666663,1) tEnd=0.334705075
newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 | |
| 4330 findNextOp from:[2] to:[1] start=6 end=5 | |
| 4331 bridgeOp current id=2 from=(1.66666663,1) to=(1.66529489,1.00411522) | |
| 4332 path.lineTo(1.66666663,1); | |
| 4333 findNextOp debugShowSort contourWinding=-1 oppContourWinding=0 sign=-1 | |
| 4334 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.5555555
56 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4335 debugShowSort [1] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.6666666
67 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=1 tiny=0 opp=1 | |
| 4336 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.555550487 tEnd=0.3169872
98 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 4337 debugShowSort [3] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.665291365 tEnd=0.3333333
33 sign=1 windValue=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=1 | |
| 4338 findNextOp firstIndex=[0] sign=-1 | |
| 4339 activeOp op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 | |
| 4340 activeOp op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 | |
| 4341 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4342 markDoneBinary id=1 (1,3 0,1 3,1 2,0) t=0.555550487 [5] (1.66527998,1.00412595)
tEnd=0.555555556 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 | |
| 4343 findNextOp from:[1] to:[3] start=5 end=4 | |
| 4344 bridgeOp current id=1 from=(1.66529489,1.00411522) to=(1.66527998,1.00412595) | |
| 4345 path.lineTo(1.66529489,1.00411522); | |
| 4346 path.cubicTo(1.66529,1.0041188, 1.66528511,1.00412238, 1.66527998,1.00412595); | |
| 4347 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=-1 | |
| 4348 debugShowSort [0] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.333333333 tEnd=0.6652913
65 sign=-1 windValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4349 debugShowSort [1] {{1,0}, {1,3}} tStart=0.666666667 tEnd=0.535136114 sign=1 wind
Value=1 windSum=1 1->0 (max=1) done=0 tiny=0 opp=0 | |
| 4350 debugShowSort [2] {{1,3}, {0,2}, {3,1}, {1,0}} tStart=0.333333333 tEnd=0.1958067
07 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=0 | |
| 4351 debugShowSort [3] {{1,0}, {1,3}} tStart=0.666666667 tEnd=1 sign=-1 windValue=1 w
indSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=0 | |
| 4352 findNextOp firstIndex=[0] sign=-1 | |
| 4353 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4354 activeOp op=diff miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 | |
| 4355 activeOp op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1 | |
| 4356 markDoneBinary id=3 (1,3 0,2 3,1 1,0) t=0.333333333 [4] (1,2) tEnd=0.665291365 n
ewWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 4357 findNextOp from:[3] to:[4] start=2 end=1 | |
| 4358 bridgeOp current id=3 from=(1.66527998,1.00412595) to=(1,2) | |
| 4359 path.cubicTo(1.55280685,1.33608389, 1.22130537,1.66804194, 1,2); | |
| 4360 findNextOp debugShowSort contourWinding=0 oppContourWinding=-1 sign=-1 | |
| 4361 debugShowSort [3] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0.666666667 sign=-1 win
dValue=1 windSum=1 0->1 (max=1) done=0 tiny=0 opp=0 | |
| 4362 debugShowSort [0] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.5555504
87 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=1 tiny=0 opp=1 | |
| 4363 debugShowSort [1] {{1,0}, {1,3}} tStart=0.535136114 tEnd=0 sign=1 windValue=1 wi
ndSum=1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 4364 debugShowSort [2] {{1,3}, {0,1}, {3,1}, {2,0}} tStart=0.316987298 tEnd=0.1091711
17 sign=1 windValue=1 windSum=-1 0->-1 (max=-1) done=1 tiny=0 opp=1 | |
| 4365 findNextOp firstIndex=[3] sign=-1 | |
| 4366 activeOp op=diff miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 | |
| 4367 activeOp op=diff miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 | |
| 4368 activeOp op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 | |
| 4369 markDoneBinary id=4 (1,0 1,3) t=0.535136114 [1] (1,1.60540831) tEnd=0.666666667
newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 | |
| 4370 findNextOp from:[4] to:[1] start=4 end=3 | |
| 4371 bridgeOp current id=4 from=(1,2) to=(1,1.60540831) | |
| 4372 path.lineTo(1,1.60540831); | |
| 4373 path.close(); | |
| 4374 </div> | |
| 4375 | |
| 4376 <div id="testTriangles1"> | |
| 4377 RunTestSet [testTriangles1] | |
| 4378 {{0,0}, {1,0}}, | |
| 4379 {{1,0}, {3,3}}, | |
| 4380 {{3,3}, {0,0}}, | |
| 4381 {{0,0}, {1,2}}, | |
| 4382 {{1,2}, {1,1}}, | |
| 4383 {{1,1}, {0,0}}, | |
| 4384 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,0}} {{1,0}} wnTs[0]=1 {{1,0}, {3,
3}} | |
| 4385 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{3,3}, {0,
0}} | |
| 4386 debugShowLineIntersection wtTs[0]=1 {{1,0}, {3,3}} {{3,3}} wnTs[0]=0 {{3,3}, {0,
0}} | |
| 4387 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{0,0}, {1,
2}} | |
| 4388 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{1,1}, {0,
0}} | |
| 4389 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{0,0}, {1,2}} | |
| 4390 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{1,2}, {1,1}} | |
| 4391 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{1,1}, {0,0}} | |
| 4392 debugShowLineIntersection wtTs[0]=1 {{3,3}, {0,0}} {{0,0}} wnTs[0]=-0 {{0,0}, {1
,2}} | |
| 4393 debugShowLineIntersection wtTs[0]=0.666666667 {{3,3}, {0,0}} {{1,1}} wnTs[0]=1 {
{1,2}, {1,1}} | |
| 4394 debugShowLineIntersection wtTs[0]=0.666666667 {{3,3}, {0,0}} {{1,1}} wtTs[1]=1 {
{0,0}} wnTs[0]=0 {{1,1}, {0,0}} wnTs[1]=1 | |
| 4395 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,2}} {{1,2}} wnTs[0]=0 {{1,2}, {1,
1}} | |
| 4396 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,2}} {{0,0}} wnTs[0]=1 {{1,1}, {0,
0}} | |
| 4397 debugShowLineIntersection wtTs[0]=-0 {{1,2}, {1,1}} {{1,1}} wnTs[0]=1 {{1,1}, {0
,0}} | |
| 4398 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5 t=0.667 1,1 w=1 o=0] [o=1,4 t=1 0,0
w=1 o=0] | |
| 4399 debugShowTs id=6 [o=5 t=-0 1,1 w=1 o=0] [o=1,4 t=1 0,0 w=1 o=0] | |
| 4400 addTPair addTPair this=3 0.666666667 other=6 0 | |
| 4401 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5,6 t=0.667 1,1 w=1 o=0] [o=1,4 t=1 0,
0 w=1 o=0] | |
| 4402 debugShowTs id=6 [o=5,3 t=-0 1,1 w=1 o=0] [o=1,4 t=1 0,0 w=1 o=0] | |
| 4403 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5,6 t=0.667 1,1 w=2 o=0] [o=1,4 t=1 0,
0 w=1 o=0] | |
| 4404 debugShowTs id=6 [o=5,3 t=-0 1,1 w=0 o=0] [o=1,4 t=1 0,0 w=1 o=0] done | |
| 4405 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4406 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=4 otherT=0 otherIndex
=0 windSum=? windValue=1 oppValue=0 | |
| 4407 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=6 otherT=1 otherIndex
=2 windSum=? windValue=1 oppValue=0 | |
| 4408 debugShowActiveSpans id=2 (1,0 3,3) t=0 (1,0) tEnd=1 other=1 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4409 debugShowActiveSpans id=3 (3,3 0,0) t=0 (3,3) tEnd=0.666666667 other=2 otherT=1
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4410 debugShowActiveSpans id=3 (3,3 0,0) t=0.666666667 (1,1) tEnd=1 other=5 otherT=1
otherIndex=1 windSum=? windValue=2 oppValue=0 | |
| 4411 debugShowActiveSpans id=3 (3,3 0,0) t=0.666666667 (1,1) tEnd=1 other=6 otherT=0
otherIndex=1 windSum=? windValue=2 oppValue=0 | |
| 4412 debugShowActiveSpans id=4 (0,0 1,2) t=0 (0,0) tEnd=1 other=1 otherT=0 otherIndex
=1 windSum=? windValue=1 oppValue=0 | |
| 4413 debugShowActiveSpans id=4 (0,0 1,2) t=-0 (0,0) tEnd=1 other=3 otherT=1 otherInde
x=4 windSum=? windValue=1 oppValue=0 | |
| 4414 debugShowActiveSpans id=4 (0,0 1,2) t=0 (0,0) tEnd=1 other=6 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4415 debugShowActiveSpans id=5 (1,2 1,1) t=0 (1,2) tEnd=1 other=4 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4416 debugShowActiveSpans id=5 (1,2 1,1) t=1 (1,1) tEnd=1 other=3 otherT=0.666666667
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4417 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4418 debugShowSort [0] {{0,0}, {1,2}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? 0
->1 (max=1) done=0 tiny=0 opp=0 | |
| 4419 debugShowSort [1] {{3,3}, {0,0}} tStart=1 tEnd=0.666666667 sign=1 windValue=2 wi
ndSum=? 1->-1 (max=1) done=0 tiny=0 opp=0 | |
| 4420 debugShowSort [2] {{0,0}, {1,0}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? -
1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4421 markWinding id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 newOppSum=0 oppSum
=? windSum=? windValue=1 | |
| 4422 markWinding id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 newOppSum=0 oppSum
=? windSum=? windValue=1 | |
| 4423 markWinding id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
? windSum=? windValue=1 | |
| 4424 markWinding id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 newOppSum=0 oppSum
=0 windSum=1 windValue=1 | |
| 4425 markWinding id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 newOppSum=0 oppSum
=0 windSum=1 windValue=1 | |
| 4426 markWinding id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
0 windSum=1 windValue=1 | |
| 4427 markWinding id=5 (1,2 1,1) t=0 [0] (1,2) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
? windSum=? windValue=1 | |
| 4428 findNextWinding debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4429 debugShowSort [0] {{0,0}, {1,2}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=1 0
->1 (max=1) done=0 tiny=0 opp=0 | |
| 4430 debugShowSort [1] {{3,3}, {0,0}} tStart=1 tEnd=0.666666667 sign=1 windValue=2 wi
ndSum=? 1->-1 (max=1) done=0 tiny=0 opp=0 | |
| 4431 debugShowSort [2] {{0,0}, {1,0}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum=? -
1->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4432 findNextWinding firstIndex=[0] sign=-1 | |
| 4433 markDone id=3 (3,3 0,0) t=0.666666667 [1] (1,1) tEnd=0.666666667 newWindSum=1 wi
ndSum=? windValue=2 | |
| 4434 markDone id=3 (3,3 0,0) t=0.666666667 [2] (1,1) tEnd=1 newWindSum=1 windSum=? wi
ndValue=2 | |
| 4435 findNextWinding chase.append id=3 | |
| 4436 markWinding id=1 (0,0 1,0) t=0 [0] (0,0) tEnd=0 newWindSum=-1 windSum=? windValu
e=1 | |
| 4437 markWinding id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=? windValu
e=1 | |
| 4438 markWinding id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=? windValu
e=1 | |
| 4439 markWinding id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=? windValu
e=1 | |
| 4440 markWinding id=3 (3,3 0,0) t=0 [0] (3,3) tEnd=0.666666667 newWindSum=-1 windSum=
? windValue=1 | |
| 4441 findNextWinding chase.append id=3 | |
| 4442 markDoneUnary id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 windSum=1 windVa
lue=1 | |
| 4443 markDoneUnary id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 windSum=1 windVa
lue=1 | |
| 4444 markDoneUnary id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 windSum=1 windVal
ue=1 | |
| 4445 findNextWinding from:[4] to:[1] start=1 end=3 | |
| 4446 bridgeWinding current id=4 from=(1,2) to=(0,0) | |
| 4447 findNextWinding simple | |
| 4448 markDoneUnary id=1 (0,0 1,0) t=0 [0] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4449 markDoneUnary id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4450 markDoneUnary id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4451 bridgeWinding current id=1 from=(0,0) to=(1,0) | |
| 4452 path.moveTo(1,2); | |
| 4453 path.lineTo(0,0); | |
| 4454 findNextWinding simple | |
| 4455 markDoneUnary id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4456 bridgeWinding current id=2 from=(1,0) to=(3,3) | |
| 4457 path.lineTo(1,0); | |
| 4458 findNextWinding debugShowSort contourWinding=0 oppContourWinding=? sign=1 | |
| 4459 debugShowSort [2] {{3,3}, {0,0}} tStart=0.666666667 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4460 debugShowSort [0] {{3,3}, {0,0}} tStart=0.666666667 tEnd=1 sign=-1 windValue=2 w
indSum=1 -1->1 (max=1) done=1 tiny=0 opp=0 | |
| 4461 debugShowSort [1] {{1,2}, {1,1}} tStart=1 tEnd=0 sign=1 windValue=1 windSum=1 1-
>0 (max=1) done=0 tiny=0 opp=0 | |
| 4462 findNextWinding firstIndex=[2] sign=1 | |
| 4463 markDoneUnary id=3 (3,3 0,0) t=0 [0] (3,3) tEnd=0.666666667 newWindSum=-1 windSu
m=-1 windValue=1 | |
| 4464 findNextWinding from:[3] to:[5] start=1 end=0 | |
| 4465 bridgeWinding current id=3 from=(3,3) to=(1,1) | |
| 4466 path.lineTo(3,3); | |
| 4467 findNextWinding simple | |
| 4468 markDoneUnary id=5 (1,2 1,1) t=0 [0] (1,2) tEnd=1 newWindSum=1 windSum=1 windVal
ue=1 | |
| 4469 bridgeWinding current id=5 from=(1,1) to=(1,2) | |
| 4470 path.lineTo(1,1); | |
| 4471 path.lineTo(1,2); | |
| 4472 path.close(); | |
| 4473 debugShowActiveSpans id=5 (1,2 1,1) t=1 (1,1) tEnd=1 other=3 otherT=0.666666667
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4474 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-2 | |
| 4475 debugShowSort [0] {{3,3}, {0,0}} tStart=0.666666667 tEnd=1 sign=-1 windValue=2 w
indSum=1 0->2 (max=2) done=1 tiny=0 opp=0 | |
| 4476 debugShowSort [1] {{1,2}, {1,1}} tStart=1 tEnd=0 sign=1 windValue=1 windSum=1 2-
>1 (max=2) done=1 tiny=0 opp=0 | |
| 4477 debugShowSort [2] {{3,3}, {0,0}} tStart=0.666666667 tEnd=0 sign=1 windValue=1 wi
ndSum=-1 1->0 (max=1) done=1 tiny=0 opp=0 | |
| 4478 </div> | |
| 4479 | |
| 4480 <div id="testTriangles1a"> | |
| 4481 RunTestSet [testTriangles1a] | |
| 4482 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,0}} {{1,0}} wnTs[0]=1 {{1,0}, {3,
3}} | |
| 4483 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{3,3}, {0,
0}} | |
| 4484 debugShowLineIntersection wtTs[0]=1 {{1,0}, {3,3}} {{3,3}} wnTs[0]=0 {{3,3}, {0,
0}} | |
| 4485 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{0,0}, {1,
2}} | |
| 4486 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,0}} {{0,0}} wnTs[0]=0 {{1,1}, {0,
0}} | |
| 4487 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{0,0}, {1,2}} | |
| 4488 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{1,2}, {1,1}} | |
| 4489 debugShowLineIntersection no intersect {{1,0}, {3,3}} {{1,1}, {0,0}} | |
| 4490 debugShowLineIntersection wtTs[0]=1 {{3,3}, {0,0}} {{0,0}} wnTs[0]=-0 {{0,0}, {1
,2}} | |
| 4491 debugShowLineIntersection wtTs[0]=0.666666667 {{3,3}, {0,0}} {{1,1}} wnTs[0]=1 {
{1,2}, {1,1}} | |
| 4492 debugShowLineIntersection wtTs[0]=0.666666667 {{3,3}, {0,0}} {{1,1}} wtTs[1]=1 {
{0,0}} wnTs[0]=0 {{1,1}, {0,0}} wnTs[1]=1 | |
| 4493 debugShowLineIntersection wtTs[0]=1 {{0,0}, {1,2}} {{1,2}} wnTs[0]=0 {{1,2}, {1,
1}} | |
| 4494 debugShowLineIntersection wtTs[0]=0 {{0,0}, {1,2}} {{0,0}} wnTs[0]=1 {{1,1}, {0,
0}} | |
| 4495 debugShowLineIntersection wtTs[0]=-0 {{1,2}, {1,1}} {{1,1}} wnTs[0]=1 {{1,1}, {0
,0}} | |
| 4496 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5 t=0.667 1,1 w=1 o=0] [o=1,4 t=1 0,0
w=1 o=0] | |
| 4497 debugShowTs id=6 [o=5 t=-0 1,1 w=1 o=0] [o=1,4 t=1 0,0 w=1 o=0] | |
| 4498 addTPair addTPair this=3 0.666666667 other=6 0 | |
| 4499 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5,6 t=0.667 1,1 w=1 o=0] [o=1,4 t=1 0,
0 w=1 o=0] | |
| 4500 debugShowTs id=6 [o=5,3 t=-0 1,1 w=1 o=0] [o=1,4 t=1 0,0 w=1 o=0] | |
| 4501 debugShowTs id=3 [o=2 t=0 3,3 w=1 o=0] [o=5,6 t=0.667 1,1 w=2 o=0] [o=1,4 t=1 0,
0 w=1 o=0] | |
| 4502 debugShowTs id=6 [o=5,3 t=-0 1,1 w=0 o=0] [o=1,4 t=1 0,0 w=1 o=0] done | |
| 4503 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=3 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4504 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=4 otherT=0 otherIndex
=0 windSum=? windValue=1 oppValue=0 | |
| 4505 debugShowActiveSpans id=1 (0,0 1,0) t=0 (0,0) tEnd=1 other=6 otherT=1 otherIndex
=2 windSum=? windValue=1 oppValue=0 | |
| 4506 debugShowActiveSpans id=2 (1,0 3,3) t=0 (1,0) tEnd=1 other=1 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4507 debugShowActiveSpans id=3 (3,3 0,0) t=0 (3,3) tEnd=0.666666667 other=2 otherT=1
otherIndex=1 windSum=? windValue=1 oppValue=0 | |
| 4508 debugShowActiveSpans id=3 (3,3 0,0) t=0.666666667 (1,1) tEnd=1 other=5 otherT=1
otherIndex=1 windSum=? windValue=2 oppValue=0 | |
| 4509 debugShowActiveSpans id=3 (3,3 0,0) t=0.666666667 (1,1) tEnd=1 other=6 otherT=0
otherIndex=1 windSum=? windValue=2 oppValue=0 | |
| 4510 debugShowActiveSpans id=4 (0,0 1,2) t=0 (0,0) tEnd=1 other=1 otherT=0 otherIndex
=1 windSum=? windValue=1 oppValue=0 | |
| 4511 debugShowActiveSpans id=4 (0,0 1,2) t=-0 (0,0) tEnd=1 other=3 otherT=1 otherInde
x=4 windSum=? windValue=1 oppValue=0 | |
| 4512 debugShowActiveSpans id=4 (0,0 1,2) t=0 (0,0) tEnd=1 other=6 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4513 debugShowActiveSpans id=5 (1,2 1,1) t=0 (1,2) tEnd=1 other=4 otherT=1 otherIndex
=3 windSum=? windValue=1 oppValue=0 | |
| 4514 findTop debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4515 debugShowSort [0] {{0,0}, {1,2}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum= 0-
>1 (max=1) done=0 tiny=0 opp=0 | |
| 4516 debugShowSort [1] {{3,3}, {0,0}} tStart=1 tEnd=0.666666667 sign=1 windValue=2 wi
ndSum= 1->-1 (max=1) done=0 tiny=0 opp=0 | |
| 4517 debugShowSort [2] {{0,0}, {1,0}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum= -1
->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4518 markWinding id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 newOppSum=0 oppSum
=? windSum=? windValue=1 | |
| 4519 markWinding id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 newOppSum=0 oppSum
=? windSum=? windValue=1 | |
| 4520 markWinding id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
? windSum=? windValue=1 | |
| 4521 markWinding id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 newOppSum=0 oppSum
=0 windSum=1 windValue=1 | |
| 4522 markWinding id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 newOppSum=0 oppSum
=0 windSum=1 windValue=1 | |
| 4523 markWinding id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
0 windSum=1 windValue=1 | |
| 4524 markWinding id=5 (1,2 1,1) t=0 [0] (1,2) tEnd=1 newWindSum=1 newOppSum=0 oppSum=
? windSum=? windValue=1 | |
| 4525 findNextWinding debugShowSort contourWinding=0 oppContourWinding=0 sign=-1 | |
| 4526 debugShowSort [0] {{0,0}, {1,2}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum= 0-
>1 (max=1) done=0 tiny=0 opp=0 | |
| 4527 debugShowSort [1] {{3,3}, {0,0}} tStart=1 tEnd=0.666666667 sign=1 windValue=2 wi
ndSum= 1->-1 (max=1) done=0 tiny=0 opp=0 | |
| 4528 debugShowSort [2] {{0,0}, {1,0}} tStart=0 tEnd=1 sign=-1 windValue=1 windSum= -1
->0 (max=-1) done=0 tiny=0 opp=0 | |
| 4529 findNextWinding firstIndex=[0] sign=-1 | |
| 4530 markDone id=3 (3,3 0,0) t=0.666666667 [1] (1,1) tEnd=0.666666667 newWindSum=1 wi
ndSum=? windValue=2 | |
| 4531 markDone id=3 (3,3 0,0) t=0.666666667 [2] (1,1) tEnd=1 newWindSum=1 windSum=? wi
ndValue=2 | |
| 4532 findNextWinding chase.append id=3 | |
| 4533 markWinding id=1 (0,0 1,0) t=0 [0] (0,0) tEnd=0 newWindSum=-1 windSum=? windValu
e=1 | |
| 4534 markWinding id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=? windValu
e=1 | |
| 4535 markWinding id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=? windValu
e=1 | |
| 4536 markWinding id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=? windValu
e=1 | |
| 4537 markWinding id=3 (3,3 0,0) t=0 [0] (3,3) tEnd=0.666666667 newWindSum=-1 windSum=
? windValue=1 | |
| 4538 findNextWinding chase.append id=3 | |
| 4539 markDoneUnary id=4 (0,0 1,2) t=0 [0] (0,0) tEnd=-0 newWindSum=1 windSum=1 windVa
lue=1 | |
| 4540 markDoneUnary id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 windSum=1 windVa
lue=1 | |
| 4541 markDoneUnary id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 windSum=1 windVal
ue=1 | |
| 4542 findNextWinding from:[4] to:[1] start=1 end=3 | |
| 4543 bridgeWinding current id=4 from=(1,2) to=(0,0) | |
| 4544 findNextWinding simple | |
| 4545 markDoneUnary id=1 (0,0 1,0) t=0 [0] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4546 markDoneUnary id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4547 markDoneUnary id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4548 bridgeWinding current id=1 from=(0,0) to=(1,0) | |
| 4549 path.moveTo(1,2); | |
| 4550 path.lineTo(0,0); | |
| 4551 findNextWinding simple | |
| 4552 markDoneUnary id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=-1 windV
alue=1 | |
| 4553 bridgeWinding current id=2 from=(1,0) to=(3,3) | |
| 4554 path.lineTo(1,0); | |
| 4555 findNextWinding debugShowSort contourWinding=0 oppContourWinding=? sign=1 | |
| 4556 debugShowSort [2] {{3,3}, {0,0}} tStart=0.666666667 tEnd=0 sign=1 windValue=1 wi
ndSum= 0->-1 (max=-1) done=0 tiny=0 opp=0 | |
| 4557 debugShowSort [0] {{3,3}, {0,0}} tStart=0.666666667 tEnd=1 sign=-1 windValue=2 w
indSum= -1->1 (max=1) done=1 tiny=0 opp=0 | |
| 4558 debugShowSort [1] {{1,2}, {1,1}} tStart=1 tEnd=0 sign=1 windValue=1 windSum= 1->
0 (max=1) done=0 tiny=0 opp=0 | |
| 4559 findNextWinding firstIndex=[2] sign=1 | |
| 4560 markDoneUnary id=3 (3,3 0,0) t=0 [0] (3,3) tEnd=0.666666667 newWindSum=-1 windSu
m=-1 windValue=1 | |
| 4561 findNextWinding from:[3] to:[5] start=1 end=0 | |
| 4562 bridgeWinding current id=3 from=(3,3) to=(1,1) | |
| 4563 path.lineTo(3,3); | |
| 4564 findNextWinding simple | |
| 4565 markDoneUnary id=5 (1,2 1,1) t=0 [0] (1,2) tEnd=1 newWindSum=1 windSum=1 windVal
ue=1 | |
| 4566 bridgeWinding current id=5 from=(1,1) to=(1,2) | |
| 4567 path.lineTo(1,1); | |
| 4568 path.lineTo(1,2); | |
| 4569 path.close(); | |
| 4570 </div> | |
| 4571 | |
| 4572 </div> | |
| 4573 | |
| 4574 <script type="text/javascript"> | |
| 4575 | |
| 4576 var testDivs = [ | |
| 4577 testTriangles1a, | |
| 4578 testTriangles1, | |
| 4579 cubicOp69da, | |
| 4580 cubicOp69d, | |
| 4581 cubicOp68ua, | |
| 4582 cubicOp68u, | |
| 4583 cubicOp67u, | |
| 4584 testQuad1, | |
| 4585 cubicOp62d, | |
| 4586 cubicOp61d, | |
| 4587 cubicOp58da, | |
| 4588 cubicOp58d, | |
| 4589 cubicOp57da, | |
| 4590 cubicOp56da, | |
| 4591 cubicOp55da, | |
| 4592 cubicOp55d, | |
| 4593 cubicOp54dd, | |
| 4594 cubicOp54dc, | |
| 4595 cubicOp54db, | |
| 4596 cubicOp54da, | |
| 4597 cubicOp54d, | |
| 4598 cubicOp53db, | |
| 4599 cubicOp53da, | |
| 4600 cubicOp53d, | |
| 4601 cubicOp52db, | |
| 4602 cubicOp52da, | |
| 4603 cubicOp51da, | |
| 4604 cubicOp51d, | |
| 4605 cubicOp50d, | |
| 4606 cubicOp49d, | |
| 4607 cubicOp48dc, | |
| 4608 cubicOp48db, | |
| 4609 cubicOp48da, | |
| 4610 cubicOp48d, | |
| 4611 cubicOp47db, | |
| 4612 cubicOp47da, | |
| 4613 cubicOp47d, | |
| 4614 cubicOp46db, | |
| 4615 cubicOp46da, | |
| 4616 cubicOp46d, | |
| 4617 cubicOp45d, | |
| 4618 cubicOp44d, | |
| 4619 cubicOp43d, | |
| 4620 cubicOp42d, | |
| 4621 cubicOp42da, | |
| 4622 cubicOp42db, | |
| 4623 cubicOp41i, | |
| 4624 cubicOp40d, | |
| 4625 cubicOp39da, | |
| 4626 cubicOp39d, | |
| 4627 cubicOp38d, | |
| 4628 cubicOp38da, | |
| 4629 cubicOp36u, | |
| 4630 cubicOp35da, | |
| 4631 cubicOp32d, | |
| 4632 ]; | |
| 4633 | |
| 4634 var decimal_places = 3; // make this 3 to show more precision | |
| 4635 | |
| 4636 var tests = []; | |
| 4637 var testLines = []; | |
| 4638 var testTitles = []; | |
| 4639 var testIndex = 0; | |
| 4640 var ctx; | |
| 4641 | |
| 4642 var xmin, xmax; | |
| 4643 var ymin, ymax; | |
| 4644 var scale; | |
| 4645 var mouseX, mouseY; | |
| 4646 var srcLeft, srcTop; | |
| 4647 var screenWidth, screenHeight; | |
| 4648 var drawnPts, drawnLines, drawnQuads, drawnCubics; | |
| 4649 var curveT = 0; | |
| 4650 | |
| 4651 var pt_labels = 2; | |
| 4652 var control_lines = 0; | |
| 4653 var curve_t = false; | |
| 4654 var debug_xy = false; | |
| 4655 var step_limit = 0; | |
| 4656 var draw_active = false; | |
| 4657 var draw_add = false; | |
| 4658 var draw_deriviatives = 0; | |
| 4659 var draw_hints = false; | |
| 4660 var draw_hodo = 0; | |
| 4661 var draw_intersection = 0; | |
| 4662 var draw_intersectT = false; | |
| 4663 var draw_legend = true; | |
| 4664 var draw_log = false; | |
| 4665 var draw_mark = false; | |
| 4666 var draw_midpoint = false; | |
| 4667 var draw_sequence = false; | |
| 4668 var draw_sort = false; | |
| 4669 var draw_path = 3; | |
| 4670 var draw_computed = 0; | |
| 4671 | |
| 4672 var activeCount = 0; | |
| 4673 var addCount = 0; | |
| 4674 var sectCount = 0; | |
| 4675 var sortCount = 0; | |
| 4676 var markCount = 0; | |
| 4677 var activeMax = 0; | |
| 4678 var addMax = 0; | |
| 4679 var sectMax = 0; | |
| 4680 var sectMax2 = 0; | |
| 4681 var sortMax = 0; | |
| 4682 var markMax = 0; | |
| 4683 var stepMax = 0; | |
| 4684 var lastIndex = 0; | |
| 4685 var hasPath = false; | |
| 4686 var hasComputedPath = false; | |
| 4687 | |
| 4688 var SPAN_ID = 0; | |
| 4689 var SPAN_X1 = SPAN_ID + 1; | |
| 4690 var SPAN_Y1 = SPAN_X1 + 1; | |
| 4691 var SPAN_X2 = SPAN_Y1 + 1; | |
| 4692 var SPAN_Y2 = SPAN_X2 + 1; | |
| 4693 var SPAN_L_T = SPAN_Y2 + 1; | |
| 4694 var SPAN_L_TX = SPAN_L_T + 1; | |
| 4695 var SPAN_L_TY = SPAN_L_TX + 1; | |
| 4696 var SPAN_L_TEND = SPAN_L_TY + 1; | |
| 4697 var SPAN_L_OTHER = SPAN_L_TEND + 1; | |
| 4698 var SPAN_L_OTHERT = SPAN_L_OTHER + 1; | |
| 4699 var SPAN_L_OTHERI = SPAN_L_OTHERT + 1; | |
| 4700 var SPAN_L_SUM = SPAN_L_OTHERI + 1; | |
| 4701 var SPAN_L_VAL = SPAN_L_SUM + 1; | |
| 4702 var SPAN_L_OPP = SPAN_L_VAL + 1; | |
| 4703 | |
| 4704 var SPAN_X3 = SPAN_Y2 + 1; | |
| 4705 var SPAN_Y3 = SPAN_X3 + 1; | |
| 4706 var SPAN_Q_T = SPAN_Y3 + 1; | |
| 4707 var SPAN_Q_TX = SPAN_Q_T + 1; | |
| 4708 var SPAN_Q_TY = SPAN_Q_TX + 1; | |
| 4709 var SPAN_Q_TEND = SPAN_Q_TY + 1; | |
| 4710 var SPAN_Q_OTHER = SPAN_Q_TEND + 1; | |
| 4711 var SPAN_Q_OTHERT = SPAN_Q_OTHER + 1; | |
| 4712 var SPAN_Q_OTHERI = SPAN_Q_OTHERT + 1; | |
| 4713 var SPAN_Q_SUM = SPAN_Q_OTHERI + 1; | |
| 4714 var SPAN_Q_VAL = SPAN_Q_SUM + 1; | |
| 4715 var SPAN_Q_OPP = SPAN_Q_VAL + 1; | |
| 4716 | |
| 4717 var SPAN_X4 = SPAN_Y3 + 1; | |
| 4718 var SPAN_Y4 = SPAN_X4 + 1; | |
| 4719 var SPAN_C_T = SPAN_Y4 + 1; | |
| 4720 var SPAN_C_TX = SPAN_C_T + 1; | |
| 4721 var SPAN_C_TY = SPAN_C_TX + 1; | |
| 4722 var SPAN_C_TEND = SPAN_C_TY + 1; | |
| 4723 var SPAN_C_OTHER = SPAN_C_TEND + 1; | |
| 4724 var SPAN_C_OTHERT = SPAN_C_OTHER + 1; | |
| 4725 var SPAN_C_OTHERI = SPAN_C_OTHERT + 1; | |
| 4726 var SPAN_C_SUM = SPAN_C_OTHERI + 1; | |
| 4727 var SPAN_C_VAL = SPAN_C_SUM + 1; | |
| 4728 var SPAN_C_OPP = SPAN_C_VAL + 1; | |
| 4729 | |
| 4730 var ACTIVE_LINE_SPAN = 1; | |
| 4731 var ACTIVE_QUAD_SPAN = ACTIVE_LINE_SPAN + 1; | |
| 4732 var ACTIVE_CUBIC_SPAN = ACTIVE_QUAD_SPAN + 1; | |
| 4733 | |
| 4734 var ADD_MOVETO = ACTIVE_CUBIC_SPAN + 1; | |
| 4735 var ADD_LINETO = ADD_MOVETO + 1; | |
| 4736 var ADD_QUADTO = ADD_LINETO + 1; | |
| 4737 var ADD_CUBICTO = ADD_QUADTO + 1; | |
| 4738 var ADD_CLOSE = ADD_CUBICTO + 1; | |
| 4739 | |
| 4740 var PATH_LINE = ADD_CLOSE + 1; | |
| 4741 var PATH_QUAD = PATH_LINE + 1; | |
| 4742 var PATH_CUBIC = PATH_QUAD + 1; | |
| 4743 | |
| 4744 var INTERSECT_LINE = PATH_CUBIC + 1; | |
| 4745 var INTERSECT_LINE_2 = INTERSECT_LINE + 1; | |
| 4746 var INTERSECT_LINE_NO = INTERSECT_LINE_2 + 1; | |
| 4747 var INTERSECT_QUAD_LINE = INTERSECT_LINE_NO + 1; | |
| 4748 var INTERSECT_QUAD_LINE_2 = INTERSECT_QUAD_LINE + 1; | |
| 4749 var INTERSECT_QUAD_LINE_NO = INTERSECT_QUAD_LINE_2 + 1; | |
| 4750 var INTERSECT_QUAD = INTERSECT_QUAD_LINE_NO + 1; | |
| 4751 var INTERSECT_QUAD_2 = INTERSECT_QUAD + 1; | |
| 4752 var INTERSECT_QUAD_NO = INTERSECT_QUAD_2 + 1; | |
| 4753 var INTERSECT_SELF_CUBIC = INTERSECT_QUAD_NO + 1; | |
| 4754 var INTERSECT_SELF_CUBIC_NO = INTERSECT_SELF_CUBIC + 1; | |
| 4755 var INTERSECT_CUBIC_LINE = INTERSECT_SELF_CUBIC_NO + 1; | |
| 4756 var INTERSECT_CUBIC_LINE_2 = INTERSECT_CUBIC_LINE + 1; | |
| 4757 var INTERSECT_CUBIC_LINE_3 = INTERSECT_CUBIC_LINE_2 + 1; | |
| 4758 var INTERSECT_CUBIC_LINE_NO = INTERSECT_CUBIC_LINE_3 + 1; | |
| 4759 // FIXME: add cubic/quad | |
| 4760 var INTERSECT_CUBIC = INTERSECT_CUBIC_LINE_NO + 1; | |
| 4761 var INTERSECT_CUBIC_2 = INTERSECT_CUBIC + 1; | |
| 4762 var INTERSECT_CUBIC_3 = INTERSECT_CUBIC_2 + 1; | |
| 4763 var INTERSECT_CUBIC_4 = INTERSECT_CUBIC_3 + 1; | |
| 4764 // FIXME: add cubic 5- 9 | |
| 4765 var INTERSECT_CUBIC_NO = INTERSECT_CUBIC_4 + 1; | |
| 4766 | |
| 4767 var SORT_LINE = INTERSECT_CUBIC_NO + 1; | |
| 4768 var SORT_QUAD = SORT_LINE + 1; | |
| 4769 var SORT_CUBIC = SORT_QUAD + 1; | |
| 4770 | |
| 4771 var SORT_LINE_UNSORTABLE = SORT_CUBIC + 1; | |
| 4772 var SORT_QUAD_UNSORTABLE = SORT_LINE_UNSORTABLE + 1; | |
| 4773 var SORT_CUBIC_UNSORTABLE = SORT_QUAD_UNSORTABLE + 1; | |
| 4774 | |
| 4775 var SORT_LINE_COMPACT = SORT_CUBIC_UNSORTABLE + 1; | |
| 4776 var SORT_QUAD_COMPACT = SORT_LINE_COMPACT + 1; | |
| 4777 var SORT_CUBIC_COMPACT = SORT_QUAD_COMPACT + 1; | |
| 4778 | |
| 4779 var OP_DIFFERENCE = SORT_CUBIC_COMPACT + 1; | |
| 4780 var OP_INTERSECT = OP_DIFFERENCE + 1; | |
| 4781 var OP_UNION = OP_INTERSECT + 1; | |
| 4782 var OP_XOR = OP_UNION + 1; | |
| 4783 | |
| 4784 var MARK_LINE = OP_XOR + 1; | |
| 4785 var MARK_QUAD = MARK_LINE + 1; | |
| 4786 var MARK_CUBIC = MARK_QUAD + 1; | |
| 4787 var MARK_DONE_LINE = MARK_CUBIC + 1; | |
| 4788 var MARK_DONE_QUAD = MARK_DONE_LINE + 1; | |
| 4789 var MARK_DONE_CUBIC = MARK_DONE_QUAD + 1; | |
| 4790 var MARK_UNSORTABLE_LINE = MARK_DONE_CUBIC + 1; | |
| 4791 var MARK_UNSORTABLE_QUAD = MARK_UNSORTABLE_LINE + 1; | |
| 4792 var MARK_UNSORTABLE_CUBIC = MARK_UNSORTABLE_QUAD + 1; | |
| 4793 var MARK_SIMPLE_LINE = MARK_UNSORTABLE_CUBIC + 1; | |
| 4794 var MARK_SIMPLE_QUAD = MARK_SIMPLE_LINE + 1; | |
| 4795 var MARK_SIMPLE_CUBIC = MARK_SIMPLE_QUAD + 1; | |
| 4796 var MARK_SIMPLE_DONE_LINE = MARK_SIMPLE_CUBIC + 1; | |
| 4797 var MARK_SIMPLE_DONE_QUAD = MARK_SIMPLE_DONE_LINE + 1; | |
| 4798 var MARK_SIMPLE_DONE_CUBIC = MARK_SIMPLE_DONE_QUAD + 1; | |
| 4799 var MARK_DONE_UNARY_LINE = MARK_SIMPLE_DONE_CUBIC + 1; | |
| 4800 var MARK_DONE_UNARY_QUAD = MARK_DONE_UNARY_LINE + 1; | |
| 4801 var MARK_DONE_UNARY_CUBIC = MARK_DONE_UNARY_QUAD + 1; | |
| 4802 | |
| 4803 var COMPUTED_SET_1 = MARK_DONE_UNARY_CUBIC + 1; | |
| 4804 var COMPUTED_SET_2 = COMPUTED_SET_1 + 1; | |
| 4805 var FRAG_TYPE_LAST = COMPUTED_SET_2; | |
| 4806 | |
| 4807 var REC_TYPE_UNKNOWN = -1; | |
| 4808 var REC_TYPE_PATH = 0; | |
| 4809 var REC_TYPE_SECT = 1; | |
| 4810 var REC_TYPE_ACTIVE = 2; | |
| 4811 var REC_TYPE_ADD = 3; | |
| 4812 var REC_TYPE_SORT = 4; | |
| 4813 var REC_TYPE_OP = 5; | |
| 4814 var REC_TYPE_MARK = 6; | |
| 4815 var REC_TYPE_COMPUTED = 7; | |
| 4816 var REC_TYPE_COIN = 8; | |
| 4817 var REC_TYPE_LAST = REC_TYPE_COIN; | |
| 4818 | |
| 4819 function strs_to_nums(strs) { | |
| 4820 var result = []; | |
| 4821 for (var idx = 1; idx < strs.length; ++idx) { | |
| 4822 var str = strs[idx]; | |
| 4823 var num = parseFloat(str); | |
| 4824 if (isNaN(num)) { | |
| 4825 result.push(str); | |
| 4826 } else { | |
| 4827 result.push(num); | |
| 4828 } | |
| 4829 } | |
| 4830 return result; | |
| 4831 } | |
| 4832 | |
| 4833 function filter_str_by(id, str, regex, array) { | |
| 4834 if (regex.test(str)) { | |
| 4835 var strs = regex.exec(str); | |
| 4836 var result = strs_to_nums(strs); | |
| 4837 array.push(id); | |
| 4838 array.push(result); | |
| 4839 return true; | |
| 4840 } | |
| 4841 return false; | |
| 4842 } | |
| 4843 | |
| 4844 function construct_regexp2(pattern) { | |
| 4845 var escape = pattern.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); | |
| 4846 escape = escape.replace(/UNSORTABLE/g, "\\*\\*\\* UNSORTABLE \\*\\*\\*"); | |
| 4847 escape = escape.replace(/CUBIC_VAL/g, "\\(P_VAL P_VAL P_VAL P_VAL\\)"); | |
| 4848 escape = escape.replace(/QUAD_VAL/g, "\\(P_VAL P_VAL P_VAL\\)"); | |
| 4849 escape = escape.replace(/LINE_VAL/g, "\\(P_VAL P_VAL\\)"); | |
| 4850 escape = escape.replace(/PT_VAL/g, "\\(P_VAL\\)"); | |
| 4851 escape = escape.replace(/P_VAL/g, "(-?\\d+\\.?\\d*(?:e-?\\d+)?),(-?\\d+\\.?\
\d*(?:e-?\\d+)?)"); | |
| 4852 escape = escape.replace(/T_VAL/g, "(-?\\d+\\.?\\d*(?:e-?\\d+)?)"); | |
| 4853 escape = escape.replace(/IDX/g, "(\\d+)"); | |
| 4854 escape = escape.replace(/NUM/g, "(-?\\d+)"); | |
| 4855 escape = escape.replace(/OPT/g, "(\\?|-?\\d+)"); | |
| 4856 return new RegExp(escape, 'i'); | |
| 4857 } | |
| 4858 | |
| 4859 function construct_regexp2c(pattern) { | |
| 4860 var escape = pattern.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); | |
| 4861 escape = escape.replace(/UNSORTABLE/g, "\\*\\*\\* UNSORTABLE \\*\\*\\*"); | |
| 4862 escape = escape.replace(/CUBIC_VAL/g, "(?:\\$\\d = )?\\{\\{P_VAL\\}, \\{P_VA
L\\}, \\{P_VAL\\}, \\{P_VAL\\}\\}"); | |
| 4863 escape = escape.replace(/QUAD_VAL/g, "(?:\\$\\d = )?\\{\\{P_VAL\\}, \\{P_VAL
\\}, \\{P_VAL\\}\\}"); | |
| 4864 escape = escape.replace(/LINE_VAL/g, "(?:\\$\\d = )?\\{\\{P_VAL\\}, \\{P_VAL
\\}\\}"); | |
| 4865 escape = escape.replace(/PT_VAL/g, "\\{\\{P_VAL\\}\\}"); | |
| 4866 escape = escape.replace(/P_VAL/g, "(?:f?[xX] = )?(-?\\d+\\.?\\d*(?:e-?\\d+)?
),(?: f?[yY] = )?(-?\\d+\\.?\\d*(?:e-?\\d+)?)"); | |
| 4867 escape = escape.replace(/T_VAL/g, "(-?\\d+\\.?\\d*(?:e-?\\d+)?)"); | |
| 4868 escape = escape.replace(/IDX/g, "(\\d+)"); | |
| 4869 escape = escape.replace(/NUM/g, "(-?\\d+)"); | |
| 4870 escape = escape.replace(/OPT/g, "(\\?|-?\\d+)"); | |
| 4871 return new RegExp(escape, 'i'); | |
| 4872 } | |
| 4873 | |
| 4874 function match_regexp(str, lineNo, array, id, pattern) { | |
| 4875 var regex = construct_regexp2(pattern); | |
| 4876 if (filter_str_by(id, str, regex, array)) { | |
| 4877 return true; | |
| 4878 } | |
| 4879 regex = construct_regexp2c(pattern); | |
| 4880 return filter_str_by(id, str, regex, array); | |
| 4881 } | |
| 4882 | |
| 4883 function parse_all(test) { | |
| 4884 var lines = test.match(/[^\r\n]+/g); | |
| 4885 var records = []; // a rec can be the original paths, a set of intersections
, a set of active spans, a sort, or a path add | |
| 4886 var record = []; | |
| 4887 var recType = REC_TYPE_UNKNOWN; | |
| 4888 var lastLineNo; | |
| 4889 var moveX, moveY; | |
| 4890 for (var lineNo = 0; lineNo < lines.length; ++lineNo) { | |
| 4891 var line = lines[lineNo]; | |
| 4892 if (line.length == 0) { | |
| 4893 continue; | |
| 4894 } | |
| 4895 var opStart = "SkOpSegment::"; | |
| 4896 if (line.lastIndexOf(opStart, 0) === 0) { | |
| 4897 line = line.substr(opStart.length); | |
| 4898 } | |
| 4899 var type = line.lastIndexOf("debugShowSort", 0) === 0 ? REC_TYPE_SORT | |
| 4900 : line.lastIndexOf("debugShowActiveSpans", 0) === 0 ? REC_TYPE_A
CTIVE | |
| 4901 : line.lastIndexOf("debugShowTs", 0) === 0 ? REC_TYPE_COIN | |
| 4902 : line.lastIndexOf("debugShow", 0) === 0 ? REC_TYPE_SECT | |
| 4903 : line.lastIndexOf("computed", 0) === 0 ? REC_TYPE_COMPUTED | |
| 4904 : line.lastIndexOf("path.", 0) === 0 ? REC_TYPE_ADD | |
| 4905 : line.lastIndexOf("mark", 0) === 0 ? REC_TYPE_MARK | |
| 4906 : line.lastIndexOf(" {{", 0) === 0 ? REC_TYPE_COMPUTED | |
| 4907 : line.lastIndexOf("{{", 0) === 0 ? REC_TYPE_PATH | |
| 4908 : line.lastIndexOf("op", 0) === 0 ? REC_TYPE_OP | |
| 4909 : line.lastIndexOf("$", 0) === 0 ? REC_TYPE_PATH | |
| 4910 : REC_TYPE_UNKNOWN; | |
| 4911 if (recType != type || recType == REC_TYPE_ADD || recType == REC_TYPE_SE
CT) { | |
| 4912 if (recType != REC_TYPE_UNKNOWN) { | |
| 4913 records.push(recType); | |
| 4914 records.push(lastLineNo); | |
| 4915 records.push(record); | |
| 4916 } | |
| 4917 record = []; | |
| 4918 recType = type; | |
| 4919 lastLineNo = lineNo; | |
| 4920 } | |
| 4921 var found = false; | |
| 4922 switch (recType) { | |
| 4923 case REC_TYPE_ACTIVE: | |
| 4924 found = match_regexp(line, lineNo, record, ACTIVE_LINE_SPAN, "de
bugShowActiveSpans" + | |
| 4925 " id=IDX LINE_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=ID
X windSum=OPT windValue=IDX oppValue=IDX" | |
| 4926 ) || match_regexp(line, lineNo, record, ACTIVE_QUAD_SPAN, "debug
ShowActiveSpans" + | |
| 4927 " id=IDX QUAD_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=ID
X windSum=OPT windValue=IDX oppValue=IDX" | |
| 4928 ) || match_regexp(line, lineNo, record, ACTIVE_CUBIC_SPAN, "debu
gShowActiveSpans" + | |
| 4929 " id=IDX CUBIC_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=I
DX windSum=OPT windValue=IDX oppValue=IDX" | |
| 4930 ); | |
| 4931 break; | |
| 4932 case REC_TYPE_ADD: | |
| 4933 if (match_regexp(line, lineNo, record, ADD_MOVETO, "path.moveTo(
P_VAL);")) { | |
| 4934 moveX = record[1][0]; | |
| 4935 moveY = record[1][1]; | |
| 4936 found = true; | |
| 4937 } else if (match_regexp(line, lineNo, record, ADD_LINETO, "path.
lineTo(P_VAL);")) { | |
| 4938 record[1].unshift(moveY); | |
| 4939 record[1].unshift(moveX); | |
| 4940 moveX = record[1][2]; | |
| 4941 moveY = record[1][3]; | |
| 4942 found = true; | |
| 4943 } else if (match_regexp(line, lineNo, record, ADD_QUADTO, "path.
quadTo(P_VAL, P_VAL);")) { | |
| 4944 record[1].unshift(moveY); | |
| 4945 record[1].unshift(moveX); | |
| 4946 moveX = record[1][4]; | |
| 4947 moveY = record[1][5]; | |
| 4948 found = true; | |
| 4949 } else if (match_regexp(line, lineNo, record, ADD_CUBICTO, "path
.cubicTo(P_VAL, P_VAL, P_VAL);")) { | |
| 4950 record[1].unshift(moveY); | |
| 4951 record[1].unshift(moveX); | |
| 4952 moveX = record[1][6]; | |
| 4953 moveY = record[1][7]; | |
| 4954 found = true; | |
| 4955 } else { | |
| 4956 found = match_regexp(line, lineNo, record, ADD_CLOSE, "path.
close();"); | |
| 4957 } | |
| 4958 break; | |
| 4959 case REC_TYPE_COIN: | |
| 4960 found = true; | |
| 4961 break; | |
| 4962 case REC_TYPE_COMPUTED: | |
| 4963 found = line == "computed quadratics given" | |
| 4964 || match_regexp(line, lineNo, record, COMPUTED_SET_1, "compute
d quadratics set 1" | |
| 4965 ) || match_regexp(line, lineNo, record, COMPUTED_SET_2, "compute
d quadratics set 2" | |
| 4966 ) || match_regexp(line, lineNo, record, PATH_QUAD, " QUAD_VAL," | |
| 4967 ) || match_regexp(line, lineNo, record, PATH_CUBIC, " CUBIC_VAL
," | |
| 4968 ); | |
| 4969 break; | |
| 4970 case REC_TYPE_PATH: | |
| 4971 found = match_regexp(line, lineNo, record, PATH_LINE, "LINE_VAL" | |
| 4972 ) || match_regexp(line, lineNo, record, PATH_QUAD, "QUAD_VAL" | |
| 4973 ) || match_regexp(line, lineNo, record, PATH_CUBIC, "CUBIC_VAL" | |
| 4974 ); | |
| 4975 break; | |
| 4976 case REC_TYPE_SECT: | |
| 4977 found = match_regexp(line, lineNo, record, INTERSECT_LINE, "debu
gShowLineIntersection" + | |
| 4978 " wtTs[0]=T_VAL LINE_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL" | |
| 4979 ) || match_regexp(line, lineNo, record, INTERSECT_LINE_2, "debug
ShowLineIntersection" + | |
| 4980 " wtTs[0]=T_VAL LINE_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL wnTs
[1]=T_VAL" | |
| 4981 ) || match_regexp(line, lineNo, record, INTERSECT_LINE_NO, "debu
gShowLineIntersection" + | |
| 4982 " no intersect LINE_VAL LINE_VAL" | |
| 4983 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_LINE, "de
bugShowQuadLineIntersection" + | |
| 4984 " wtTs[0]=T_VAL QUAD_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL" | |
| 4985 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_LINE_2, "
debugShowQuadLineIntersection" + | |
| 4986 " wtTs[0]=T_VAL QUAD_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL wnTs
[1]=T_VAL" | |
| 4987 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_LINE_NO,
"debugShowQuadLineIntersection" + | |
| 4988 " no intersect QUAD_VAL LINE_VAL" | |
| 4989 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD, "debugSh
owQuadIntersection" + | |
| 4990 " wtTs[0]=T_VAL QUAD_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL" | |
| 4991 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_2, "debug
ShowQuadIntersection" + | |
| 4992 " wtTs[0]=T_VAL QUAD_VAL PT_VAL wtTs[1]=T_VAL wnTs[0]=T_VAL QUAD_VAL wnTs[1]=T_V
AL" | |
| 4993 ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_NO, "debu
gShowQuadIntersection" + | |
| 4994 " no intersect QUAD_VAL QUAD_VAL" | |
| 4995 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_LINE, "d
ebugShowCubicLineIntersection" + | |
| 4996 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL" | |
| 4997 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_LINE_2,
"debugShowCubicLineIntersection" + | |
| 4998 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL wnT
s[1]=T_VAL" | |
| 4999 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_LINE_3,
"debugShowCubicLineIntersection" + | |
| 5000 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wtTs[2]=T_VAL PT_VAL wnTs[
0]=T_VAL LINE_VAL wnTs[1]=T_VAL wnTs[2]=T_VAL" | |
| 5001 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_LINE_NO,
"debugShowCubicLineIntersection" + | |
| 5002 " no intersect CUBIC_VAL LINE_VAL" | |
| 5003 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC, "debugS
howCubicIntersection" + | |
| 5004 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wnTs[0]=T_VAL CUBIC_VAL" | |
| 5005 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_2, "debu
gShowCubicIntersection" + | |
| 5006 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL CUBIC_VAL wn
Ts[1]=T_VAL" | |
| 5007 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_3, "debu
gShowCubicIntersection" + | |
| 5008 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wtTs[2]=T_VAL PT_VAL wnTs[
0]=T_VAL CUBIC_VAL wnTs[1]=T_VAL wnTs[2]=T_VAL" | |
| 5009 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_4, "debu
gShowCubicIntersection" + | |
| 5010 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wtTs[2]=T_VAL PT_VAL wtTs[
3]=T_VAL PT_VAL wnTs[0]=T_VAL CUBIC_VAL wnTs[1]=T_VAL wnTs[2]=T_VAL wnTs[3]=T_VA
L" | |
| 5011 ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_NO, "deb
ugShowCubicIntersection" + | |
| 5012 " no intersect CUBIC_VAL CUBIC_VAL" | |
| 5013 ) || match_regexp(line, lineNo, record, INTERSECT_SELF_CUBIC, "d
ebugShowCubicIntersection" + | |
| 5014 " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL" | |
| 5015 ) || match_regexp(line, lineNo, record, INTERSECT_SELF_CUBIC_NO,
"debugShowCubicIntersection" + | |
| 5016 " no self intersect CUBIC_VAL" | |
| 5017 ); | |
| 5018 break; | |
| 5019 case REC_TYPE_SORT: | |
| 5020 found = match_regexp(line, lineNo, record, SORT_LINE, "debugSho
wSort" + | |
| 5021 " [IDX] LINE_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windSum=OPT OPT-
>OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5022 ) || match_regexp(line, lineNo, record, SORT_QUAD, "debugShowSor
t" + | |
| 5023 " [IDX] QUAD_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windSum=OPT OPT-
>OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5024 ) || match_regexp(line, lineNo, record, SORT_CUBIC, "debugShowSo
rt" + | |
| 5025 " [IDX] CUBIC_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windSum=OPT OPT
->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5026 ) || match_regexp(line, lineNo, record, SORT_LINE_UNSORTABLE, "d
ebugShowSort" + | |
| 5027 " [IDX] UNSORTABLE LINE_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windS
um=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5028 ) || match_regexp(line, lineNo, record, SORT_QUAD_UNSORTABLE, "d
ebugShowSort" + | |
| 5029 " [IDX] UNSORTABLE QUAD_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windS
um=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5030 ) || match_regexp(line, lineNo, record, SORT_CUBIC_UNSORTABLE, "
debugShowSort" + | |
| 5031 " [IDX] UNSORTABLE CUBIC_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX wind
Sum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5032 ) || match_regexp(line, lineNo, record, SORT_LINE_COMPACT, "debu
gShowSort" + | |
| 5033 " [IDX] id=IDX line start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX windS
um=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5034 ) || match_regexp(line, lineNo, record, SORT_QUAD_COMPACT, "debu
gShowSort" + | |
| 5035 " [IDX] id=IDX quad start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX windS
um=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5036 ) || match_regexp(line, lineNo, record, SORT_CUBIC_COMPACT, "deb
ugShowSort" + | |
| 5037 " [IDX] id=IDX cubic start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX wind
Sum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX" | |
| 5038 ); | |
| 5039 break; | |
| 5040 case REC_TYPE_MARK: | |
| 5041 found = match_regexp(line, lineNo, record, MARK_LINE, "markWind
ing" + | |
| 5042 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM o
ppSum=OPT windSum=OPT windValue=IDX" | |
| 5043 ) || match_regexp(line, lineNo, record, MARK_QUAD, "markWinding"
+ | |
| 5044 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM o
ppSum=OPT windSum=OPT windValue=IDX" | |
| 5045 ) || match_regexp(line, lineNo, record, MARK_CUBIC, "markWinding
" + | |
| 5046 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM
oppSum=OPT windSum=OPT windValue=IDX" | |
| 5047 ) || match_regexp(line, lineNo, record, MARK_DONE_LINE, "markDon
eBinary" + | |
| 5048 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM o
ppSum=OPT windSum=OPT windValue=IDX" | |
| 5049 ) || match_regexp(line, lineNo, record, MARK_DONE_QUAD, "markDon
eBinary" + | |
| 5050 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM o
ppSum=OPT windSum=OPT windValue=IDX" | |
| 5051 ) || match_regexp(line, lineNo, record, MARK_DONE_CUBIC, "markDo
neBinary" + | |
| 5052 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM
oppSum=OPT windSum=OPT windValue=IDX" | |
| 5053 ) || match_regexp(line, lineNo, record, MARK_UNSORTABLE_LINE, "m
arkUnsortable" + | |
| 5054 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5055 ) || match_regexp(line, lineNo, record, MARK_UNSORTABLE_QUAD, "m
arkUnsortable" + | |
| 5056 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5057 ) || match_regexp(line, lineNo, record, MARK_UNSORTABLE_CUBIC, "
markUnsortable" + | |
| 5058 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT wi
ndValue=IDX" | |
| 5059 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_LINE, "markW
inding" + | |
| 5060 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5061 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_QUAD, "markW
inding" + | |
| 5062 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5063 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_CUBIC, "mark
Winding" + | |
| 5064 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT wi
ndValue=IDX" | |
| 5065 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_DONE_LINE, "
markDone" + | |
| 5066 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5067 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_DONE_QUAD, "
markDone" + | |
| 5068 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5069 ) || match_regexp(line, lineNo, record, MARK_SIMPLE_DONE_CUBIC,
"markDone" + | |
| 5070 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT wi
ndValue=IDX" | |
| 5071 ) || match_regexp(line, lineNo, record, MARK_DONE_UNARY_LINE, "m
arkDoneUnary" + | |
| 5072 " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5073 ) || match_regexp(line, lineNo, record, MARK_DONE_UNARY_QUAD, "m
arkDoneUnary" + | |
| 5074 " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT win
dValue=IDX" | |
| 5075 ) || match_regexp(line, lineNo, record, MARK_DONE_UNARY_CUBIC, "
markDoneUnary" + | |
| 5076 " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT wi
ndValue=IDX" | |
| 5077 ); | |
| 5078 break; | |
| 5079 case REC_TYPE_OP: | |
| 5080 found = match_regexp(line, lineNo, record, OP_DIFFERENCE, "op di
fference" | |
| 5081 ) || match_regexp(line, lineNo, record, OP_INTERSECT, "op inters
ect" | |
| 5082 ) || match_regexp(line, lineNo, record, OP_UNION, "op union" | |
| 5083 ) || match_regexp(line, lineNo, record, OP_XOR, "op xor" | |
| 5084 ); | |
| 5085 break; | |
| 5086 case REC_TYPE_UNKNOWN: | |
| 5087 found = true; | |
| 5088 break; | |
| 5089 } | |
| 5090 if (!found) { | |
| 5091 console.log(line + " [" + lineNo + "] of type " + type + " not found
"); | |
| 5092 } | |
| 5093 } | |
| 5094 if (recType != REC_TYPE_UNKNOWN) { | |
| 5095 records.push(recType); | |
| 5096 records.push(lastLineNo); | |
| 5097 records.push(record); | |
| 5098 } | |
| 5099 if (records.length >= 1) { | |
| 5100 tests[testIndex] = records; | |
| 5101 testLines[testIndex] = lines; | |
| 5102 } | |
| 5103 } | |
| 5104 | |
| 5105 function init(test) { | |
| 5106 var canvas = document.getElementById('canvas'); | |
| 5107 if (!canvas.getContext) return; | |
| 5108 screenWidth = canvas.width = window.innerWidth - 20; | |
| 5109 screenHeight = canvas.height = window.innerHeight - 20; | |
| 5110 ctx = canvas.getContext('2d'); | |
| 5111 xmin = Infinity; | |
| 5112 xmax = -Infinity; | |
| 5113 ymin = Infinity; | |
| 5114 ymax = -Infinity; | |
| 5115 hasPath = hasComputedPath = false; | |
| 5116 for (var testIndex = 0; testIndex < test.length; testIndex += 3) { | |
| 5117 var recType = test[testIndex]; | |
| 5118 if (!typeof recType == 'number' || recType < REC_TYPE_UNKNOWN || recType
> REC_TYPE_LAST) { | |
| 5119 console.log("unknown rec type: " + recType); | |
| 5120 throw "stop execution"; | |
| 5121 } | |
| 5122 var records = test[testIndex + 2]; | |
| 5123 for (var recordIndex = 0; recordIndex < records.length; recordIndex += 2
) { | |
| 5124 var fragType = records[recordIndex]; | |
| 5125 if (!typeof fragType == 'number' || fragType < 1 || fragType > FRAG_
TYPE_LAST) { | |
| 5126 console.log("unknown in range frag type: " + fragType); | |
| 5127 throw "stop execution"; | |
| 5128 } | |
| 5129 var frags = records[recordIndex + 1]; | |
| 5130 var first = 0; | |
| 5131 var last = -1; | |
| 5132 var first2 = 0; | |
| 5133 var last2 = 0; | |
| 5134 switch (recType) { | |
| 5135 case REC_TYPE_COMPUTED: | |
| 5136 if (fragType == COMPUTED_SET_1 || fragType == COMPUTED_SET_2
) { | |
| 5137 break; | |
| 5138 } | |
| 5139 hasComputedPath = true; | |
| 5140 case REC_TYPE_PATH: | |
| 5141 switch (fragType) { | |
| 5142 case PATH_LINE: | |
| 5143 last = 4; | |
| 5144 break; | |
| 5145 case PATH_QUAD: | |
| 5146 last = 6; | |
| 5147 break; | |
| 5148 case PATH_CUBIC: | |
| 5149 last = 8; | |
| 5150 break; | |
| 5151 default: | |
| 5152 console.log("unknown " + (recType == REC_TYPE_PATH ?
"REC_TYPE_PATH" | |
| 5153 : "REC_TYPE_COMPUTED") + " frag type:" + fra
gType); | |
| 5154 throw "stop execution"; | |
| 5155 } | |
| 5156 if (recType == REC_TYPE_PATH) { | |
| 5157 hasPath = true; | |
| 5158 } | |
| 5159 break; | |
| 5160 case REC_TYPE_ACTIVE: | |
| 5161 first = 1; | |
| 5162 switch (fragType) { | |
| 5163 case ACTIVE_LINE_SPAN: | |
| 5164 last = 5; | |
| 5165 break; | |
| 5166 case ACTIVE_QUAD_SPAN: | |
| 5167 last = 7; | |
| 5168 break; | |
| 5169 case ACTIVE_CUBIC_SPAN: | |
| 5170 last = 9; | |
| 5171 break; | |
| 5172 default: | |
| 5173 console.log("unknown REC_TYPE_ACTIVE frag type: " +
fragType); | |
| 5174 throw "stop execution"; | |
| 5175 } | |
| 5176 break; | |
| 5177 case REC_TYPE_ADD: | |
| 5178 switch (fragType) { | |
| 5179 case ADD_MOVETO: | |
| 5180 break; | |
| 5181 case ADD_LINETO: | |
| 5182 last = 4; | |
| 5183 break; | |
| 5184 case ADD_QUADTO: | |
| 5185 last = 6; | |
| 5186 break; | |
| 5187 case ADD_CUBICTO: | |
| 5188 last = 8; | |
| 5189 break; | |
| 5190 case ADD_CLOSE: | |
| 5191 break; | |
| 5192 default: | |
| 5193 console.log("unknown REC_TYPE_ADD frag type: " + fra
gType); | |
| 5194 throw "stop execution"; | |
| 5195 } | |
| 5196 break; | |
| 5197 case REC_TYPE_SECT: | |
| 5198 switch (fragType) { | |
| 5199 case INTERSECT_LINE: | |
| 5200 first = 1; last = 5; first2 = 8; last2 = 12; | |
| 5201 break; | |
| 5202 case INTERSECT_LINE_2: | |
| 5203 first = 1; last = 5; first2 = 11; last2 = 15; | |
| 5204 break; | |
| 5205 case INTERSECT_LINE_NO: | |
| 5206 first = 0; last = 4; first2 = 4; last2 = 8; | |
| 5207 break; | |
| 5208 case INTERSECT_QUAD_LINE: | |
| 5209 first = 1; last = 7; first2 = 10; last2 = 14; | |
| 5210 break; | |
| 5211 case INTERSECT_QUAD_LINE_2: | |
| 5212 first = 1; last = 7; first2 = 13; last2 = 17; | |
| 5213 break; | |
| 5214 case INTERSECT_QUAD_LINE_NO: | |
| 5215 first = 0; last = 6; first2 = 6; last2 = 10; | |
| 5216 break; | |
| 5217 case INTERSECT_QUAD: | |
| 5218 first = 1; last = 7; first2 = 10; last2 = 16; | |
| 5219 break; | |
| 5220 case INTERSECT_QUAD_2: | |
| 5221 first = 1; last = 7; first2 = 13; last2 = 19; | |
| 5222 break; | |
| 5223 case INTERSECT_QUAD_NO: | |
| 5224 first = 0; last = 6; first2 = 6; last2 = 12; | |
| 5225 break; | |
| 5226 case INTERSECT_SELF_CUBIC: | |
| 5227 first = 1; last = 9; | |
| 5228 break; | |
| 5229 case INTERSECT_SELF_CUBIC_NO: | |
| 5230 first = 0; last = 8; | |
| 5231 break; | |
| 5232 case INTERSECT_CUBIC_LINE: | |
| 5233 first = 1; last = 9; first2 = 12; last2 = 16; | |
| 5234 break; | |
| 5235 case INTERSECT_CUBIC_LINE_2: | |
| 5236 first = 1; last = 9; first2 = 15; last2 = 19; | |
| 5237 break; | |
| 5238 case INTERSECT_CUBIC_LINE_3: | |
| 5239 first = 1; last = 9; first2 = 18; last2 = 22; | |
| 5240 break; | |
| 5241 case INTERSECT_CUBIC_LINE_NO: | |
| 5242 first = 0; last = 8; first2 = 8; last2 = 12; | |
| 5243 break; | |
| 5244 case INTERSECT_CUBIC: | |
| 5245 first = 1; last = 9; first2 = 12; last2 = 20; | |
| 5246 break; | |
| 5247 case INTERSECT_CUBIC_2: | |
| 5248 first = 1; last = 9; first2 = 15; last2 = 23; | |
| 5249 break; | |
| 5250 case INTERSECT_CUBIC_3: | |
| 5251 first = 1; last = 9; first2 = 18; last2 = 26; | |
| 5252 break; | |
| 5253 case INTERSECT_CUBIC_4: | |
| 5254 first = 1; last = 9; first2 = 21; last2 = 29; | |
| 5255 break; | |
| 5256 case INTERSECT_CUBIC_NO: | |
| 5257 first = 0; last = 8; first2 = 8; last2 = 16; | |
| 5258 break; | |
| 5259 default: | |
| 5260 console.log("unknown REC_TYPE_SECT frag type: " + fr
agType); | |
| 5261 throw "stop execution"; | |
| 5262 } | |
| 5263 break; | |
| 5264 default: | |
| 5265 continue; | |
| 5266 } | |
| 5267 for (var idx = first; idx < last; idx += 2) { | |
| 5268 xmin = Math.min(xmin, frags[idx]); | |
| 5269 xmax = Math.max(xmax, frags[idx]); | |
| 5270 ymin = Math.min(ymin, frags[idx + 1]); | |
| 5271 ymax = Math.max(ymax, frags[idx + 1]); | |
| 5272 } | |
| 5273 for (var idx = first2; idx < last2; idx += 2) { | |
| 5274 xmin = Math.min(xmin, frags[idx]); | |
| 5275 xmax = Math.max(xmax, frags[idx]); | |
| 5276 ymin = Math.min(ymin, frags[idx + 1]); | |
| 5277 ymax = Math.max(ymax, frags[idx + 1]); | |
| 5278 } | |
| 5279 } | |
| 5280 } | |
| 5281 setScale(); | |
| 5282 if (hasPath == false && hasComputedPath == true && !draw_computed) { | |
| 5283 draw_computed = 3; // show both quadratics and cubics | |
| 5284 } | |
| 5285 if (hasPath == true && hasComputedPath == false && draw_computed) { | |
| 5286 draw_computed = 0; | |
| 5287 } | |
| 5288 } | |
| 5289 | |
| 5290 function setScale() { | |
| 5291 var srcWidth = xmax - xmin; | |
| 5292 var srcHeight = ymax - ymin; | |
| 5293 var hscale = ctx.canvas.width / srcWidth; | |
| 5294 var vscale = ctx.canvas.height / srcHeight; | |
| 5295 scale = Math.min(hscale, vscale); | |
| 5296 var invScale = 1 / scale; | |
| 5297 var sxmin = xmin - invScale * 5; | |
| 5298 var symin = ymin - invScale * 10; | |
| 5299 var sxmax = xmax + invScale * (6 * decimal_places + 10); | |
| 5300 var symax = ymax + invScale * 10; | |
| 5301 srcWidth = sxmax - sxmin; | |
| 5302 srcHeight = symax - symin; | |
| 5303 hscale = ctx.canvas.width / srcWidth; | |
| 5304 vscale = ctx.canvas.height / srcHeight; | |
| 5305 scale = Math.min(hscale, vscale); | |
| 5306 srcLeft = sxmin; | |
| 5307 srcTop = symin; | |
| 5308 } | |
| 5309 | |
| 5310 function drawPoint(px, py, end) { | |
| 5311 for (var pts = 0; pts < drawnPts.length; pts += 2) { | |
| 5312 var x = drawnPts[pts]; | |
| 5313 var y = drawnPts[pts + 1]; | |
| 5314 if (px == x && py == y) { | |
| 5315 return; | |
| 5316 } | |
| 5317 } | |
| 5318 drawnPts.push(px); | |
| 5319 drawnPts.push(py); | |
| 5320 var label = px.toFixed(decimal_places) + ", " + py.toFixed(decimal_places); | |
| 5321 var _px = (px - srcLeft) * scale; | |
| 5322 var _py = (py - srcTop) * scale; | |
| 5323 ctx.beginPath(); | |
| 5324 ctx.arc(_px, _py, 3, 0, Math.PI*2, true); | |
| 5325 ctx.closePath(); | |
| 5326 if (end) { | |
| 5327 ctx.fill(); | |
| 5328 } else { | |
| 5329 ctx.stroke(); | |
| 5330 } | |
| 5331 ctx.textAlign = "left"; | |
| 5332 ctx.fillText(label, _px + 5, _py); | |
| 5333 } | |
| 5334 | |
| 5335 function drawPoints(ptArray, curveType, drawControls) { | |
| 5336 var count = (curveType - PATH_LINE + 2) * 2; | |
| 5337 for (var idx = 0; idx < count; idx += 2) { | |
| 5338 if (!drawControls && idx != 0 && idx != count - 2) { | |
| 5339 continue; | |
| 5340 } | |
| 5341 drawPoint(ptArray[idx], ptArray[idx + 1], idx == 0 || idx == count - 2); | |
| 5342 } | |
| 5343 } | |
| 5344 | |
| 5345 function drawControlLines(curve, curveType, drawEnd) { | |
| 5346 if (curveType == PATH_LINE) { | |
| 5347 return; | |
| 5348 } | |
| 5349 ctx.strokeStyle = "rgba(0,0,0, 0.3)"; | |
| 5350 drawLine(curve[0], curve[1], curve[2], curve[3]); | |
| 5351 drawLine(curve[2], curve[3], curve[4], curve[5]); | |
| 5352 if (curveType == PATH_CUBIC) { | |
| 5353 drawLine(curve[4], curve[5], curve[6], curve[7]); | |
| 5354 if (drawEnd > 1) { | |
| 5355 drawLine(curve[6], curve[7], curve[0], curve[1]); | |
| 5356 if (drawEnd > 2) { | |
| 5357 drawLine(curve[0], curve[1], curve[4], curve[5]); | |
| 5358 drawLine(curve[6], curve[7], curve[2], curve[3]); | |
| 5359 } | |
| 5360 } | |
| 5361 } else if (drawEnd > 1) { | |
| 5362 drawLine(curve[4], curve[5], curve[0], curve[1]); | |
| 5363 } | |
| 5364 } | |
| 5365 | |
| 5366 function pointAtT(curve, curveType, t) { | |
| 5367 var xy = {}; | |
| 5368 switch (curveType) { | |
| 5369 case PATH_LINE: | |
| 5370 var a = 1 - t; | |
| 5371 var b = t; | |
| 5372 xy.x = a * curve[0] + b * curve[2]; | |
| 5373 xy.y = a * curve[1] + b * curve[3]; | |
| 5374 break; | |
| 5375 case PATH_QUAD: | |
| 5376 var one_t = 1 - t; | |
| 5377 var a = one_t * one_t; | |
| 5378 var b = 2 * one_t * t; | |
| 5379 var c = t * t; | |
| 5380 xy.x = a * curve[0] + b * curve[2] + c * curve[4]; | |
| 5381 xy.y = a * curve[1] + b * curve[3] + c * curve[5]; | |
| 5382 break; | |
| 5383 case PATH_CUBIC: | |
| 5384 var one_t = 1 - t; | |
| 5385 var one_t2 = one_t * one_t; | |
| 5386 var a = one_t2 * one_t; | |
| 5387 var b = 3 * one_t2 * t; | |
| 5388 var t2 = t * t; | |
| 5389 var c = 3 * one_t * t2; | |
| 5390 var d = t2 * t; | |
| 5391 xy.x = a * curve[0] + b * curve[2] + c * curve[4] + d * curve[6]; | |
| 5392 xy.y = a * curve[1] + b * curve[3] + c * curve[5] + d * curve[7]; | |
| 5393 break; | |
| 5394 } | |
| 5395 return xy; | |
| 5396 } | |
| 5397 | |
| 5398 function drawPointAtT(curve, curveType) { | |
| 5399 var x, y; | |
| 5400 var xy = pointAtT(curve, curveType, curveT); | |
| 5401 drawPoint(xy.x, xy.y, true); | |
| 5402 if (!draw_intersectT) { | |
| 5403 return; | |
| 5404 } | |
| 5405 ctx.fillStyle = "red"; | |
| 5406 drawTAtPointUp(xy.x, xy.y, curveT); | |
| 5407 } | |
| 5408 | |
| 5409 function drawTAtPointUp(px, py, t) { | |
| 5410 var label = t.toFixed(decimal_places); | |
| 5411 var _px = (px - srcLeft)* scale; | |
| 5412 var _py = (py - srcTop) * scale; | |
| 5413 ctx.fillText(label, _px + 5, _py - 10); | |
| 5414 } | |
| 5415 | |
| 5416 function drawTAtPointDown(px, py, t) { | |
| 5417 var label = t.toFixed(decimal_places); | |
| 5418 var _px = (px - srcLeft)* scale; | |
| 5419 var _py = (py - srcTop) * scale; | |
| 5420 ctx.fillText(label, _px + 5, _py + 10); | |
| 5421 } | |
| 5422 | |
| 5423 function alreadyDrawnLine(x1, y1, x2, y2) { | |
| 5424 for (var pts = 0; pts < drawnLines.length; pts += 4) { | |
| 5425 if (x1 == drawnLines[pts] && y1 == drawnLines[pts + 1] | |
| 5426 && x2 == drawnLines[pts + 2] && y2 == drawnLines[pts + 3]) { | |
| 5427 return true; | |
| 5428 } | |
| 5429 } | |
| 5430 drawnLines.push(x1); | |
| 5431 drawnLines.push(y1); | |
| 5432 drawnLines.push(x2); | |
| 5433 drawnLines.push(y2); | |
| 5434 return false; | |
| 5435 } | |
| 5436 | |
| 5437 function drawLine(x1, y1, x2, y2) { | |
| 5438 if (alreadyDrawnLine(x1, y1, x2, y2)) { | |
| 5439 return; | |
| 5440 } | |
| 5441 ctx.beginPath(); | |
| 5442 ctx.moveTo((x1 - srcLeft) * scale, | |
| 5443 (y1 - srcTop) * scale); | |
| 5444 ctx.lineTo((x2 - srcLeft) * scale, | |
| 5445 (y2 - srcTop) * scale); | |
| 5446 ctx.stroke(); | |
| 5447 } | |
| 5448 | |
| 5449 function linePartial(x1, y1, x2, y2, t1, t2) { | |
| 5450 var dx = x1 - x2; | |
| 5451 var dy = y1 - y2; | |
| 5452 var array = [ | |
| 5453 x1 - t1 * dx, | |
| 5454 y1 - t1 * dy, | |
| 5455 x1 - t2 * dx, | |
| 5456 y1 - t2 * dy | |
| 5457 ]; | |
| 5458 return array; | |
| 5459 } | |
| 5460 | |
| 5461 function drawLinePartial(x1, y1, x2, y2, t1, t2) { | |
| 5462 var a = linePartial(x1, y1, x2, y2, t1, t2); | |
| 5463 var ax = a[0]; | |
| 5464 var ay = a[1]; | |
| 5465 var bx = a[2]; | |
| 5466 var by = a[3]; | |
| 5467 if (alreadyDrawnLine(ax, ay, bx, by)) { | |
| 5468 return; | |
| 5469 } | |
| 5470 ctx.beginPath(); | |
| 5471 ctx.moveTo((ax - srcLeft) * scale, | |
| 5472 (ay - srcTop) * scale); | |
| 5473 ctx.lineTo((bx - srcLeft) * scale, | |
| 5474 (by - srcTop) * scale); | |
| 5475 ctx.stroke(); | |
| 5476 } | |
| 5477 | |
| 5478 function alreadyDrawnQuad(x1, y1, x2, y2, x3, y3) { | |
| 5479 for (var pts = 0; pts < drawnQuads.length; pts += 6) { | |
| 5480 if (x1 == drawnQuads[pts] && y1 == drawnQuads[pts + 1] | |
| 5481 && x2 == drawnQuads[pts + 2] && y2 == drawnQuads[pts + 3] | |
| 5482 && x3 == drawnQuads[pts + 4] && x3 == drawnQuads[pts + 5]) { | |
| 5483 return true; | |
| 5484 } | |
| 5485 } | |
| 5486 drawnQuads.push(x1); | |
| 5487 drawnQuads.push(y1); | |
| 5488 drawnQuads.push(x2); | |
| 5489 drawnQuads.push(y2); | |
| 5490 drawnQuads.push(x3); | |
| 5491 drawnQuads.push(y3); | |
| 5492 return false; | |
| 5493 } | |
| 5494 | |
| 5495 function drawQuad(x1, y1, x2, y2, x3, y3) { | |
| 5496 if (alreadyDrawnQuad(x1, y1, x2, y2, x3, y3)) { | |
| 5497 return; | |
| 5498 } | |
| 5499 ctx.beginPath(); | |
| 5500 ctx.moveTo((x1 - srcLeft) * scale, | |
| 5501 (y1 - srcTop) * scale); | |
| 5502 ctx.quadraticCurveTo((x2 - srcLeft) * scale, | |
| 5503 (y2 - srcTop) * scale, | |
| 5504 (x3 - srcLeft) * scale, | |
| 5505 (y3 - srcTop) * scale); | |
| 5506 ctx.stroke(); | |
| 5507 } | |
| 5508 | |
| 5509 function interp(A, B, t) { | |
| 5510 return A + (B - A) * t; | |
| 5511 } | |
| 5512 | |
| 5513 function interp_quad_coords(x1, x2, x3, t) | |
| 5514 { | |
| 5515 var ab = interp(x1, x2, t); | |
| 5516 var bc = interp(x2, x3, t); | |
| 5517 var abc = interp(ab, bc, t); | |
| 5518 return abc; | |
| 5519 } | |
| 5520 | |
| 5521 function quadPartial(x1, y1, x2, y2, x3, y3, t1, t2) { | |
| 5522 var ax = interp_quad_coords(x1, x2, x3, t1); | |
| 5523 var ay = interp_quad_coords(y1, y2, y3, t1); | |
| 5524 var dx = interp_quad_coords(x1, x2, x3, (t1 + t2) / 2); | |
| 5525 var dy = interp_quad_coords(y1, y2, y3, (t1 + t2) / 2); | |
| 5526 var cx = interp_quad_coords(x1, x2, x3, t2); | |
| 5527 var cy = interp_quad_coords(y1, y2, y3, t2); | |
| 5528 var bx = 2*dx - (ax + cx)/2; | |
| 5529 var by = 2*dy - (ay + cy)/2; | |
| 5530 var array = [ | |
| 5531 ax, ay, bx, by, cx, cy | |
| 5532 ]; | |
| 5533 return array; | |
| 5534 } | |
| 5535 | |
| 5536 function drawQuadPartial(x1, y1, x2, y2, x3, y3, t1, t2) { | |
| 5537 var a = quadPartial(x1, y1, x2, y2, x3, y3, t1, t2); | |
| 5538 var ax = a[0]; | |
| 5539 var ay = a[1]; | |
| 5540 var bx = a[2]; | |
| 5541 var by = a[3]; | |
| 5542 var cx = a[4]; | |
| 5543 var cy = a[5]; | |
| 5544 if (alreadyDrawnQuad(ax, ay, bx, by, cx, cy)) { | |
| 5545 return; | |
| 5546 } | |
| 5547 ctx.beginPath(); | |
| 5548 ctx.moveTo((ax - srcLeft) * scale, | |
| 5549 (ay - srcTop) * scale); | |
| 5550 ctx.quadraticCurveTo((bx - srcLeft) * scale, | |
| 5551 (by - srcTop) * scale, | |
| 5552 (cx - srcLeft) * scale, | |
| 5553 (cy - srcTop) * scale); | |
| 5554 ctx.stroke(); | |
| 5555 } | |
| 5556 | |
| 5557 function alreadyDrawnCubic(x1, y1, x2, y2, x3, y3, x4, y4) { | |
| 5558 for (var pts = 0; pts < drawnCubics.length; pts += 8) { | |
| 5559 if (x1 == drawnCubics[pts] && y1 == drawnCubics[pts + 1] | |
| 5560 && x2 == drawnCubics[pts + 2] && y2 == drawnCubics[pts + 3] | |
| 5561 && x3 == drawnCubics[pts + 4] && y3 == drawnCubics[pts + 5] | |
| 5562 && x4 == drawnCubics[pts + 6] && y4 == drawnCubics[pts + 7]) { | |
| 5563 return true; | |
| 5564 } | |
| 5565 } | |
| 5566 drawnCubics.push(x1); | |
| 5567 drawnCubics.push(y1); | |
| 5568 drawnCubics.push(x2); | |
| 5569 drawnCubics.push(y2); | |
| 5570 drawnCubics.push(x3); | |
| 5571 drawnCubics.push(y3); | |
| 5572 drawnCubics.push(x4); | |
| 5573 drawnCubics.push(y4); | |
| 5574 return false; | |
| 5575 } | |
| 5576 | |
| 5577 function drawCubic(x1, y1, x2, y2, x3, y3, x4, y4) { | |
| 5578 if (alreadyDrawnCubic(x1, y1, x2, y2, x3, y3, x4, y4)) { | |
| 5579 return; | |
| 5580 } | |
| 5581 ctx.beginPath(); | |
| 5582 ctx.moveTo((x1 - srcLeft) * scale, | |
| 5583 (y1 - srcTop) * scale); | |
| 5584 ctx.bezierCurveTo((x2 - srcLeft) * scale, | |
| 5585 (y2 - srcTop) * scale, | |
| 5586 (x3 - srcLeft) * scale, | |
| 5587 (y3 - srcTop) * scale, | |
| 5588 (x4 - srcLeft) * scale, | |
| 5589 (y4 - srcTop) * scale); | |
| 5590 ctx.stroke(); | |
| 5591 } | |
| 5592 | |
| 5593 function interp_cubic_coords(x1, x2, x3, x4, t) | |
| 5594 { | |
| 5595 var ab = interp(x1, x2, t); | |
| 5596 var bc = interp(x2, x3, t); | |
| 5597 var cd = interp(x3, x4, t); | |
| 5598 var abc = interp(ab, bc, t); | |
| 5599 var bcd = interp(bc, cd, t); | |
| 5600 var abcd = interp(abc, bcd, t); | |
| 5601 return abcd; | |
| 5602 } | |
| 5603 | |
| 5604 function cubicPartial(x1, y1, x2, y2, x3, y3, x4, y4, t1, t2) { | |
| 5605 var ax = interp_cubic_coords(x1, x2, x3, x4, t1); | |
| 5606 var ay = interp_cubic_coords(y1, y2, y3, y4, t1); | |
| 5607 var ex = interp_cubic_coords(x1, x2, x3, x4, (t1*2+t2)/3); | |
| 5608 var ey = interp_cubic_coords(y1, y2, y3, y4, (t1*2+t2)/3); | |
| 5609 var fx = interp_cubic_coords(x1, x2, x3, x4, (t1+t2*2)/3); | |
| 5610 var fy = interp_cubic_coords(y1, y2, y3, y4, (t1+t2*2)/3); | |
| 5611 var dx = interp_cubic_coords(x1, x2, x3, x4, t2); | |
| 5612 var dy = interp_cubic_coords(y1, y2, y3, y4, t2); | |
| 5613 var mx = ex * 27 - ax * 8 - dx; | |
| 5614 var my = ey * 27 - ay * 8 - dy; | |
| 5615 var nx = fx * 27 - ax - dx * 8; | |
| 5616 var ny = fy * 27 - ay - dy * 8; | |
| 5617 var bx = (mx * 2 - nx) / 18; | |
| 5618 var by = (my * 2 - ny) / 18; | |
| 5619 var cx = (nx * 2 - mx) / 18; | |
| 5620 var cy = (ny * 2 - my) / 18; | |
| 5621 var array = [ | |
| 5622 ax, ay, bx, by, cx, cy, dx, dy | |
| 5623 ]; | |
| 5624 return array; | |
| 5625 } | |
| 5626 | |
| 5627 function drawCubicPartial(x1, y1, x2, y2, x3, y3, x4, y4, t1, t2) { | |
| 5628 var a = cubicPartial(x1, y1, x2, y2, x3, y3, x4, y4, t1, t2); | |
| 5629 var ax = a[0]; | |
| 5630 var ay = a[1]; | |
| 5631 var bx = a[2]; | |
| 5632 var by = a[3]; | |
| 5633 var cx = a[4]; | |
| 5634 var cy = a[5]; | |
| 5635 var dx = a[6]; | |
| 5636 var dy = a[7]; | |
| 5637 if (alreadyDrawnCubic(ax, ay, bx, by, cx, cy, dx, dy)) { | |
| 5638 return; | |
| 5639 } | |
| 5640 ctx.beginPath(); | |
| 5641 ctx.moveTo((ax - srcLeft) * scale, | |
| 5642 (ay - srcTop) * scale); | |
| 5643 ctx.bezierCurveTo((bx - srcLeft) * scale, | |
| 5644 (by - srcTop) * scale, | |
| 5645 (cx - srcLeft) * scale, | |
| 5646 (cy - srcTop) * scale, | |
| 5647 (dx - srcLeft) * scale, | |
| 5648 (dy - srcTop) * scale); | |
| 5649 ctx.stroke(); | |
| 5650 } | |
| 5651 | |
| 5652 function boundsWidth(pts) { | |
| 5653 var min = pts[0]; | |
| 5654 var max = pts[0]; | |
| 5655 for (var idx = 2; idx < pts.length; idx += 2) { | |
| 5656 min = Math.min(min, pts[idx]); | |
| 5657 max = Math.max(max, pts[idx]); | |
| 5658 } | |
| 5659 return max - min; | |
| 5660 } | |
| 5661 | |
| 5662 function boundsHeight(pts) { | |
| 5663 var min = pts[1]; | |
| 5664 var max = pts[1]; | |
| 5665 for (var idx = 3; idx < pts.length; idx += 2) { | |
| 5666 min = Math.min(min, pts[idx]); | |
| 5667 max = Math.max(max, pts[idx]); | |
| 5668 } | |
| 5669 return max - min; | |
| 5670 } | |
| 5671 | |
| 5672 function tangent(pts) { | |
| 5673 var dx = pts[2] - pts[0]; | |
| 5674 var dy = pts[3] - pts[1]; | |
| 5675 if (dx == 0 && dy == 0 && pts.length > 4) { | |
| 5676 dx = pts[4] - pts[0]; | |
| 5677 dy = pts[5] - pts[1]; | |
| 5678 if (dx == 0 && dy == 0 && pts.length > 6) { | |
| 5679 dx = pts[6] - pts[0]; | |
| 5680 dy = pts[7] - pts[1]; | |
| 5681 } | |
| 5682 } | |
| 5683 return Math.atan2(-dy, dx); | |
| 5684 } | |
| 5685 | |
| 5686 function hodograph(cubic) { | |
| 5687 var hodo = []; | |
| 5688 hodo[0] = 3 * (cubic[2] - cubic[0]); | |
| 5689 hodo[1] = 3 * (cubic[3] - cubic[1]); | |
| 5690 hodo[2] = 3 * (cubic[4] - cubic[2]); | |
| 5691 hodo[3] = 3 * (cubic[5] - cubic[3]); | |
| 5692 hodo[4] = 3 * (cubic[6] - cubic[4]); | |
| 5693 hodo[5] = 3 * (cubic[7] - cubic[5]); | |
| 5694 return hodo; | |
| 5695 } | |
| 5696 | |
| 5697 function hodograph2(cubic) { | |
| 5698 var quad = hodograph(cubic); | |
| 5699 var hodo = []; | |
| 5700 hodo[0] = 2 * (quad[2] - quad[0]); | |
| 5701 hodo[1] = 2 * (quad[3] - quad[1]); | |
| 5702 hodo[2] = 2 * (quad[4] - quad[2]); | |
| 5703 hodo[3] = 2 * (quad[5] - quad[3]); | |
| 5704 return hodo; | |
| 5705 } | |
| 5706 | |
| 5707 function quadraticRootsReal(A, B, C, s) { | |
| 5708 if (A == 0) { | |
| 5709 if (B == 0) { | |
| 5710 s[0] = 0; | |
| 5711 return C == 0; | |
| 5712 } | |
| 5713 s[0] = -C / B; | |
| 5714 return 1; | |
| 5715 } | |
| 5716 /* normal form: x^2 + px + q = 0 */ | |
| 5717 var p = B / (2 * A); | |
| 5718 var q = C / A; | |
| 5719 var p2 = p * p; | |
| 5720 if (p2 < q) { | |
| 5721 return 0; | |
| 5722 } | |
| 5723 var sqrt_D = 0; | |
| 5724 if (p2 > q) { | |
| 5725 sqrt_D = sqrt(p2 - q); | |
| 5726 } | |
| 5727 s[0] = sqrt_D - p; | |
| 5728 s[1] = -sqrt_D - p; | |
| 5729 return 1 + s[0] != s[1]; | |
| 5730 } | |
| 5731 | |
| 5732 function add_valid_ts(s, realRoots, t) { | |
| 5733 var foundRoots = 0; | |
| 5734 for (var index = 0; index < realRoots; ++index) { | |
| 5735 var tValue = s[index]; | |
| 5736 if (tValue >= 0 && tValue <= 1) { | |
| 5737 for (var idx2 = 0; idx2 < foundRoots; ++idx2) { | |
| 5738 if (t[idx2] != tValue) { | |
| 5739 t[foundRoots++] = tValue; | |
| 5740 } | |
| 5741 } | |
| 5742 } | |
| 5743 } | |
| 5744 return foundRoots; | |
| 5745 } | |
| 5746 | |
| 5747 function quadraticRootsValidT(a, b, c, t) { | |
| 5748 var s = []; | |
| 5749 var realRoots = quadraticRootsReal(A, B, C, s); | |
| 5750 var foundRoots = add_valid_ts(s, realRoots, t); | |
| 5751 return foundRoots != 0; | |
| 5752 } | |
| 5753 | |
| 5754 function find_cubic_inflections(cubic, tValues) { | |
| 5755 var Ax = src[2] - src[0]; | |
| 5756 var Ay = src[3] - src[1]; | |
| 5757 var Bx = src[4] - 2 * src[2] + src[0]; | |
| 5758 var By = src[5] - 2 * src[3] + src[1]; | |
| 5759 var Cx = src[6] + 3 * (src[2] - src[4]) - src[0]; | |
| 5760 var Cy = src[7] + 3 * (src[3] - src[5]) - src[1]; | |
| 5761 return quadraticRootsValidT(Bx * Cy - By * Cx, (Ax * Cy - Ay * Cx), | |
| 5762 Ax * By - Ay * Bx, tValues); | |
| 5763 } | |
| 5764 | |
| 5765 function dxy_at_t(curve, type, t) { | |
| 5766 var dxy = {}; | |
| 5767 if (type == PATH_QUAD) { | |
| 5768 var a = t - 1; | |
| 5769 var b = 1 - 2 * t; | |
| 5770 var c = t; | |
| 5771 dxy.x = a * curve[0] + b * curve[2] + c * curve[4]; | |
| 5772 dxy.y = a * curve[1] + b * curve[3] + c * curve[5]; | |
| 5773 } else if (type == PATH_CUBIC) { | |
| 5774 var one_t = 1 - t; | |
| 5775 var a = curve[0]; | |
| 5776 var b = curve[2]; | |
| 5777 var c = curve[4]; | |
| 5778 var d = curve[6]; | |
| 5779 dxy.x = 3 * ((b - a) * one_t * one_t + 2 * (c - b) * t * one_t + (d - c)
* t * t); | |
| 5780 a = curve[1]; | |
| 5781 b = curve[3]; | |
| 5782 c = curve[5]; | |
| 5783 d = curve[7]; | |
| 5784 dxy.y = 3 * ((b - a) * one_t * one_t + 2 * (c - b) * t * one_t + (d - c)
* t * t); | |
| 5785 } | |
| 5786 return dxy; | |
| 5787 } | |
| 5788 | |
| 5789 function drawLabel(num, px, py) { | |
| 5790 ctx.beginPath(); | |
| 5791 ctx.arc(px, py, 8, 0, Math.PI*2, true); | |
| 5792 ctx.closePath(); | |
| 5793 ctx.strokeStyle = "rgba(0,0,0, 0.4)"; | |
| 5794 ctx.lineWidth = num == 0 || num == 3 ? 2 : 1; | |
| 5795 ctx.stroke(); | |
| 5796 ctx.fillStyle = "black"; | |
| 5797 ctx.font = "normal 10px Arial"; | |
| 5798 // ctx.rotate(0.001); | |
| 5799 ctx.fillText(num, px - 2, py + 3); | |
| 5800 // ctx.rotate(-0.001); | |
| 5801 } | |
| 5802 | |
| 5803 function drawLabelX(ymin, num, loc) { | |
| 5804 var px = (loc - srcLeft) * scale; | |
| 5805 var py = (ymin - srcTop) * scale - 20; | |
| 5806 drawLabel(num, px, py); | |
| 5807 } | |
| 5808 | |
| 5809 function drawLabelY(xmin, num, loc) { | |
| 5810 var px = (xmin - srcLeft) * scale - 20; | |
| 5811 var py = (loc - srcTop) * scale; | |
| 5812 drawLabel(num, px, py); | |
| 5813 } | |
| 5814 | |
| 5815 function drawHodoOrigin(hx, hy, hMinX, hMinY, hMaxX, hMaxY) { | |
| 5816 ctx.beginPath(); | |
| 5817 ctx.moveTo(hx, hy - 100); | |
| 5818 ctx.lineTo(hx, hy); | |
| 5819 ctx.strokeStyle = hMinY < 0 ? "green" : "blue"; | |
| 5820 ctx.stroke(); | |
| 5821 ctx.beginPath(); | |
| 5822 ctx.moveTo(hx, hy); | |
| 5823 ctx.lineTo(hx, hy + 100); | |
| 5824 ctx.strokeStyle = hMaxY > 0 ? "green" : "blue"; | |
| 5825 ctx.stroke(); | |
| 5826 ctx.beginPath(); | |
| 5827 ctx.moveTo(hx - 100, hy); | |
| 5828 ctx.lineTo(hx, hy); | |
| 5829 ctx.strokeStyle = hMinX < 0 ? "green" : "blue"; | |
| 5830 ctx.stroke(); | |
| 5831 ctx.beginPath(); | |
| 5832 ctx.moveTo(hx, hy); | |
| 5833 ctx.lineTo(hx + 100, hy); | |
| 5834 ctx.strokeStyle = hMaxX > 0 ? "green" : "blue"; | |
| 5835 ctx.stroke(); | |
| 5836 } | |
| 5837 | |
| 5838 function scalexy(x, y, mag) { | |
| 5839 var length = Math.sqrt(x * x + y * y); | |
| 5840 return mag / length; | |
| 5841 } | |
| 5842 | |
| 5843 function drawArrow(x, y, dx, dy) { | |
| 5844 var dscale = scalexy(dx, dy, 1 / scale * 100); | |
| 5845 dx *= dscale; | |
| 5846 dy *= dscale; | |
| 5847 ctx.beginPath(); | |
| 5848 ctx.moveTo((x - srcLeft) * scale, (y - srcTop) * scale); | |
| 5849 x += dx; | |
| 5850 y += dy; | |
| 5851 ctx.lineTo((x - srcLeft) * scale, (y - srcTop) * scale); | |
| 5852 dx /= 10; | |
| 5853 dy /= 10; | |
| 5854 ctx.lineTo((x - dy - srcLeft) * scale, (y + dx - srcTop) * scale); | |
| 5855 ctx.lineTo((x + dx * 2 - srcLeft) * scale, (y + dy * 2 - srcTop) * scale); | |
| 5856 ctx.lineTo((x + dy - srcLeft) * scale, (y - dx - srcTop) * scale); | |
| 5857 ctx.lineTo((x - srcLeft) * scale, (y - srcTop) * scale); | |
| 5858 ctx.strokeStyle = "rgba(0,75,0, 0.4)"; | |
| 5859 ctx.stroke(); | |
| 5860 } | |
| 5861 | |
| 5862 function drawCurveSpecials(curve, type) { | |
| 5863 if (pt_labels) { | |
| 5864 drawPoints(curve, type, pt_labels == 2); | |
| 5865 } | |
| 5866 if (control_lines != 0) { | |
| 5867 drawControlLines(curve, type, control_lines); | |
| 5868 } | |
| 5869 if (curve_t) { | |
| 5870 drawPointAtT(curve, type); | |
| 5871 } | |
| 5872 if (draw_midpoint) { | |
| 5873 var mid = pointAtT(curve, type, 0.5); | |
| 5874 drawPoint(mid.x, mid.y, true); | |
| 5875 } | |
| 5876 if (type == PATH_LINE) { | |
| 5877 return; | |
| 5878 } | |
| 5879 if (draw_deriviatives > 0) { | |
| 5880 var d = dxy_at_t(curve, type, 0); | |
| 5881 drawArrow(curve[0], curve[1], d.x, d.y); | |
| 5882 if (draw_deriviatives == 2) { | |
| 5883 d = dxy_at_t(curve, type, 1); | |
| 5884 if (type == PATH_CUBIC) { | |
| 5885 drawArrow(curve[6], curve[7], d.x, d.y); | |
| 5886 } else { | |
| 5887 drawArrow(curve[4], curve[5], d.x, d.y); | |
| 5888 } | |
| 5889 } | |
| 5890 if (draw_midpoint) { | |
| 5891 var mid = pointAtT(curve, 0.5); | |
| 5892 d = dxy_at_t(curve, type, 0.5); | |
| 5893 drawArrow(mid.x, mid.y, d.x, d.y); | |
| 5894 } | |
| 5895 } | |
| 5896 if (type != PATH_CUBIC) { | |
| 5897 return; | |
| 5898 } | |
| 5899 if (draw_hodo == 1 || draw_hodo == 2) { | |
| 5900 var hodo = hodograph(curve); | |
| 5901 var hMinX = Math.min(0, hodo[0], hodo[2], hodo[4]); | |
| 5902 var hMinY = Math.min(0, hodo[1], hodo[3], hodo[5]); | |
| 5903 var hMaxX = Math.max(0, hodo[0], hodo[2], hodo[4]); | |
| 5904 var hMaxY = Math.max(0, hodo[1], hodo[3], hodo[5]); | |
| 5905 var hScaleX = hMaxX - hMinX > 0 ? ctx.canvas.width / (hMaxX - hMinX) : 1
; | |
| 5906 var hScaleY = hMaxY - hMinY > 0 ? ctx.canvas.height / (hMaxY - hMinY) :
1; | |
| 5907 var hUnit = Math.min(hScaleX, hScaleY); | |
| 5908 hUnit /= 2; | |
| 5909 var hx = xoffset - hMinX * hUnit; | |
| 5910 var hy = yoffset - hMinY * hUnit; | |
| 5911 ctx.moveTo(hx + hodo[0] * hUnit, hy + hodo[1] * hUnit); | |
| 5912 ctx.quadraticCurveTo( | |
| 5913 hx + hodo[2] * hUnit, hy + hodo[3] * hUnit, | |
| 5914 hx + hodo[4] * hUnit, hy + hodo[5] * hUnit); | |
| 5915 ctx.strokeStyle = "red"; | |
| 5916 ctx.stroke(); | |
| 5917 if (draw_hodo == 1) { | |
| 5918 drawHodoOrigin(hx, hy, hMinX, hMinY, hMaxX, hMaxY); | |
| 5919 } | |
| 5920 } | |
| 5921 if (draw_hodo == 3) { | |
| 5922 var hodo = hodograph2(curve); | |
| 5923 var hMinX = Math.min(0, hodo[0], hodo[2]); | |
| 5924 var hMinY = Math.min(0, hodo[1], hodo[3]); | |
| 5925 var hMaxX = Math.max(0, hodo[0], hodo[2]); | |
| 5926 var hMaxY = Math.max(0, hodo[1], hodo[3]); | |
| 5927 var hScaleX = hMaxX - hMinX > 0 ? ctx.canvas.width / (hMaxX - hMinX) : 1
; | |
| 5928 var hScaleY = hMaxY - hMinY > 0 ? ctx.canvas.height / (hMaxY - hMinY) :
1; | |
| 5929 var hUnit = Math.min(hScaleX, hScaleY); | |
| 5930 hUnit /= 2; | |
| 5931 var hx = xoffset - hMinX * hUnit; | |
| 5932 var hy = yoffset - hMinY * hUnit; | |
| 5933 ctx.moveTo(hx + hodo[0] * hUnit, hy + hodo[1] * hUnit); | |
| 5934 ctx.lineTo(hx + hodo[2] * hUnit, hy + hodo[3] * hUnit); | |
| 5935 ctx.strokeStyle = "red"; | |
| 5936 ctx.stroke(); | |
| 5937 drawHodoOrigin(hx, hy, hMinX, hMinY, hMaxX, hMaxY); | |
| 5938 } | |
| 5939 if (draw_sequence) { | |
| 5940 var ymin = Math.min(curve[1], curve[3], curve[5], curve[7]); | |
| 5941 for (var i = 0; i < 8; i+= 2) { | |
| 5942 drawLabelX(ymin, i >> 1, curve[i]); | |
| 5943 } | |
| 5944 var xmin = Math.min(curve[0], curve[2], curve[4], curve[6]); | |
| 5945 for (var i = 1; i < 8; i+= 2) { | |
| 5946 drawLabelY(xmin, i >> 1, curve[i]); | |
| 5947 } | |
| 5948 } | |
| 5949 } | |
| 5950 | |
| 5951 function logCurves(test) { | |
| 5952 for (curves in test) { | |
| 5953 var curve = test[curves]; | |
| 5954 if (curve.length != 8) { | |
| 5955 continue; | |
| 5956 } | |
| 5957 var str = "{{"; | |
| 5958 for (i = 0; i < 8; i += 2) { | |
| 5959 str += curve[i].toFixed(decimal_places) + "," + curve[i + 1].toFixed
(decimal_places); | |
| 5960 if (i < 6) { | |
| 5961 str += "}, {"; | |
| 5962 } | |
| 5963 } | |
| 5964 str += "}}"; | |
| 5965 console.log(str); | |
| 5966 } | |
| 5967 } | |
| 5968 | |
| 5969 function draw(test, lines, title) { | |
| 5970 ctx.fillStyle = "rgba(0,0,0, 0.1)"; | |
| 5971 ctx.font = "normal 50px Arial"; | |
| 5972 ctx.textAlign = "left"; | |
| 5973 ctx.fillText(title, 50, 50); | |
| 5974 ctx.font = "normal 10px Arial"; | |
| 5975 ctx.lineWidth = "1.001"; "0.999"; | |
| 5976 var secondPath = test.length; | |
| 5977 var closeCount = 0; | |
| 5978 var logStart = -1; | |
| 5979 var logRange = 0; | |
| 5980 // find last active rec type at this step | |
| 5981 var curType = test[0]; | |
| 5982 var curStep = 0; | |
| 5983 var hasOp = false; | |
| 5984 var lastActive = 0; | |
| 5985 var lastAdd = 0; | |
| 5986 var lastSect = 0; | |
| 5987 var lastSort = 0; | |
| 5988 var lastMark = 0; | |
| 5989 activeCount = 0; | |
| 5990 addCount = 0; | |
| 5991 sectCount = 0; | |
| 5992 sortCount = 0; | |
| 5993 markCount = 0; | |
| 5994 activeMax = 0; | |
| 5995 addMax = 0; | |
| 5996 sectMax = 0; | |
| 5997 sectMax2 = 0; | |
| 5998 sortMax = 0; | |
| 5999 markMax = 0; | |
| 6000 lastIndex = test.length - 3; | |
| 6001 for (var testIndex = 0; testIndex < test.length; testIndex += 3) { | |
| 6002 var recType = test[testIndex]; | |
| 6003 if (!typeof recType == 'number' || recType < REC_TYPE_UNKNOWN || recType
> REC_TYPE_LAST) { | |
| 6004 console.log("unknown rec type: " + recType); | |
| 6005 throw "stop execution"; | |
| 6006 } | |
| 6007 // if (curType == recType && curType != REC_TYPE_ADD) { | |
| 6008 // continue; | |
| 6009 // } | |
| 6010 var inStepRange = step_limit == 0 || curStep < step_limit; | |
| 6011 curType = recType; | |
| 6012 if (recType == REC_TYPE_OP) { | |
| 6013 hasOp = true; | |
| 6014 continue; | |
| 6015 } | |
| 6016 if (recType == REC_TYPE_UNKNOWN) { | |
| 6017 // these types do not advance step | |
| 6018 continue; | |
| 6019 } | |
| 6020 var bumpStep = false; | |
| 6021 var records = test[testIndex + 2]; | |
| 6022 var fragType = records[0]; | |
| 6023 if (recType == REC_TYPE_ADD) { | |
| 6024 if (records.length != 2) { | |
| 6025 console.log("expect only two elements: " + records.length); | |
| 6026 throw "stop execution"; | |
| 6027 } | |
| 6028 if (fragType == ADD_MOVETO || fragType == ADD_CLOSE) { | |
| 6029 continue; | |
| 6030 } | |
| 6031 ++addMax; | |
| 6032 if (!draw_add || !inStepRange) { | |
| 6033 continue; | |
| 6034 } | |
| 6035 lastAdd = testIndex; | |
| 6036 ++addCount; | |
| 6037 bumpStep = true; | |
| 6038 } | |
| 6039 if (recType == REC_TYPE_PATH && hasOp) { | |
| 6040 secondPath = testIndex; | |
| 6041 } | |
| 6042 if (recType == REC_TYPE_ACTIVE) { | |
| 6043 ++activeMax; | |
| 6044 if (!draw_active || !inStepRange) { | |
| 6045 continue; | |
| 6046 } | |
| 6047 lastActive = testIndex; | |
| 6048 ++activeCount; | |
| 6049 bumpStep = true; | |
| 6050 } | |
| 6051 if (recType == REC_TYPE_SECT) { | |
| 6052 if (records.length != 2) { | |
| 6053 console.log("expect only two elements: " + records.length); | |
| 6054 throw "stop execution"; | |
| 6055 } | |
| 6056 ++sectMax; | |
| 6057 var sectBump = 1; | |
| 6058 switch (fragType) { | |
| 6059 case INTERSECT_LINE: | |
| 6060 case INTERSECT_QUAD_LINE: | |
| 6061 case INTERSECT_QUAD: | |
| 6062 case INTERSECT_SELF_CUBIC: | |
| 6063 case INTERSECT_CUBIC_LINE: | |
| 6064 case INTERSECT_CUBIC: | |
| 6065 sectBump = 1; | |
| 6066 break; | |
| 6067 case INTERSECT_LINE_2: | |
| 6068 case INTERSECT_QUAD_LINE_2: | |
| 6069 case INTERSECT_QUAD_2: | |
| 6070 case INTERSECT_CUBIC_LINE_2: | |
| 6071 case INTERSECT_CUBIC_2: | |
| 6072 sectBump = 2; | |
| 6073 break; | |
| 6074 case INTERSECT_LINE_NO: | |
| 6075 case INTERSECT_QUAD_LINE_NO: | |
| 6076 case INTERSECT_QUAD_NO: | |
| 6077 case INTERSECT_SELF_CUBIC_NO: | |
| 6078 case INTERSECT_CUBIC_LINE_NO: | |
| 6079 case INTERSECT_CUBIC_NO: | |
| 6080 sectBump = 0; | |
| 6081 break; | |
| 6082 case INTERSECT_CUBIC_LINE_3: | |
| 6083 case INTERSECT_CUBIC_3: | |
| 6084 sectBump = 3; | |
| 6085 break; | |
| 6086 case INTERSECT_CUBIC_4: | |
| 6087 sectBump = 4; | |
| 6088 break; | |
| 6089 default: | |
| 6090 console.log("missing case " + records.length); | |
| 6091 throw "stop execution"; | |
| 6092 } | |
| 6093 sectMax2 += sectBump; | |
| 6094 if (draw_intersection <= 1 || !inStepRange) { | |
| 6095 continue; | |
| 6096 } | |
| 6097 lastSect = testIndex; | |
| 6098 sectCount += sectBump; | |
| 6099 bumpStep = true; | |
| 6100 } | |
| 6101 if (recType == REC_TYPE_SORT) { | |
| 6102 ++sortMax; | |
| 6103 if (!draw_sort || !inStepRange) { | |
| 6104 continue; | |
| 6105 } | |
| 6106 lastSort = testIndex; | |
| 6107 ++sortCount; | |
| 6108 bumpStep = true; | |
| 6109 } | |
| 6110 if (recType == REC_TYPE_MARK) { | |
| 6111 ++markMax; | |
| 6112 if (!draw_mark || !inStepRange) { | |
| 6113 continue; | |
| 6114 } | |
| 6115 lastMark = testIndex; | |
| 6116 ++markCount; | |
| 6117 bumpStep = true; | |
| 6118 } | |
| 6119 if (bumpStep) { | |
| 6120 lastIndex = testIndex; | |
| 6121 logStart = test[testIndex + 1]; | |
| 6122 logRange = records.length / 2; | |
| 6123 ++curStep; | |
| 6124 } | |
| 6125 } | |
| 6126 stepMax = (draw_add ? addMax : 0) + (draw_active ? activeMax : 0) | |
| 6127 + (draw_sort ? sortMax : 0) + (draw_mark ? markMax : 0) | |
| 6128 + (draw_intersection == 2 ? sectMax : draw_intersection == 3 ? sectM
ax2 : 0); | |
| 6129 if (stepMax == 0) { | |
| 6130 stepMax = addMax + activeMax + sortMax + markMax; | |
| 6131 } | |
| 6132 drawnPts = []; | |
| 6133 drawnLines = []; | |
| 6134 drawnQuads = []; | |
| 6135 drawnCubics = []; | |
| 6136 var pathIndex = 0; | |
| 6137 var opLetter = 'S'; | |
| 6138 for (var testIndex = lastIndex; testIndex >= 0; testIndex -= 3) { | |
| 6139 var recType = test[testIndex]; | |
| 6140 var records = test[testIndex + 2]; | |
| 6141 for (var recordIndex = 0; recordIndex < records.length; recordIndex += 2
) { | |
| 6142 var fragType = records[recordIndex]; | |
| 6143 if (!typeof fragType == 'number' || fragType < 1 || fragType > FRAG_
TYPE_LAST) { | |
| 6144 console.log("unknown in range frag type: " + fragType); | |
| 6145 throw "stop execution"; | |
| 6146 } | |
| 6147 var frags = records[recordIndex + 1]; | |
| 6148 switch (recType) { | |
| 6149 case REC_TYPE_COMPUTED: | |
| 6150 if (draw_computed == 0) { | |
| 6151 continue; | |
| 6152 } | |
| 6153 ctx.lineWidth = 1; | |
| 6154 ctx.strokeStyle = pathIndex == 0 ? "black" : "red"; | |
| 6155 ctx.fillStyle = "blue"; | |
| 6156 var drawThis = false; | |
| 6157 switch (fragType) { | |
| 6158 case PATH_QUAD: | |
| 6159 if ((draw_computed & 5) == 1 || ((draw_computed & 4)
!= 0 | |
| 6160 && (draw_computed & 1) == pathIndex)) { | |
| 6161 drawQuad(frags[0], frags[1], frags[2], frags[3], | |
| 6162 frags[4], frags[5]); | |
| 6163 drawThis = true; | |
| 6164 } | |
| 6165 break; | |
| 6166 case PATH_CUBIC: | |
| 6167 if ((draw_computed & 6) == 2 || ((draw_computed & 4)
!= 0 | |
| 6168 && (draw_computed & 1) != pathIndex)) { | |
| 6169 drawCubic(frags[0], frags[1], frags[2], frags[3]
, | |
| 6170 frags[4], frags[5], frags[6], frags[7]); | |
| 6171 drawThis = true; | |
| 6172 } | |
| 6173 ++pathIndex; | |
| 6174 break; | |
| 6175 case COMPUTED_SET_1: | |
| 6176 pathIndex = 0; | |
| 6177 break; | |
| 6178 case COMPUTED_SET_2: | |
| 6179 pathIndex = 1; | |
| 6180 break; | |
| 6181 default: | |
| 6182 console.log("unknown REC_TYPE_COMPUTED frag type: "
+ fragType); | |
| 6183 throw "stop execution"; | |
| 6184 } | |
| 6185 if (!drawThis) { | |
| 6186 break; | |
| 6187 } | |
| 6188 drawCurveSpecials(frags, fragType); | |
| 6189 break; | |
| 6190 case REC_TYPE_PATH: | |
| 6191 if (!draw_path) { | |
| 6192 continue; | |
| 6193 } | |
| 6194 var firstPath = testIndex < secondPath; | |
| 6195 if ((draw_path & (firstPath ? 1 : 2)) == 0) { | |
| 6196 continue; | |
| 6197 } | |
| 6198 ctx.lineWidth = 1; | |
| 6199 ctx.strokeStyle = firstPath ? "black" : "red"; | |
| 6200 ctx.fillStyle = "blue"; | |
| 6201 switch (fragType) { | |
| 6202 case PATH_LINE: | |
| 6203 drawLine(frags[0], frags[1], frags[2], frags[3]); | |
| 6204 break; | |
| 6205 case PATH_QUAD: | |
| 6206 drawQuad(frags[0], frags[1], frags[2], frags[3], | |
| 6207 frags[4], frags[5]); | |
| 6208 break; | |
| 6209 case PATH_CUBIC: | |
| 6210 drawCubic(frags[0], frags[1], frags[2], frags[3], | |
| 6211 frags[4], frags[5], frags[6], frags[7]); | |
| 6212 break; | |
| 6213 default: | |
| 6214 console.log("unknown REC_TYPE_PATH frag type: " + fr
agType); | |
| 6215 throw "stop execution"; | |
| 6216 } | |
| 6217 drawCurveSpecials(frags, fragType); | |
| 6218 break; | |
| 6219 case REC_TYPE_OP: | |
| 6220 switch (fragType) { | |
| 6221 case OP_INTERSECT: opLetter = 'I'; break; | |
| 6222 case OP_DIFFERENCE: opLetter = 'D'; break; | |
| 6223 case OP_UNION: opLetter = 'U'; break; | |
| 6224 case OP_XOR: opLetter = 'X'; break; | |
| 6225 default: | |
| 6226 console.log("unknown REC_TYPE_OP frag type: " + frag
Type); | |
| 6227 throw "stop execution"; | |
| 6228 } | |
| 6229 break; | |
| 6230 case REC_TYPE_ACTIVE: | |
| 6231 if (!draw_active || (step_limit > 0 && testIndex < lastActiv
e)) { | |
| 6232 continue; | |
| 6233 } | |
| 6234 var x1 = frags[SPAN_X1]; | |
| 6235 var y1 = frags[SPAN_Y1]; | |
| 6236 var x2 = frags[SPAN_X2]; | |
| 6237 var y2 = frags[SPAN_Y2]; | |
| 6238 var x3, y3, x3, y4, t1, t2; | |
| 6239 ctx.lineWidth = 3; | |
| 6240 ctx.strokeStyle = "rgba(0,0,255, 0.3)"; | |
| 6241 switch (fragType) { | |
| 6242 case ACTIVE_LINE_SPAN: | |
| 6243 t1 = frags[SPAN_L_T]; | |
| 6244 t2 = frags[SPAN_L_TEND]; | |
| 6245 drawLinePartial(x1, y1, x2, y2, t1, t2); | |
| 6246 break; | |
| 6247 case ACTIVE_QUAD_SPAN: | |
| 6248 x3 = frags[SPAN_X3]; | |
| 6249 y3 = frags[SPAN_Y3]; | |
| 6250 t1 = frags[SPAN_Q_T]; | |
| 6251 t2 = frags[SPAN_Q_TEND]; | |
| 6252 drawQuadPartial(x1, y1, x2, y2, x3, y3, t1, t2); | |
| 6253 break; | |
| 6254 case ACTIVE_CUBIC_SPAN: | |
| 6255 x3 = frags[SPAN_X3]; | |
| 6256 y3 = frags[SPAN_Y3]; | |
| 6257 x4 = frags[SPAN_X4]; | |
| 6258 y4 = frags[SPAN_Y4]; | |
| 6259 t1 = frags[SPAN_C_T]; | |
| 6260 t2 = frags[SPAN_C_TEND]; | |
| 6261 drawCubicPartial(x1, y1, x2, y2, x3, y3, x4, y4, t1,
t2); | |
| 6262 break; | |
| 6263 default: | |
| 6264 console.log("unknown REC_TYPE_ACTIVE frag type: " +
fragType); | |
| 6265 throw "stop execution"; | |
| 6266 } | |
| 6267 break; | |
| 6268 case REC_TYPE_ADD: | |
| 6269 if (!draw_add) { | |
| 6270 continue; | |
| 6271 } | |
| 6272 ctx.lineWidth = 3; | |
| 6273 ctx.strokeStyle = closeCount == 0 ? "rgba(0,0,255, 0.3)" | |
| 6274 : closeCount == 1 ? "rgba(0,127,0, 0.3)" | |
| 6275 : closeCount == 2 ? "rgba(0,127,127, 0.3)" | |
| 6276 : closeCount == 3 ? "rgba(127,127,0, 0.3)" | |
| 6277 : "rgba(127,0,127, 0.3)"; | |
| 6278 switch (fragType) { | |
| 6279 case ADD_MOVETO: | |
| 6280 break; | |
| 6281 case ADD_LINETO: | |
| 6282 if (step_limit == 0 || testIndex >= lastAdd) { | |
| 6283 drawLine(frags[0], frags[1], frags[2], frags[3])
; | |
| 6284 } | |
| 6285 break; | |
| 6286 case ADD_QUADTO: | |
| 6287 if (step_limit == 0 || testIndex >= lastAdd) { | |
| 6288 drawQuad(frags[0], frags[1], frags[2], frags[3],
frags[4], frags[5]); | |
| 6289 } | |
| 6290 break; | |
| 6291 case ADD_CUBICTO: | |
| 6292 if (step_limit == 0 || testIndex >= lastAdd) { | |
| 6293 drawCubic(frags[0], frags[1], frags[2], frags[3]
, | |
| 6294 frags[4], frags[5], frags[6], frags[7]); | |
| 6295 } | |
| 6296 break; | |
| 6297 case ADD_CLOSE: | |
| 6298 ++closeCount; | |
| 6299 break; | |
| 6300 default: | |
| 6301 console.log("unknown REC_TYPE_ADD frag type: " + fra
gType); | |
| 6302 throw "stop execution"; | |
| 6303 } | |
| 6304 break; | |
| 6305 case REC_TYPE_SECT: | |
| 6306 if (!draw_intersection) { | |
| 6307 continue; | |
| 6308 } | |
| 6309 if (draw_intersection != 1 && (step_limit > 0 && testIndex <
lastSect)) { | |
| 6310 continue; | |
| 6311 } | |
| 6312 // draw_intersection == 1 : show all | |
| 6313 // draw_intersection == 2 : step == 0 ? show all : show inte
rsection line #step | |
| 6314 // draw_intersection == 3 : step == 0 ? show all : show inte
rsection #step | |
| 6315 ctx.lineWidth = 1; | |
| 6316 ctx.strokeStyle = "rgba(0,0,255, 0.3)"; | |
| 6317 ctx.fillStyle = "blue"; | |
| 6318 var f = []; | |
| 6319 var c1s; | |
| 6320 var c1l; | |
| 6321 var c2s; | |
| 6322 var c2l; | |
| 6323 switch (fragType) { | |
| 6324 case INTERSECT_LINE: | |
| 6325 f.push(5, 6, 0, 7); | |
| 6326 c1s = 1; c1l = 4; c2s = 8; c2l = 4; | |
| 6327 break; | |
| 6328 case INTERSECT_LINE_2: | |
| 6329 f.push(5, 6, 0, 10); | |
| 6330 f.push(8, 9, 7, 15); | |
| 6331 c1s = 1; c1l = 4; c2s = 11; c2l = 4; | |
| 6332 break; | |
| 6333 case INTERSECT_LINE_NO: | |
| 6334 c1s = 0; c1l = 4; c2s = 4; c2l = 4; | |
| 6335 break; | |
| 6336 case INTERSECT_QUAD_LINE: | |
| 6337 f.push(7, 8, 0, 9); | |
| 6338 c1s = 1; c1l = 6; c2s = 10; c2l = 4; | |
| 6339 break; | |
| 6340 case INTERSECT_QUAD_LINE_2: | |
| 6341 f.push(7, 8, 0, 12); | |
| 6342 f.push(10, 11, 9, 17); | |
| 6343 c1s = 1; c1l = 6; c2s = 13; c2l = 4; | |
| 6344 break; | |
| 6345 case INTERSECT_QUAD_LINE_NO: | |
| 6346 c1s = 0; c1l = 6; c2s = 6; c2l = 4; | |
| 6347 break; | |
| 6348 case INTERSECT_QUAD: | |
| 6349 f.push(7, 8, 0, 9); | |
| 6350 c1s = 1; c1l = 6; c2s = 10; c2l = 6; | |
| 6351 break; | |
| 6352 case INTERSECT_QUAD_2: | |
| 6353 f.push(7, 8, 0, 12); | |
| 6354 f.push(10, 11, 9, 19); | |
| 6355 c1s = 1; c1l = 6; c2s = 13; c2l = 6; | |
| 6356 break; | |
| 6357 case INTERSECT_QUAD_NO: | |
| 6358 c1s = 0; c1l = 6; c2s = 6; c2l = 6; | |
| 6359 break; | |
| 6360 case INTERSECT_SELF_CUBIC: | |
| 6361 f.push(9, 10, 0, 11); | |
| 6362 c1s = 1; c1l = 8; c2s = 0; c2l = 0; | |
| 6363 break; | |
| 6364 case INTERSECT_SELF_CUBIC_NO: | |
| 6365 c1s = 0; c1l = 8; c2s = 0; c2l = 0; | |
| 6366 break; | |
| 6367 case INTERSECT_CUBIC_LINE: | |
| 6368 f.push(9, 10, 0, 11); | |
| 6369 c1s = 1; c1l = 8; c2s = 12; c2l = 4; | |
| 6370 break; | |
| 6371 case INTERSECT_CUBIC_LINE_2: | |
| 6372 f.push(9, 10, 0, 14); | |
| 6373 f.push(12, 13, 11, 19); | |
| 6374 c1s = 1; c1l = 8; c2s = 15; c2l = 4; | |
| 6375 break; | |
| 6376 case INTERSECT_CUBIC_LINE_3: | |
| 6377 f.push(9, 10, 0, 17); | |
| 6378 f.push(12, 13, 11, 22); | |
| 6379 f.push(15, 16, 14, 23); | |
| 6380 c1s = 1; c1l = 8; c2s = 18; c2l = 4; | |
| 6381 break; | |
| 6382 case INTERSECT_CUBIC_LINE_NO: | |
| 6383 c1s = 0; c1l = 8; c2s = 8; c2l = 4; | |
| 6384 break; | |
| 6385 case INTERSECT_CUBIC: | |
| 6386 f.push(9, 10, 0, 11); | |
| 6387 c1s = 1; c1l = 8; c2s = 12; c2l = 8; | |
| 6388 break; | |
| 6389 case INTERSECT_CUBIC_2: | |
| 6390 f.push(9, 10, 0, 14); | |
| 6391 f.push(12, 13, 11, 23); | |
| 6392 c1s = 1; c1l = 8; c2s = 15; c2l = 8; | |
| 6393 break; | |
| 6394 case INTERSECT_CUBIC_3: | |
| 6395 f.push(9, 10, 0, 17); | |
| 6396 f.push(12, 13, 11, 26); | |
| 6397 f.push(15, 16, 14, 27); | |
| 6398 c1s = 1; c1l = 8; c2s = 18; c2l = 8; | |
| 6399 break; | |
| 6400 case INTERSECT_CUBIC_4: | |
| 6401 f.push(9, 10, 0, 20); | |
| 6402 f.push(12, 13, 11, 29); | |
| 6403 f.push(15, 16, 14, 30); | |
| 6404 f.push(18, 19, 17, 31); | |
| 6405 c1s = 1; c1l = 8; c2s = 21; c2l = 8; | |
| 6406 break; | |
| 6407 case INTERSECT_CUBIC_NO: | |
| 6408 c1s = 0; c1l = 8; c2s = 8; c2l = 8; | |
| 6409 break; | |
| 6410 default: | |
| 6411 console.log("unknown REC_TYPE_SECT frag type: " + fr
agType); | |
| 6412 throw "stop execution"; | |
| 6413 } | |
| 6414 if (draw_intersection != 1) { | |
| 6415 switch (c1l) { | |
| 6416 case 4: | |
| 6417 drawLine(frags[c1s], frags[c1s + 1], frags[c1s +
2], frags[c1s + 3]); | |
| 6418 break; | |
| 6419 case 6: | |
| 6420 drawQuad(frags[c1s], frags[c1s + 1], frags[c1s +
2], frags[c1s + 3], | |
| 6421 frags[c1s + 4], frags[c1s + 5]); | |
| 6422 break; | |
| 6423 case 8: | |
| 6424 drawCubic(frags[c1s], frags[c1s + 1], frags[c1s
+ 2], frags[c1s + 3], | |
| 6425 frags[c1s + 4], frags[c1s + 5], frags[c1
s + 6], frags[c1s + 7]); | |
| 6426 break; | |
| 6427 } | |
| 6428 switch (c2l) { | |
| 6429 case 0: | |
| 6430 break; | |
| 6431 case 4: | |
| 6432 drawLine(frags[c2s], frags[c2s + 1], frags[c2s +
2], frags[c2s + 3]); | |
| 6433 break; | |
| 6434 case 6: | |
| 6435 drawQuad(frags[c2s], frags[c2s + 1], frags[c2s +
2], frags[c2s + 3], | |
| 6436 frags[c2s + 4], frags[c2s + 5]); | |
| 6437 break; | |
| 6438 case 8: | |
| 6439 drawCubic(frags[c2s], frags[c2s + 1], frags[c2s
+ 2], frags[c2s + 3], | |
| 6440 frags[c2s + 4], frags[c2s + 5], frags[c2
s + 6], frags[c2s + 7]); | |
| 6441 break; | |
| 6442 } | |
| 6443 } | |
| 6444 for (var idx = 0; idx < f.length; idx += 4) { | |
| 6445 if (draw_intersection != 3 || idx == lastSect - testInde
x) { | |
| 6446 drawPoint(frags[f[idx]], frags[f[idx + 1]], true); | |
| 6447 } | |
| 6448 } | |
| 6449 if (!draw_intersectT) { | |
| 6450 break; | |
| 6451 } | |
| 6452 ctx.fillStyle = "red"; | |
| 6453 for (var idx = 0; idx < f.length; idx += 4) { | |
| 6454 if (draw_intersection != 3 || idx == lastSect - testInde
x) { | |
| 6455 drawTAtPointUp(frags[f[idx]], frags[f[idx + 1]], fra
gs[f[idx + 2]]); | |
| 6456 drawTAtPointDown(frags[f[idx]], frags[f[idx + 1]], f
rags[f[idx + 3]]); | |
| 6457 } | |
| 6458 } | |
| 6459 break; | |
| 6460 case REC_TYPE_SORT: | |
| 6461 if (!draw_sort || (step_limit > 0 && testIndex < lastSort))
{ | |
| 6462 continue; | |
| 6463 } | |
| 6464 ctx.lineWidth = 3; | |
| 6465 ctx.strokeStyle = "rgba(127,127,0, 0.5)"; | |
| 6466 switch (fragType) { | |
| 6467 case SORT_LINE: | |
| 6468 case SORT_LINE_UNSORTABLE: | |
| 6469 drawLinePartial(frags[1], frags[2], frags[3], frags[
4], | |
| 6470 frags[5], frags[6]); | |
| 6471 break; | |
| 6472 case SORT_QUAD: | |
| 6473 case SORT_QUAD_UNSORTABLE: | |
| 6474 drawQuadPartial(frags[1], frags[2], frags[3], frags[
4], | |
| 6475 frags[5], frags[6], frags[7], frags[8]); | |
| 6476 break; | |
| 6477 case SORT_CUBIC: | |
| 6478 case SORT_CUBIC_UNSORTABLE: | |
| 6479 drawCubicPartial(frags[1], frags[2], frags[3], frags
[4], | |
| 6480 frags[5], frags[6], frags[7], frags[8], frags[9]
, frags[10]); | |
| 6481 break; | |
| 6482 case SORT_LINE_COMPACT: | |
| 6483 case SORT_QUAD_COMPACT: | |
| 6484 case SORT_CUBIC_COMPACT: | |
| 6485 // unsupported | |
| 6486 break; | |
| 6487 default: | |
| 6488 console.log("unknown REC_TYPE_SORT frag type: " + fr
agType); | |
| 6489 throw "stop execution"; | |
| 6490 } | |
| 6491 break; | |
| 6492 case REC_TYPE_MARK: | |
| 6493 if (!draw_mark || (step_limit > 0 && testIndex < lastMark))
{ | |
| 6494 continue; | |
| 6495 } | |
| 6496 ctx.lineWidth = 3; | |
| 6497 ctx.strokeStyle = fragType >= MARK_DONE_LINE ? | |
| 6498 "rgba(127,0,127, 0.5)" : "rgba(127,127,0, 0.5)"; | |
| 6499 switch (fragType) { | |
| 6500 case MARK_LINE: | |
| 6501 case MARK_DONE_LINE: | |
| 6502 case MARK_UNSORTABLE_LINE: | |
| 6503 case MARK_SIMPLE_LINE: | |
| 6504 case MARK_SIMPLE_DONE_LINE: | |
| 6505 case MARK_DONE_UNARY_LINE: | |
| 6506 drawLinePartial(frags[1], frags[2], frags[3], frags[
4], | |
| 6507 frags[5], frags[9]); | |
| 6508 break; | |
| 6509 case MARK_QUAD: | |
| 6510 case MARK_DONE_QUAD: | |
| 6511 case MARK_UNSORTABLE_QUAD: | |
| 6512 case MARK_SIMPLE_QUAD: | |
| 6513 case MARK_SIMPLE_DONE_QUAD: | |
| 6514 case MARK_DONE_UNARY_QUAD: | |
| 6515 drawQuadPartial(frags[1], frags[2], frags[3], frags[
4], | |
| 6516 frags[5], frags[6], frags[7], frags[11]); | |
| 6517 break; | |
| 6518 case MARK_CUBIC: | |
| 6519 case MARK_DONE_CUBIC: | |
| 6520 case MARK_UNSORTABLE_CUBIC: | |
| 6521 case MARK_SIMPLE_CUBIC: | |
| 6522 case MARK_SIMPLE_DONE_CUBIC: | |
| 6523 case MARK_DONE_UNARY_CUBIC: | |
| 6524 drawCubicPartial(frags[1], frags[2], frags[3], frags
[4], | |
| 6525 frags[5], frags[6], frags[7], frags[8], frags[9]
, frags[13]); | |
| 6526 break; | |
| 6527 default: | |
| 6528 console.log("unknown REC_TYPE_MARK frag type: " + fr
agType); | |
| 6529 throw "stop execution"; | |
| 6530 } | |
| 6531 break; | |
| 6532 default: | |
| 6533 continue; | |
| 6534 } | |
| 6535 } | |
| 6536 switch (recType) { | |
| 6537 case REC_TYPE_SORT: | |
| 6538 if (!draw_sort || (step_limit > 0 && testIndex < lastSort)) { | |
| 6539 break; | |
| 6540 } | |
| 6541 var angles = []; // use tangent lines to describe arcs | |
| 6542 var windFrom = []; | |
| 6543 var windTo = []; | |
| 6544 var opp = []; | |
| 6545 var minXY = Number.MAX_VALUE; | |
| 6546 var partial; | |
| 6547 for (var recordIndex = 0; recordIndex < records.length; recordIn
dex += 2) { | |
| 6548 var fragType = records[recordIndex]; | |
| 6549 var frags = records[recordIndex + 1]; | |
| 6550 var idx = 10; | |
| 6551 switch (fragType) { | |
| 6552 case SORT_LINE: | |
| 6553 case SORT_LINE_UNSORTABLE: | |
| 6554 partial = linePartial(frags[1], frags[2], frags[3],
frags[4], | |
| 6555 frags[5], frags[6]); | |
| 6556 break; | |
| 6557 case SORT_QUAD: | |
| 6558 case SORT_QUAD_UNSORTABLE: | |
| 6559 partial = quadPartial(frags[1], frags[2], frags[3],
frags[4], | |
| 6560 frags[5], frags[6], frags[7], frags[8]); | |
| 6561 idx += 2; | |
| 6562 break; | |
| 6563 case SORT_CUBIC: | |
| 6564 case SORT_CUBIC_UNSORTABLE: | |
| 6565 partial = cubicPartial(frags[1], frags[2], frags[3],
frags[4], | |
| 6566 frags[5], frags[6], frags[7], frags[8], frags[9]
, frags[10]); | |
| 6567 idx += 4; | |
| 6568 break; | |
| 6569 case SORT_LINE_COMPACT: | |
| 6570 case SORT_QUAD_COMPACT: | |
| 6571 case SORT_CUBIC_COMPACT: | |
| 6572 // unsupported | |
| 6573 continue; | |
| 6574 default: | |
| 6575 console.log("unknown REC_TYPE_SORT frag type: " + fr
agType); | |
| 6576 throw "stop execution"; | |
| 6577 } | |
| 6578 var dx = boundsWidth(partial); | |
| 6579 var dy = boundsHeight(partial); | |
| 6580 minXY = Math.min(minXY, dx * dx + dy * dy); | |
| 6581 angles.push(tangent(partial)); | |
| 6582 windFrom.push(frags[idx]); | |
| 6583 windTo.push(frags[idx + 1]); | |
| 6584 opp.push(frags[idx + 5]); | |
| 6585 } | |
| 6586 var radius = Math.sqrt(minXY) / 2 * scale; | |
| 6587 radius = Math.min(50, radius); | |
| 6588 var centerX = (partial[0] - srcLeft) * scale; | |
| 6589 var centerY = (partial[1] - srcTop) * scale; | |
| 6590 ctx.lineWidth = 1; | |
| 6591 ctx.strokeStyle = "rgba(127,0,171, 0.5)"; | |
| 6592 ctx.fillStyle = "rgba(0,0,0, 0.5)"; | |
| 6593 ctx.font = "normal 10px Arial"; | |
| 6594 ctx.textAlign = "center"; | |
| 6595 for (var angleIndex = 0; angleIndex < angles.length; ++angleInde
x) { | |
| 6596 var angleParts = [ | |
| 6597 angles[(angleIndex + angles.length - 1) % angles.length]
, | |
| 6598 angles[angleIndex], | |
| 6599 angles[(angleIndex + 1) % angles.length] | |
| 6600 ]; | |
| 6601 var angleStart = (angleParts[0] + angleParts[1]) / 2; | |
| 6602 if (angleParts[0] > angleParts[1]) { | |
| 6603 angleStart -= Math.PI; | |
| 6604 } | |
| 6605 var angleEnd = (angleParts[1] + angleParts[2]) / 2; | |
| 6606 if (angleParts[1] > angleParts[2]) { | |
| 6607 angleEnd -= Math.PI; | |
| 6608 } | |
| 6609 ctx.beginPath(); | |
| 6610 ctx.arc(centerX, centerY, radius + (opp[angleIndex] ? 10 : 0
), | |
| 6611 Math.PI * 2 - angleStart - Math.PI / 18, Math.PI * 2 - a
ngleEnd + Math.PI / 18, true); | |
| 6612 ctx.stroke(); | |
| 6613 var tx = centerX + Math.cos(angleStart) * (radius + (opp[ang
leIndex] ? 10 : 0)); | |
| 6614 var ty = centerY - Math.sin(angleStart) * (radius + (opp[ang
leIndex] ? 10 : 0)); | |
| 6615 ctx.fillText(windFrom[angleIndex], tx, ty + 5); | |
| 6616 tx = centerX + Math.cos(angleEnd) * (radius + (opp[angleInde
x] ? 10 : 0)); | |
| 6617 ty = centerY - Math.sin(angleEnd) * (radius + (opp[angleInde
x] ? 10 : 0)); | |
| 6618 ctx.fillText(windTo[angleIndex], tx, ty + 5); | |
| 6619 } | |
| 6620 break; | |
| 6621 default: | |
| 6622 break; | |
| 6623 } | |
| 6624 } | |
| 6625 if (draw_log && logStart >= 0) { | |
| 6626 ctx.font = "normal 10px Arial"; | |
| 6627 ctx.textAlign = "left"; | |
| 6628 ctx.beginPath(); | |
| 6629 var top = ctx.canvas.height - 20 - (logRange + 2) * 10; | |
| 6630 ctx.rect(50, top, ctx.canvas.width-100, (logRange + 2) * 10); | |
| 6631 ctx.fillStyle = "white"; | |
| 6632 ctx.fill(); | |
| 6633 ctx.fillStyle = "rgba(0,0,0, 0.5)"; | |
| 6634 if (logStart > 0) { | |
| 6635 ctx.fillText(lines[logStart - 1], 50, top + 8); | |
| 6636 } | |
| 6637 ctx.fillStyle = "black"; | |
| 6638 for (var idx = 0; idx < logRange; ++idx) { | |
| 6639 ctx.fillText(lines[logStart + idx], 50, top + 18 + 10 * idx); | |
| 6640 } | |
| 6641 ctx.fillStyle = "rgba(0,0,0, 0.5)"; | |
| 6642 if (logStart + logRange < lines.length) { | |
| 6643 ctx.fillText(lines[logStart + logRange], 50, top + 18 + 10 * logRang
e); | |
| 6644 } | |
| 6645 } | |
| 6646 if (draw_legend) { | |
| 6647 var pos = 0; | |
| 6648 var drawSomething = draw_add | draw_active | draw_sort | draw_mark; | |
| 6649 // drawBox(pos++, "yellow", "black", opLetter, true, ''); | |
| 6650 drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_intersection > 1 ? se
ctCount : sectMax2, draw_intersection, intersectionKey); | |
| 6651 drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_add ? addCount : addM
ax, draw_add, addKey); | |
| 6652 drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_active ? activeCount
: activeMax, draw_active, activeKey); | |
| 6653 drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_sort ? sortCount :
sortMax, draw_sort, sortKey); | |
| 6654 drawBox(pos++, "rgba(127,0,127, 0.3)", "black", draw_mark ? markCount :
markMax, draw_mark, markKey); | |
| 6655 drawBox(pos++, "black", "white", | |
| 6656 (new Array('P', 'P1', 'P2', 'P'))[draw_path], draw_path != 0, pa
thKey); | |
| 6657 drawBox(pos++, "rgba(0,63,0, 0.7)", "white", | |
| 6658 (new Array('Q', 'Q', 'C', 'QC', 'Qc', 'Cq'))[draw_computed], | |
| 6659 draw_computed != 0, computedKey); | |
| 6660 drawBox(pos++, "green", "black", step_limit, drawSomething, ''); | |
| 6661 drawBox(pos++, "green", "black", stepMax, drawSomething, ''); | |
| 6662 drawBox(pos++, "red", "black", lastIndex, drawSomething & draw_log, ''); | |
| 6663 drawBox(pos++, "red", "black", test.length - 1, drawSomething & draw_log
, ''); | |
| 6664 if (curve_t) { | |
| 6665 drawCurveTControl(); | |
| 6666 } | |
| 6667 ctx.font = "normal 20px Arial"; | |
| 6668 ctx.fillStyle = "rgba(0,0,0, 0.3)"; | |
| 6669 ctx.textAlign = "right"; | |
| 6670 ctx.fillText(scale.toFixed(decimal_places) + 'x' , ctx.canvas.width - 10
, ctx.canvas.height - 5); | |
| 6671 } | |
| 6672 if (draw_hints) { | |
| 6673 ctx.font = "normal 10px Arial"; | |
| 6674 ctx.fillStyle = "rgba(0,0,0, 0.5)"; | |
| 6675 ctx.textAlign = "right"; | |
| 6676 var y = 4; | |
| 6677 ctx.fillText("control lines : " + controlLinesKey, ctx.canvas.width - 1
0, pos * 50 + y++ * 10); | |
| 6678 ctx.fillText("curve t : " + curveTKey, ctx.canvas.width - 10, pos * 50
+ y++ * 10); | |
| 6679 ctx.fillText("deriviatives : " + deriviativesKey, ctx.canvas.width - 10
, pos * 50 + y++ * 10); | |
| 6680 ctx.fillText("intersect t : " + intersectTKey, ctx.canvas.width - 10, p
os * 50 + y++ * 10); | |
| 6681 ctx.fillText("hodo : " + hodoKey, ctx.canvas.width - 10, pos * 50 + y++
* 10); | |
| 6682 ctx.fillText("log : " + logKey, ctx.canvas.width - 10, pos * 50 + y++ *
10); | |
| 6683 ctx.fillText("log curve : " + logCurvesKey, ctx.canvas.width - 10, pos
* 50 + y++ * 10); | |
| 6684 ctx.fillText("mid point : " + midpointKey, ctx.canvas.width - 10, pos *
50 + y++ * 10); | |
| 6685 ctx.fillText("points : " + ptsKey, ctx.canvas.width - 10, pos * 50 + y+
+ * 10); | |
| 6686 ctx.fillText("sequence : " + sequenceKey, ctx.canvas.width - 10, pos *
50 + y++ * 10); | |
| 6687 ctx.fillText("xy : " + xyKey, ctx.canvas.width - 10, pos * 50 + y++ * 1
0); | |
| 6688 } | |
| 6689 } | |
| 6690 | |
| 6691 function drawBox(y, backC, foreC, str, enable, label) { | |
| 6692 ctx.beginPath(); | |
| 6693 ctx.fillStyle = backC; | |
| 6694 ctx.rect(ctx.canvas.width - 40, y * 50 + 10, 40, 30); | |
| 6695 ctx.fill(); | |
| 6696 ctx.font = "normal 16px Arial"; | |
| 6697 ctx.fillStyle = foreC; | |
| 6698 ctx.textAlign = "center"; | |
| 6699 ctx.fillText(str, ctx.canvas.width - 20, y * 50 + 32); | |
| 6700 if (!enable) { | |
| 6701 ctx.fillStyle = "rgba(255,255,255, 0.5)"; | |
| 6702 ctx.fill(); | |
| 6703 } | |
| 6704 if (label != '') { | |
| 6705 ctx.font = "normal 9px Arial"; | |
| 6706 ctx.fillStyle = "black"; | |
| 6707 ctx.fillText(label, ctx.canvas.width - 47, y * 50 + 40); | |
| 6708 } | |
| 6709 } | |
| 6710 | |
| 6711 function drawCurveTControl() { | |
| 6712 ctx.lineWidth = 2; | |
| 6713 ctx.strokeStyle = "rgba(0,0,0, 0.3)"; | |
| 6714 ctx.beginPath(); | |
| 6715 ctx.rect(ctx.canvas.width - 80, 40, 28, ctx.canvas.height - 80); | |
| 6716 ctx.stroke(); | |
| 6717 var ty = 40 + curveT * (ctx.canvas.height - 80); | |
| 6718 ctx.beginPath(); | |
| 6719 ctx.moveTo(ctx.canvas.width - 80, ty); | |
| 6720 ctx.lineTo(ctx.canvas.width - 85, ty - 5); | |
| 6721 ctx.lineTo(ctx.canvas.width - 85, ty + 5); | |
| 6722 ctx.lineTo(ctx.canvas.width - 80, ty); | |
| 6723 ctx.fillStyle = "rgba(0,0,0, 0.6)"; | |
| 6724 ctx.fill(); | |
| 6725 var num = curveT.toFixed(decimal_places); | |
| 6726 ctx.font = "normal 10px Arial"; | |
| 6727 ctx.textAlign = "left"; | |
| 6728 ctx.fillText(num, ctx.canvas.width - 78, ty); | |
| 6729 } | |
| 6730 | |
| 6731 function ptInTControl() { | |
| 6732 var e = window.event; | |
| 6733 var tgt = e.target || e.srcElement; | |
| 6734 var left = tgt.offsetLeft; | |
| 6735 var top = tgt.offsetTop; | |
| 6736 var x = (e.clientX - left); | |
| 6737 var y = (e.clientY - top); | |
| 6738 if (x < ctx.canvas.width - 80 || x > ctx.canvas.width - 50) { | |
| 6739 return false; | |
| 6740 } | |
| 6741 if (y < 40 || y > ctx.canvas.height - 80) { | |
| 6742 return false; | |
| 6743 } | |
| 6744 curveT = (y - 40) / (ctx.canvas.height - 120); | |
| 6745 if (curveT < 0 || curveT > 1) { | |
| 6746 throw "stop execution"; | |
| 6747 } | |
| 6748 return true; | |
| 6749 } | |
| 6750 | |
| 6751 function drawTop() { | |
| 6752 if (tests[testIndex] == null) { | |
| 6753 var str = testDivs[testIndex].firstChild.data; | |
| 6754 parse_all(str); | |
| 6755 var title = testDivs[testIndex].id.toString(); | |
| 6756 testTitles[testIndex] = title; | |
| 6757 } | |
| 6758 init(tests[testIndex]); | |
| 6759 redraw(); | |
| 6760 } | |
| 6761 | |
| 6762 function redraw() { | |
| 6763 ctx.beginPath(); | |
| 6764 ctx.fillStyle = "white"; | |
| 6765 ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height); | |
| 6766 ctx.fill(); | |
| 6767 draw(tests[testIndex], testLines[testIndex], testTitles[testIndex]); | |
| 6768 } | |
| 6769 | |
| 6770 var activeKey = 'a'; | |
| 6771 var addKey = 'd'; | |
| 6772 var centerKey = 'c'; | |
| 6773 var computedKey = 'q'; | |
| 6774 var computedBackKey = 'Q'; | |
| 6775 var controlLinesBackKey = 'V'; | |
| 6776 var controlLinesKey = 'v'; | |
| 6777 var curveTKey = 'u'; | |
| 6778 var deriviativesKey = 'f'; | |
| 6779 var hodoKey = 'h'; | |
| 6780 var intersectTKey = 't'; | |
| 6781 var intersectionBackKey = 'I'; | |
| 6782 var intersectionKey = 'i'; | |
| 6783 var logKey = 'l'; | |
| 6784 var logCurvesKey = 'z'; | |
| 6785 var markKey = 'm'; | |
| 6786 var midpointKey = 'k'; | |
| 6787 var pathKey = 'b'; | |
| 6788 var pathBackKey = 'B'; | |
| 6789 var ptsKey = 'x'; | |
| 6790 var sequenceKey = 'j'; | |
| 6791 var sortKey = 'o'; | |
| 6792 var stepBackKey = 'S'; | |
| 6793 var stepKey = 's'; | |
| 6794 var xyKey = 'y'; | |
| 6795 | |
| 6796 function doKeyPress(evt) { | |
| 6797 var char = String.fromCharCode(evt.charCode); | |
| 6798 switch (char) { | |
| 6799 case '0': | |
| 6800 case '1': | |
| 6801 case '2': | |
| 6802 case '3': | |
| 6803 case '4': | |
| 6804 case '5': | |
| 6805 case '6': | |
| 6806 case '7': | |
| 6807 case '8': | |
| 6808 case '9': | |
| 6809 decimal_places = char - '0'; | |
| 6810 redraw(); | |
| 6811 break; | |
| 6812 case activeKey: | |
| 6813 draw_active ^= true; | |
| 6814 redraw(); | |
| 6815 break; | |
| 6816 case addKey: | |
| 6817 draw_add ^= true; | |
| 6818 redraw(); | |
| 6819 break; | |
| 6820 case centerKey: | |
| 6821 setScale(); | |
| 6822 redraw(); | |
| 6823 break; | |
| 6824 case controlLinesBackKey: | |
| 6825 control_lines = (control_lines + 3) % 4; | |
| 6826 redraw(); | |
| 6827 break; | |
| 6828 case controlLinesKey: | |
| 6829 control_lines = (control_lines + 1) % 4; | |
| 6830 redraw(); | |
| 6831 break; | |
| 6832 case computedBackKey: | |
| 6833 draw_computed = (draw_computed + 5) % 6; | |
| 6834 redraw(); | |
| 6835 break; | |
| 6836 case computedKey: | |
| 6837 draw_computed = (draw_computed + 1) % 6; | |
| 6838 redraw(); | |
| 6839 break; | |
| 6840 case curveTKey: | |
| 6841 curve_t ^= true; | |
| 6842 if (curve_t) { | |
| 6843 draw_legend = true; | |
| 6844 } | |
| 6845 redraw(); | |
| 6846 break; | |
| 6847 case deriviativesKey: | |
| 6848 draw_deriviatives = (draw_deriviatives + 1) % 3; | |
| 6849 redraw(); | |
| 6850 break; | |
| 6851 case hodoKey: | |
| 6852 draw_hodo = (draw_hodo + 1) % 4; | |
| 6853 redraw(); | |
| 6854 break; | |
| 6855 case intersectionBackKey: | |
| 6856 draw_intersection = (draw_intersection + 3) % 4; | |
| 6857 redraw(); | |
| 6858 break; | |
| 6859 case intersectionKey: | |
| 6860 draw_intersection = (draw_intersection + 1) % 4; | |
| 6861 redraw(); | |
| 6862 break; | |
| 6863 case intersectTKey: | |
| 6864 draw_intersectT ^= true; | |
| 6865 redraw(); | |
| 6866 break; | |
| 6867 case logCurvesKey: | |
| 6868 logCurves(tests[testIndex]); | |
| 6869 break; | |
| 6870 case logKey: | |
| 6871 draw_log ^= true; | |
| 6872 redraw(); | |
| 6873 break; | |
| 6874 case markKey: | |
| 6875 draw_mark ^= true; | |
| 6876 redraw(); | |
| 6877 break; | |
| 6878 case midpointKey: | |
| 6879 draw_midpoint ^= true; | |
| 6880 redraw(); | |
| 6881 break; | |
| 6882 case pathKey: | |
| 6883 draw_path = (draw_path + 1) % 4; | |
| 6884 redraw(); | |
| 6885 break; | |
| 6886 case pathBackKey: | |
| 6887 draw_path = (draw_path + 3) % 4; | |
| 6888 redraw(); | |
| 6889 break; | |
| 6890 case ptsKey: | |
| 6891 pt_labels = (pt_labels + 1) % 3; | |
| 6892 redraw(); | |
| 6893 break; | |
| 6894 case sequenceKey: | |
| 6895 draw_sequence ^= true; | |
| 6896 redraw(); | |
| 6897 break; | |
| 6898 case sortKey: | |
| 6899 draw_sort ^= true; | |
| 6900 redraw(); | |
| 6901 break; | |
| 6902 case stepKey: | |
| 6903 step_limit++; | |
| 6904 if (step_limit > stepMax) { | |
| 6905 step_limit = stepMax; | |
| 6906 } | |
| 6907 redraw(); | |
| 6908 break; | |
| 6909 case stepBackKey: | |
| 6910 step_limit--; | |
| 6911 if (step_limit < 0) { | |
| 6912 step_limit = 0; | |
| 6913 } | |
| 6914 redraw(); | |
| 6915 break; | |
| 6916 case xyKey: | |
| 6917 debug_xy ^= true; | |
| 6918 redraw(); | |
| 6919 break; | |
| 6920 case '-': | |
| 6921 scale /= 2; | |
| 6922 calcLeftTop(); | |
| 6923 redraw(); | |
| 6924 break; | |
| 6925 case '=': | |
| 6926 case '+': | |
| 6927 scale *= 2; | |
| 6928 calcLeftTop(); | |
| 6929 redraw(); | |
| 6930 break; | |
| 6931 case '?': | |
| 6932 draw_hints ^= true; | |
| 6933 if (draw_hints && !draw_legend) { | |
| 6934 draw_legend = true; | |
| 6935 } | |
| 6936 redraw(); | |
| 6937 break; | |
| 6938 case '/': | |
| 6939 draw_legend ^= true; | |
| 6940 redraw(); | |
| 6941 break; | |
| 6942 } | |
| 6943 } | |
| 6944 | |
| 6945 function doKeyDown(evt) { | |
| 6946 var char = evt.keyCode; | |
| 6947 switch (char) { | |
| 6948 case 37: // left arrow | |
| 6949 if (evt.shiftKey) { | |
| 6950 testIndex -= 9; | |
| 6951 } | |
| 6952 if (--testIndex < 0) | |
| 6953 testIndex = tests.length - 1; | |
| 6954 drawTop(); | |
| 6955 break; | |
| 6956 case 39: // right arrow | |
| 6957 if (evt.shiftKey) { | |
| 6958 testIndex += 9; | |
| 6959 } | |
| 6960 if (++testIndex >= tests.length) | |
| 6961 testIndex = 0; | |
| 6962 drawTop(); | |
| 6963 break; | |
| 6964 } | |
| 6965 } | |
| 6966 | |
| 6967 function calcXY() { | |
| 6968 var e = window.event; | |
| 6969 var tgt = e.target || e.srcElement; | |
| 6970 var left = tgt.offsetLeft; | |
| 6971 var top = tgt.offsetTop; | |
| 6972 mouseX = (e.clientX - left) / scale + srcLeft; | |
| 6973 mouseY = (e.clientY - top) / scale + srcTop; | |
| 6974 } | |
| 6975 | |
| 6976 function calcLeftTop() { | |
| 6977 srcLeft = mouseX - screenWidth / 2 / scale; | |
| 6978 srcTop = mouseY - screenHeight / 2 / scale; | |
| 6979 } | |
| 6980 | |
| 6981 function handleMouseClick() { | |
| 6982 if (!curve_t || !ptInTControl()) { | |
| 6983 calcXY(); | |
| 6984 calcLeftTop(); | |
| 6985 } | |
| 6986 redraw(); | |
| 6987 } | |
| 6988 | |
| 6989 function handleMouseOver() { | |
| 6990 calcXY(); | |
| 6991 if (!debug_xy) { | |
| 6992 return; | |
| 6993 } | |
| 6994 var num = mouseX.toFixed(decimal_places) + ", " + mouseY.toFixed(decimal_pla
ces); | |
| 6995 ctx.beginPath(); | |
| 6996 ctx.rect(300,100,num.length * 6,10); | |
| 6997 ctx.fillStyle="white"; | |
| 6998 ctx.fill(); | |
| 6999 ctx.font = "normal 10px Arial"; | |
| 7000 ctx.fillStyle="black"; | |
| 7001 ctx.textAlign = "left"; | |
| 7002 ctx.fillText(num, 300, 108); | |
| 7003 } | |
| 7004 | |
| 7005 function start() { | |
| 7006 for (var i = 0; i < testDivs.length; ++i) { | |
| 7007 tests[i] = null; | |
| 7008 } | |
| 7009 testIndex = 0; | |
| 7010 drawTop(); | |
| 7011 window.addEventListener('keypress', doKeyPress, true); | |
| 7012 window.addEventListener('keydown', doKeyDown, true); | |
| 7013 window.onresize = function() { | |
| 7014 drawTop(); | |
| 7015 } | |
| 7016 } | |
| 7017 | |
| 7018 </script> | |
| 7019 </head> | |
| 7020 | |
| 7021 <body onLoad="start();"> | |
| 7022 <canvas id="canvas" width="750" height="500" | |
| 7023 onmousemove="handleMouseOver()" | |
| 7024 onclick="handleMouseClick()" | |
| 7025 ></canvas > | |
| 7026 </body> | |
| 7027 </html> | |
| OLD | NEW |