diff options
Diffstat (limited to 'tools/pathops_visualizer.htm')
-rw-r--r-- | tools/pathops_visualizer.htm | 714 |
1 files changed, 357 insertions, 357 deletions
diff --git a/tools/pathops_visualizer.htm b/tools/pathops_visualizer.htm index 99acb76a6f..fafd2811ca 100644 --- a/tools/pathops_visualizer.htm +++ b/tools/pathops_visualizer.htm @@ -1,217 +1,217 @@ <html> <head> <div height="0" hidden="true"> -
-Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ SK_DEBUG
-<div id="android1">
-seg=1 {{{-5, 0}, {1075, 0}}}
-seg=2 {{{1075, 0}, {1075, 242}}}
-seg=3 {{{1075, 242}, {-5, 242}}}
-seg=4 {{{-5, 242}, {-5, 0}}}
-op sect
-seg=5 {{{0, 0}, {1080, 0}}}
-seg=6 {{{1080, 0}, {1080, 242}}}
-seg=7 {{{1080, 242}, {0, 242}}}
-seg=8 {{{0, 242}, {0, 0}}}
-debugShowLineIntersection wtTs[0]=0 {{{1075,0}, {1075,242}}} {{1075,0}} wnTs[0]=1 {{{-5,0}, {1075,0}}}
-debugShowLineIntersection wtTs[0]=1 {{{-5,242}, {-5,0}}} {{-5,0}} wnTs[0]=0 {{{-5,0}, {1075,0}}}
-debugShowLineIntersection wtTs[0]=0 {{{1075,242}, {-5,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}
-debugShowLineIntersection wtTs[0]=0 {{{-5,242}, {-5,0}}} {{-5,242}} wnTs[0]=1 {{{1075,242}, {-5,242}}}
-debugShowLineIntersection wtTs[0]=0 {{{0,0}, {1080,0}}} {{0,0}} wtTs[1]=0.99537037 {{1075,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}} wnTs[1]=1
-SkOpSegment::addT insert t=0.00462962963 segID=1 spanID=17
-SkOpSegment::addT insert t=0.99537037 segID=5 spanID=18
-debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}}
-debugShowLineIntersection wtTs[0]=0.99537037 {{{0,0}, {1080,0}}} {{1075,0}} wnTs[0]=0 {{{1075,0}, {1075,242}}}
-debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}
-SkOpSegment::addT insert t=0.00462962963 segID=7 spanID=19
-debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wtTs[1]=1 {{0,242}} wnTs[0]=0 {{{1075,242}, {-5,242}}} wnTs[1]=0.99537037
-SkOpSegment::addT insert t=0.99537037 segID=3 spanID=20
-debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=0.99537 {{{1075,242}, {-5,242}}}
-debugShowLineIntersection wtTs[0]=0 {{{1080,0}, {1080,242}}} {{1080,0}} wnTs[0]=1 {{{0,0}, {1080,0}}}
-debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0 {{{0,0}, {1080,0}}}
-debugShowLineIntersection wtTs[0]=0 {{{1080,242}, {0,242}}} {{1080,242}} wnTs[0]=1 {{{1080,0}, {1080,242}}}
-debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=1 {{{1080,242}, {0,242}}}
-------------------x--x---------------- addExpanded
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=5 (0,0 1075,0) t=0 tEnd=0.99537037 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=7 (1075,242 0,242) t=0.00462962963 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1
-------------------x--x---------------- move_multiples
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- move_nearby
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- correctEnds
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- addEndMovedSpans
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- expand
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- addExpanded
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
-------------------x--x---------------- mark
-00: seg/base=3/5 seg/base=7/19 MarkCoinStart
-01: seg/base=3/20 seg/base=7/14 MarkCoinEnd
-02: seg/base=1/17 seg/base=5/9 MarkCoinStart
-03: seg/base=1/2 seg/base=5/18 MarkCoinEnd
--------------------------------------- missing_coincidence
--------------------------------------- expand
--------------------------------------- expand
--------------------------------------- apply
-SkOpSegment::markDone id=7 (1080,242 0,242) t=0.00462962963 [19] (1075,242) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
-SkOpSegment::markDone id=5 (0,0 1080,0) t=0 [9] (0,0) tEnd=0.99537037 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
--------------------------------------- findOverlaps
-SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1
-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? oppSum=? windValue=1 oppValue=1
-SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1
--------------------------------------- calc_angles
-SkOpSegment::sortAngles [1] tStart=0.00462962963 [17]
-SkOpAngle::after [1/1] 15/15 tStart=0.00462962963 tEnd=0 < [8/12] 23/23 tStart=1 tEnd=0 < [1/2] 31/31 tStart=0.00462962963 tEnd=1 T 4
-SkOpAngle::afterPart {{{0,0}, {-5,0}}} id=1
-SkOpAngle::afterPart {{{0,0}, {0,242}}} id=8
-SkOpAngle::afterPart {{{0,0}, {1075,0}}} id=1
-SkOpSegment::sortAngles [1] tStart=1 [2]
-SkOpAngle::after [1/3] 15/15 tStart=1 tEnd=0.00462962963 < [2/4] 23/23 tStart=0 tEnd=1 < [5/9] 31/31 tStart=0.99537037 tEnd=1 T 4
-SkOpAngle::afterPart {{{1075,0}, {-8.8817842e-16,0}}} id=1
-SkOpAngle::afterPart {{{1075,0}, {1075,242}}} id=2
-SkOpAngle::afterPart {{{1075,0}, {1080,0}}} id=5
-SkOpSegment::sortAngles [2] tStart=0 [3]
-SkOpSegment::sortAngles [2] tStart=1 [4]
-SkOpAngle::after [2/5] 7/7 tStart=1 tEnd=0 < [3/6] 15/15 tStart=0 tEnd=0.99537037 < [7/10] 31/31 tStart=0.00462962963 tEnd=0 T 4
-SkOpAngle::afterPart {{{1075,242}, {1075,0}}} id=2
-SkOpAngle::afterPart {{{1075,242}, {2.22044605e-14,242}}} id=3
-SkOpAngle::afterPart {{{1075,242}, {1080,242}}} id=7
-SkOpSegment::sortAngles [3] tStart=0 [5]
-SkOpSegment::sortAngles [3] tStart=0.99537037 [20]
-SkOpAngle::after [3/7] 31/31 tStart=0.99537037 tEnd=0 < [8/11] 7/7 tStart=0 tEnd=1 < [3/8] 15/15 tStart=0.99537037 tEnd=1 T 4
-SkOpAngle::afterPart {{{0,242}, {1075,242}}} id=3
-SkOpAngle::afterPart {{{0,242}, {0,0}}} id=8
-SkOpAngle::afterPart {{{0,242}, {-5,242}}} id=3
-SkOpSegment::sortAngles [5] tStart=0.99537037 [18]
-SkOpSegment::sortAngles [7] tStart=0.00462962963 [19]
-SkOpSegment::sortAngles [8] tStart=0 [15]
-SkOpSegment::sortAngles [8] tStart=1 [16]
-coinSpan - id=3 t=0 tEnd=0.99537037
-coinSpan + id=7 t=0.00462962963 tEnd=1
-coinSpan - id=1 t=0.00462962963 tEnd=1
-coinSpan + id=5 t=0 tEnd=0.99537037
-SkOpSpan::sortableTop dir=kTop seg=1 t=0.00231481481 pt=(-2.5,0)
-SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{-5, 0}, {1075, 0}}} t=0.00231481481 pt=(-2.5,0) slope=(1080,0)
-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markWinding id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
-SkOpSegment::markDone id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markDone id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markDone id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-bridgeOp chase.append id=3 windSum=-1
-SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1
-SkOpSegment::markAngle last segment=3 span=5 windSum=-1
-SkOpSegment::markWinding id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markAngle last segment=8 span=16
-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1
-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=-1 oppSum=-1 windValue=1 oppValue=1
-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0
-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
-SkOpSegment::markWinding id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markWinding id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markWinding id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markAngle last segment=5 span=18 windSum=-1
-SkOpSegment::markWinding id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0
-SkOpSegment::markAngle last segment=2 span=3 windSum=-1
-SkOpSegment::findNextOp
-SkOpAngle::dumpOne [3/6] next=7/10 sect=15/15 s=0 [5] e=0.99537037 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
-SkOpAngle::dumpOne [7/10] next=2/5 sect=31/31 s=0.00462962963 [19] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand
-SkOpAngle::dumpOne [2/5] next=3/6 sect=7/7 s=1 [4] e=0 [3] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1
-SkOpSegment::activeOp id=7 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0
-SkOpSegment::markDone id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markDone id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::markDone id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::findNextOp chase.append segment=5 span=18 windSum=-1
-SkOpSegment::activeOp id=2 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1
-SkOpSegment::findNextOp chase.append segment=2 span=3 windSum=-1
-SkOpSegment::markDone id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1
-SkOpSegment::findNextOp from:[3] to:[2] start=90366152 end=90366008
-bridgeOp current id=3 from=(2.22044605e-14,242) to=(1075,242)
-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1
-SkOpSegment::markAngle last segment=1 span=17 windSum=-1
-SkOpSegment::findNextOp
-SkOpAngle::dumpOne [2/4] next=5/9 sect=23/23 s=0 [3] e=1 [4] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1
-SkOpAngle::dumpOne [5/9] next=1/3 sect=31/31 s=0.99537037 [18] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done operand
-SkOpAngle::dumpOne [1/3] next=2/4 sect=15/15 s=1 [2] e=0.00462962963 [17] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
-SkOpSegment::activeOp id=5 t=0.99537037 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0
-SkOpSegment::activeOp id=1 t=1 tEnd=0.00462962963 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
-SkOpSegment::findNextOp chase.append segment=1 span=17 windSum=-1
-SkOpSegment::markDone id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::findNextOp from:[2] to:[1] start=90365736 end=90368360
-bridgeOp current id=2 from=(1075,242) to=(1075,0)
-path.moveTo(2.22044605e-14,242);
-path.lineTo(1075,242);
-SkOpSegment::findNextOp
-SkOpAngle::dumpOne [1/2] next=1/1 sect=31/31 s=0.00462962963 [17] e=1 [2] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
-SkOpAngle::dumpOne [1/1] next=8/12 sect=15/15 s=0.00462962963 [17] e=0 [1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
-SkOpAngle::dumpOne [8/12] next=1/2 sect=23/23 s=1 [16] e=0 [15] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand
-SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
-SkOpSegment::activeOp id=8 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1
-SkOpSegment::markDone id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1
-SkOpSegment::findNextOp from:[1] to:[8] start=90368192 end=90368048
-bridgeOp current id=1 from=(1075,0) to=(-8.8817842e-16,0)
-path.lineTo(1075,0);
-SkOpSegment::findNextOp
-SkOpAngle::dumpOne [8/11] next=3/8 sect=7/7 s=0 [15] e=1 [16] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand
-SkOpAngle::dumpOne [3/8] next=3/7 sect=15/15 s=0.99537037 [20] e=1 [6] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
-SkOpAngle::dumpOne [3/7] next=8/11 sect=31/31 s=0.99537037 [20] e=0 [5] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 done
-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0
-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
-SkOpSegment::markDone id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
-SkOpSegment::findNextOp from:[8] to:[3] start=90368840 end=90366336
-bridgeOp current id=8 from=(0,0) to=(0,242)
-path.lineTo(-8.8817842e-16,0);
-path.lineTo(0,242);
-path.close();
-</div>
-
+ +Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ SK_DEBUG +<div id="android1"> +seg=1 {{{-5, 0}, {1075, 0}}} +seg=2 {{{1075, 0}, {1075, 242}}} +seg=3 {{{1075, 242}, {-5, 242}}} +seg=4 {{{-5, 242}, {-5, 0}}} +op sect +seg=5 {{{0, 0}, {1080, 0}}} +seg=6 {{{1080, 0}, {1080, 242}}} +seg=7 {{{1080, 242}, {0, 242}}} +seg=8 {{{0, 242}, {0, 0}}} +debugShowLineIntersection wtTs[0]=0 {{{1075,0}, {1075,242}}} {{1075,0}} wnTs[0]=1 {{{-5,0}, {1075,0}}} +debugShowLineIntersection wtTs[0]=1 {{{-5,242}, {-5,0}}} {{-5,0}} wnTs[0]=0 {{{-5,0}, {1075,0}}} +debugShowLineIntersection wtTs[0]=0 {{{1075,242}, {-5,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}} +debugShowLineIntersection wtTs[0]=0 {{{-5,242}, {-5,0}}} {{-5,242}} wnTs[0]=1 {{{1075,242}, {-5,242}}} +debugShowLineIntersection wtTs[0]=0 {{{0,0}, {1080,0}}} {{0,0}} wtTs[1]=0.99537037 {{1075,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}} wnTs[1]=1 +SkOpSegment::addT insert t=0.00462962963 segID=1 spanID=17 +SkOpSegment::addT insert t=0.99537037 segID=5 spanID=18 +debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}} +debugShowLineIntersection wtTs[0]=0.99537037 {{{0,0}, {1080,0}}} {{1075,0}} wnTs[0]=0 {{{1075,0}, {1075,242}}} +debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}} +SkOpSegment::addT insert t=0.00462962963 segID=7 spanID=19 +debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wtTs[1]=1 {{0,242}} wnTs[0]=0 {{{1075,242}, {-5,242}}} wnTs[1]=0.99537037 +SkOpSegment::addT insert t=0.99537037 segID=3 spanID=20 +debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=0.99537 {{{1075,242}, {-5,242}}} +debugShowLineIntersection wtTs[0]=0 {{{1080,0}, {1080,242}}} {{1080,0}} wnTs[0]=1 {{{0,0}, {1080,0}}} +debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0 {{{0,0}, {1080,0}}} +debugShowLineIntersection wtTs[0]=0 {{{1080,242}, {0,242}}} {{1080,242}} wnTs[0]=1 {{{1080,0}, {1080,242}}} +debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=1 {{{1080,242}, {0,242}}} +------------------x--x---------------- addExpanded +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=5 (0,0 1075,0) t=0 tEnd=0.99537037 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=7 (1075,242 0,242) t=0.00462962963 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1 +------------------x--x---------------- move_multiples +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- move_nearby +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- correctEnds +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- addEndMovedSpans +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- expand +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- addExpanded +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +------------------x--x---------------- mark +00: seg/base=3/5 seg/base=7/19 MarkCoinStart +01: seg/base=3/20 seg/base=7/14 MarkCoinEnd +02: seg/base=1/17 seg/base=5/9 MarkCoinStart +03: seg/base=1/2 seg/base=5/18 MarkCoinEnd +-------------------------------------- missing_coincidence +-------------------------------------- expand +-------------------------------------- expand +-------------------------------------- apply +SkOpSegment::markDone id=7 (1080,242 0,242) t=0.00462962963 [19] (1075,242) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0 +SkOpSegment::markDone id=5 (0,0 1080,0) t=0 [9] (0,0) tEnd=0.99537037 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0 +-------------------------------------- findOverlaps +SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1 +SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? oppSum=? windValue=1 oppValue=1 +SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1 +-------------------------------------- calc_angles +SkOpSegment::sortAngles [1] tStart=0.00462962963 [17] +SkOpAngle::after [1/1] 15/15 tStart=0.00462962963 tEnd=0 < [8/12] 23/23 tStart=1 tEnd=0 < [1/2] 31/31 tStart=0.00462962963 tEnd=1 T 4 +SkOpAngle::afterPart {{{0,0}, {-5,0}}} id=1 +SkOpAngle::afterPart {{{0,0}, {0,242}}} id=8 +SkOpAngle::afterPart {{{0,0}, {1075,0}}} id=1 +SkOpSegment::sortAngles [1] tStart=1 [2] +SkOpAngle::after [1/3] 15/15 tStart=1 tEnd=0.00462962963 < [2/4] 23/23 tStart=0 tEnd=1 < [5/9] 31/31 tStart=0.99537037 tEnd=1 T 4 +SkOpAngle::afterPart {{{1075,0}, {-8.8817842e-16,0}}} id=1 +SkOpAngle::afterPart {{{1075,0}, {1075,242}}} id=2 +SkOpAngle::afterPart {{{1075,0}, {1080,0}}} id=5 +SkOpSegment::sortAngles [2] tStart=0 [3] +SkOpSegment::sortAngles [2] tStart=1 [4] +SkOpAngle::after [2/5] 7/7 tStart=1 tEnd=0 < [3/6] 15/15 tStart=0 tEnd=0.99537037 < [7/10] 31/31 tStart=0.00462962963 tEnd=0 T 4 +SkOpAngle::afterPart {{{1075,242}, {1075,0}}} id=2 +SkOpAngle::afterPart {{{1075,242}, {2.22044605e-14,242}}} id=3 +SkOpAngle::afterPart {{{1075,242}, {1080,242}}} id=7 +SkOpSegment::sortAngles [3] tStart=0 [5] +SkOpSegment::sortAngles [3] tStart=0.99537037 [20] +SkOpAngle::after [3/7] 31/31 tStart=0.99537037 tEnd=0 < [8/11] 7/7 tStart=0 tEnd=1 < [3/8] 15/15 tStart=0.99537037 tEnd=1 T 4 +SkOpAngle::afterPart {{{0,242}, {1075,242}}} id=3 +SkOpAngle::afterPart {{{0,242}, {0,0}}} id=8 +SkOpAngle::afterPart {{{0,242}, {-5,242}}} id=3 +SkOpSegment::sortAngles [5] tStart=0.99537037 [18] +SkOpSegment::sortAngles [7] tStart=0.00462962963 [19] +SkOpSegment::sortAngles [8] tStart=0 [15] +SkOpSegment::sortAngles [8] tStart=1 [16] +coinSpan - id=3 t=0 tEnd=0.99537037 +coinSpan + id=7 t=0.00462962963 tEnd=1 +coinSpan - id=1 t=0.00462962963 tEnd=1 +coinSpan + id=5 t=0 tEnd=0.99537037 +SkOpSpan::sortableTop dir=kTop seg=1 t=0.00231481481 pt=(-2.5,0) +SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{-5, 0}, {1075, 0}}} t=0.00231481481 pt=(-2.5,0) slope=(1080,0) +SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markWinding id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0 +SkOpSegment::markDone id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markDone id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markDone id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +bridgeOp chase.append id=3 windSum=-1 +SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1 +SkOpSegment::markAngle last segment=3 span=5 windSum=-1 +SkOpSegment::markWinding id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markAngle last segment=8 span=16 +SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1 +SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=-1 oppSum=-1 windValue=1 oppValue=1 +SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1 +SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0 +SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1 +SkOpSegment::markWinding id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markWinding id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markWinding id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markAngle last segment=5 span=18 windSum=-1 +SkOpSegment::markWinding id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0 +SkOpSegment::markAngle last segment=2 span=3 windSum=-1 +SkOpSegment::findNextOp +SkOpAngle::dumpOne [3/6] next=7/10 sect=15/15 s=0 [5] e=0.99537037 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 +SkOpAngle::dumpOne [7/10] next=2/5 sect=31/31 s=0.00462962963 [19] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand +SkOpAngle::dumpOne [2/5] next=3/6 sect=7/7 s=1 [4] e=0 [3] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 +SkOpSegment::activeOp id=7 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0 +SkOpSegment::markDone id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markDone id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::markDone id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::findNextOp chase.append segment=5 span=18 windSum=-1 +SkOpSegment::activeOp id=2 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1 +SkOpSegment::findNextOp chase.append segment=2 span=3 windSum=-1 +SkOpSegment::markDone id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1 +SkOpSegment::findNextOp from:[3] to:[2] start=90366152 end=90366008 +bridgeOp current id=3 from=(2.22044605e-14,242) to=(1075,242) +SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1 +SkOpSegment::markAngle last segment=1 span=17 windSum=-1 +SkOpSegment::findNextOp +SkOpAngle::dumpOne [2/4] next=5/9 sect=23/23 s=0 [3] e=1 [4] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 +SkOpAngle::dumpOne [5/9] next=1/3 sect=31/31 s=0.99537037 [18] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done operand +SkOpAngle::dumpOne [1/3] next=2/4 sect=15/15 s=1 [2] e=0.00462962963 [17] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 +SkOpSegment::activeOp id=5 t=0.99537037 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0 +SkOpSegment::activeOp id=1 t=1 tEnd=0.00462962963 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1 +SkOpSegment::findNextOp chase.append segment=1 span=17 windSum=-1 +SkOpSegment::markDone id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::findNextOp from:[2] to:[1] start=90365736 end=90368360 +bridgeOp current id=2 from=(1075,242) to=(1075,0) +path.moveTo(2.22044605e-14,242); +path.lineTo(1075,242); +SkOpSegment::findNextOp +SkOpAngle::dumpOne [1/2] next=1/1 sect=31/31 s=0.00462962963 [17] e=1 [2] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 +SkOpAngle::dumpOne [1/1] next=8/12 sect=15/15 s=0.00462962963 [17] e=0 [1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done +SkOpAngle::dumpOne [8/12] next=1/2 sect=23/23 s=1 [16] e=0 [15] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand +SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0 +SkOpSegment::activeOp id=8 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1 +SkOpSegment::markDone id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1 +SkOpSegment::findNextOp from:[1] to:[8] start=90368192 end=90368048 +bridgeOp current id=1 from=(1075,0) to=(-8.8817842e-16,0) +path.lineTo(1075,0); +SkOpSegment::findNextOp +SkOpAngle::dumpOne [8/11] next=3/8 sect=7/7 s=0 [15] e=1 [16] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand +SkOpAngle::dumpOne [3/8] next=3/7 sect=15/15 s=0.99537037 [20] e=1 [6] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done +SkOpAngle::dumpOne [3/7] next=8/11 sect=31/31 s=0.99537037 [20] e=0 [5] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 done +SkOpSegment::activeOp id=3 t=0.99537037 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0 +SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1 +SkOpSegment::markDone id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0 +SkOpSegment::findNextOp from:[8] to:[3] start=90368840 end=90366336 +bridgeOp current id=8 from=(0,0) to=(0,242) +path.lineTo(-8.8817842e-16,0); +path.lineTo(0,242); +path.close(); +</div> + </div> <script type="text/javascript"> @@ -2226,9 +2226,9 @@ function dxy_at_t(curve, type, t) { return dxy; } -function dpt_at_t(curve, t) {
+function dpt_at_t(curve, t) { var type = PATH_LINE + (curve.length / 2 - 2); - return dxy_at_t(curve, type, t);
+ return dxy_at_t(curve, type, t); } function drawLabel(num, px, py) { @@ -2346,11 +2346,11 @@ function y_at_t(curve, t) { return a * curve[1] + b * curve[3] + c * curve[5] + d * curve[7]; } -function pt_at_t(curve, t) {
- var pt = {};
- pt.x = x_at_t(curve, t);
- pt.y = y_at_t(curve, t);
- return pt;
+function pt_at_t(curve, t) { + var pt = {}; + pt.x = x_at_t(curve, t); + pt.y = y_at_t(curve, t); + return pt; } function drawOrder(curve, t, label) { @@ -2377,59 +2377,59 @@ function drawOrder(curve, t, label) { ctx.font = "normal 10px Arial"; } -function drawVisibleOrder(curve, label) {
- var s = pt_at_t(curve, 0);
- var e = pt_at_t(curve, 1);
- var sOn = ptOnScreen(s);
- var eOn = ptOnScreen(e);
- var defaultT = 0.85;
- if (sOn && eOn)
- return drawOrder(curve, defaultT, label);
- if (sOn || eOn) {
- if (eOn) {
- defaultT = 1 - defaultT;
- }
- var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
- var t = defaultT;
- var tries = 16;
- do {
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawOrder(curve, t, label);
- t += step;
- step /= 2;
- } while (--tries > 0);
- drawOrder(curve, defaultT, label);
- }
- // scattershot until we find a visible point
- var denom = 2; // visit odd number num / denom to hit unique pts
- var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
- do {
- for (var numer = 1; numer < denom; numer += 2) {
- var t = numer / denom + 0.1;
- if (t >= 1) {
- break;
- }
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawOrder(curve, t, label);
- }
- denom *= 2;
- } while (--tries > 0);
- drawOrder(curve, defaultT, label);
+function drawVisibleOrder(curve, label) { + var s = pt_at_t(curve, 0); + var e = pt_at_t(curve, 1); + var sOn = ptOnScreen(s); + var eOn = ptOnScreen(e); + var defaultT = 0.85; + if (sOn && eOn) + return drawOrder(curve, defaultT, label); + if (sOn || eOn) { + if (eOn) { + defaultT = 1 - defaultT; + } + var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2; + var t = defaultT; + var tries = 16; + do { + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawOrder(curve, t, label); + t += step; + step /= 2; + } while (--tries > 0); + drawOrder(curve, defaultT, label); + } + // scattershot until we find a visible point + var denom = 2; // visit odd number num / denom to hit unique pts + var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ... + do { + for (var numer = 1; numer < denom; numer += 2) { + var t = numer / denom + 0.1; + if (t >= 1) { + break; + } + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawOrder(curve, t, label); + } + denom *= 2; + } while (--tries > 0); + drawOrder(curve, defaultT, label); } -function set_length(pt, newLen) {
- var len = Math.sqrt(pt.x * pt.x + pt.y * pt.y);
- var scale = newLen / len;
- var newPt = { x: pt.x * scale, y: pt.y * scale };
- return newPt;
+function set_length(pt, newLen) { + var len = Math.sqrt(pt.x * pt.x + pt.y * pt.y); + var scale = newLen / len; + var newPt = { x: pt.x * scale, y: pt.y * scale }; + return newPt; } -function drawDirection(curve, t) {
+function drawDirection(curve, t) { var d = dpt_at_t(curve, t); d = set_length(d, 16); - var pt = localToGlobal(pt_at_t(curve, t));
+ var pt = localToGlobal(pt_at_t(curve, t)); ctx.beginPath(); ctx.moveTo(pt.x - d.y, pt.y + d.x); ctx.lineTo(pt.x + d.x, pt.y + d.y); @@ -2438,47 +2438,47 @@ function drawDirection(curve, t) { ctx.stroke(); } -function drawVisibleDirection(curve) {
- var s = pt_at_t(curve, 0);
- var e = pt_at_t(curve, 1);
- var sOn = ptOnScreen(s);
- var eOn = ptOnScreen(e);
- var defaultT = 0.65;
- if (sOn && eOn) {
- return drawDirection(curve, defaultT);
- }
- if (sOn || eOn) {
- if (eOn) {
- defaultT = 1 - defaultT;
- }
- var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
- var t = defaultT;
- var tries = 16;
- do {
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawDirection(curve, t);
- t += step;
- step /= 2;
- } while (--tries > 0);
- drawDirection(curve, defaultT);
- }
- // scattershot until we find a visible point
- var denom = 2; // visit odd number num / denom to hit unique pts
- var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
- do {
- for (var numer = 1; numer < denom; numer += 2) {
- var t = numer / denom + 0.1;
- if (t >= 1) {
- break;
- }
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawDirection(curve, t);
- }
- denom *= 2;
- } while (--tries > 0);
- drawDirection(curve, defaultT);
+function drawVisibleDirection(curve) { + var s = pt_at_t(curve, 0); + var e = pt_at_t(curve, 1); + var sOn = ptOnScreen(s); + var eOn = ptOnScreen(e); + var defaultT = 0.65; + if (sOn && eOn) { + return drawDirection(curve, defaultT); + } + if (sOn || eOn) { + if (eOn) { + defaultT = 1 - defaultT; + } + var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2; + var t = defaultT; + var tries = 16; + do { + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawDirection(curve, t); + t += step; + step /= 2; + } while (--tries > 0); + drawDirection(curve, defaultT); + } + // scattershot until we find a visible point + var denom = 2; // visit odd number num / denom to hit unique pts + var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ... + do { + for (var numer = 1; numer < denom; numer += 2) { + var t = numer / denom + 0.1; + if (t >= 1) { + break; + } + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawDirection(curve, t); + } + denom *= 2; + } while (--tries > 0); + drawDirection(curve, defaultT); } function drawID(curve, t, id) { @@ -2489,53 +2489,53 @@ function drawID(curve, t, id) { draw_id_at(id, _px, _py); } -function localToGlobal(local) {
- var global = {};
- global.x = (local.x - srcLeft) * scale;
- global.y = (local.y - srcTop) * scale;
- return global;
+function localToGlobal(local) { + var global = {}; + global.x = (local.x - srcLeft) * scale; + global.y = (local.y - srcTop) * scale; + return global; } -function ptOnScreen(local) {
- var pt = localToGlobal(local);
- return 10 <= pt.x && pt.x <= screenWidth - 10
- && 10 <= pt.y && pt.y <= screenHeight - 10;
+function ptOnScreen(local) { + var pt = localToGlobal(local); + return 10 <= pt.x && pt.x <= screenWidth - 10 + && 10 <= pt.y && pt.y <= screenHeight - 10; } -function drawVisibleID(curve, defaultT, id) {
- // determine if either or both ends are visible
- var s = pt_at_t(curve, 0);
- var e = pt_at_t(curve, 1);
- var sOn = ptOnScreen(s);
- var eOn = ptOnScreen(e);
- if (sOn && eOn)
- return drawID(curve, defaultT, id);
- if (sOn || eOn) {
- var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
- var t = defaultT;
- var tries = 16;
- do {
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawID(curve, t, id);
- t += step;
- step /= 2;
- } while (--tries > 0);
- drawID(curve, defaultT, id);
- }
- // scattershot until we find a visible point
- var denom = 2; // visit odd number num / denom to hit unique pts
- var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
- do {
- for (var numer = 1; numer < denom; numer += 2) {
- var t = numer / denom;
- var mid = pt_at_t(curve, t);
- if (ptOnScreen(mid))
- return drawID(curve, t, id);
- }
- denom *= 2;
- } while (--tries > 0);
- drawID(curve, defaultT, id);
+function drawVisibleID(curve, defaultT, id) { + // determine if either or both ends are visible + var s = pt_at_t(curve, 0); + var e = pt_at_t(curve, 1); + var sOn = ptOnScreen(s); + var eOn = ptOnScreen(e); + if (sOn && eOn) + return drawID(curve, defaultT, id); + if (sOn || eOn) { + var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2; + var t = defaultT; + var tries = 16; + do { + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawID(curve, t, id); + t += step; + step /= 2; + } while (--tries > 0); + drawID(curve, defaultT, id); + } + // scattershot until we find a visible point + var denom = 2; // visit odd number num / denom to hit unique pts + var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ... + do { + for (var numer = 1; numer < denom; numer += 2) { + var t = numer / denom; + var mid = pt_at_t(curve, t); + if (ptOnScreen(mid)) + return drawID(curve, t, id); + } + denom *= 2; + } while (--tries > 0); + drawID(curve, defaultT, id); } function draw_id_at(id, _px, _py) { @@ -2613,8 +2613,8 @@ function drawCurveSpecials(test, curve, type) { drawVisibleID(curve, 0.5, id); } } - if (draw_direction) {
- drawVisibleDirection(curve);
+ if (draw_direction) { + drawVisibleDirection(curve); } if (type == PATH_LINE) { return; @@ -3205,10 +3205,10 @@ function draw(test, lines, title) { drawVisibleOrder(leftCurve, 'L'); drawVisibleOrder(rightCurve, 'R'); } - if (draw_id) {
- drawVisibleID(leftCurve, 0.5, frags[0]);
- drawVisibleID(midCurve, 0.5, frags[6]);
- drawVisibleID(rightCurve, 0.5, frags[12]);
+ if (draw_id) { + drawVisibleID(leftCurve, 0.5, frags[0]); + drawVisibleID(midCurve, 0.5, frags[6]); + drawVisibleID(rightCurve, 0.5, frags[12]); } break; case REC_TYPE_AFTERPART: @@ -3245,8 +3245,8 @@ function draw(test, lines, title) { throw "stop execution"; } drawCurve(curve); - if (draw_id) {
- drawVisibleID(curve, 0.5, id);
+ if (draw_id) { + drawVisibleID(curve, 0.5, id); } ++afterIndex; break; |