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 |