caryclark@google.com | 0361032 | 2013-04-18 15:58:21 +0000 | [diff] [blame] | 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}} wtTs[1]=0.633333333 {{2.2208888888888882,1.6298518518518521}} wtTs[2]=1 {{6,1}} wnTs[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.94043907360367252}} wtTs[3]=0.867315861 {{4.2597986321159249,0.88613622701319239}} wtTs[4]=0.867316009 {{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.7367211708698314,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}} wtTs[1]=0.833333333 {{3.6574074074074132,0.99999999999999789}} wtTs[2]=1 {{5,1}} wnTs[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 otherT=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.94366908) 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.940439045) 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.886136234) 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.886136055) 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 oppValue=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 oppValue=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.96163988) 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.94366908) 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.940439343) 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.940439045) 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.886136234) 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.886136055) 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.283328113 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 windSum=? -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) tEnd=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 newOppSum=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) tEnd=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 windSum=-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.833333333 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 windValue=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.238109917 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.629851852 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) tEnd=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 newOppSum=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.691654855 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.633333333 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.0764226429 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 90 | markWinding id=4 (6,1 0,2) t=0.961639898 [3] (0.230160609,1.96163988) tEnd=1 newWindSum=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 windSum=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.238109917 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 windValue=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.961639898 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 windSum=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.633333333 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 windValue=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.83051493 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.83051493 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.803214143 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.833333333 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.860978176 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.830515061 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.860977989 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) tEnd=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.83051493 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.940439343);
|
| 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.83051493 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.860977989 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.867315861 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.912837717 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) tEnd=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.940439045);
|
| 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.860978176 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.830515061 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.912837923 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.867316009 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) tEnd=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.886136055);
|
| 195 | path.close();
|
| 196 | debugShowActiveSpans id=3 (0,2 1,5 1,0 6,1) t=0.867315861 (4.25979853,0.886136234) 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.886136055) 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.867316009 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.860978176 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.830515061 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.912837923 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.886136234);
|
| 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.912837717 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.83051493 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.860977989 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.867315861 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.940439045);
|
| 226 | debugShowActiveSpans id=1 (0,1 1,6 2,0 5,1) t=0.912837923 (4.25980043,0.886136055) 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}} wtTs[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}} wtTs[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 otherT=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 otherIndex=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 otherIndex=1 windSum=? windValue=1 oppValue=0
|
| 255 | debugShowActiveSpans id=2 (4,1 0,1) t=0.37037037 (2.51851845,1) tEnd=1 other=3 otherT=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 newWindSum=-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 newWindSum=-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 newWindSum=-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 oppSum=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 windSum=? 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 windSum=? 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 windSum=? 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 windSum=? 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 newOppSum=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}} wtTs[1]=0.285714286 {{1.8425655976676385,1.9212827988338192}} wtTs[2]=1 {{4,3}} wnTs[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}} wtTs[1]=0.285714286 {{1.9212827988338184,3.6180758017492725}} wtTs[2]=1 {{3,2}} wnTs[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 otherT=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 otherIndex=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 oppValue=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 otherT=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 otherIndex=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 windSum=? 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 334 | markWinding id=2 (4,3 0,1) t=0.539358601 [3] (1.84256566,1.92128277) tEnd=1 newWindSum=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 newOppSum=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 windSum=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 windValue=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.311007457 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.539358601 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) tEnd=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 newWindSum=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 otherIndex=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 oppValue=0
|
| 365 | debugShowActiveSpans id=3 (1,5 3,4 1,0 3,2) t=0 (1,5) tEnd=0.285714286 other=4 otherT=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 otherIndex=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.311007457 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 windSum=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 windValue=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 windValue=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.285714286 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.589885081 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 newWindSum=-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) tEnd=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.539358601 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.576935809 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.285714286 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 windValue=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 windValue=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 otherT=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.576935809 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 windSum=? 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 newWindSum=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 newOppSum=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 newWindSum=-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 windSum=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.576935809 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 newWindSum=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}} wtTs[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.0000000000000009,2.9999999999999996}} wnTs[0]=1 {{5,1}, {2,3}}
|
| 499 | debugShowLineIntersection wtTs[0]=0.454545455 {{5,1}, {2,3}} {{3.6363636363636362,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}} wtTs[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 otherT=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 otherIndex=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 otherT=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 oppValue=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 oppValue=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 windSum=? -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) tEnd=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 newOppSum=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) tEnd=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 newOppSum=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 windSum=-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 windValue=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 windSum=? -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 windSum=? 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 windSum=-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 windValue=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 windSum=? -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 windSum=? 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.445118816 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 newWindSum=-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 newOppSum=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 newOppSum=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 otherT=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 otherIndex=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 otherT=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 oppValue=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 oppValue=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 windSum=? 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.226611502 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 windValue=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 windSum=? 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.226611502 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 windValue=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 newWindSum=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 newOppSum=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) tEnd=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 otherT=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 otherIndex=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 otherT=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 oppValue=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 newWindSum=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.601219833 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 newOppSum=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.02591419);
|
| 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.226611502 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 windValue=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 windSum=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 otherIndex=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 newOppSum=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 newOppSum=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 windSum=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 windSum=-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 windValue=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 windSum=-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 newOppSum=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 windSum=-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 windValue=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 newWindSum=-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 otherIndex=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 windValue=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 windSum=-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}} wtTs[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.9999999999509201,3.9999999999999996}} wtTs[1]=0.521137715 {{3.1268262924910069,3.9974325146613827}} 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.2857142857142856,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}} wtTs[1]=0.333333333 {{3.1111111111111116,3.9259259259259256}} wtTs[2]=1 {{6,2}} wnTs[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 oppValue=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 otherT=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 oppValue=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 windValue=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 windSum=? 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 newWindSum=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 newOppSum=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 newWindSum=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 windSum=1 ?->? (max=?) done=1 tiny=0 opp=1
|
| 704 | debugShowSort [2] {{3,4}, {4,6}, {1,0}, {6,2}} tStart=0.580941393 tEnd=0.333333333 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 windValue=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 windSum=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.333333333 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 windValue=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) tEnd=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.492387914 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) tEnd=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 newOppSum=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 oppValue=0
|
| 719 | debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0 (3,4) tEnd=0.317571165 other=1 otherT=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 oppValue=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.580941393 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 windSum=? 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.317571165 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 windValue=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 newWindSum=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) tEnd=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.962962963 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 newWindSum=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 newWindSum=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 windSum=? 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 windSum=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 tEnd=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 newWindSum=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 oppValue=0
|
| 762 | debugShowActiveSpans id=3 (3,4 4,6 1,0 6,2) t=0 (3,4) tEnd=0.317571165 other=1 otherT=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 oppValue=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 windValue=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.580941393 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 windSum=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.317571165 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.962962963 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.333333333 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 newOppSum=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 newOppSum=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 newWindSum=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 windSum=? windValue=1
|
| 807 | markUnsortable id=4 (6,2 3,4) t=0.962962963 [2] (3.11111116,3.92592597) tEnd=1 newWindSum=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 tEnd=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 tEnd=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 sign=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 newWindSum=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 oppValue=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 windValue=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 windSum=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.333333333 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.492387914 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 newOppSum=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}} wtTs[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}} wtTs[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 otherT=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 otherIndex=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 other=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 otherT=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 otherIndex=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 other=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 windSum=? 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 879 | markWinding id=2 (5,4 0,1) t=0.468585327 [2] (2.65707326,2.594244) tEnd=1 newWindSum=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 newOppSum=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 windSum=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 newWindSum=-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 newWindSum=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) tEnd=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 newWindSum=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 windSum=-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) tEnd=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 newWindSum=-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 windSum=-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 newWindSum=-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}} wtTs[1]=0.333333333 {{1.4444444444444446,1.5185185185185186}} wtTs[2]=1 {{3,1}} wnTs[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.7142857142857142,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}} wtTs[1]=0.333333333 {{0.96296296296296258,2.5555555555555562}} wtTs[2]=1 {{2,1}} wnTs[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 otherT=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 oppValue=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 oppValue=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 otherT=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.55555558) 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 oppValue=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 oppValue=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 windSum=? -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) tEnd=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) tEnd=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 windSum=? 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.345547542 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 windValue=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 newOppSum=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) tEnd=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.142857143 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.37154579);
|
| 1031 | findNextOp simple
|
| 1032 | markDoneBinary id=4 (2,1 0,4) t=0 [0] (2,1) tEnd=0.123848615 newWindSum=-1 newOppSum=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.333333333 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.558102564 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.395188999 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) tEnd=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.345547542 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 windSum=? 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 windValue=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 newWindSum=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.518518519 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 windValue=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.333333333 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 windValue=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.560544414 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) tEnd=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.499843081 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.518518519 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.558102564 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 windSum=? 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 windValue=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 newWindSum=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 newOppSum=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.518518519 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 windValue=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.558102564 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 windSum=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.55555558);
|
| 1122 | findNextOp debugShowSort contourWinding=-1 oppContourWinding=1 sign=-1
|
| 1123 | debugShowSort [3] {{2,1}, {0,4}} tStart=0.142857143 tEnd=0.518518519 sign=-1 windValue=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 windSum=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 windValue=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 windValue=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.518518519 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 newOppSum=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}} wtTs[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.67692927
|
| 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}} wtTs[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 otherT=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 otherIndex=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 otherIndex=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 otherT=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 oppValue=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 oppValue=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.708782366 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.754165096 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) tEnd=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.93333707 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.67692927 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.135342164 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.67692927 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.135342164 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.93333707 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) tEnd=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) tEnd=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 oppSum=? 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) tEnd=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 otherT=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 otherIndex=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 otherIndex=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 otherT=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 oppValue=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 otherT=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 otherIndex=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 otherIndex=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 otherT=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 oppValue=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 oppSum=-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.93333707 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.67692927 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.135342164 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.754165096 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.708782366 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) tEnd=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 newWindSum=-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.754165096 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.11920524);
|
| 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}} wtTs[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.821660252
|
| 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}} wtTs[1]=0.5 {{2.625,2}} wtTs[2]=1 {{3,2}} wnTs[0]=1 {{3,2}, {0,2}} wnTs[1]=0.125 wnTs[2]=0
|
| 1314 | debugShowActiveSpans id=3 (0,4 2,3 2,0 4,2) t=0 (0,4) tEnd=0.341662805 other=4 otherT=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 otherT=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 other=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 otherIndex=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 otherT=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.856247521 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.768795564 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) tEnd=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) tEnd=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.768795564 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.856247521 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.856247521 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.768795564 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) tEnd=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 oppSum=? windSum=? windValue=1
|
| 1349 | markWinding 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=? 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) tEnd=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 otherT=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 otherT=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 other=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 otherIndex=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 otherT=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 newWindSum=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 newOppSum=-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 otherT=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 otherT=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 other=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 otherT=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 newWindSum=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 otherT=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 otherT=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 otherT=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.768795564 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.856247521 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 oppSum=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.467845317 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.341662805 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.856247521 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 windSum=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.856247521 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) tEnd=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.467845317 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.859816875 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.821660252 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.856247521 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 otherT=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) tEnd=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}} wtTs[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.846938928
|
| 1494 | debugShowCubicLineIntersection wtTs[0]=0.64696132 {{0,5}, {2,4}, {2,0}, {5,3}} {{2.7243714728959709,2}} wtTs[1]=0.819132784 {{3.6370281018311013,1.9999999999999996}} 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}} wtTs[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 otherT=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 oppValue=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 otherIndex=4 windSum=? windValue=1 oppValue=0
|
| 1502 | debugShowActiveSpans id=2 (4,2 0,2) t=0.028 (3.88800001,2) tEnd=0.0907429745 other=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.318907132 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 otherT=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.819132784 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 oppValue=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 windValue=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 oppSum=? 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 windValue=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 windValue=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 newWindSum=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.819132784 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.215060475 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.819132784 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.215060475 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.846938928 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) tEnd=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) tEnd=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 otherT=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.318907132 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 otherT=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.819132784 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 oppValue=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.846938928 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.64696132 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 windValue=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.819132784 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.846938928 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.819132784 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 windSum=? 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.404693629 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 windValue=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) tEnd=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.819132784 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.64696132 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.578517386 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 oppSum=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.819132784 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.215060475 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}} wtTs[1]=0.171428571 {{2.6532478134110784,5.1834402332361513}} wtTs[2]=1 {{6,1}} wnTs[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.0540540540540535,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}} wtTs[1]=0.628571429 {{4.1434402332361522,3.486064139941691}} wtTs[2]=1 {{5,4}} wnTs[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 otherT=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 oppValue=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 otherT=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 oppValue=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 windSum=? 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 1692 | markWinding id=2 (5,4 0,1) t=0.424519262 [3] (2.87740374,2.7264421) tEnd=1 newWindSum=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 newOppSum=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 windSum=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.171428571 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 windValue=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) tEnd=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.424519262 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) tEnd=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 newOppSum=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 newWindSum=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.503145036 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 windSum=? 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 windValue=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 newWindSum=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 newOppSum=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.836688047 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 newWindSum=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 windValue=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.503145036 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 windSum=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 windValue=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.628571429 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 windValue=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) tEnd=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.502974299 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.836688047 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 oppValue=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 windValue=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 windValue=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.628571429 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.502974299 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}} wtTs[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}} wtTs[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 otherT=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 oppValue=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 otherT=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 oppValue=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 windValue=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 windSum=? 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 windValue=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 newOppSum=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 newOppSum=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 newOppSum=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 windValue=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 windValue=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 windSum=? ?->? (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 windValue=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 windSum=? 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 windValue=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 newOppSum=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 newOppSum=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 otherT=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 oppValue=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 otherT=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 oppValue=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 oppSum=-1 windSum=1 windValue=1
|
| 1885 | markDoneBinary id=2 (3,2 0,2) t=0 [1] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1
|
| 1886 | markDoneBinary id=2 (3,2 0,2) t=0 [2] (3,2) tEnd=0 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1
|
| 1887 | markDoneBinary id=2 (3,2 0,2) t=0 [3] (3,2) tEnd=0.333333333 newWindSum=1 newOppSum=-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 windValue=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 windSum=? 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 windSum=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 windValue=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 windSum=? 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 windSum=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 newOppSum=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) tEnd=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 otherT=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 oppValue=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 otherT=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 oppValue=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 newOppSum=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 windSum=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 windValue=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 windSum=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 otherT=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 windValue=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 windValue=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 windSum=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 windValue=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 newOppSum=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 newOppSum=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 newOppSum=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 otherT=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 oppSum=1 windSum=-1 windValue=1
|
| 1973 | markDoneBinary id=4 (3,2 1,5) t=0 [1] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1
|
| 1974 | markDoneBinary id=4 (3,2 1,5) t=0 [2] (3,2) tEnd=0 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1
|
| 1975 | markDoneBinary id=4 (3,2 1,5) t=0 [3] (3,2) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=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}} wtTs[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}} wtTs[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 otherT=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 oppValue=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}} wtTs[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.7221068406383582,3.1607246577308117}} wnTs[0]=0.5 {{0,2}, {1,5}, {3,2}, {4,1}} wnTs[1]=0.438140761
|
| 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}} wtTs[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.122781788 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 otherT=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.651913155 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.74609417e-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.499999999 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) tEnd=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) tEnd=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 windSum=? ?->? (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 windSum=? ?->? (max=?) done=0 tiny=0 opp=0
|
| 2085 | debugShowSort [3] {{2,3}, {1,4}, {2,0}, {5,1}} tStart=0.651913155 tEnd=0.122781788 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.122781788 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 windSum=? 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 windSum=? -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 newOppSum=-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 newOppSum=-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) tEnd=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 oppSum=? windSum=? windValue=1
|
| 2095 | markWinding id=2 (4,1 0,2) t=0.351448724 [1] (2.59420514,1.35144877) tEnd=1 newWindSum=-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.122781788 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 otherT=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 newOppSum=-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 newOppSum=-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.122781788 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 otherT=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 oppSum=-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 windSum=-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.122781788 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 windSum=-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.35144877);
|
| 2134 | findNextOp simple
|
| 2135 | markDoneBinary id=2 (4,1 0,2) t=0.351448724 [1] (2.59420514,1.35144877) tEnd=1 newWindSum=-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.74609417e-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.499999999 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.651913155 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 newWindSum=-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.122781788 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 newWindSum=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 newWindSum=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.74609417e-09 tEnd=0.122781788 sign=-1 windValue=1 windSum=-1 -1->0 (max=-1) done=0 tiny=0 opp=0
|
| 2163 | debugShowSort [1] *** UNSORTABLE *** {{2,3}, {1,4}, {2,0}, {5,1}} tStart=1.74609417e-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.499999999 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.499999999 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.122781788 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}} wtTs[1]=0.181818182 {{0.64462809917355357,4.5702479338842981}} wtTs[2]=1 {{6,1}} wnTs[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}} wtTs[1]=0.772727273 {{4.4623403456048081,1.2150638617580767}} wtTs[2]=1 {{5,1}} wnTs[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 otherT=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.57024813) 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 otherT=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 oppValue=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 windSum=? -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) tEnd=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 newOppSum=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) tEnd=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 windSum=-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 windValue=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.26506234 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.370655527 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 newOppSum=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 otherT=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.57024813) 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 otherT=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 oppValue=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.26506234 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 windSum=-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 windValue=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) tEnd=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 windValue=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 windSum=? 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.326064989 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 newOppSum=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 newWindSum=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) tEnd=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.370655527 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.639696212 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 windValue=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.181818182 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.772727273 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 windSum=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.326064989 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 windSum=? 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 windSum=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.326064989 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 windSum=? 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 newWindSum=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 newOppSum=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 newOppSum=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 otherT=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}} wtTs[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.6000000000000003,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}} wtTs[1]=0.333333333 {{1.0370370370370368,3.8888888888888897}} wtTs[2]=1 {{2,1}} wnTs[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 otherT=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 otherT=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 oppValue=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 oppValue=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.962962963 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 windSum=? -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) tEnd=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) tEnd=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.355273081 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) tEnd=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.80793548);
|
| 2382 | findNextOp simple
|
| 2383 | markDoneBinary 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=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 windSum=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.397354824 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 2394 | markWinding id=2 (6,0 0,3) t=0.733333333 [2] (1.60000002,2.20000005) tEnd=1 newWindSum=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 newOppSum=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 windSum=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 windValue=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 newWindSum=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.733333333 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 newWindSum=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 windSum=? -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 newWindSum=-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) tEnd=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 windSum=-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 newWindSum=-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 windSum=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 windValue=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 newOppSum=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}} wtTs[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.0754128281547217,2.4315376490509659}} wtTs[1]=0.59235675 {{2.2015477442470841,1.1371488033015213}} 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}} wnTs[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}} wtTs[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 otherT=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 other=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 otherIndex=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 otherIndex=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 otherIndex=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 otherT=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 otherIndex=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 windValue=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) tEnd=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 windValue=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 windValue=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 newOppSum=-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 oppSum=? windSum=? windValue=1
|
| 2558 | markWinding id=4 (2,1 3,5) t=-0 [2] (2,1) tEnd=0.125 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1
|
| 2559 | markWinding 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=? windSum=? windValue=1
|
| 2560 | debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0 (3,5) tEnd=0.32953467 other=4 otherT=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 other=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 otherIndex=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 otherIndex=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 otherIndex=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 otherT=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 otherIndex=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 oppSum=-1 windSum=1 windValue=1
|
| 2577 | markDoneBinary id=2 (2,1 0,3) t=0 [1] (2,1) tEnd=0 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1
|
| 2578 | markDoneBinary id=2 (2,1 0,3) t=0 [2] (2,1) tEnd=1 newWindSum=1 newOppSum=-1 oppSum=-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.467845317 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 windValue=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 windValue=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.467845317 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 2591 | markWinding id=4 (2,1 3,5) t=0.349432839 [4] (2.34943295,2.3977313) tEnd=1 newWindSum=-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) tEnd=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 otherT=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 oppValue=0
|
| 2596 | debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 other=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 otherIndex=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 otherIndex=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 otherIndex=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 newWindSum=-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 oppValue=0
|
| 2609 | debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 other=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 otherIndex=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 otherIndex=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 otherIndex=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 oppValue=0
|
| 2620 | debugShowActiveSpans id=3 (3,5 1,2 3,0 2,1) t=0.5 (2.125,1.5) tEnd=0.59235675 other=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 otherIndex=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 otherIndex=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 otherIndex=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) tEnd=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 other=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 otherIndex=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 otherIndex=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 otherIndex=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 windSum=-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 windValue=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 oppSum=1 windSum=-1 windValue=1
|
| 2647 | markDoneBinary id=4 (2,1 3,5) t=0 [0] (2,1) tEnd=0 newWindSum=-1 newOppSum=1 oppSum=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.467845317 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 newWindSum=-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) tEnd=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 newWindSum=-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 newWindSum=-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}} wtTs[1]=0.583333333 {{3.1938657407407405,1.7754629629629624}} wtTs[2]=1 {{3,1}} wnTs[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}} wtTs[1]=0.166666667 {{0.7129629629629628,3.6435185185185186}} wtTs[2]=1 {{4,2}} wnTs[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 otherT=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 oppValue=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 oppValue=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 otherT=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.64351845) 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 oppValue=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 windSum=? -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) tEnd=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) tEnd=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 otherT=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 oppValue=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 oppValue=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 otherT=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.64351845) 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 oppValue=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 newOppSum=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 windSum=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.467349523 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 windValue=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 windSum=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.467349523 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 windValue=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.333333333 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 otherT=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 oppValue=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 oppValue=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 otherT=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.64351845) 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 oppValue=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) tEnd=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 windValue=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.583333333 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 windValue=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.583333333 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 windValue=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 windValue=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.821759259 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 newWindSum=-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.224411282 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 otherT=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 oppValue=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 oppValue=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 otherT=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.64351845) 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 oppValue=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 windValue=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 windSum=? -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.649488354 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 newWindSum=-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) tEnd=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.821759259 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 windSum=-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.649488354 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 windValue=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.166666667 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 windSum=-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 windValue=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) tEnd=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 newOppSum=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.553165169 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 windValue=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 windSum=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 windValue=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 windValue=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.553165169 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 windValue=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.583333333 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 windValue=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.224411282 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 otherT=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 oppValue=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.333333333 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 otherT=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 newWindSum=-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 windValue=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.583333333 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 windValue=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}} wtTs[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}} wnTs[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}} wtTs[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 otherT=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 otherIndex=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 otherIndex=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 otherIndex=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) tEnd=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) tEnd=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 oppSum=? 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.540876747 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) tEnd=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.613266786 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.77999616);
|
| 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 windSum=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.658239823 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 newOppSum=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 oppSum=? windSum=? windValue=1
|
| 3025 | markWinding id=2 (5,0 0,5) t=0.6 [2] (2,3) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? 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.936 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 newOppSum=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 windValue=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 newWindSum=-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 newOppSum=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 newOppSum=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 oppSum=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 oppSum=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}} wtTs[1]=0.454545455 {{4.0946656649135988,3.2839969947407956}} wtTs[2]=1 {{4,3}} wnTs[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}} wtTs[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 otherT=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 oppValue=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 oppValue=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 otherT=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 oppValue=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) tEnd=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 newOppSum=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) tEnd=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 newOppSum=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 windSum=-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.442158094 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 windValue=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 windSum=-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.442158094 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 windValue=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) tEnd=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.117647059 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 otherT=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 oppValue=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 oppValue=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 otherT=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 oppValue=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 windValue=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.454545455 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 windSum=? ?->? (max=?) done=0 tiny=0 opp=0
|
| 3157 | debugShowSort [3] {{5,6}, {3,5}, {5,0}, {4,3}} tStart=0.442158094 tEnd=0.297296392 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.454545455 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 windSum=? 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.297296392 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 windValue=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 newWindSum=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 newOppSum=-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) tEnd=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.182401651 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 otherT=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 oppValue=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 oppValue=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 otherT=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 oppValue=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 newWindSum=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 otherT=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 oppValue=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 oppValue=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 oppValue=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 otherT=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 oppValue=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 oppValue=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 oppValue=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.182401651 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 otherT=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 oppValue=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 oppValue=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.579011103 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.442158094 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.442158094 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.579011103 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 newWindSum=-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) tEnd=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 otherT=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 oppValue=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 newWindSum=-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 oppValue=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 windSum=? ?->? (max=?) done=0 tiny=0 opp=0
|
| 3241 | debugShowSort [1] {{4,3}, {5,6}} tStart=0.117647059 tEnd=0.0946656649 sign=1 windValue=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 windValue=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 windValue=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 windValue=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 windValue=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 windValue=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 windSum=? 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.434637102 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) tEnd=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 oppValue=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.434637102 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 newOppSum=-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}, {fX = 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}} wtTs[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}} wtTs[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 otherIndex=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 otherIndex=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 otherT=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 otherIndex=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 otherT=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 oppSum=? 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) tEnd=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 oppSum=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 newOppSum=-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 oppSum=? 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 newOppSum=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 otherIndex=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 otherT=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 otherIndex=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 otherT=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 windSum=? 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 windSum=? 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 newWindSum=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 otherIndex=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 otherT=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 otherIndex=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 newWindSum=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 windSum=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 windSum=? windValue=1
|
| 3362 | markUnsortable id=3 (2,3 1,6 2,1 5,0) t=0 [2] (2,3) tEnd=0.5 newWindSum=0 windSum=? windValue=1
|
| 3363 | markUnsortable id=4 (5,0 2,3) t=1 [3] (2,3) tEnd=1 newWindSum=0 windSum=? windValue=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 tEnd=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 tEnd=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 windValue=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 newOppSum=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 otherIndex=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 otherT=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 otherIndex=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 windSum=? 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 windSum=? windValue=1
|
| 3389 | markUnsortable id=1 (1,2 0,5 3,2 6,1) t=0.5 [2] (2,3) tEnd=0.500000029 newWindSum=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 windSum=? 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 tEnd=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 tEnd=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 tEnd=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 tEnd=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 otherT=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 otherIndex=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 newWindSum=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 windSum=? 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 newWindSum=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 tEnd=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 newWindSum=-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 otherT=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 otherIndex=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 oppSum=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 newWindSum=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 newWindSum=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 windSum=? 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.500000029 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.500000029 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 tEnd=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 tEnd=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}} wtTs[1]=0.666666667 {{4.8518518518518512,3.9629629629629628}} wtTs[2]=1 {{5,4}} wnTs[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.865208087
|
| 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}} wtTs[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 otherT=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 oppValue=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 otherT=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 windSum=? 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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 3483 | markWinding id=2 (5,4 1,3) t=0.330124882 [2] (3.67950058,3.66987514) tEnd=1 newWindSum=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 newOppSum=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 windSum=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.278899971 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 windValue=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.864850875 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.330124882 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 newWindSum=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.448187637 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.666666667 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 oppSum=? 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) tEnd=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) tEnd=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.855895664 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 windValue=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.278899971 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 windSum=? ?->? (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 windValue=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.278899971 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 windSum=? 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.855895664 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 newOppSum=-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) tEnd=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) tEnd=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 newOppSum=-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.865207906 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.865207887 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.865207906 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.865207887 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) tEnd=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) tEnd=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.865213351 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.865208087 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.855895664 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.864850875 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) tEnd=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.865207887 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.865207906 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.448187637 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.666666667 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.855895664 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 windValue=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.278899971 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 windSum=-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}} wnTs[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 otherIndex=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 otherIndex=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 otherIndex=3 windSum=? windValue=1 oppValue=0
|
| 3642 | debugShowActiveSpans id=3 (1,1 0,0) t=-0 (1,1) tEnd=1 other=2 otherT=1 otherIndex=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 otherIndex=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 otherIndex=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 otherIndex=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 otherIndex=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 windSum=? 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 oppSum=? windSum=? windValue=1
|
| 3653 | markWinding id=4 (0,0 1,1 0,2) t=0 [1] (0,0) tEnd=0 newWindSum=-1 newOppSum=0 oppSum=? 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 oppSum=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 oppSum=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 windSum=-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 windSum=? -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=? windValue=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=? windValue=1
|
| 3671 | markWinding id=3 (1,1 0,0) t=-0 [0] (1,1) tEnd=1 newWindSum=-1 windSum=? windValue=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 windValue=1
|
| 3674 | markDoneUnary id=4 (0,0 1,1 0,2) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windValue=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 windValue=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 windSum=-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 windValue=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 |
|
caryclark@google.com | b3f0921 | 2013-04-17 15:49:16 +0000 | [diff] [blame] | 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}} wtTs[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.9999999999999991,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.9999999999999991,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}} wtTs[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 other=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 other=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 other=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 otherT=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 otherT=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 otherT=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 otherT=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 other=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 other=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 other=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 otherT=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 otherT=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 otherT=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 otherT=0.5 otherIndex=1 windSum=? windValue=1 oppValue=0
|
| 3724 | SkOpSegment::findTop SkOpSegment::debugShowSort contourWinding=0 oppContourWinding=0 sign=1
|
| 3725 | SkOpSegment::debugShowSort [0] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=1 tEnd=0.5 sign=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 windValue=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 newWindSum=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 newWindSum=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 newWindSum=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 newWindSum=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 newOppSum=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 oppContourWinding=0 sign=-1
|
| 3735 | SkOpSegment::debugShowSort [1] {{3,5}, {1,6}, {5,0}, {3,1}} tStart=0.5 tEnd=1 sign=-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 windValue=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 sign=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 windValue=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 newOppSum=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 newOppSum=0 oppSum=? windSum=? windValue=1
|
| 3746 | SkOpSegment::markWinding id=4 (6,1 0,5) t=0.5 [3] (3,3) tEnd=1 newWindSum=1 newOppSum=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 newWindSum=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 newWindSum=-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 newOppSum=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 newWindSum=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 newWindSum=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 newWindSum=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 newWindSum=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 newOppSum=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 other=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 other=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 other=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 otherT=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 otherT=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 otherT=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 otherT=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 newWindSum=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 newWindSum=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 oppContourWinding=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 sign=-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 sign=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 windValue=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 sign=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 windValue=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 sign=-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 newOppSum=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 other=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 otherT=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 otherT=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 otherT=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 newWindSum=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 oppContourWinding=0 sign=-1
|
| 3819 | SkOpSegment::debugShowSort [5] {{6,1}, {0,5}} tStart=0.5 tEnd=1 sign=-1 windValue=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 sign=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 windValue=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 sign=-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 sign=-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 sign=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 newOppSum=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);
|
caryclark@google.com | 0361032 | 2013-04-18 15:58:21 +0000 | [diff] [blame] | 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}} wtTs[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.99999999999999978,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}} wtTs[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 otherT=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 otherIndex=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 otherIndex=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.684395636 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 other=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 oppSum=? windSum=? windValue=1
|
| 3875 | markWinding 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=? windSum=? windValue=1
|
| 3876 | markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSum=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 oppSum=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.320104156 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.565184359 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) tEnd=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 newOppSum=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.43057084);
|
| 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 windSum=-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.565184359 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 newWindSum=-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 newOppSum=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 oppSum=? 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 newOppSum=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 windValue=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 newOppSum=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 newOppSum=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 oppSum=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}} wtTs[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.99999999999999978,4}} wnTs[0]=0.8 {{5,0}, {0,5}}
|
| 3955 | debugShowLineIntersection wtTs[0]=0.8 {{5,0}, {0,5}} {{0.99999999999999978,4}} wnTs[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}} wtTs[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 otherT=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 otherIndex=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 otherIndex=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 otherIndex=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.684395636 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 other=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 oppSum=? windSum=? windValue=1
|
| 3975 | markWinding 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=? windSum=? windValue=1
|
| 3976 | markWinding id=2 (5,0 0,5) t=0 [0] (5,0) tEnd=0.8 newWindSum=1 newOppSum=0 oppSum=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 oppSum=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.320104156 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.565184359 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) tEnd=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 newOppSum=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.43057084);
|
| 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 windSum=-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.565184359 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 newWindSum=-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 newOppSum=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 oppSum=? windSum=? windValue=1
|
| 4020 | markWinding id=2 (5,0 0,5) t=0.8 [2] (1,4) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? 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 newOppSum=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 windValue=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 newOppSum=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 newOppSum=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 newOppSum=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 oppSum=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}} wtTs[1]=0.333333333 {{1.0000000000000002,2.0000000000000004}} wtTs[2]=1 {{1,0}} wnTs[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}} wnTs[1]=0.109171117 wnTs[2]=0.555550487
|
| 4062 | debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wtTs[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}} wtTs[1]=0.316987298 {{1,1.6054083424670758}} wnTs[0]=1 {{1,0}, {1,3}} wnTs[1]=0.535136114
|
| 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}} wtTs[1]=0.555555556 {{1.6652949245541837,1.0041152263374487}} wtTs[2]=1 {{2,0}} wnTs[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 otherT=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 otherT=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 otherT=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.666666667 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 otherT=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 otherT=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 otherT=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.334705075 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 windSum=? 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 newWindSum=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 newOppSum=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 newWindSum=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}} wtTs[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}} wnTs[1]=0.109171117 wnTs[2]=0.555550487
|
| 4108 | debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,2}, {3,1}, {1,0}} {{1,3}} wtTs[1]=0.666666667 {{1.6666666666666667,1}} wnTs[0]=1 {{2,0}, {1,3}} wnTs[1]=0.333333333
|
| 4109 | debugShowCubicLineIntersection wtTs[0]=0 {{1,3}, {0,1}, {3,1}, {2,0}} {{1,3}} wtTs[1]=0.316987298 {{1,1.6054083424670758}} wnTs[0]=1 {{1,0}, {1,3}} wnTs[1]=0.535136114
|
| 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}} wtTs[1]=0.555555556 {{1.6652949245541839,1.0041152263374484}} wtTs[2]=1 {{2,0}} wnTs[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 otherT=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 otherT=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 otherT=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.666666667 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 otherT=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 otherT=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 otherT=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.334705075 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 windSum=? 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 newWindSum=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 newOppSum=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 newWindSum=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 windSum=? ?->? (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.665291365 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 windValue=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.665291365 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 windValue=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 windSum=? 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) tEnd=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 newWindSum=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) tEnd=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 otherT=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 otherT=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 otherT=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.666666667 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 otherT=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 otherT=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 otherT=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.334705075 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.555555556 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.666666667 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.316987298 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.333333333 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.666666667 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.316987298 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.333333333 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.555555556 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.555550487 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 newWindSum=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) tEnd=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 otherT=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 otherT=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 otherT=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.666666667 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 otherT=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 otherT=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 otherT=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 oppValue=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.334705075 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.555550487 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.555550487 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 windSum=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.109171117 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 windValue=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.555550487 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 windSum=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.109171117 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 windValue=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) tEnd=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 newWindSum=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 otherT=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 otherT=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 otherT=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.666666667 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 otherT=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 otherT=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 otherT=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.334705075 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.316987298 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.333333333 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 newOppSum=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 newOppSum=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 newOppSum=-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 newOppSum=-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) tEnd=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.41257977);
|
| 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.195806707 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 windSum=? -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.665291365 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 windValue=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 newOppSum=-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 windSum=-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 windSum=? 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 newWindSum=-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 newOppSum=-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 windSum=-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 windValue=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.555550487 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 newWindSum=-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 windSum=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.665291365 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 windValue=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 newOppSum=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 windValue=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.555550487 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 windSum=-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.555555556 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.666666667 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.316987298 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.333333333 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.665291365 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 windValue=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.195806707 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 windSum=-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 newWindSum=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 windValue=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.555550487 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 windSum=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.109171117 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 otherIndex=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 windSum=? 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 windSum=? 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 windSum=? windValue=2
|
| 4434 | markDone id=3 (3,3 0,0) t=0.666666667 [2] (1,1) tEnd=1 newWindSum=1 windSum=? windValue=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=? windValue=1
|
| 4437 | markWinding id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=? windValue=1
|
| 4438 | markWinding id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=? windValue=1
|
| 4439 | markWinding id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=? windValue=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 windValue=1
|
| 4443 | markDoneUnary id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 windSum=1 windValue=1
|
| 4444 | markDoneUnary id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 windSum=1 windValue=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 windValue=1
|
| 4449 | markDoneUnary id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windValue=1
|
| 4450 | markDoneUnary id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=-1 windValue=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 windValue=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 windSum=-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 windSum=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 windSum=-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 windValue=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 windSum=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 windSum=-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 otherIndex=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 windSum= 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 windSum= 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 windSum=? windValue=2
|
| 4531 | markDone id=3 (3,3 0,0) t=0.666666667 [2] (1,1) tEnd=1 newWindSum=1 windSum=? windValue=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=? windValue=1
|
| 4534 | markWinding id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=? windValue=1
|
| 4535 | markWinding id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=? windValue=1
|
| 4536 | markWinding id=2 (1,0 3,3) t=0 [0] (1,0) tEnd=1 newWindSum=-1 windSum=? windValue=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 windValue=1
|
| 4540 | markDoneUnary id=4 (0,0 1,2) t=-0 [1] (0,0) tEnd=0 newWindSum=1 windSum=1 windValue=1
|
| 4541 | markDoneUnary id=4 (0,0 1,2) t=0 [2] (0,0) tEnd=1 newWindSum=1 windSum=1 windValue=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 windValue=1
|
| 4546 | markDoneUnary id=1 (0,0 1,0) t=0 [1] (0,0) tEnd=0 newWindSum=-1 windSum=-1 windValue=1
|
| 4547 | markDoneUnary id=1 (0,0 1,0) t=0 [2] (0,0) tEnd=1 newWindSum=-1 windSum=-1 windValue=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 windValue=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 windSum= 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 windSum= -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 windSum=-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 windValue=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_VAL\\}, \\{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::";
|
caryclark@google.com | b3f0921 | 2013-04-17 15:49:16 +0000 | [diff] [blame] | 4896 | if (line.lastIndexOf(opStart, 0) === 0) {
|
caryclark@google.com | 0361032 | 2013-04-18 15:58:21 +0000 | [diff] [blame] | 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_ACTIVE
|
| 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_SECT) {
|
| 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, "debugShowActiveSpans" +
|
| 4925 | " id=IDX LINE_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=IDX windSum=OPT windValue=IDX oppValue=IDX"
|
| 4926 | ) || match_regexp(line, lineNo, record, ACTIVE_QUAD_SPAN, "debugShowActiveSpans" +
|
| 4927 | " id=IDX QUAD_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=IDX windSum=OPT windValue=IDX oppValue=IDX"
|
| 4928 | ) || match_regexp(line, lineNo, record, ACTIVE_CUBIC_SPAN, "debugShowActiveSpans" +
|
| 4929 | " id=IDX CUBIC_VAL t=T_VAL PT_VAL tEnd=T_VAL other=IDX otherT=T_VAL otherIndex=IDX 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, "computed quadratics set 1"
|
| 4965 | ) || match_regexp(line, lineNo, record, COMPUTED_SET_2, "computed 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, "debugShowLineIntersection" +
|
| 4978 | " wtTs[0]=T_VAL LINE_VAL PT_VAL wnTs[0]=T_VAL LINE_VAL"
|
| 4979 | ) || match_regexp(line, lineNo, record, INTERSECT_LINE_2, "debugShowLineIntersection" +
|
| 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, "debugShowLineIntersection" +
|
| 4982 | " no intersect LINE_VAL LINE_VAL"
|
| 4983 | ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_LINE, "debugShowQuadLineIntersection" +
|
| 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, "debugShowQuadIntersection" +
|
| 4990 | " wtTs[0]=T_VAL QUAD_VAL PT_VAL wnTs[0]=T_VAL QUAD_VAL"
|
| 4991 | ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_2, "debugShowQuadIntersection" +
|
| 4992 | " wtTs[0]=T_VAL QUAD_VAL PT_VAL wtTs[1]=T_VAL wnTs[0]=T_VAL QUAD_VAL wnTs[1]=T_VAL"
|
| 4993 | ) || match_regexp(line, lineNo, record, INTERSECT_QUAD_NO, "debugShowQuadIntersection" +
|
| 4994 | " no intersect QUAD_VAL QUAD_VAL"
|
| 4995 | ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_LINE, "debugShowCubicLineIntersection" +
|
| 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 wnTs[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, "debugShowCubicIntersection" +
|
| 5004 | " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wnTs[0]=T_VAL CUBIC_VAL"
|
| 5005 | ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_2, "debugShowCubicIntersection" +
|
| 5006 | " wtTs[0]=T_VAL CUBIC_VAL PT_VAL wtTs[1]=T_VAL PT_VAL wnTs[0]=T_VAL CUBIC_VAL wnTs[1]=T_VAL"
|
| 5007 | ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_3, "debugShowCubicIntersection" +
|
| 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, "debugShowCubicIntersection" +
|
| 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_VAL"
|
| 5011 | ) || match_regexp(line, lineNo, record, INTERSECT_CUBIC_NO, "debugShowCubicIntersection" +
|
| 5012 | " no intersect CUBIC_VAL CUBIC_VAL"
|
| 5013 | ) || match_regexp(line, lineNo, record, INTERSECT_SELF_CUBIC, "debugShowCubicIntersection" +
|
| 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, "debugShowSort" +
|
| 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, "debugShowSort" +
|
| 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, "debugShowSort" +
|
| 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, "debugShowSort" +
|
| 5027 | " [IDX] UNSORTABLE LINE_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windSum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX"
|
| 5028 | ) || match_regexp(line, lineNo, record, SORT_QUAD_UNSORTABLE, "debugShowSort" +
|
| 5029 | " [IDX] UNSORTABLE QUAD_VAL tStart=T_VAL tEnd=T_VAL sign=NUM windValue=IDX windSum=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 windSum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX"
|
| 5032 | ) || match_regexp(line, lineNo, record, SORT_LINE_COMPACT, "debugShowSort" +
|
| 5033 | " [IDX] id=IDX line start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX windSum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX"
|
| 5034 | ) || match_regexp(line, lineNo, record, SORT_QUAD_COMPACT, "debugShowSort" +
|
| 5035 | " [IDX] id=IDX quad start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX windSum=OPT OPT->OPT (max=OPT) done=IDX tiny=IDX opp=IDX"
|
| 5036 | ) || match_regexp(line, lineNo, record, SORT_CUBIC_COMPACT, "debugShowSort" +
|
| 5037 | " [IDX] id=IDX cubic start=IDX PT_VAL end=IDX PT_VAL sign=NUM windValue=IDX windSum=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, "markWinding" +
|
| 5042 | " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM oppSum=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 oppSum=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, "markDoneBinary" +
|
| 5048 | " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM oppSum=OPT windSum=OPT windValue=IDX"
|
| 5049 | ) || match_regexp(line, lineNo, record, MARK_DONE_QUAD, "markDoneBinary" +
|
| 5050 | " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM newOppSum=NUM oppSum=OPT windSum=OPT windValue=IDX"
|
| 5051 | ) || match_regexp(line, lineNo, record, MARK_DONE_CUBIC, "markDoneBinary" +
|
| 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, "markUnsortable" +
|
| 5054 | " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=IDX"
|
| 5055 | ) || match_regexp(line, lineNo, record, MARK_UNSORTABLE_QUAD, "markUnsortable" +
|
| 5056 | " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=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 windValue=IDX"
|
| 5059 | ) || match_regexp(line, lineNo, record, MARK_SIMPLE_LINE, "markWinding" +
|
| 5060 | " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=IDX"
|
| 5061 | ) || match_regexp(line, lineNo, record, MARK_SIMPLE_QUAD, "markWinding" +
|
| 5062 | " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=IDX"
|
| 5063 | ) || match_regexp(line, lineNo, record, MARK_SIMPLE_CUBIC, "markWinding" +
|
| 5064 | " id=IDX CUBIC_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=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 windValue=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 windValue=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 windValue=IDX"
|
| 5071 | ) || match_regexp(line, lineNo, record, MARK_DONE_UNARY_LINE, "markDoneUnary" +
|
| 5072 | " id=IDX LINE_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=IDX"
|
| 5073 | ) || match_regexp(line, lineNo, record, MARK_DONE_UNARY_QUAD, "markDoneUnary" +
|
| 5074 | " id=IDX QUAD_VAL t=T_VAL [IDX] PT_VAL tEnd=T_VAL newWindSum=NUM windSum=OPT windValue=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 windValue=IDX"
|
| 5077 | );
|
| 5078 | break;
|
| 5079 | case REC_TYPE_OP:
|
| 5080 | found = match_regexp(line, lineNo, record, OP_DIFFERENCE, "op difference"
|
| 5081 | ) || match_regexp(line, lineNo, record, OP_INTERSECT, "op intersect"
|
| 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:" + fragType);
|
| 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: " + fragType);
|
| 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: " + fragType);
|
| 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 ? sectMax2 : 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: " + fragType);
|
| 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: " + fragType);
|
| 6227 | throw "stop execution";
|
| 6228 | }
|
| 6229 | break;
|
| 6230 | case REC_TYPE_ACTIVE:
|
| 6231 | if (!draw_active || (step_limit > 0 && testIndex < lastActive)) {
|
| 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: " + fragType);
|
| 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 intersection line #step
|
| 6314 | // draw_intersection == 3 : step == 0 ? show all : show intersection #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: " + fragType);
|
| 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[c1s + 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[c2s + 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 - testIndex) {
|
| 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 - testIndex) {
|
| 6455 | drawTAtPointUp(frags[f[idx]], frags[f[idx + 1]], frags[f[idx + 2]]);
|
| 6456 | drawTAtPointDown(frags[f[idx]], frags[f[idx + 1]], frags[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: " + fragType);
|
| 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: " + fragType);
|
| 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; recordIndex += 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: " + fragType);
|
| 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; ++angleIndex) {
|
| 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 - angleEnd + Math.PI / 18, true);
|
| 6612 | ctx.stroke();
|
| 6613 | var tx = centerX + Math.cos(angleStart) * (radius + (opp[angleIndex] ? 10 : 0));
|
| 6614 | var ty = centerY - Math.sin(angleStart) * (radius + (opp[angleIndex] ? 10 : 0));
|
| 6615 | ctx.fillText(windFrom[angleIndex], tx, ty + 5);
|
| 6616 | tx = centerX + Math.cos(angleEnd) * (radius + (opp[angleIndex] ? 10 : 0));
|
| 6617 | ty = centerY - Math.sin(angleEnd) * (radius + (opp[angleIndex] ? 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 * logRange);
|
| 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 ? sectCount : sectMax2, draw_intersection, intersectionKey);
|
| 6651 | drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_add ? addCount : addMax, 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, pathKey);
|
| 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 - 10, 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, pos * 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++ * 10);
|
| 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_places);
|
| 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>
|