Index: tools/pathops_visualizer.htm |
diff --git a/tools/pathops_visualizer.htm b/tools/pathops_visualizer.htm |
index f1288f0fe8454ae1ddc7b2844a0f525e435c9cc3..a95b1cf9cdf2a895cbd61ff3286afdbbfb4970b0 100644 |
--- a/tools/pathops_visualizer.htm |
+++ b/tools/pathops_visualizer.htm |
@@ -2,234 +2,399 @@ |
<head> |
<div height="0" hidden="true"> |
-<div id="loops59i"> |
-SkDCubic::ComplexBreak |
-{{{1, 2}, {7.3333330154418945, 1.6666666269302368}, {-7.5, 2}, {0, 6}}}, |
-inflectionsTs[0]=0.22755391 {{{5.6899562470344014, 1.5351137489099846}, {-0.59395324579271769, 2.2875990427916371}}}, |
-inflectionsTs[1]=0.134608255 {{{-1.7562572007939035, 2.2074401507711405}, {6.7824037520473279, 1.6104549548102116}}}, |
-maxCurvature[0]=0.184583395 {{{2.612965320628251, 1.8574526830515183}, {2.6213210132912339, 1.9473982945574213}}}, |
-maxCurvature[1]=0.764880287 {{{-0.3599143419711428, -3.5772335093952985}, {-3.9435828934112642, 11.072562225478482}}}, |
-maxCurvature[2]=0.500240448 {{{11.93379531543474, -0.87734455447864557}, {-11.814505983496176, 5.6289081865421942}}}, |
-seg=1 {{{0, 6}, {0.293506175f, 4.82597542f}, {1.04645705f, 3.96781874f}, {1.58881736f, 3.34967732f}}} |
-seg=2 {{{1.58881736f, 3.34967732f}, {2.89432383f, 1.86175978f}, {2.97965813f, 1.76450205f}, {-7.5f, 2}}} |
-seg=3 {{{-7.5f, 2}, {0, 6}}} |
-op sect |
-seg=4 {{{1, 2}, {2.16902828f, 1.93847215f}, {2.61688614f, 1.89965844f}, {2.61714315f, 1.90242553f}}} |
-seg=5 {{{2.61714315f, 1.90242553f}, {2.61827874f, 1.91464937f}, {-6.11562443f, 2.7383337f}, {0, 6}}} |
-seg=6 {{{0, 6}, {1, 2}}} |
-debugShowCubicIntersection wtTs[0]=1 {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} {{1.58881736,3.34967732}} wnTs[0]=0 {{{1.58881736,3.34967732}, {2.89432383,1.86175978}, {2.97965813,1.76450205}, {-7.5,2}}} |
-debugShowCubicLineIntersection wtTs[0]=0 {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} {{0,6}} wnTs[0]=1 {{{-7.5,2}, {0,6}}} |
-debugShowCubicLineIntersection wtTs[0]=1 {{{1.58881736,3.34967732}, {2.89432383,1.86175978}, {2.97965813,1.76450205}, {-7.5,2}}} {{-7.5,2}} wnTs[0]=0 {{{-7.5,2}, {0,6}}} |
-debugShowCubicIntersection wtTs[0]=0 {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} {{0,6}} wnTs[0]=1 {{{2.61714315,1.90242553}, {2.61827874,1.91464937}, {-6.11562443,2.7383337}, {0,6}}} |
-debugShowCubicLineIntersection wtTs[0]=0 {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} {{0,6}} wnTs[0]=0 {{{0,6}, {1,2}}} |
-debugShowCubicIntersection wtTs[0]=0.538493706 {{{1.58881736,3.34967732}, {2.89432383,1.86175978}, {2.97965813,1.76450205}, {-7.5,2}}} {{1.17718506,1.99055469}} wnTs[0]=0.0521913 {{{1,2}, {2.16902828,1.93847215}, {2.61688614,1.89965844}, {2.61714315,1.90242553}}} |
-SkOpSegment::addT insert t=0.538493706 segID=2 spanID=13 |
-SkOpSegment::addT insert t=0.0521913275 segID=4 spanID=14 |
-debugShowCubicIntersection wtTs[0]=0.481912781 {{{1.58881736,3.34967732}, {2.89432383,1.86175978}, {2.97965813,1.76450205}, {-7.5,2}}} {{1.58025348,2.04903817}} wnTs[0]=0.222514 {{{2.61714315,1.90242553}, {2.61827874,1.91464937}, {-6.11562443,2.7383337}, {0,6}}} |
-SkOpSegment::addT insert t=0.481912781 segID=2 spanID=15 |
-SkOpSegment::addT insert t=0.222514468 segID=5 spanID=16 |
-debugShowCubicLineIntersection no intersect {{{1.58881736,3.34967732}, {2.89432383,1.86175978}, {2.97965813,1.76450205}, {-7.5,2}}} {{{0,6}, {1,2}}} |
-debugShowCubicLineIntersection wtTs[0]=1 {{{2.61714315,1.90242553}, {2.61827874,1.91464937}, {-6.11562443,2.7383337}, {0,6}}} {{0,6}} wnTs[0]=1 {{{-7.5,2}, {0,6}}} |
-debugShowLineIntersection wtTs[0]=1 {{{-7.5,2}, {0,6}}} {{0,6}} wnTs[0]=0 {{{0,6}, {1,2}}} |
-debugShowCubicIntersection wtTs[0]=1 {{{1,2}, {2.16902828,1.93847215}, {2.61688614,1.89965844}, {2.61714315,1.90242553}}} {{2.61714315,1.90242553}} wnTs[0]=0 {{{2.61714315,1.90242553}, {2.61827874,1.91464937}, {-6.11562443,2.7383337}, {0,6}}} |
-debugShowCubicLineIntersection wtTs[0]=0 {{{1,2}, {2.16902828,1.93847215}, {2.61688614,1.89965844}, {2.61714315,1.90242553}}} {{1,2}} wnTs[0]=1 {{{0,6}, {1,2}}} |
-debugShowCubicLineIntersection wtTs[0]=0.293280033 {{{2.61714315,1.90242553}, {2.61827874,1.91464937}, {-6.11562443,2.7383337}, {0,6}}} {{0.959100008,2.16359997}} wtTs[1]=1 {{0,6}} wnTs[0]=0.9591 {{{0,6}, {1,2}}} wnTs[1]=0 |
-SkOpSegment::addT insert t=0.293280033 segID=5 spanID=17 |
-SkOpSegment::addT insert t=0.959100004 segID=6 spanID=18 |
-SkOpSegment::sortAngles [1] tStart=0 [1] |
-SkOpAngle::after [1/1] 5/5 tStart=0 tEnd=1 < [5/13] 13/5 tStart=1 tEnd=0.293280033 < [6/14] 5/5 tStart=0 tEnd=0.959100004 F 7 |
-SkOpAngle::afterPart {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} id=1 |
-SkOpAngle::afterPart {{{0,6}, {-4.3220339,3.6949153}, {-1.22742501,2.60748826}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::afterPart {{{0,6}, {0.959100008,2.16359997}}} id=6 |
-SkOpAngle::after [1/1] 5/5 tStart=0 tEnd=1 < [3/6] 13/13 tStart=1 tEnd=0 < [6/14] 5/5 tStart=0 tEnd=0.959100004 F 5 |
-SkOpAngle::afterPart {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} id=1 |
-SkOpAngle::afterPart {{{0,6}, {-7.5,2}}} id=3 |
-SkOpAngle::afterPart {{{0,6}, {0.959100008,2.16359997}}} id=6 |
-SkOpAngle::after [6/14] 5/5 tStart=0 tEnd=0.959100004 < [3/6] 13/13 tStart=1 tEnd=0 < [5/13] 13/5 tStart=1 tEnd=0.293280033 F 7 |
-SkOpAngle::afterPart {{{0,6}, {0.959100008,2.16359997}}} id=6 |
-SkOpAngle::afterPart {{{0,6}, {-7.5,2}}} id=3 |
-SkOpAngle::afterPart {{{0,6}, {-4.3220339,3.6949153}, {-1.22742501,2.60748826}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::after [5/13] 13/5 tStart=1 tEnd=0.293280033 < [3/6] 13/13 tStart=1 tEnd=0 < [1/1] 5/5 tStart=0 tEnd=1 T 7 |
-SkOpAngle::afterPart {{{0,6}, {-4.3220339,3.6949153}, {-1.22742501,2.60748826}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::afterPart {{{0,6}, {-7.5,2}}} id=3 |
-SkOpAngle::afterPart {{{0,6}, {0.293506175,4.82597542}, {1.04645705,3.96781874}, {1.58881736,3.34967732}}} id=1 |
-SkOpSegment::sortAngles [2] tStart=0.481912781 [15] |
-SkOpAngle::after [2/2] 29/25 tStart=0.481912781 tEnd=0 < [5/9] 1/1 tStart=0.222514468 tEnd=0 < [2/3] 13/13 tStart=0.481912781 tEnd=0.538493706 T 4 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.5637252,2.23855117}, {2.21795761,2.63263084}, {1.58881736,3.34967732}}} id=2 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.18515331,1.94804315}, {2.61739584,1.90514551}, {2.61714315,1.90242553}}} id=5 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.464785,2.02678763}, {1.33099307,2.007357}, {1.17718506,1.99055469}}} id=2 |
-SkOpAngle::after [2/2] 29/25 tStart=0.481912781 tEnd=0 < [5/10] 17/17 tStart=0.222514468 tEnd=0.293280033 < [5/9] 1/1 tStart=0.222514468 tEnd=0 F 4 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.5637252,2.23855117}, {2.21795761,2.63263084}, {1.58881736,3.34967732}}} id=2 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.38787913,2.0811573}, {1.178042,2.11915237}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.18515331,1.94804315}, {2.61739584,1.90514551}, {2.61714315,1.90242553}}} id=5 |
-SkOpAngle::after [5/9] 1/1 tStart=0.222514468 tEnd=0 < [5/10] 17/17 tStart=0.222514468 tEnd=0.293280033 < [2/3] 13/13 tStart=0.481912781 tEnd=0.538493706 F 4 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.18515331,1.94804315}, {2.61739584,1.90514551}, {2.61714315,1.90242553}}} id=5 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.38787913,2.0811573}, {1.178042,2.11915237}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.464785,2.02678763}, {1.33099307,2.007357}, {1.17718506,1.99055469}}} id=2 |
-SkOpAngle::after [2/3] 13/13 tStart=0.481912781 tEnd=0.538493706 < [5/10] 17/17 tStart=0.222514468 tEnd=0.293280033 < [2/2] 29/25 tStart=0.481912781 tEnd=0 T 4 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.464785,2.02678763}, {1.33099307,2.007357}, {1.17718506,1.99055469}}} id=2 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {1.38787913,2.0811573}, {1.178042,2.11915237}, {0.959100008,2.16359997}}} id=5 |
-SkOpAngle::afterPart {{{1.58025348,2.04903817}, {2.5637252,2.23855117}, {2.21795761,2.63263084}, {1.58881736,3.34967732}}} id=2 |
-SkOpSegment::sortAngles [2] tStart=0.538493706 [13] |
-SkOpAngle::after [2/4] 29/29 tStart=0.538493706 tEnd=0.481912781 < [4/7] 17/17 tStart=0.0521913275 tEnd=0 < [2/5] 13/17 tStart=0.538493706 tEnd=1 F 11 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {1.33099307,2.007357}, {1.464785,2.02678763}, {1.58025348,2.04903817}}} id=2 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {1.12006187,1.99363948}, {1.06101314,1.99678878}, {1,2}}} id=4 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {-0.0773608463,1.85350547}, {-2.66357181,1.89131621}, {-7.5,2}}} id=2 |
-SkOpAngle::after [2/4] 29/29 tStart=0.538493706 tEnd=0.481912781 < [4/8] 1/1 tStart=0.0521913275 tEnd=1 < [2/5] 13/17 tStart=0.538493706 tEnd=1 T 4 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {1.33099307,2.007357}, {1.464785,2.02678763}, {1.58025348,2.04903817}}} id=2 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {2.21455765,1.93453399}, {2.61689955,1.89980286}, {2.61714315,1.90242553}}} id=4 |
-SkOpAngle::afterPart {{{1.17718506,1.99055469}, {-0.0773608463,1.85350547}, {-2.66357181,1.89131621}, {-7.5,2}}} id=2 |
-SkOpSegment::sortAngles [3] tStart=1 [6] |
-SkOpSegment::sortAngles [4] tStart=0.0521913275 [14] |
-SkOpSegment::sortAngles [5] tStart=0.222514468 [16] |
-SkOpSegment::sortAngles [5] tStart=0.293280033 [17] |
-SkOpAngle::after [5/11] 1/1 tStart=0.293280033 tEnd=0.222514468 < [6/15] 21/21 tStart=0.959100004 tEnd=0 < [5/12] 17/21 tStart=0.293280033 tEnd=1 F 11 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {1.178042,2.11915237}, {1.38787913,2.0811573}, {1.58025348,2.04903817}}} id=5 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {0,6}}} id=6 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {-1.22742501,2.60748826}, {-4.3220339,3.6949153}, {0,6}}} id=5 |
-SkOpAngle::after [5/11] 1/1 tStart=0.293280033 tEnd=0.222514468 < [6/16] 5/5 tStart=0.959100004 tEnd=1 < [5/12] 17/21 tStart=0.293280033 tEnd=1 T 4 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {1.178042,2.11915237}, {1.38787913,2.0811573}, {1.58025348,2.04903817}}} id=5 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {1,2}}} id=6 |
-SkOpAngle::afterPart {{{0.959100008,2.16359997}, {-1.22742501,2.60748826}, {-4.3220339,3.6949153}, {0,6}}} id=5 |
-SkOpSegment::sortAngles [5] tStart=1 [10] |
-SkOpSegment::sortAngles [6] tStart=0 [11] |
-SkOpSegment::sortAngles [6] tStart=0.959100004 [18] |
-SkOpSegment::debugShowActiveSpans id=1 (0,6 0.293506175,4.82597542 1.04645705,3.96781874 1.58881736,3.34967732) t=0 (0,6) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0 (1.58881736,3.34967732) tEnd=0.481912781 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.481912781 (1.58025348,2.04903817) tEnd=0.538493706 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.538493706 (1.17718506,1.99055469) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=3 (-7.5,2 0,6) t=0 (-7.5,2) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0 (1,2) tEnd=0.0521913275 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0.0521913275 (1.17718506,1.99055469) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0 (2.61714315,1.90242553) tEnd=0.222514468 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.222514468 (1.58025348,2.04903817) tEnd=0.293280033 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.293280033 (0.959100008,2.16359997) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=6 (0,6 1,2) t=0 (0,6) tEnd=0.959100004 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=6 (0,6 1,2) t=0.959100004 (0.959100008,2.16359997) tEnd=1 windSum=? windValue=1 oppValue=0 |
--SkOpSegment::findTop- baseAngle |
-SkOpAngle::dumpOne [4/8] next=2/5 sect=1/1 s=0.0521913275 [14] e=1 [8] sgn=-1 windVal=1 windSum=? operand |
-SkOpAngle::dumpOne [2/5] next=4/7 sect=13/17 s=0.538493706 [13] e=1 [4] sgn=-1 windVal=1 windSum=? stop |
-SkOpAngle::dumpOne [4/7] next=2/4 sect=17/17 s=0.0521913275 [14] e=0 [7] sgn=1 windVal=1 windSum=? operand |
-SkOpAngle::dumpOne [2/4] next=4/8 sect=29/29 s=0.538493706 [13] e=0.481912781 [15] sgn=1 windVal=1 windSum=? stop |
--SkOpSegment::findTop- firstAngle |
-SkOpAngle::dumpOne [4/8] next=2/5 sect=1/1 s=0.0521913275 [14] e=1 [8] sgn=-1 windVal=1 windSum=? operand |
-SkOpAngle::dumpOne [2/5] next=4/7 sect=13/17 s=0.538493706 [13] e=1 [4] sgn=-1 windVal=1 windSum=? stop |
-SkOpAngle::dumpOne [4/7] next=2/4 sect=17/17 s=0.0521913275 [14] e=0 [7] sgn=1 windVal=1 windSum=? operand |
-SkOpAngle::dumpOne [2/4] next=4/8 sect=29/29 s=0.538493706 [13] e=0.481912781 [15] sgn=1 windVal=1 windSum=? stop |
-SkDCubic::clockwise pt1dist=0.00263265113 pt2dist=-0.00745519926 |
-SkOpSegment::findTop id=4 s=1 e=0.0521913275 (+) cw=1 swap=0 inflections=1 monotonic=0 |
-SkOpSegment::markWinding id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0.0521913275 [14] (1.17718506,1.99055469) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markWinding id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0.0521913275 [14] (1.17718506,1.99055469) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::markWinding id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0 [9] (2.61714315,1.90242553) tEnd=0.222514468 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::activeOp id=4 t=1 tEnd=0.0521913275 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 |
-SkOpSegment::markDone id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0.0521913275 [14] (1.17718506,1.99055469) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
-bridgeOp chase.append id=4 windSum=1 |
-SkOpSegment::markWinding id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.538493706 [13] (1.17718506,1.99055469) tEnd=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markWinding id=3 (-7.5,2 0,6) t=0 [5] (-7.5,2) tEnd=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=3 span=6 |
-SkOpSegment::markWinding id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0 [7] (1,2) tEnd=0.0521913275 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markWinding id=6 (0,6 1,2) t=0.959100004 [18] (0.959100008,2.16359997) tEnd=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=6 span=18 windSum=1 |
-SkOpSegment::markWinding id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.481912781 [15] (1.58025348,2.04903817) tEnd=0.538493706 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=2 span=15 windSum=1 |
-SkOpSegment::debugShowActiveSpans id=1 (0,6 0.293506175,4.82597542 1.04645705,3.96781874 1.58881736,3.34967732) t=0 (0,6) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0 (1.58881736,3.34967732) tEnd=0.481912781 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.481912781 (1.58025348,2.04903817) tEnd=0.538493706 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.538493706 (1.17718506,1.99055469) tEnd=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=3 (-7.5,2 0,6) t=0 (-7.5,2) tEnd=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0 (1,2) tEnd=0.0521913275 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0 (2.61714315,1.90242553) tEnd=0.222514468 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.222514468 (1.58025348,2.04903817) tEnd=0.293280033 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.293280033 (0.959100008,2.16359997) tEnd=1 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=6 (0,6 1,2) t=0 (0,6) tEnd=0.959100004 windSum=? windValue=1 oppValue=0 |
-SkOpSegment::debugShowActiveSpans id=6 (0,6 1,2) t=0.959100004 (0.959100008,2.16359997) tEnd=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::activeOp id=2 t=0.538493706 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1 |
-SkOpSegment::findNextOp simple |
-SkOpSegment::markDone id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.538493706 [13] (1.17718506,1.99055469) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-bridgeOp current id=2 from=(1.17718506,1.99055469) to=(-7.5,2) |
-path.moveTo(1.17718506,1.99055469); |
-path.cubicTo(-0.0773608461,1.85350549, -2.66357183,1.89131618, -7.5,2); |
-SkOpSegment::markWinding id=1 (0,6 0.293506175,4.82597542 1.04645705,3.96781874 1.58881736,3.34967732) t=0 [1] (0,6) tEnd=1 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markWinding id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0 [3] (1.58881736,3.34967732) tEnd=0.481912781 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=2 span=15 windSum=1 |
-SkOpSegment::markWinding id=6 (0,6 1,2) t=0 [11] (0,6) tEnd=0.959100004 newWindSum=2 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=6 span=18 windSum=1 |
-SkOpSegment::markWinding id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.293280033 [17] (0.959100008,2.16359997) tEnd=1 newWindSum=2 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=5 span=17 windSum=2 |
-SkOpSegment::findNextOp |
-SkOpAngle::dumpOne [3/6] next=1/1 sect=13/13 s=1 [6] e=0 [5] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=1 |
-SkOpAngle::dumpOne [1/1] next=6/14 sect=5/5 s=0 [1] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=1 |
-SkOpAngle::dumpOne [6/14] next=5/13 sect=5/5 s=0 [11] e=0.959100004 [18] sgn=-1 windVal=1 windSum=2 oppVal=0 oppSum=1 operand |
-SkOpAngle::dumpOne [5/13] next=3/6 sect=13/5 s=1 [10] e=0.293280033 [17] sgn=1 windVal=1 windSum=2 oppVal=0 oppSum=1 operand |
-SkOpSegment::activeOp id=1 t=0 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1 |
-SkOpSegment::findNextOp chase.append segment=2 span=15 windSum=1 |
-SkOpSegment::activeOp id=6 t=0 tEnd=0.959100004 op=sect miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 |
-SkOpSegment::markDone id=6 (0,6 1,2) t=0 [11] (0,6) tEnd=0.959100004 newWindSum=2 newOppSum=1 oppSum=1 windSum=2 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp chase.append segment=6 span=18 windSum=1 |
-SkOpSegment::activeOp id=5 t=1 tEnd=0.293280033 op=sect miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 |
-SkOpSegment::markDone id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.293280033 [17] (0.959100008,2.16359997) tEnd=1 newWindSum=2 newOppSum=1 oppSum=1 windSum=2 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp chase.append segment=5 span=17 windSum=2 |
-SkOpSegment::markDone id=3 (-7.5,2 0,6) t=0 [5] (-7.5,2) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp from:[3] to:[1] start=43971536 end=43971632 |
-bridgeOp current id=3 from=(-7.5,2) to=(0,6) |
-SkOpSegment::findNextOp simple |
-SkOpSegment::markDone id=1 (0,6 0.293506175,4.82597542 1.04645705,3.96781874 1.58881736,3.34967732) t=0 [1] (0,6) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-bridgeOp current id=1 from=(0,6) to=(1.58881736,3.34967732) |
-path.lineTo(0,6); |
-path.cubicTo(0.293506175,4.82597542, 1.04645705,3.96781874, 1.58881736,3.34967732); |
-SkOpSegment::markWinding id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.222514468 [16] (1.58025348,2.04903817) tEnd=0.293280033 newWindSum=1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
-SkOpSegment::markAngle last segment=5 span=17 windSum=2 |
-SkOpSegment::findNextOp |
-SkOpAngle::dumpOne [2/2] next=5/9 sect=29/25 s=0.481912781 [15] e=0 [3] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=1 |
-SkOpAngle::dumpOne [5/9] next=2/3 sect=1/1 s=0.222514468 [16] e=0 [9] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 operand |
-SkOpAngle::dumpOne [2/3] next=5/10 sect=13/13 s=0.481912781 [15] e=0.538493706 [13] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
-SkOpAngle::dumpOne [5/10] next=2/2 sect=17/17 s=0.222514468 [16] e=0.293280033 [17] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=1 operand |
-SkOpSegment::activeOp id=5 t=0.222514468 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 |
-SkOpSegment::markDone id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0 [9] (2.61714315,1.90242553) tEnd=0.222514468 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::activeOp id=2 t=0.481912781 tEnd=0.538493706 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0 |
-SkOpSegment::markDone id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0.481912781 [15] (1.58025348,2.04903817) tEnd=0.538493706 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::activeOp id=5 t=0.222514468 tEnd=0.293280033 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 |
-SkOpSegment::markDone id=2 (1.58881736,3.34967732 2.89432383,1.86175978 2.97965813,1.76450205 -7.5,2) t=0 [3] (1.58881736,3.34967732) tEnd=0.481912781 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp from:[2] to:[5] start=2579180 end=2579276 |
-bridgeOp current id=2 from=(1.58881736,3.34967732) to=(1.58025348,2.04903817) |
-path.cubicTo(2.2179575,2.63263083, 2.56372523,2.23855114, 1.58025348,2.04903817); |
-SkOpSegment::findNextOp |
-SkOpAngle::dumpOne [5/11] next=6/16 sect=1/1 s=0.293280033 [17] e=0.222514468 [16] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=1 operand |
-SkOpAngle::dumpOne [6/16] next=5/12 sect=5/5 s=0.959100004 [18] e=1 [12] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=1 operand |
-SkOpAngle::dumpOne [5/12] next=6/15 sect=17/21 s=0.293280033 [17] e=1 [10] sgn=-1 windVal=1 windSum=2 oppVal=0 oppSum=1 done operand |
-SkOpAngle::dumpOne [6/15] next=5/11 sect=21/21 s=0.959100004 [18] e=0 [11] sgn=1 windVal=1 windSum=2 oppVal=0 oppSum=1 done operand |
-SkOpSegment::activeOp id=6 t=0.959100004 tEnd=1 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 |
-SkOpSegment::activeOp id=5 t=0.293280033 tEnd=1 op=sect miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 |
-SkOpSegment::activeOp id=6 t=0.959100004 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=1 suTo=1 result=0 |
-SkOpSegment::markDone id=5 (2.61714315,1.90242553 2.61827874,1.91464937 -6.11562443,2.7383337 0,6) t=0.222514468 [16] (1.58025348,2.04903817) tEnd=0.293280033 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp from:[5] to:[6] start=2579372 end=2578764 |
-bridgeOp current id=5 from=(1.58025348,2.04903817) to=(0.959100008,2.16359997) |
-path.cubicTo(1.38787913,2.08115721, 1.17804205,2.11915231, 0.959100008,2.16359997); |
-SkOpSegment::findNextOp simple |
-SkOpSegment::markDone id=6 (0,6 1,2) t=0.959100004 [18] (0.959100008,2.16359997) tEnd=1 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-bridgeOp current id=6 from=(0.959100008,2.16359997) to=(1,2) |
-SkOpSegment::findNextOp |
-SkOpAngle::dumpOne [4/7] next=2/4 sect=17/17 s=0.0521913275 [14] e=0 [7] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=1 operand |
-SkOpAngle::dumpOne [2/4] next=4/8 sect=29/29 s=0.538493706 [13] e=0.481912781 [15] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done stop |
-SkOpAngle::dumpOne [4/8] next=2/5 sect=1/1 s=0.0521913275 [14] e=1 [8] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 done operand |
-SkOpAngle::dumpOne [2/5] next=4/7 sect=13/17 s=0.538493706 [13] e=1 [4] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=1 done stop |
-SkOpSegment::activeOp id=2 t=0.538493706 tEnd=0.481912781 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0 |
-SkOpSegment::activeOp id=4 t=0.0521913275 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 |
-SkOpSegment::activeOp id=2 t=0.538493706 tEnd=1 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1 |
-SkOpSegment::markDone id=4 (1,2 2.16902828,1.93847215 2.61688614,1.89965844 2.61714315,1.90242553) t=0 [7] (1,2) tEnd=0.0521913275 newWindSum=1 newOppSum=1 oppSum=1 windSum=1 windValue=1 oppValue=0 |
-SkOpSegment::findNextOp from:[4] to:[2] start=2578892 end=2577740 |
-bridgeOp current id=4 from=(1,2) to=(1.17718506,1.99055469) |
-path.lineTo(1,2); |
-path.cubicTo(1.0610131,1.99678874, 1.12006187,1.99363947, 1.17718506,1.99055469); |
-path.close(); |
-</div> |
- |
-</div> |
- |
-<script type="text/javascript"> |
- |
-var testDivs = [ |
- loops59i, |
+<div id="cubics45u_release"> |
+seg=-1 {{{1, 3}, {1.84861219f, 5.54583645f}, {3.41736698f, 3.77081728f}, {4.48402119f, 2.56391668f}}} |
+seg=-1 {{{4.48402119f, 2.56391668f}, {4.67430639f, 2.34861207f}, {4.84861231f, 2.15138769f}, {5, 2}}} |
+seg=-1 {{{5, 2}, {1, 3}}} |
+op union |
+seg=-1 {{{3, 4}, {2.61882615f, 4.38117361f}, {2.52823925f, 4.03588009f}, {2.7282393f, 3.51794004f}}} |
+seg=-1 {{{2.7282393f, 3.51794004f}, {3.05293441f, 2.67707705f}, {4.14352131f, 1.38117373f}, {6, 2}}} |
+seg=-1 {{{6, 2}, {3, 4}}} |
+debugShowCubicIntersection wtTs[0]=1 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{2.7282393,3.51794004}} wnTs[0]=0 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{3,4}} wnTs[0]=1 {{{6,2}, {3,4}}} |
+debugShowCubicLineIntersection wtTs[0]=1 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{6,2}} wnTs[0]=0 {{{6,2}, {3,4}}} |
+debugShowCubicIntersection wtTs[0]=0 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{3,4}} wtTs[1]=0.322114632 {{2.72210693,4.16072464}} wnTs[0]=0.589197 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} wnTs[1]=0.516302729 |
+SkOpSegment::addT insert t=0.589197265 segID=-1 spanID=-1 |
+SkOpSegment::addT insert t=0.322114632 segID=-1 spanID=-1 |
+SkOpSegment::addT insert t=0.516302729 segID=-1 spanID=-1 |
+debugShowCubicIntersection no intersect {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} |
+debugShowCubicIntersection no intersect {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0.437504678 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{3.5942049,2.35144877}} wnTs[0]=0.351449 {{{5,2}, {1,3}}} |
+SkOpSegment::addT insert t=0.437504678 segID=-1 spanID=-1 |
+SkOpSegment::addT insert t=0.351448746 segID=-1 spanID=-1 |
+debugShowCubicLineIntersection wtTs[0]=0.589250227 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{3.00020218,3.99986529}} wnTs[0]=0.999933 {{{6,2}, {3,4}}} |
+SkOpSegment::addT insert t=0.999932596 segID=-1 spanID=-1 |
+SkOpSegment::addT insert t=0.589250227 segID=-1 spanID=-1 |
+debugShowCubicLineIntersection no intersect {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} {{{6,2}, {3,4}}} |
+debugShowLineIntersection no intersect {{{6,2}, {3,4}}} {{{5,2}, {1,3}}} |
+debugShowCubicIntersection wtTs[0]=1 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{4.48402119,2.56391668}} wnTs[0]=0 {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{1,3}} wnTs[0]=1 {{{5,2}, {1,3}}} |
+debugShowCubicLineIntersection wtTs[0]=1 {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} {{5,2}} wnTs[0]=0 {{{5,2}, {1,3}}} |
+SkOpSegment::sortAngles [-1] tStart=0 [-1] |
+SkOpAngle::after [-1/-1] 18/17 tStart=0 tEnd=0.322114632 < [-1/-1] 1/1 tStart=0.589197265 tEnd=0.589250227 < [-1/-1] 17/17 tStart=0.589197265 tEnd=0.516302729 T 5 |
+SkOpAngle::afterPart {{{3,4}, {2.87721833,4.1227816}, {2.78458726,4.17018661}, {2.72210693,4.16072464}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {2.9072112,4.06185918}, {2.81442231,4.11606536}, {2.72210693,4.16072464}}} id=-1 |
+SkOpAngle::after [-1/-1] 18/17 tStart=0 tEnd=0.322114632 < [-1/-1] 1/1 tStart=1 tEnd=0.999932596 < [-1/-1] 1/1 tStart=0.589197265 tEnd=0.589250227 F 11 |
+SkOpAngle::afterPart {{{3,4}, {2.87721833,4.1227816}, {2.78458726,4.17018661}, {2.72210693,4.16072464}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {3.00020218,3.99986529}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=-1 |
+SkOpAngle::after [-1/-1] 1/1 tStart=0.589197265 tEnd=0.589250227 < [-1/-1] 1/1 tStart=1 tEnd=0.999932596 < [-1/-1] 17/17 tStart=0.589197265 tEnd=0.516302729 T 12 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {3.00020218,3.99986529}}} id=-1 |
+SkOpAngle::afterPart {{{3,4}, {2.9072112,4.06185918}, {2.81442231,4.11606536}, {2.72210693,4.16072464}}} id=-1 |
+SkOpSegment::sortAngles [-1] tStart=0.322114632 [-1] |
+SkOpAngle::after [-1/-1] 29/1 tStart=0.322114632 tEnd=0 < [-1/-1] 17/13 tStart=0.516302729 tEnd=0 < [-1/-1] 13/5 tStart=0.322114632 tEnd=1 F 11 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.78458726,4.17018661}, {2.87721833,4.1227816}, {3,4}}} id=-1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.06824885,4.47704065}, {1.43814079,4.31442231}, {1,3}}} id=-1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.59061803,4.14081206}, {2.59266219,3.86904402}, {2.7282393,3.51794004}}} id=-1 |
+SkOpAngle::after [-1/-1] 29/1 tStart=0.322114632 tEnd=0 < [-1/-1] 1/1 tStart=0.516302729 tEnd=0.589197265 < [-1/-1] 13/5 tStart=0.322114632 tEnd=1 T 12 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.78458726,4.17018661}, {2.87721833,4.1227816}, {3,4}}} id=-1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.81442231,4.11606536}, {2.9072112,4.06185918}, {3,4}}} id=-1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.59061803,4.14081206}, {2.59266219,3.86904402}, {2.7282393,3.51794004}}} id=-1 |
+SkOpSegment::sortAngles [-1] tStart=0.437504678 [-1] |
+SkOpAngle::after [-1/-1] 17/21 tStart=0.437504678 tEnd=0 < [-1/-1] 1/1 tStart=0.351448746 tEnd=0 < [-1/-1] 1/1 tStart=0.437504678 tEnd=1 T 11 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=-1 |
+SkOpAngle::after [-1/-1] 17/21 tStart=0.437504678 tEnd=0 < [-1/-1] 17/17 tStart=0.351448746 tEnd=1 < [-1/-1] 1/1 tStart=0.351448746 tEnd=0 F 12 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=-1 |
+SkOpAngle::after [-1/-1] 1/1 tStart=0.351448746 tEnd=0 < [-1/-1] 17/17 tStart=0.351448746 tEnd=1 < [-1/-1] 1/1 tStart=0.437504678 tEnd=1 F 5 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=-1 |
+SkOpAngle::after [-1/-1] 1/1 tStart=0.437504678 tEnd=1 < [-1/-1] 17/17 tStart=0.351448746 tEnd=1 < [-1/-1] 17/21 tStart=0.437504678 tEnd=0 T 11 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=-1 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=-1 |
+SkOpSegment::sortAngles [-1] tStart=0.999932596 [-1] |
+SkOpAngle::after [-1/-1] 1/1 tStart=0.999932596 tEnd=0 < [-1/-1] 17/17 tStart=0.589250227 tEnd=0.589197265 < [-1/-1] 17/17 tStart=0.999932596 tEnd=1 T 11 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {6,2}}} id=-1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.00013476,3.99991025}, {3.00006742,3.99995506}, {3,4}}} id=-1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3,4}}} id=-1 |
+SkOpAngle::after [-1/-1] 1/1 tStart=0.999932596 tEnd=0 < [-1/-1] 1/1 tStart=0.589250227 tEnd=1 < [-1/-1] 17/17 tStart=0.589250227 tEnd=0.589197265 T 12 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {6,2}}} id=-1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.52305312,3.65123542}, {4.04589321,3.05965083}, {4.48402119,2.56391668}}} id=-1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.00013476,3.99991025}, {3.00006742,3.99995506}, {3,4}}} id=-1 |
+SkOpSegment::sortAngles [-1] tStart=1 [-1] |
+SkOpSegment::sortAngles [-1] tStart=0.516302729 [-1] |
+SkOpSegment::sortAngles [-1] tStart=0.589197265 [-1] |
+SkOpSegment::sortAngles [-1] tStart=0.589250227 [-1] |
+SkOpSegment::sortAngles [-1] tStart=0.351448746 [-1] |
+SkOpSegment::debugShowActiveSpans id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 (3,4) tEnd=0.322114632 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 (2.72210693,4.16072464) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 (2.7282393,3.51794004) tEnd=0.437504678 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 (3.5942049,2.35144877) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (6,2 3,4) t=0 (6,2) tEnd=0.999932596 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (6,2 3,4) t=0.999932596 (3.00020218,3.99986529) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 (1,3) tEnd=0.516302729 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 (2.72210693,4.16072464) tEnd=0.589197265 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 (3,4) tEnd=0.589250227 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 (3.00020218,3.99986529) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 (4.48402119,2.56391668) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (5,2 1,3) t=0 (5,2) tEnd=0.351448746 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (5,2 1,3) t=0.351448746 (3.5942049,2.35144877) tEnd=1 windSum=? windValue=1 |
+SkOpSpan::sortableTop dir=kTop seg=-1 t=0.161057316 pt=(2.83844042,4.12995338) |
+SkOpSpan::sortableTop [0] valid=1 operand=0 span=-1 ccw=0 seg=-1 {{{5, 2}, {1, 3}}} t=0.540389895 pt=(2.83844042,2.54039001) slope=(-4,1) |
+SkOpSpan::sortableTop [1] valid=1 operand=1 span=-1 ccw=1 seg=-1 {{{2.7282393f, 3.51794004f}, {3.05293441f, 2.67707705f}, {4.14352131f, 1.38117373f}, {6, 2}}} t=0.0928134153 pt=(2.83844042,3.27394509) slope=(1.40059553,-2.71475011) |
+SkOpSpan::sortableTop [2] valid=1 operand=0 span=-1 ccw=1 seg=-1 {{{1, 3}, {1.84861219f, 5.54583645f}, {3.41736698f, 3.77081728f}, {4.48402119f, 2.56391668f}}} t=0.546866125 pt=(2.83844042,4.09965467) slope=(3.81218461,-2.15374068) |
+SkOpSpan::sortableTop [3] valid=1 operand=1 span=-1 ccw=0 seg=-1 {{{3, 4}, {2.61882615f, 4.38117361f}, {2.52823925f, 4.03588009f}, {2.7282393f, 3.51794004f}}} t=0.161057316 pt=(2.83844042,4.12995338) slope=(-0.862714624,0.484601174) |
+SkOpSegment::markWinding id=-1 (5,2 1,3) t=0.351448746 [-1] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 [-1] (1,3) tEnd=0.516302729 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (5,2 1,3) t=0.351448746 [-1] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [-1] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [-1] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 [-1] (2.72210693,4.16072464) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [-1] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [-1] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [-1] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [-1] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=-1 t=0.322114632 tEnd=0 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 |
+SkOpSegment::markWinding id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 [-1] (3,4) tEnd=0.589250227 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=-1 span=-1 windSum=? |
+SkOpSegment::markWinding id=-1 (6,2 3,4) t=0.999932596 [-1] (3.00020218,3.99986529) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=-1 span=-1 windSum=-1 |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=18/17 s=0 [-1] e=0.322114632 [-1] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=0.589197265 [-1] e=0.589250227 [-1] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=1 [-1] e=0.999932596 [-1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=17/17 s=0.589197265 [-1] e=0.516302729 [-1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=-1 |
+SkOpSegment::activeOp id=-1 t=0.589197265 tEnd=0.589250227 op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 |
+SkOpSegment::findNextOp chase.append segment=-1 span=-1 windSum=-2147483647 |
+SkOpSegment::activeOp id=-1 t=1 tEnd=0.999932596 op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 |
+SkOpSegment::markDone id=-1 (6,2 3,4) t=0.999932596 [-1] (3.00020218,3.99986529) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp chase.append segment=-1 span=-1 windSum=-1 |
+SkOpSegment::activeOp id=-1 t=0.589197265 tEnd=0.516302729 op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 |
+SkOpSegment::markDone id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [-1] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [-1] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[-1] to:[-1] start=7083452 end=7084028 |
+bridgeOp current id=-1 from=(2.72210693,4.16072464) to=(3,4) |
+path.moveTo(2.72210693,4.16072464); |
+path.cubicTo(2.78458714,4.17018652, 2.87721825,4.12278175, 3,4); |
+SkOpSegment::markDone id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 [-1] (3,4) tEnd=0.589250227 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (6,2 3,4) t=0 [-1] (6,2) tEnd=0.999932596 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 [-1] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=-1 span=-1 windSum=1 |
+SkOpSegment::markWinding id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 [-1] (3.00020218,3.99986529) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 [-1] (4.48402119,2.56391668) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=-1 (5,2 1,3) t=0 [-1] (5,2) tEnd=0.351448746 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=-1 span=-1 windSum=1 |
+SkOpSegment::debugShowActiveSpans id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 (2.72210693,4.16072464) tEnd=1 windSum=-1 oppSum=1 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 (2.7282393,3.51794004) tEnd=0.437504678 windSum=-1 oppSum=1 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 (3.5942049,2.35144877) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (6,2 3,4) t=0 (6,2) tEnd=0.999932596 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 (1,3) tEnd=0.516302729 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 (3.00020218,3.99986529) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 (4.48402119,2.56391668) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (5,2 1,3) t=0 (5,2) tEnd=0.351448746 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=-1 (5,2 1,3) t=0.351448746 (3.5942049,2.35144877) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=-1 t=0.999932596 tEnd=0 op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=-1 (6,2 3,4) t=0 [-1] (6,2) tEnd=0.999932596 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=-1 from=(3.00020218,3.99986529) to=(6,2) |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=0.437504678 [-1] e=1 [-1] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 operand |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=17/17 s=0.351448746 [-1] e=1 [-1] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=17/21 s=0.437504678 [-1] e=0 [-1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=0.351448746 [-1] e=0 [-1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpSegment::activeOp id=-1 t=0.351448746 tEnd=1 op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 |
+SkOpSegment::markDone id=-1 (5,2 1,3) t=0.351448746 [-1] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 [-1] (1,3) tEnd=0.516302729 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=-1 t=0.437504678 tEnd=0 op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 |
+SkOpSegment::markDone id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [-1] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=-1 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 [-1] (2.72210693,4.16072464) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=-1 t=0.351448746 tEnd=0 op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 |
+SkOpSegment::markDone id=-1 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 [-1] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[-1] to:[-1] start=7083836 end=7082508 |
+bridgeOp current id=-1 from=(6,2) to=(3.5942049,2.35144877) |
+path.moveTo(3.00020218,3.99986529); |
+path.lineTo(6,2); |
+path.cubicTo(4.9557395,1.65191317, 4.15380764,1.90964866, 3.5942049,2.35144877); |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=-1 (5,2 1,3) t=0 [-1] (5,2) tEnd=0.351448746 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=-1 from=(3.5942049,2.35144877) to=(5,2) |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=-1 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 [-1] (4.48402119,2.56391668) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=-1 from=(5,2) to=(4.48402119,2.56391668) |
+path.lineTo(5,2); |
+path.cubicTo(4.84861231,2.15138769, 4.67430639,2.34861207, 4.48402119,2.56391668); |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=0.589250227 [-1] e=1 [-1] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=17/17 s=0.589250227 [-1] e=0.589197265 [-1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done unorderable |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=17/17 s=0.999932596 [-1] e=1 [-1] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 done unorderable operand |
+SkOpAngle::dumpOne [-1/-1] next=-1/-1 sect=1/1 s=0.999932596 [-1] e=0 [-1] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done operand |
+SkOpSegment::activeOp id=-1 t=0.589250227 tEnd=0.589197265 op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 |
+SkOpSegment::activeOp id=-1 t=0.999932596 tEnd=1 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 |
+SkOpSegment::activeOp id=-1 t=0.999932596 tEnd=0 op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 |
+SkOpSegment::markDone id=-1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 [-1] (3.00020218,3.99986529) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[-1] to:[-1] start=7083932 end=7083244 |
+bridgeOp current id=-1 from=(4.48402119,2.56391668) to=(3.00020218,3.99986529) |
+path.cubicTo(4.04589319,3.0596509, 3.52305317,3.65123534, 3.00020218,3.99986529); |
+path.close(); |
+</div> |
+ |
+<div id="cubics45u_debug"> |
+seg=1 {{{1, 3}, {1.84861219f, 5.54583645f}, {3.41736698f, 3.77081728f}, {4.48402119f, 2.56391668f}}} |
+seg=2 {{{4.48402119f, 2.56391668f}, {4.67430639f, 2.34861207f}, {4.84861231f, 2.15138769f}, {5, 2}}} |
+seg=3 {{{5, 2}, {1, 3}}} |
+op union |
+seg=4 {{{3, 4}, {2.61882615f, 4.38117361f}, {2.52823925f, 4.03588009f}, {2.7282393f, 3.51794004f}}} |
+seg=5 {{{2.7282393f, 3.51794004f}, {3.05293441f, 2.67707705f}, {4.14352131f, 1.38117373f}, {6, 2}}} |
+seg=6 {{{6, 2}, {3, 4}}} |
+debugShowCubicIntersection wtTs[0]=1 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{2.7282393,3.51794004}} wnTs[0]=0 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{3,4}} wnTs[0]=1 {{{6,2}, {3,4}}} |
+debugShowCubicLineIntersection wtTs[0]=1 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{6,2}} wnTs[0]=0 {{{6,2}, {3,4}}} |
+debugShowCubicIntersection wtTs[0]=0 {{{3,4}, {2.61882615,4.38117361}, {2.52823925,4.03588009}, {2.7282393,3.51794004}}} {{3,4}} wtTs[1]=0.322114632 {{2.72210693,4.16072464}} wnTs[0]=0.589197 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} wnTs[1]=0.516302729 |
+SkOpSegment::addT insert t=0.589197265 segID=1 spanID=13 |
+SkOpSegment::addT insert t=0.322114632 segID=4 spanID=14 |
+SkOpSegment::addT insert t=0.516302729 segID=1 spanID=15 |
+debugShowCubicIntersection no intersect {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} |
+debugShowCubicIntersection no intersect {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0.437504678 {{{2.7282393,3.51794004}, {3.05293441,2.67707705}, {4.14352131,1.38117373}, {6,2}}} {{3.5942049,2.35144877}} wnTs[0]=0.351449 {{{5,2}, {1,3}}} |
+SkOpSegment::addT insert t=0.437504678 segID=5 spanID=16 |
+SkOpSegment::addT insert t=0.351448746 segID=3 spanID=17 |
+debugShowCubicLineIntersection wtTs[0]=0.589250227 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{3.00020218,3.99986529}} wnTs[0]=0.999933 {{{6,2}, {3,4}}} |
+SkOpSegment::addT insert t=0.999932596 segID=6 spanID=18 |
+SkOpSegment::addT insert t=0.589250227 segID=1 spanID=19 |
+debugShowCubicLineIntersection no intersect {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} {{{6,2}, {3,4}}} |
+debugShowLineIntersection no intersect {{{6,2}, {3,4}}} {{{5,2}, {1,3}}} |
+debugShowCubicIntersection wtTs[0]=1 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{4.48402119,2.56391668}} wnTs[0]=0 {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} |
+debugShowCubicLineIntersection wtTs[0]=0 {{{1,3}, {1.84861219,5.54583645}, {3.41736698,3.77081728}, {4.48402119,2.56391668}}} {{1,3}} wnTs[0]=1 {{{5,2}, {1,3}}} |
+debugShowCubicLineIntersection wtTs[0]=1 {{{4.48402119,2.56391668}, {4.67430639,2.34861207}, {4.84861231,2.15138769}, {5,2}}} {{5,2}} wnTs[0]=0 {{{5,2}, {1,3}}} |
+SkOpSegment::sortAngles [4] tStart=0 [7] |
+SkOpAngle::after [4/1] 18/17 tStart=0 tEnd=0.322114632 < [1/12] 1/1 tStart=0.589197265 tEnd=0.589250227 < [1/11] 17/17 tStart=0.589197265 tEnd=0.516302729 T 5 |
+SkOpAngle::afterPart {{{3,4}, {2.87721833,4.1227816}, {2.78458726,4.17018661}, {2.72210693,4.16072464}}} id=4 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=1 |
+SkOpAngle::afterPart {{{3,4}, {2.9072112,4.06185918}, {2.81442231,4.11606536}, {2.72210693,4.16072464}}} id=1 |
+SkOpAngle::after [4/1] 18/17 tStart=0 tEnd=0.322114632 < [6/8] 1/1 tStart=1 tEnd=0.999932596 < [1/12] 1/1 tStart=0.589197265 tEnd=0.589250227 F 11 |
+SkOpAngle::afterPart {{{3,4}, {2.87721833,4.1227816}, {2.78458726,4.17018661}, {2.72210693,4.16072464}}} id=4 |
+SkOpAngle::afterPart {{{3,4}, {3.00020218,3.99986529}}} id=6 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=1 |
+SkOpAngle::after [1/12] 1/1 tStart=0.589197265 tEnd=0.589250227 < [6/8] 1/1 tStart=1 tEnd=0.999932596 < [1/11] 17/17 tStart=0.589197265 tEnd=0.516302729 T 12 |
+SkOpAngle::afterPart {{{3,4}, {3.00006742,3.99995506}, {3.00013476,3.99991025}, {3.00020218,3.99986529}}} id=1 |
+SkOpAngle::afterPart {{{3,4}, {3.00020218,3.99986529}}} id=6 |
+SkOpAngle::afterPart {{{3,4}, {2.9072112,4.06185918}, {2.81442231,4.11606536}, {2.72210693,4.16072464}}} id=1 |
+SkOpSegment::sortAngles [4] tStart=0.322114632 [14] |
+SkOpAngle::after [4/2] 29/1 tStart=0.322114632 tEnd=0 < [1/9] 17/13 tStart=0.516302729 tEnd=0 < [4/3] 13/5 tStart=0.322114632 tEnd=1 F 11 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.78458726,4.17018661}, {2.87721833,4.1227816}, {3,4}}} id=4 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.06824885,4.47704065}, {1.43814079,4.31442231}, {1,3}}} id=1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.59061803,4.14081206}, {2.59266219,3.86904402}, {2.7282393,3.51794004}}} id=4 |
+SkOpAngle::after [4/2] 29/1 tStart=0.322114632 tEnd=0 < [1/10] 1/1 tStart=0.516302729 tEnd=0.589197265 < [4/3] 13/5 tStart=0.322114632 tEnd=1 T 12 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.78458726,4.17018661}, {2.87721833,4.1227816}, {3,4}}} id=4 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.81442231,4.11606536}, {2.9072112,4.06185918}, {3,4}}} id=1 |
+SkOpAngle::afterPart {{{2.72210693,4.16072464}, {2.59061803,4.14081206}, {2.59266219,3.86904402}, {2.7282393,3.51794004}}} id=4 |
+SkOpSegment::sortAngles [5] tStart=0.437504678 [16] |
+SkOpAngle::after [5/4] 17/21 tStart=0.437504678 tEnd=0 < [3/15] 1/1 tStart=0.351448746 tEnd=0 < [5/5] 1/1 tStart=0.437504678 tEnd=1 T 11 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=5 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=3 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=5 |
+SkOpAngle::after [5/4] 17/21 tStart=0.437504678 tEnd=0 < [3/16] 17/17 tStart=0.351448746 tEnd=1 < [3/15] 1/1 tStart=0.351448746 tEnd=0 F 12 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=5 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=3 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=3 |
+SkOpAngle::after [3/15] 1/1 tStart=0.351448746 tEnd=0 < [3/16] 17/17 tStart=0.351448746 tEnd=1 < [5/5] 1/1 tStart=0.437504678 tEnd=1 F 5 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {5,2}}} id=3 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=3 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=5 |
+SkOpAngle::after [5/5] 1/1 tStart=0.437504678 tEnd=1 < [3/16] 17/17 tStart=0.351448746 tEnd=1 < [5/4] 17/21 tStart=0.437504678 tEnd=0 T 11 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {4.15380764,1.9096486}, {4.95573942,1.65191312}, {6,2}}} id=5 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {1,3}}} id=3 |
+SkOpAngle::afterPart {{{3.5942049,2.35144877}, {3.15895005,2.69507766}, {2.87029493,3.15005855}, {2.7282393,3.51794004}}} id=5 |
+SkOpSegment::sortAngles [6] tStart=0.999932596 [18] |
+SkOpAngle::after [6/6] 1/1 tStart=0.999932596 tEnd=0 < [1/13] 17/17 tStart=0.589250227 tEnd=0.589197265 < [6/7] 17/17 tStart=0.999932596 tEnd=1 T 11 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {6,2}}} id=6 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.00013476,3.99991025}, {3.00006742,3.99995506}, {3,4}}} id=1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3,4}}} id=6 |
+SkOpAngle::after [6/6] 1/1 tStart=0.999932596 tEnd=0 < [1/14] 1/1 tStart=0.589250227 tEnd=1 < [1/13] 17/17 tStart=0.589250227 tEnd=0.589197265 T 12 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {6,2}}} id=6 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.52305312,3.65123542}, {4.04589321,3.05965083}, {4.48402119,2.56391668}}} id=1 |
+SkOpAngle::afterPart {{{3.00020218,3.99986529}, {3.00013476,3.99991025}, {3.00006742,3.99995506}, {3,4}}} id=1 |
+SkOpSegment::sortAngles [6] tStart=1 [12] |
+SkOpSegment::sortAngles [1] tStart=0.516302729 [15] |
+SkOpSegment::sortAngles [1] tStart=0.589197265 [13] |
+SkOpSegment::sortAngles [1] tStart=0.589250227 [19] |
+SkOpSegment::sortAngles [3] tStart=0.351448746 [17] |
+SkOpSegment::debugShowActiveSpans id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 (3,4) tEnd=0.322114632 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 (2.72210693,4.16072464) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 (2.7282393,3.51794004) tEnd=0.437504678 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 (3.5942049,2.35144877) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=6 (6,2 3,4) t=0 (6,2) tEnd=0.999932596 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=6 (6,2 3,4) t=0.999932596 (3.00020218,3.99986529) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 (1,3) tEnd=0.516302729 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 (2.72210693,4.16072464) tEnd=0.589197265 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 (3,4) tEnd=0.589250227 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 (3.00020218,3.99986529) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=2 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 (4.48402119,2.56391668) tEnd=1 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=3 (5,2 1,3) t=0 (5,2) tEnd=0.351448746 windSum=? windValue=1 |
+SkOpSegment::debugShowActiveSpans id=3 (5,2 1,3) t=0.351448746 (3.5942049,2.35144877) tEnd=1 windSum=? windValue=1 |
+SkOpSpan::sortableTop dir=kTop seg=4 t=0.161057316 pt=(2.83844042,4.12995338) |
+SkOpSpan::sortableTop [0] valid=1 operand=0 span=17 ccw=0 seg=3 {{{5, 2}, {1, 3}}} t=0.540389895 pt=(2.83844042,2.54039001) slope=(-4,1) |
+SkOpSpan::sortableTop [1] valid=1 operand=1 span=9 ccw=1 seg=5 {{{2.7282393f, 3.51794004f}, {3.05293441f, 2.67707705f}, {4.14352131f, 1.38117373f}, {6, 2}}} t=0.0928134153 pt=(2.83844042,3.27394509) slope=(1.40059553,-2.71475011) |
+SkOpSpan::sortableTop [2] valid=1 operand=0 span=15 ccw=1 seg=1 {{{1, 3}, {1.84861219f, 5.54583645f}, {3.41736698f, 3.77081728f}, {4.48402119f, 2.56391668f}}} t=0.546866125 pt=(2.83844042,4.09965467) slope=(3.81218461,-2.15374068) |
+SkOpSpan::sortableTop [3] valid=1 operand=1 span=7 ccw=0 seg=4 {{{3, 4}, {2.61882615f, 4.38117361f}, {2.52823925f, 4.03588009f}, {2.7282393f, 3.51794004f}}} t=0.161057316 pt=(2.83844042,4.12995338) slope=(-0.862714624,0.484601174) |
+SkOpSegment::markWinding id=3 (5,2 1,3) t=0.351448746 [17] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 [1] (1,3) tEnd=0.516302729 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=3 (5,2 1,3) t=0.351448746 [17] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [9] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [9] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 [14] (2.72210693,4.16072464) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [15] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [15] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [7] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [7] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=4 t=0.322114632 tEnd=0 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 |
+SkOpSegment::markWinding id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 [13] (3,4) tEnd=0.589250227 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=1 span=19 windSum=? |
+SkOpSegment::markWinding id=6 (6,2 3,4) t=0.999932596 [18] (3.00020218,3.99986529) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=6 span=18 windSum=-1 |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [4/1] next=1/12 sect=18/17 s=0 [7] e=0.322114632 [14] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand |
+SkOpAngle::dumpOne [1/12] next=6/8 sect=1/1 s=0.589197265 [13] e=0.589250227 [19] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [6/8] next=1/11 sect=1/1 s=1 [12] e=0.999932596 [18] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand |
+SkOpAngle::dumpOne [1/11] next=4/1 sect=17/17 s=0.589197265 [13] e=0.516302729 [15] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=-1 |
+SkOpSegment::activeOp id=1 t=0.589197265 tEnd=0.589250227 op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1 |
+SkOpSegment::findNextOp chase.append segment=1 span=19 windSum=-2147483647 |
+SkOpSegment::activeOp id=6 t=1 tEnd=0.999932596 op=union miFrom=1 miTo=1 suFrom=0 suTo=1 result=0 |
+SkOpSegment::markDone id=6 (6,2 3,4) t=0.999932596 [18] (3.00020218,3.99986529) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp chase.append segment=6 span=18 windSum=-1 |
+SkOpSegment::activeOp id=1 t=0.589197265 tEnd=0.516302729 op=union miFrom=1 miTo=0 suFrom=1 suTo=1 result=0 |
+SkOpSegment::markDone id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.516302729 [15] (2.72210693,4.16072464) tEnd=0.589197265 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0 [7] (3,4) tEnd=0.322114632 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[4] to:[1] start=11952148 end=11952772 |
+bridgeOp current id=4 from=(2.72210693,4.16072464) to=(3,4) |
+path.moveTo(2.72210693,4.16072464); |
+path.cubicTo(2.78458714,4.17018652, 2.87721825,4.12278175, 3,4); |
+SkOpSegment::markDone id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589197265 [13] (3,4) tEnd=0.589250227 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=6 (6,2 3,4) t=0 [11] (6,2) tEnd=0.999932596 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 [16] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=5 span=16 windSum=1 |
+SkOpSegment::markWinding id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 [19] (3.00020218,3.99986529) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=2 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 [3] (4.48402119,2.56391668) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markWinding id=3 (5,2 1,3) t=0 [5] (5,2) tEnd=0.351448746 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 |
+SkOpSegment::markAngle last segment=3 span=17 windSum=1 |
+SkOpSegment::debugShowActiveSpans id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 (2.72210693,4.16072464) tEnd=1 windSum=-1 oppSum=1 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 (2.7282393,3.51794004) tEnd=0.437504678 windSum=-1 oppSum=1 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 (3.5942049,2.35144877) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=6 (6,2 3,4) t=0 (6,2) tEnd=0.999932596 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 (1,3) tEnd=0.516302729 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 (3.00020218,3.99986529) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=2 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 (4.48402119,2.56391668) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=3 (5,2 1,3) t=0 (5,2) tEnd=0.351448746 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::debugShowActiveSpans id=3 (5,2 1,3) t=0.351448746 (3.5942049,2.35144877) tEnd=1 windSum=1 oppSum=0 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=6 t=0.999932596 tEnd=0 op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=6 (6,2 3,4) t=0 [11] (6,2) tEnd=0.999932596 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=6 from=(3.00020218,3.99986529) to=(6,2) |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [5/5] next=3/16 sect=1/1 s=0.437504678 [16] e=1 [10] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 operand |
+SkOpAngle::dumpOne [3/16] next=5/4 sect=17/17 s=0.351448746 [17] e=1 [6] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [5/4] next=3/15 sect=17/21 s=0.437504678 [16] e=0 [9] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=1 operand |
+SkOpAngle::dumpOne [3/15] next=5/5 sect=1/1 s=0.351448746 [17] e=0 [5] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpSegment::activeOp id=3 t=0.351448746 tEnd=1 op=union miFrom=0 miTo=1 suFrom=1 suTo=1 result=0 |
+SkOpSegment::markDone id=3 (5,2 1,3) t=0.351448746 [17] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0 [1] (1,3) tEnd=0.516302729 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=5 t=0.437504678 tEnd=0 op=union miFrom=1 miTo=1 suFrom=1 suTo=0 result=0 |
+SkOpSegment::markDone id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0 [9] (2.7282393,3.51794004) tEnd=0.437504678 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::markDone id=4 (3,4 2.61882615,4.38117361 2.52823925,4.03588009 2.7282393,3.51794004) t=0.322114632 [14] (2.72210693,4.16072464) tEnd=1 newWindSum=-1 newOppSum=1 oppSum=1 windSum=-1 windValue=1 oppValue=0 |
+SkOpSegment::activeOp id=3 t=0.351448746 tEnd=0 op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 |
+SkOpSegment::markDone id=5 (2.7282393,3.51794004 3.05293441,2.67707705 4.14352131,1.38117373 6,2) t=0.437504678 [16] (3.5942049,2.35144877) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[5] to:[3] start=11952564 end=11951100 |
+bridgeOp current id=5 from=(6,2) to=(3.5942049,2.35144877) |
+path.moveTo(3.00020218,3.99986529); |
+path.lineTo(6,2); |
+path.cubicTo(4.9557395,1.65191317, 4.15380764,1.90964866, 3.5942049,2.35144877); |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=3 (5,2 1,3) t=0 [5] (5,2) tEnd=0.351448746 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=3 from=(3.5942049,2.35144877) to=(5,2) |
+SkOpSegment::findNextOp simple |
+SkOpSegment::markDone id=2 (4.48402119,2.56391668 4.67430639,2.34861207 4.84861231,2.15138769 5,2) t=0 [3] (4.48402119,2.56391668) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+bridgeOp current id=2 from=(5,2) to=(4.48402119,2.56391668) |
+path.lineTo(5,2); |
+path.cubicTo(4.84861231,2.15138769, 4.67430639,2.34861207, 4.48402119,2.56391668); |
+SkOpSegment::findNextOp |
+SkOpAngle::dumpOne [1/14] next=1/13 sect=1/1 s=0.589250227 [19] e=1 [2] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 |
+SkOpAngle::dumpOne [1/13] next=6/7 sect=17/17 s=0.589250227 [19] e=0.589197265 [13] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done unorderable |
+SkOpAngle::dumpOne [6/7] next=6/6 sect=17/17 s=0.999932596 [18] e=1 [12] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=1 done unorderable operand |
+SkOpAngle::dumpOne [6/6] next=1/14 sect=1/1 s=0.999932596 [18] e=0 [11] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done operand |
+SkOpSegment::activeOp id=1 t=0.589250227 tEnd=0.589197265 op=union miFrom=1 miTo=0 suFrom=0 suTo=0 result=1 |
+SkOpSegment::activeOp id=6 t=0.999932596 tEnd=1 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1 |
+SkOpSegment::activeOp id=6 t=0.999932596 tEnd=0 op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1 |
+SkOpSegment::markDone id=1 (1,3 1.84861219,5.54583645 3.41736698,3.77081728 4.48402119,2.56391668) t=0.589250227 [19] (3.00020218,3.99986529) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0 |
+SkOpSegment::findNextOp from:[1] to:[6] start=11952668 end=11951916 |
+bridgeOp current id=1 from=(4.48402119,2.56391668) to=(3.00020218,3.99986529) |
+path.cubicTo(4.04589319,3.0596509, 3.52305317,3.65123534, 3.00020218,3.99986529); |
+path.close(); |
+</div> |
+ |
+</div> |
+ |
+<script type="text/javascript"> |
+ |
+var testDivs = [ |
+ cubics45u_release, |
+ cubics45u_debug, |
]; |
var decimal_places = 3; // make this 3 to show more precision |
@@ -260,6 +425,7 @@ var step_limit = 0; |
var draw_active = false; |
var draw_add = false; |
var draw_angle = 0; |
+var draw_coincidence = false; |
var draw_deriviatives = 0; |
var draw_hints = false; |
var draw_id = false; |
@@ -280,6 +446,7 @@ var retina_scale = !!window.devicePixelRatio; |
var activeCount = 0; |
var addCount = 0; |
var angleCount = 0; |
+var coinCount = 0; |
var opCount = 0; |
var sectCount = 0; |
var sortCount = 0; |
@@ -288,6 +455,7 @@ var markCount = 0; |
var activeMax = 0; |
var addMax = 0; |
var angleMax = 0; |
+var coinMax = 0; |
var sectMax = 0; |
var sectMax2 = 0; |
var sortMax = 0; |
@@ -450,12 +618,15 @@ var MARK_ANGLE_LAST = MARK_DONE_UNARY_CUBIC + 1; |
var COMPUTED_SET_1 = MARK_ANGLE_LAST + 1; |
var COMPUTED_SET_2 = COMPUTED_SET_1 + 1; |
-var ANGLE_AFTER = COMPUTED_SET_2; |
+var ANGLE_AFTER = COMPUTED_SET_2 + 1; |
var ANGLE_AFTERPART = ANGLE_AFTER + 1; |
var ACTIVE_OP = ANGLE_AFTERPART + 1; |
-var FRAG_TYPE_LAST = ACTIVE_OP; |
+var COIN_MAIN_SPAN = ACTIVE_OP + 1; |
+var COIN_OPP_SPAN = COIN_MAIN_SPAN + 1; |
+ |
+var FRAG_TYPE_LAST = COIN_OPP_SPAN; |
var REC_TYPE_UNKNOWN = -1; |
var REC_TYPE_PATH = 0; |
@@ -472,7 +643,8 @@ var REC_TYPE_ANGLE = 10; |
var REC_TYPE_ACTIVE_OP = 11; |
var REC_TYPE_AFTERPART = 12; |
var REC_TYPE_TOP = 13; |
-var REC_TYPE_LAST = REC_TYPE_TOP; |
+var REC_TYPE_COINCIDENCE = 14; |
+var REC_TYPE_LAST = REC_TYPE_COINCIDENCE; |
function strs_to_nums(strs) { |
var result = []; |
@@ -574,7 +746,12 @@ function parse_all(test) { |
if (line.lastIndexOf(angleStart, 0) === 0) { |
line = line.substr(angleStart.length); |
} |
+ var coinStart = "SkOpCoincidence::"; |
+ if (line.lastIndexOf(coinStart, 0) === 0) { |
+ line = line.substr(coinStart.length); |
+ } |
var type = line.lastIndexOf("debugShowActiveSpans", 0) === 0 ? REC_TYPE_ACTIVE |
+ : line.lastIndexOf("debugShowCoincidence", 0) === 0 ? REC_TYPE_COINCIDENCE |
: line.lastIndexOf("((SkOpSegment*)", 0) === 0 ? REC_TYPE_PATH2 |
: line.lastIndexOf("debugShowTs", 0) === 0 ? REC_TYPE_COIN |
: line.lastIndexOf("afterPart", 0) === 0 ? REC_TYPE_AFTERPART |
@@ -608,13 +785,21 @@ function parse_all(test) { |
switch (recType) { |
case REC_TYPE_ACTIVE: |
found = match_regexp(line, lineNo, record, ACTIVE_LINE_SPAN, "debugShowActiveSpans" + |
-" id=IDX LINE_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX oppValue=NUM" |
+" id=IDX LINE_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX" |
) || match_regexp(line, lineNo, record, ACTIVE_QUAD_SPAN, "debugShowActiveSpans" + |
-" id=IDX QUAD_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX oppValue=NUM" |
+" id=IDX QUAD_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX" |
) || match_regexp(line, lineNo, record, ACTIVE_CONIC_SPAN, "debugShowActiveSpans" + |
-" id=IDX CONIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX oppValue=NUM" |
+" id=IDX CONIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX" |
) || match_regexp(line, lineNo, record, ACTIVE_CUBIC_SPAN, "debugShowActiveSpans" + |
-" id=IDX CUBIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX oppValue=NUM" |
+" id=IDX CUBIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT windValue=IDX" |
+ ) || match_regexp(line, lineNo, record, ACTIVE_LINE_SPAN, "debugShowActiveSpans" + |
+" id=IDX LINE_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT oppSum=OPT windValue=IDX oppValue=NUM" |
+ ) || match_regexp(line, lineNo, record, ACTIVE_QUAD_SPAN, "debugShowActiveSpans" + |
+" id=IDX QUAD_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT oppSum=OPT windValue=IDX oppValue=NUM" |
+ ) || match_regexp(line, lineNo, record, ACTIVE_CONIC_SPAN, "debugShowActiveSpans" + |
+" id=IDX CONIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT oppSum=OPT windValue=IDX oppValue=NUM" |
+ ) || match_regexp(line, lineNo, record, ACTIVE_CUBIC_SPAN, "debugShowActiveSpans" + |
+" id=IDX CUBIC_VAL t=T_VAL PT_VAL tEnd=T_VAL windSum=OPT oppSum=OPT windValue=IDX oppValue=NUM" |
); |
break; |
case REC_TYPE_ACTIVE_OP: |
@@ -670,6 +855,13 @@ function parse_all(test) { |
case REC_TYPE_COIN: |
found = true; |
break; |
+ case REC_TYPE_COINCIDENCE: |
+ found = match_regexp(line, lineNo, record, COIN_MAIN_SPAN, "debugShowCoincidence" + |
+" + id=IDX t=T_VAL tEnd=T_VAL" |
+ ) || match_regexp(line, lineNo, record, COIN_OPP_SPAN, "debugShowCoincidence" + |
+" - id=IDX t=T_VAL tEnd=T_VAL" |
+ ); |
+ break; |
case REC_TYPE_COMPUTED: |
found = line == "computed quadratics given" |
|| match_regexp(line, lineNo, record, COMPUTED_SET_1, "computed quadratics set 1" |
@@ -1151,6 +1343,15 @@ function init(test) { |
curve = curvePartialByID(test, frags[12], frags[16], frags[17]); |
} |
break; |
+ case REC_TYPE_COINCIDENCE: |
+ if (!draw_coincidence) { |
+ break; |
+ } |
+ { |
+ var curve = curvePartialByID(test, frags[0], frags[1], frags[2]); |
+ curve_extremes(curve, angleBounds); |
+ } |
+ break; |
case REC_TYPE_SORT: |
if (!draw_sort) { |
break; |
@@ -2417,6 +2618,7 @@ function draw(test, lines, title) { |
var hasOp = false; |
var lastActive = 0; |
var lastAdd = 0; |
+ var lastCoin = 0; |
var lastSect = 0; |
var lastSort = 0; |
var lastMark = 0; |
@@ -2432,6 +2634,7 @@ function draw(test, lines, title) { |
activeMax = 0; |
addMax = 0; |
angleMax = 0; |
+ coinMax = 0; |
opMax = 0; |
sectMax = 0; |
sectMax2 = 0; |
@@ -2518,6 +2721,15 @@ function draw(test, lines, title) { |
++angleCount; |
bumpStep = true; |
} |
+ if (recType == REC_TYPE_COINCIDENCE) { |
+ ++coinMax; |
+ if (!draw_coincidence || !inStepRange) { |
+ continue; |
+ } |
+ lastCoin = tIndex; |
+ ++coinCount; |
+ bumpStep = true; |
+ } |
if (recType == REC_TYPE_SECT) { |
if (records.length != 2) { |
console.log("expect only two elements: " + records.length); |
@@ -2616,13 +2828,14 @@ function draw(test, lines, title) { |
stepMax = (draw_add ? addMax : 0) |
+ (draw_active ? activeMax : 0) |
+ (draw_angle ? angleMax : 0) |
+ + (draw_coincidence ? coinMax : 0) |
+ (draw_op ? opMax : 0) |
+ (draw_sort ? sortMax : 0) |
+ (draw_top ? topMax : 0) |
+ (draw_mark ? markMax : 0) |
+ (draw_intersection == 2 ? sectMax : draw_intersection == 3 ? sectMax2 : 0); |
if (stepMax == 0) { |
- stepMax = addMax + activeMax + angleMax + opMax + sortMax + topMax + markMax; |
+ stepMax = addMax + activeMax + angleMax + coinMax + opMax + sortMax + topMax + markMax; |
} |
drawnPts = []; |
drawnLines = []; |
@@ -2917,6 +3130,16 @@ function draw(test, lines, title) { |
} |
++afterIndex; |
break; |
+ case REC_TYPE_COINCIDENCE: |
+ if (!draw_coincidence || (step_limit > 0 && tIndex < lastCoin)) { |
+ continue; |
+ } |
+ focus_enabled = true; |
+ ctx.lineWidth = 3; |
+ ctx.strokeStyle = "rgba(127,45,63, 0.3)"; |
+ var curve = curvePartialByID(test, frags[0], frags[1], frags[2]); |
+ drawCurve(curve); |
+ break; |
case REC_TYPE_SECT: |
if (!draw_intersection) { |
continue; |
@@ -3371,12 +3594,13 @@ function draw(test, lines, title) { |
} |
if (draw_legend) { |
var pos = 0; |
- var drawSomething = draw_add | draw_active | draw_angle | draw_sort | draw_mark; |
+ var drawSomething = draw_add | draw_active | draw_angle | draw_coincidence | draw_sort | draw_mark; |
// drawBox(pos++, "yellow", "black", opLetter, true, ''); |
drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_intersection > 1 ? sectCount : sectMax2, draw_intersection, intersectionKey); |
drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_add ? addCount : addMax, draw_add, addKey); |
drawBox(pos++, "rgba(0,0,255, 0.3)", "black", draw_active ? activeCount : activeMax, draw_active, activeKey); |
drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_angle ? angleCount : angleMax, draw_angle, angleKey); |
+ drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_coincidence ? coinCount : coinMax, draw_coincidence, coincidenceKey); |
drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_op ? opCount : opMax, draw_op, opKey); |
drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_sort ? sortCount : sortMax, draw_sort, sortKey); |
drawBox(pos++, "rgba(127,127,0, 0.3)", "black", draw_top ? topCount : topMax, draw_top, topKey); |
@@ -3560,6 +3784,7 @@ var activeKey = 'a'; |
var pathKey = 'b'; |
var pathBackKey = 'B'; |
var centerKey = 'c'; |
+var coincidenceKey = 'C'; |
var addKey = 'd'; |
var deriviativesKey = 'f'; |
var angleKey = 'g'; |
@@ -3627,6 +3852,10 @@ function doKeyPress(evt) { |
setScale(xmin, xmax, ymin, ymax); |
redraw(); |
break; |
+ case coincidenceKey: |
+ draw_coincidence ^= true; |
+ redraw(); |
+ break; |
case controlLinesBackKey: |
control_lines = (control_lines + 3) % 4; |
redraw(); |