fix pathops stitching bug
Tight data generates intersections that are currently unsortable. Edges that can be sorted are added; simple connected edges need to be added as well. Look for output edges with gaps and add simple edges that continue at the ends to reduce the gap size. Extended tests with region check (pathops_unittest -V -x) pass in debug and release. TBR=reed@google.com Bug: skia:8223 Change-Id: Ib0f22061ae3676e1a3b94574516a61cbbea2948f Reviewed-on: https://skia-review.googlesource.com/145644 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
This commit is contained in:
parent
82c11e024a
commit
cadc5063c0
@ -165,7 +165,9 @@ bool SkOpSegment::activeWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* sum
|
||||
|
||||
bool SkOpSegment::addCurveTo(const SkOpSpanBase* start, const SkOpSpanBase* end,
|
||||
SkPathWriter* path) const {
|
||||
FAIL_IF(start->starter(end)->alreadyAdded());
|
||||
const SkOpSpan* spanStart = start->starter(end);
|
||||
FAIL_IF(spanStart->alreadyAdded());
|
||||
const_cast<SkOpSpan*>(spanStart)->markAdded();
|
||||
SkDCurveSweep curvePart;
|
||||
start->segment()->subDivide(start, end, &curvePart.fCurve);
|
||||
curvePart.setCurveHullSweep(fVerb);
|
||||
@ -951,6 +953,7 @@ bool SkOpSegment::markAngle(int maxWinding, int sumWinding, const SkOpAngle* ang
|
||||
return false;
|
||||
}
|
||||
#if DEBUG_WINDING
|
||||
SkOpSpanBase* last = *result;
|
||||
if (last) {
|
||||
SkDebugf("%s last seg=%d span=%d", __FUNCTION__,
|
||||
last->segment()->debugID(), last->debugID());
|
||||
@ -978,6 +981,7 @@ bool SkOpSegment::markAngle(int maxWinding, int sumWinding, int oppMaxWinding,
|
||||
return false;
|
||||
}
|
||||
#if DEBUG_WINDING
|
||||
SkOpSpanBase* last = *result;
|
||||
if (last) {
|
||||
SkDebugf("%s last segment=%d span=%d", __FUNCTION__,
|
||||
last->segment()->debugID(), last->debugID());
|
||||
|
@ -251,7 +251,7 @@ public:
|
||||
return fBounds.fTop == fBounds.fBottom;
|
||||
}
|
||||
|
||||
SkOpSegment* isSimple(SkOpSpanBase** end, int* step) {
|
||||
SkOpSegment* isSimple(SkOpSpanBase** end, int* step) const {
|
||||
return nextChase(end, step, nullptr, nullptr);
|
||||
}
|
||||
|
||||
|
@ -421,7 +421,6 @@ public:
|
||||
if (fAlreadyAdded) {
|
||||
return true;
|
||||
}
|
||||
fAlreadyAdded = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -489,6 +488,10 @@ public:
|
||||
return fCoincident != this;
|
||||
}
|
||||
|
||||
void markAdded() {
|
||||
fAlreadyAdded = true;
|
||||
}
|
||||
|
||||
SkOpSpanBase* next() const {
|
||||
SkASSERT(!final());
|
||||
return fNext;
|
||||
@ -569,7 +572,7 @@ private: // no direct access to internals to avoid treating a span base as a sp
|
||||
int fOppValue; // normally 0 -- when binary coincident edges combine, opp value goes here
|
||||
int fTopTTry; // specifies direction and t value to try next
|
||||
bool fDone; // if set, this span to next higher T has been processed
|
||||
mutable bool fAlreadyAdded;
|
||||
bool fAlreadyAdded;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
#include "SkOpSegment.h"
|
||||
#include "SkOpSpan.h"
|
||||
#include "SkPathOpsPoint.h"
|
||||
#include "SkPathWriter.h"
|
||||
@ -214,6 +215,49 @@ void SkPathWriter::assemble() {
|
||||
eStart->fPt.fX, eStart->fPt.fY, eEnd->fPt.fX, eEnd->fPt.fY);
|
||||
}
|
||||
#endif
|
||||
// lengthen any partial contour adjacent to a simple segment
|
||||
for (int pIndex = 0; pIndex < endCount; pIndex++) {
|
||||
SkOpPtT* opPtT = const_cast<SkOpPtT*>(runs[pIndex]);
|
||||
SkPath dummy;
|
||||
SkPathWriter partWriter(dummy);
|
||||
do {
|
||||
if (!zero_or_one(opPtT->fT)) {
|
||||
break;
|
||||
}
|
||||
SkOpSpanBase* opSpanBase = opPtT->span();
|
||||
SkOpSpanBase* start = opPtT->fT ? opSpanBase->prev() : opSpanBase->upCast()->next();
|
||||
int step = opPtT->fT ? 1 : -1;
|
||||
const SkOpSegment* opSegment = opSpanBase->segment();
|
||||
const SkOpSegment* nextSegment = opSegment->isSimple(&start, &step);
|
||||
if (!nextSegment) {
|
||||
break;
|
||||
}
|
||||
SkOpSpanBase* opSpanEnd = start->t() ? start->prev() : start->upCast()->next();
|
||||
if (start->starter(opSpanEnd)->alreadyAdded()) {
|
||||
break;
|
||||
}
|
||||
nextSegment->addCurveTo(start, opSpanEnd, &partWriter);
|
||||
opPtT = opSpanEnd->ptT();
|
||||
SkOpPtT** runsPtr = const_cast<SkOpPtT**>(&runs[pIndex]);
|
||||
*runsPtr = opPtT;
|
||||
} while (true);
|
||||
partWriter.finishContour();
|
||||
const SkTArray<SkPath>& partPartials = partWriter.partials();
|
||||
if (!partPartials.count()) {
|
||||
continue;
|
||||
}
|
||||
// if pIndex is even, reverse and prepend to fPartials; otherwise, append
|
||||
SkPath& partial = const_cast<SkPath&>(fPartials[pIndex >> 1]);
|
||||
const SkPath& part = partPartials[0];
|
||||
if (pIndex & 1) {
|
||||
partial.addPath(part, SkPath::kExtend_AddPathMode);
|
||||
} else {
|
||||
SkPath reverse;
|
||||
reverse.reverseAddPath(part);
|
||||
reverse.addPath(partial, SkPath::kExtend_AddPathMode);
|
||||
partial = reverse;
|
||||
}
|
||||
}
|
||||
SkTDArray<int> sLink, eLink;
|
||||
int linkCount = endCount / 2; // number of partial contours
|
||||
sLink.append(linkCount);
|
||||
|
@ -8943,6 +8943,96 @@ path.close();
|
||||
testPathOpFail(reporter, path, path1, kXOR_SkPathOp, filename);
|
||||
}
|
||||
|
||||
static void op_1(skiatest::Reporter* reporter, const char* filename) {
|
||||
SkPath path;
|
||||
path.setFillType((SkPath::FillType) 0);
|
||||
path.setFillType(SkPath::kWinding_FillType);
|
||||
path.moveTo(SkBits2Float(0x15e80300), SkBits2Float(0x400004dc)); // 9.37088e-26f, 2.0003f
|
||||
path.quadTo(SkBits2Float(0xe56c206c), SkBits2Float(0x646c5f40), SkBits2Float(0x6c80885e), SkBits2Float(0xb4bc576c)); // -6.96923e+22f, 1.74412e+22f, 1.24309e+27f, -3.50813e-07f
|
||||
|
||||
SkPath path1(path);
|
||||
path.reset();
|
||||
path.setFillType((SkPath::FillType) 0);
|
||||
path.setFillType(SkPath::kWinding_FillType);
|
||||
path.moveTo(SkBits2Float(0x1b000010), SkBits2Float(0x6e5a5a1b)); // 1.05879e-22f, 1.68942e+28f
|
||||
path.quadTo(SkBits2Float(0xef646464), SkBits2Float(0xefefefef), SkBits2Float(0x000000ef), SkBits2Float(0x1bb4bc00)); // -7.06839e+28f, -1.48514e+29f, 3.3491e-43f, 2.99e-22f
|
||||
|
||||
SkPath path2(path);
|
||||
testPathOpFuzz(reporter, path1, path2, (SkPathOp) 2, filename);
|
||||
}
|
||||
|
||||
|
||||
static void op_2(skiatest::Reporter* reporter, const char* filename) {
|
||||
SkPath path;
|
||||
path.setFillType((SkPath::FillType) 1);
|
||||
path.setFillType(SkPath::kEvenOdd_FillType);
|
||||
path.moveTo(SkBits2Float(0xeee3ef57), SkBits2Float(0xef6300f8)); // -3.52712e+28f, -7.02543e+28f
|
||||
path.quadTo(SkBits2Float(0xeeee9c6e), SkBits2Float(0xef609993), SkBits2Float(0x00000000), SkBits2Float(0x6e5a5a1b)); // -3.69233e+28f, -6.95103e+28f, 0, 1.68942e+28f
|
||||
path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0
|
||||
path.quadTo(SkBits2Float(0xe56c206c), SkBits2Float(0x646c5f40), SkBits2Float(0x6c80885e), SkBits2Float(0x00000000)); // -6.96923e+22f, 1.74412e+22f, 1.24309e+27f, 0
|
||||
path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0
|
||||
path.quadTo(SkBits2Float(0xeeda2c5a), SkBits2Float(0xef6533a7), SkBits2Float(0xeee3ef57), SkBits2Float(0xef6300f8)); // -3.37607e+28f, -7.09345e+28f, -3.52712e+28f, -7.02543e+28f
|
||||
path.close();
|
||||
|
||||
SkPath path1(path);
|
||||
path.reset();
|
||||
path.setFillType((SkPath::FillType) 0);
|
||||
path.setFillType(SkPath::kWinding_FillType);
|
||||
path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0
|
||||
path.lineTo(SkBits2Float(0x1b1b1b00), SkBits2Float(0x1b5a5a1b)); // 1.283e-22f, 1.80617e-22f
|
||||
|
||||
SkPath path2(path);
|
||||
testPathOpFuzz(reporter, path1, path2, (SkPathOp) 0, filename);
|
||||
}
|
||||
|
||||
|
||||
static void op_3(skiatest::Reporter* reporter, const char* filename) {
|
||||
SkPath path;
|
||||
path.setFillType((SkPath::FillType) 1);
|
||||
path.setFillType(SkPath::kEvenOdd_FillType);
|
||||
path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x6e5a5a1b)); // 0, 1.68942e+28f
|
||||
path.quadTo(SkBits2Float(0xeeee9c6e), SkBits2Float(0xef609993), SkBits2Float(0xeee3ef57), SkBits2Float(0xef6300f8)); // -3.69233e+28f, -6.95103e+28f, -3.52712e+28f, -7.02543e+28f
|
||||
path.quadTo(SkBits2Float(0xeeda2c5a), SkBits2Float(0xef6533a7), SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // -3.37607e+28f, -7.09345e+28f, 0, 0
|
||||
path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x6e5a5a1b)); // 0, 1.68942e+28f
|
||||
path.close();
|
||||
path.moveTo(SkBits2Float(0x6c80885e), SkBits2Float(0x00000000)); // 1.24309e+27f, 0
|
||||
path.quadTo(SkBits2Float(0xe56c206c), SkBits2Float(0x646c5f40), SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // -6.96923e+22f, 1.74412e+22f, 0, 0
|
||||
path.lineTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000)); // 0, 0
|
||||
path.lineTo(SkBits2Float(0x6c80885e), SkBits2Float(0x00000000)); // 1.24309e+27f, 0
|
||||
path.close();
|
||||
|
||||
SkPath path1(path);
|
||||
path.reset();
|
||||
path.setFillType((SkPath::FillType) 0);
|
||||
path.setFillType(SkPath::kWinding_FillType);
|
||||
|
||||
SkPath path2(path);
|
||||
testPathOpFuzz(reporter, path1, path2, (SkPathOp) 0, filename);
|
||||
}
|
||||
|
||||
static void op_4(skiatest::Reporter* reporter, const char* filename) {
|
||||
SkPath patha, pathb;
|
||||
|
||||
patha.setFillType(SkPath::kEvenOdd_FillType);
|
||||
patha.moveTo(SkBits2Float(0x40d7ea90), SkBits2Float(0x3fa58930)); // 6.74738f, 1.29325f
|
||||
patha.lineTo(SkBits2Float(0x40ad3d93), SkBits2Float(0x3fa58930)); // 5.41377f, 1.29325f
|
||||
patha.lineTo(SkBits2Float(0x40ad3d93), SkBits2Float(0x3edba819)); // 5.41377f, 0.429017f
|
||||
patha.lineTo(SkBits2Float(0x40fc41e0), SkBits2Float(0x3edba819)); // 7.88304f, 0.429017f
|
||||
patha.lineTo(SkBits2Float(0x40fc41e0), SkBits2Float(0x3f3b7c94)); // 7.88304f, 0.73237f
|
||||
patha.lineTo(SkBits2Float(0x40d7ea90), SkBits2Float(0x3f3b7c94)); // 6.74738f, 0.73237f
|
||||
patha.lineTo(SkBits2Float(0x40d7ea90), SkBits2Float(0x3fa58930)); // 6.74738f, 1.29325f
|
||||
patha.close();
|
||||
|
||||
pathb.setFillType(SkPath::kEvenOdd_FillType);
|
||||
pathb.moveTo(SkBits2Float(0x40d7ea89), SkBits2Float(0x409a721d)); // 6.74738f, 4.82643f
|
||||
pathb.lineTo(SkBits2Float(0x411a9d73), SkBits2Float(0x409a721d)); // 9.66344f, 4.82643f
|
||||
pathb.lineTo(SkBits2Float(0x411a9d73), SkBits2Float(0x3f3b7c9a)); // 9.66344f, 0.73237f
|
||||
pathb.lineTo(SkBits2Float(0x40d7ea89), SkBits2Float(0x3f3b7c9a)); // 6.74738f, 0.73237f
|
||||
pathb.lineTo(SkBits2Float(0x40d7ea89), SkBits2Float(0x409a721d)); // 6.74738f, 4.82643f
|
||||
pathb.close();
|
||||
testPathOp(reporter, patha, pathb, kDifference_SkPathOp, filename);
|
||||
}
|
||||
|
||||
static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
|
||||
static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
|
||||
static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
|
||||
@ -8950,7 +9040,10 @@ static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
|
||||
#define TEST(name) { name, #name }
|
||||
|
||||
static struct TestDesc tests[] = {
|
||||
TEST(cubics41d),
|
||||
TEST(op_4),
|
||||
TEST(op_1),
|
||||
TEST(op_2),
|
||||
TEST(op_3),
|
||||
TEST(grshapearcs1),
|
||||
TEST(filinmangust14),
|
||||
TEST(testRect1_u),
|
||||
|
@ -2,535 +2,179 @@
|
||||
<head>
|
||||
<div height="0" hidden="true">
|
||||
|
||||
<div id="halbug">
|
||||
seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}}
|
||||
seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}}
|
||||
seg=3 {{{580.15918f, 593.602051f}, {278.653992f, 593.602051f}}}
|
||||
seg=4 {{{278.653992f, 593.602051f}, {278.653992f, 155.747406f}}}
|
||||
op sect
|
||||
seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}}
|
||||
seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}}
|
||||
seg=7 {{{580.238281f, 594.114014f}, {278.657715f, 594.114014f}}}
|
||||
seg=8 {{{278.657715f, 594.114014f}, {278.657715f, 155.747314f}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{580.238281,155.747314}, {580.238281,594.114014}}} {{580.238281,155.747314}} wnTs[0]=1 {{{278.657715,155.747314}, {580.238281,155.747314}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{278.657715,594.114014}, {278.657715,155.747314}}} {{278.657715,155.747314}} wnTs[0]=0 {{{278.657715,155.747314}, {580.238281,155.747314}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{580.238281,594.114014}, {278.657715,594.114014}}} {{580.238281,594.114014}} wnTs[0]=1 {{{580.238281,155.747314}, {580.238281,594.114014}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{278.657715,594.114014}, {278.657715,155.747314}}} {{278.657715,594.114014}} wnTs[0]=1 {{{580.238281,594.114014}, {278.657715,594.114014}}}
|
||||
debugShowLineIntersection no intersect {{{278.653992,155.747406}, {580.15918,155.747406}}} {{{278.657715,155.747314}, {580.238281,155.747314}}}
|
||||
debugShowLineIntersection no intersect {{{580.15918,155.747406}, {580.15918,593.602051}}} {{{278.657715,155.747314}, {580.238281,155.747314}}}
|
||||
debugShowLineIntersection wtTs[0]=1.23485256e-05 {{{278.653992,155.747406}, {580.15918,155.747406}}} {{278.657715,155.747406}} wnTs[0]=1 {{{278.657715,594.114014}, {278.657715,155.747314}}}
|
||||
SkOpSegment::addT insert t=1.23485256e-05 segID=1 spanID=17
|
||||
debugShowLineIntersection wtTs[0]=0.999987651 {{{580.15918,593.602051}, {278.653992,593.602051}}} {{278.657715,593.602051}} wnTs[0]=0.00116789 {{{278.657715,594.114014}, {278.657715,155.747314}}}
|
||||
SkOpSegment::addT insert t=0.00116788728 segID=8 spanID=18
|
||||
SkOpSegment::addT insert t=0.999987651 segID=3 spanID=19
|
||||
debugShowLineIntersection wtTs[0]=0 {{{580.15918,155.747406}, {580.15918,593.602051}}} {{580.15918,155.747406}} wnTs[0]=1 {{{278.653992,155.747406}, {580.15918,155.747406}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{278.653992,593.602051}, {278.653992,155.747406}}} {{278.653992,155.747406}} wnTs[0]=0 {{{278.653992,155.747406}, {580.15918,155.747406}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{580.15918,593.602051}, {278.653992,593.602051}}} {{580.15918,593.602051}} wnTs[0]=1 {{{580.15918,155.747406}, {580.15918,593.602051}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{278.653992,593.602051}, {278.653992,155.747406}}} {{278.653992,593.602051}} wnTs[0]=1 {{{580.15918,593.602051}, {278.653992,593.602051}}}
|
||||
-------------------------------------- addExpanded
|
||||
SkOpSegment::debugShowActiveSpans id=5 (278.657715,155.747314 580.238281,155.747314) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=6 (580.238281,155.747314 580.238281,594.114014) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (580.238281,594.114014 278.657715,594.114014) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,594.114014 278.657715,593.602051) t=0 tEnd=0.00116788728 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,593.602051 278.657715,155.747314) t=0.00116788728 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (278.653992,155.747406 278.657715,155.747406) t=0 tEnd=1.23485256e-05 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (278.657715,155.747406 580.15918,155.747406) t=1.23485256e-05 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (580.15918,155.747406 580.15918,593.602051) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (580.15918,593.602051 278.657715,593.602051) t=0 tEnd=0.999987651 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (278.657715,593.602051 278.653992,593.602051) t=0.999987651 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (278.653992,593.602051 278.653992,155.747406) t=0 tEnd=1 windSum=? windValue=1
|
||||
-------------------------------------- move_multiples
|
||||
-------------------------------------- move_nearby
|
||||
-------------------------------------- correctEnds
|
||||
-------------------------------------- addEndMovedSpans
|
||||
-------------------------------------- expand
|
||||
-------------------------------------- addExpanded
|
||||
-------------------------------------- mark
|
||||
-------------------------------------- missing_coincidence
|
||||
-------------------------------------- expand
|
||||
<div id="op_4">
|
||||
seg=1 {{{6.74738312f, 1.29324913f}, {5.41376638f, 1.29324913f}}}
|
||||
seg=2 {{{5.41376638f, 1.29324913f}, {5.41376638f, 0.429016858f}}}
|
||||
seg=3 {{{5.41376638f, 0.429016858f}, {7.88304138f, 0.429016858f}}}
|
||||
seg=4 {{{7.88304138f, 0.429016858f}, {7.88304138f, 0.732369661f}}}
|
||||
seg=5 {{{7.88304138f, 0.732369661f}, {6.74738312f, 0.732369661f}}}
|
||||
seg=6 {{{6.74738312f, 0.732369661f}, {6.74738312f, 1.29324913f}}}
|
||||
op diff
|
||||
seg=7 {{{6.74737978f, 4.82642984f}, {9.66343975f, 4.82642984f}}}
|
||||
seg=8 {{{9.66343975f, 4.82642984f}, {9.66343975f, 0.732370019f}}}
|
||||
seg=9 {{{9.66343975f, 0.732370019f}, {6.74737978f, 0.732370019f}}}
|
||||
seg=10 {{{6.74737978f, 0.732370019f}, {6.74737978f, 4.82642984f}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{5.41376638,1.29324913}, {5.41376638,0.429016858}}} {{5.41376638,1.29324913}} wnTs[0]=1 {{{6.74738312,1.29324913}, {5.41376638,1.29324913}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{6.74738312,0.732369661}, {6.74738312,1.29324913}}} {{6.74738312,1.29324913}} wnTs[0]=0 {{{6.74738312,1.29324913}, {5.41376638,1.29324913}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{5.41376638,0.429016858}, {7.88304138,0.429016858}}} {{5.41376638,0.429016858}} wnTs[0]=1 {{{5.41376638,1.29324913}, {5.41376638,0.429016858}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{7.88304138,0.429016858}, {7.88304138,0.732369661}}} {{7.88304138,0.429016858}} wnTs[0]=1 {{{5.41376638,0.429016858}, {7.88304138,0.429016858}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{7.88304138,0.732369661}, {6.74738312,0.732369661}}} {{7.88304138,0.732369661}} wnTs[0]=1 {{{7.88304138,0.429016858}, {7.88304138,0.732369661}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{6.74738312,0.732369661}, {6.74738312,1.29324913}}} {{6.74738312,0.732369661}} wnTs[0]=1 {{{7.88304138,0.732369661}, {6.74738312,0.732369661}}}
|
||||
debugShowLineIntersection wtTs[0]=0.13699827 {{{6.74737978,0.732370019}, {6.74737978,4.82642984}}} {{6.74737978,1.29324913}} wnTs[0]=2.50286e-06 {{{6.74738312,1.29324913}, {5.41376638,1.29324913}}}
|
||||
SkOpSegment::addT insert t=0.13699827 segID=10 spanID=21
|
||||
debugShowLineIntersection no intersect {{{9.66343975,0.732370019}, {6.74737978,0.732370019}}} {{{7.88304138,0.429016858}, {7.88304138,0.732369661}}}
|
||||
debugShowLineIntersection no intersect {{{9.66343975,0.732370019}, {6.74737978,0.732370019}}} {{{7.88304138,0.732369661}, {6.74738312,0.732369661}}}
|
||||
debugShowLineIntersection no intersect {{{6.74737978,0.732370019}, {6.74737978,4.82642984}}} {{{7.88304138,0.732369661}, {6.74738312,0.732369661}}}
|
||||
debugShowLineIntersection wtTs[0]=0.999998855 {{{9.66343975,0.732370019}, {6.74737978,0.732370019}}} {{6.74738312,0.732370019}} wnTs[0]=6.3762e-07 {{{6.74738312,0.732369661}, {6.74738312,1.29324913}}}
|
||||
debugShowLineIntersection no intersect {{{6.74737978,0.732370019}, {6.74737978,4.82642984}}} {{{6.74738312,0.732369661}, {6.74738312,1.29324913}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{9.66343975,4.82642984}, {9.66343975,0.732370019}}} {{9.66343975,4.82642984}} wnTs[0]=1 {{{6.74737978,4.82642984}, {9.66343975,4.82642984}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{6.74737978,0.732370019}, {6.74737978,4.82642984}}} {{6.74737978,4.82642984}} wnTs[0]=0 {{{6.74737978,4.82642984}, {9.66343975,4.82642984}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{9.66343975,0.732370019}, {6.74737978,0.732370019}}} {{9.66343975,0.732370019}} wnTs[0]=1 {{{9.66343975,4.82642984}, {9.66343975,0.732370019}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{6.74737978,0.732370019}, {6.74737978,4.82642984}}} {{6.74737978,0.732370019}} wnTs[0]=1 {{{9.66343975,0.732370019}, {6.74737978,0.732370019}}}
|
||||
-----------------------x-------------- addExpanded
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
SkOpSegment::debugShowActiveSpans id=1 (6.74738312,1.29324913 5.41376638,1.29324913) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (5.41376638,1.29324913 5.41376638,0.429016858) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (5.41376638,0.429016858 7.88304138,0.429016858) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (7.88304138,0.429016858 7.88304138,0.732369661) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (7.88304138,0.732369661 6.74738312,0.732369661) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=6 (6.74738312,0.732369661 6.74738312,1.29324913) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (6.74737978,4.82642984 9.66343975,4.82642984) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (9.66343975,4.82642984 9.66343975,0.732370019) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=9 (9.66343975,0.732370019 6.74737978,0.732370019) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=10 (6.74737978,0.732370019 6.74737978,1.29324913) t=0 tEnd=0.13699827 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=10 (6.74737978,1.29324913 6.74737978,4.82642984) t=0.13699827 tEnd=1 windSum=? windValue=1
|
||||
-----------------------x-------------- move_multiples
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- move_nearby
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- correctEnds
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- addEndMovedSpans
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- expand
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- addExpanded
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- mark
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
-----------------------x-------------- missing_coincidence
|
||||
00: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
01: coinSeg/Span/PtT=10/19/19 endSpan=21 oppSeg/Span/PtT=6/11/11 oppEndSpan=12 MissingCoin
|
||||
02: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
03: coinSeg/Span/PtT=6/11/11 endSpan=12 oppSeg/Span/PtT=10/19/19 oppEndSpan=21 MissingCoin
|
||||
SkOpSegment::missingCoincidence coinSpan=19 endSpan=21 oppSpan=11 oppEndSpan=12
|
||||
------------------x--x---------------- expand
|
||||
00: seg/base=10/19 seg/base=6/11 MarkCoinStart
|
||||
01: seg/base=10/21 seg/base=6/12 MarkCoinEnd
|
||||
------------------x--x---------------- addExpanded
|
||||
00: seg/base=10/19 seg/base=6/11 MarkCoinStart
|
||||
01: seg/base=10/21 seg/base=6/12 MarkCoinEnd
|
||||
------------------x--x---------------- mark
|
||||
00: seg/base=10/19 seg/base=6/11 MarkCoinStart
|
||||
01: seg/base=10/21 seg/base=6/12 MarkCoinEnd
|
||||
-------------------------------------- expand
|
||||
-------------------------------------- apply
|
||||
SkOpSegment::markDone id=6 (6.74738312,0.732369661 6.74738312,1.29324913) t=0 [11] (6.74738312,0.732369661) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
|
||||
-------------------------------------- findOverlaps
|
||||
SkOpSegment::debugShowActiveSpans id=1 (6.74738312,1.29324913 5.41376638,1.29324913) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (5.41376638,1.29324913 5.41376638,0.429016858) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (5.41376638,0.429016858 7.88304138,0.429016858) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (7.88304138,0.429016858 7.88304138,0.732369661) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (7.88304138,0.732369661 6.74738312,0.732369661) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (6.74737978,4.82642984 9.66343975,4.82642984) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (9.66343975,4.82642984 9.66343975,0.732370019) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=9 (9.66343975,0.732370019 6.74737978,0.732370019) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=10 (6.74737978,0.732370019 6.74737978,1.29324913) t=0 tEnd=0.13699827 windSum=? oppSum=? windValue=1 oppValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=10 (6.74737978,1.29324913 6.74737978,4.82642984) t=0.13699827 tEnd=1 windSum=? windValue=1
|
||||
-------------------------------------- calc_angles
|
||||
SkOpSegment::sortAngles [5] tStart=0 [9]
|
||||
SkOpAngle::after [5/1] 31/31 tStart=0 tEnd=1 < [1/5] 15/15 tStart=1.23485256e-05 tEnd=0 < [8/4] 23/23 tStart=1 tEnd=0.00116788728 T 4
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {580.238281,155.747406}}} id=5
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {278.653992,155.747406}}} id=1
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {278.657715,593.602142}}} id=8
|
||||
SkOpAngle::after [5/1] 31/31 tStart=0 tEnd=1 < [1/6] 31/31 tStart=1.23485256e-05 tEnd=1 < [1/5] 15/15 tStart=1.23485256e-05 tEnd=0 T 12
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {580.238281,155.747406}}} id=5
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {580.15918,155.747406}}} id=1
|
||||
SkOpAngle::afterPart {{{278.657715,155.747406}, {278.653992,155.747406}}} id=1
|
||||
SkOpSegment::sortAngles [8] tStart=0.00116788728 [18]
|
||||
SkOpAngle::after [8/2] 23/23 tStart=0.00116788728 tEnd=0 < [3/7] 31/31 tStart=0.999987651 tEnd=0 < [8/3] 7/7 tStart=0.00116788728 tEnd=1 T 4
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,594.114014}}} id=8
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {580.15918,593.602051}}} id=3
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,155.747314}}} id=8
|
||||
SkOpAngle::after [8/2] 23/23 tStart=0.00116788728 tEnd=0 < [3/8] 15/15 tStart=0.999987651 tEnd=1 < [3/7] 31/31 tStart=0.999987651 tEnd=0 F 4
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,594.114014}}} id=8
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.653992,593.602051}}} id=3
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {580.15918,593.602051}}} id=3
|
||||
SkOpAngle::after [3/7] 31/31 tStart=0.999987651 tEnd=0 < [3/8] 15/15 tStart=0.999987651 tEnd=1 < [8/3] 7/7 tStart=0.00116788728 tEnd=1 F 4
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {580.15918,593.602051}}} id=3
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.653992,593.602051}}} id=3
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,155.747314}}} id=8
|
||||
SkOpAngle::after [8/3] 7/7 tStart=0.00116788728 tEnd=1 < [3/8] 15/15 tStart=0.999987651 tEnd=1 < [8/2] 23/23 tStart=0.00116788728 tEnd=0 T 4
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,155.747314}}} id=8
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.653992,593.602051}}} id=3
|
||||
SkOpAngle::afterPart {{{278.657715,593.602051}, {278.657715,594.114014}}} id=8
|
||||
SkOpSegment::sortAngles [8] tStart=1 [16]
|
||||
SkOpSegment::sortAngles [1] tStart=1.23485256e-05 [17]
|
||||
SkOpSegment::sortAngles [3] tStart=0.999987651 [19]
|
||||
SkOpSpan::sortableTop dir=kTop seg=5 t=0.5 pt=(429.447998,155.747314)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=9 ccw=1 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.5 pt=(429.447998,155.747314) slope=(301.580566,0)
|
||||
SkOpSegment::markWinding id=5 (278.657715,155.747314 580.238281,155.747314) t=0 [9] (278.657715,155.747314) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=6 (580.238281,155.747314 580.238281,594.114014) t=0 [11] (580.238281,155.747314) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=7 (580.238281,594.114014 278.657715,594.114014) t=0 [13] (580.238281,594.114014) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=8 (278.657715,594.114014 278.657715,155.747314) t=0 [15] (278.657715,594.114014) tEnd=0.00116788728 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=5 (278.657715,155.747314 580.238281,155.747314) t=0 [9] (278.657715,155.747314) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=5 t=1 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0
|
||||
SkOpSegment::markDone id=5 (278.657715,155.747314 580.238281,155.747314) t=0 [9] (278.657715,155.747314) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp chase.append id=5 windSum=-1
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.500006174 pt=(429.408447,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=1 span=9 ccw=0 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.499868855 pt=(429.408447,155.747314) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=17 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.500006174 pt=(429.408447,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kRight seg=1 t=0.500006174 pt=(429.408447,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=11 ccw=1 seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}} t=2.08849656e-07 pt=(580.238281,155.747406) slope=(0,438.366699)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=3 ccw=0 seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}} t=0 pt=(580.15918,155.747406) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=0 span=17 ccw=0 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.500006174 pt=(429.408447,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.250009261 pt=(354.033081,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=1 span=9 ccw=0 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.249934428 pt=(354.033081,155.747314) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=17 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.250009261 pt=(354.033081,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kRight seg=1 t=0.250009261 pt=(354.033081,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=11 ccw=1 seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}} t=2.08849656e-07 pt=(580.238281,155.747406) slope=(0,438.366699)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=3 ccw=0 seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}} t=0 pt=(580.15918,155.747406) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=0 span=17 ccw=0 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.250009261 pt=(354.033081,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.375007718 pt=(391.720764,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=1 span=9 ccw=0 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.374901641 pt=(391.720764,155.747314) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=17 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.375007718 pt=(391.720764,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kRight seg=1 t=0.375007718 pt=(391.720764,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=11 ccw=1 seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}} t=2.08849656e-07 pt=(580.238281,155.747406) slope=(0,438.366699)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=3 ccw=0 seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}} t=0 pt=(580.15918,155.747406) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=0 span=17 ccw=0 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.375007718 pt=(391.720764,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.625004631 pt=(467.09613,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=1 span=9 ccw=0 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.624836069 pt=(467.09613,155.747314) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=17 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.625004631 pt=(467.09613,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kRight seg=1 t=0.625004631 pt=(467.09613,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=11 ccw=1 seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}} t=2.08849656e-07 pt=(580.238281,155.747406) slope=(0,438.366699)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=3 ccw=0 seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}} t=0 pt=(580.15918,155.747406) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=0 span=17 ccw=0 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.625004631 pt=(467.09613,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.437506946 pt=(410.564606,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=1 span=9 ccw=0 seg=5 {{{278.657715f, 155.747314f}, {580.238281f, 155.747314f}}} t=0.437385248 pt=(410.564606,155.747314) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=17 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.437506946 pt=(410.564606,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kRight seg=1 t=0.437506946 pt=(410.564606,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=11 ccw=1 seg=6 {{{580.238281f, 155.747314f}, {580.238281f, 594.114014f}}} t=2.08849656e-07 pt=(580.238281,155.747406) slope=(0,438.366699)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=3 ccw=0 seg=2 {{{580.15918f, 155.747406f}, {580.15918f, 593.602051f}}} t=0 pt=(580.15918,155.747406) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=0 span=17 ccw=0 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=0.437506946 pt=(410.564606,155.747406) slope=(301.505188,0)
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=6.1742628e-06 pt=(278.655853,155.747406)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{278.653992f, 155.747406f}, {580.15918f, 155.747406f}}} t=6.1742628e-06 pt=(278.655853,155.747406) slope=(301.505188,0)
|
||||
SkOpSegment::markWinding id=1 (278.653992,155.747406 580.15918,155.747406) t=0 [1] (278.653992,155.747406) tEnd=1.23485256e-05 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=1 (278.653992,155.747406 580.15918,155.747406) t=0 [1] (278.653992,155.747406) tEnd=1.23485256e-05 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=4 (278.653992,593.602051 278.653992,155.747406) t=0 [7] (278.653992,593.602051) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=3 (580.15918,593.602051 278.653992,593.602051) t=0.999987651 [19] (278.657715,593.602051) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSpan::sortableTop dir=kLeft seg=8 t=0.500583944 pt=(278.657715,374.674683)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=0 span=7 ccw=1 seg=4 {{{278.653992f, 593.602051f}, {278.653992f, 155.747406f}}} t=0.500000105 pt=(278.653992,374.674683) slope=(0,-437.854645)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=1 span=18 ccw=1 seg=8 {{{278.657715f, 594.114014f}, {278.657715f, 155.747314f}}} t=0.500583944 pt=(278.657715,374.674683) slope=(0,-438.366699)
|
||||
SkOpSegment::markWinding id=8 (278.657715,594.114014 278.657715,155.747314) t=0.00116788728 [18] (278.657715,593.602051) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=8 (278.657715,594.114014 278.657715,155.747314) t=0.00116788728 [18] (278.657715,593.602051) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=6 (580.238281,155.747314 580.238281,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=7 (580.238281,594.114014 278.657715,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,594.114014 278.657715,593.602051) t=0 tEnd=0.00116788728 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,593.602051 278.657715,155.747314) t=0.00116788728 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=1 (278.653992,155.747406 278.657715,155.747406) t=0 tEnd=1.23485256e-05 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=1 (278.657715,155.747406 580.15918,155.747406) t=1.23485256e-05 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (580.15918,155.747406 580.15918,593.602051) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (580.15918,593.602051 278.657715,593.602051) t=0 tEnd=0.999987651 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (278.657715,593.602051 278.653992,593.602051) t=0.999987651 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=4 (278.653992,593.602051 278.653992,155.747406) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=1 t=1.23485256e-05 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
|
||||
SkOpSegment::markDone id=1 (278.653992,155.747406 580.15918,155.747406) t=0 [1] (278.653992,155.747406) tEnd=1.23485256e-05 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=4 (278.653992,593.602051 278.653992,155.747406) t=0 [7] (278.653992,593.602051) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=3 (580.15918,593.602051 278.653992,593.602051) t=0.999987651 [19] (278.657715,593.602051) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp chase.append id=3 windSum=-1
|
||||
SkOpSegment::debugShowActiveSpans id=6 (580.238281,155.747314 580.238281,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=7 (580.238281,594.114014 278.657715,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,594.114014 278.657715,593.602051) t=0 tEnd=0.00116788728 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,593.602051 278.657715,155.747314) t=0.00116788728 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=1 (278.657715,155.747406 580.15918,155.747406) t=1.23485256e-05 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (580.15918,155.747406 580.15918,593.602051) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (580.15918,593.602051 278.657715,593.602051) t=0 tEnd=0.999987651 windSum=? windValue=1
|
||||
SkOpSegment::activeOp id=8 t=0.00116788728 tEnd=1 op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1
|
||||
SkOpSegment::findNextOp
|
||||
SkOpAngle::dumpOne [8/4] next=5/1 sect=23/23 s=1 [16] e=0.00116788728 [18] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand
|
||||
SkOpAngle::dumpOne [5/1] next=1/6 sect=31/31 s=0 [9] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done unorderable operand
|
||||
SkOpAngle::dumpOne [1/6] next=1/5 sect=31/31 s=1.23485256e-05 [17] e=1 [2] sgn=-1 windVal=1 windSum=? unorderable
|
||||
SkOpAngle::dumpOne [1/5] next=8/4 sect=15/15 s=1.23485256e-05 [17] e=0 [1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
|
||||
SkOpSegment::activeOp id=5 t=0 tEnd=1 op=sect miFrom=1 miTo=1 suFrom=1 suTo=0 result=1
|
||||
SkOpSegment::activeOp id=1 t=1.23485256e-05 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0
|
||||
SkOpSegment::markDone id=1 (278.653992,155.747406 580.15918,155.747406) t=1.23485256e-05 [17] (278.657715,155.747406) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=2 (580.15918,155.747406 580.15918,593.602051) t=0 [3] (580.15918,155.747406) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=3 (580.15918,593.602051 278.653992,593.602051) t=0 [5] (580.15918,593.602051) tEnd=0.999987651 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=1 t=1.23485256e-05 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
|
||||
SkOpSegment::markDone id=8 (278.657715,594.114014 278.657715,155.747314) t=0.00116788728 [18] (278.657715,593.602051) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::findNextOp from:[8] to:[5] start=1653597136 end=1653597280
|
||||
bridgeOp current id=8 from=(278.657715,593.602051) to=(278.657715,155.747314)
|
||||
path.moveTo(278.657715,593.602051);
|
||||
path.lineTo(278.657715,155.747314);
|
||||
SkOpSegment::debugShowActiveSpans id=6 (580.238281,155.747314 580.238281,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=7 (580.238281,594.114014 278.657715,594.114014) t=0 tEnd=1 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=8 (278.657715,594.114014 278.657715,593.602051) t=0 tEnd=0.00116788728 windSum=-1 oppSum=0 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=8 t=0.00116788728 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0
|
||||
SkOpSegment::markDone id=8 (278.657715,594.114014 278.657715,155.747314) t=0 [15] (278.657715,594.114014) tEnd=0.00116788728 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=7 (580.238281,594.114014 278.657715,594.114014) t=0 [13] (580.238281,594.114014) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=6 (580.238281,155.747314 580.238281,594.114014) t=0 [11] (580.238281,155.747314) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
</div>
|
||||
|
||||
<div id="filinmangust14">
|
||||
seg=1 {{{559.002686f, 551}, {559.002686f, 570}}}
|
||||
seg=2 {{{559.002686f, 570}, {558.997681f, 570}}}
|
||||
seg=3 {{{558.997681f, 570}, {558.997681f, 551}}}
|
||||
seg=4 {{{558.997681f, 551}, {559.002686f, 551}}}
|
||||
op union
|
||||
<empty>
|
||||
seg=5 {{{364, 759.997498f}, {3403.40015f, 759.997498f}}}
|
||||
seg=6 {{{3403.40015f, 759.997498f}, {3403.40015f, 760.002502f}}}
|
||||
seg=7 {{{3403.40015f, 760.002502f}, {364, 760.002502f}}}
|
||||
seg=8 {{{364, 760.002502f}, {364, 759.997498f}}}
|
||||
seg=9 {{{3403.39771f, 6099}, {3403.39771f, 760}}}
|
||||
seg=10 {{{3403.39771f, 760}, {3403.40259f, 760}}}
|
||||
seg=11 {{{3403.40259f, 760}, {3403.39771f, 6099}}}
|
||||
seg=12 {{{1274, 379.997498f}, {3403.40015f, 379.997498f}}}
|
||||
seg=13 {{{3403.40015f, 379.997498f}, {3403.40015f, 380.002502f}}}
|
||||
seg=14 {{{3403.40015f, 380.002502f}, {1274, 380.002502f}}}
|
||||
seg=15 {{{1274, 380.002502f}, {1274, 379.997498f}}}
|
||||
seg=16 {{{3403.39771f, 760}, {3403.39771f, 380}}}
|
||||
seg=17 {{{3403.39771f, 380}, {3403.40259f, 380}}}
|
||||
seg=18 {{{3403.40259f, 380}, {3403.40259f, 760}}}
|
||||
seg=19 {{{3403.40259f, 760}, {3403.39771f, 760}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40015,379.997498}, {3403.40015,380.002502}}} {{3403.40015,379.997498}} wnTs[0]=1 {{{1274,379.997498}, {3403.40015,379.997498}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{1274,380.002502}, {1274,379.997498}}} {{1274,379.997498}} wnTs[0]=0 {{{1274,379.997498}, {3403.40015,379.997498}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40015,380.002502}, {1274,380.002502}}} {{3403.40015,380.002502}} wnTs[0]=1 {{{3403.40015,379.997498}, {3403.40015,380.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{1274,380.002502}, {1274,379.997498}}} {{1274,380.002502}} wnTs[0]=1 {{{3403.40015,380.002502}, {1274,380.002502}}}
|
||||
debugShowLineIntersection no intersect {{{3403.39771,760}, {3403.39771,380}}} {{{3403.40015,379.997498}, {3403.40015,380.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0.5 {{{3403.39771,380}, {3403.40259,380}}} {{3403.40015,380}} wnTs[0]=0.5 {{{3403.40015,379.997498}, {3403.40015,380.002502}}}
|
||||
debugShowLineIntersection no intersect {{{3403.40259,380}, {3403.40259,760}}} {{{3403.40015,379.997498}, {3403.40015,380.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0.999993415 {{{3403.39771,760}, {3403.39771,380}}} {{3403.39771,380.002502}} wnTs[0]=1.14652e-06 {{{3403.40015,380.002502}, {1274,380.002502}}}
|
||||
debugShowLineIntersection no intersect {{{3403.40259,380}, {3403.40259,760}}} {{{3403.40015,380.002502}, {1274,380.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.39771,380}, {3403.40259,380}}} {{3403.39771,380}} wnTs[0]=1 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
SkOpSegment::markDone id=13 (3403.40015,379.997498 3403.40015,380.002502) t=0 [25] (3403.40015,379.997498) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
debugShowLineIntersection wtTs[0]=1 {{{3403.40259,760}, {3403.39771,760}}} {{3403.39771,760}} wnTs[0]=0 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40259,380}, {3403.40259,760}}} {{3403.40259,380}} wnTs[0]=1 {{{3403.39771,380}, {3403.40259,380}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40259,760}, {3403.39771,760}}} {{3403.40259,760}} wnTs[0]=1 {{{3403.40259,380}, {3403.40259,760}}}
|
||||
debugShowLineIntersection wtTs[0]=0.999999197 {{{364,759.997498}, {3403.40015,759.997498}}} {{3403.39771,759.997498}} wnTs[0]=6.58537e-06 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection no intersect {{{3403.40015,759.997498}, {3403.40015,760.002502}}} {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection no intersect {{{364,759.997498}, {3403.40015,759.997498}}} {{{3403.40259,380}, {3403.40259,760}}}
|
||||
debugShowLineIntersection no intersect {{{3403.40015,759.997498}, {3403.40015,760.002502}}} {{{3403.40259,380}, {3403.40259,760}}}
|
||||
debugShowLineIntersection wtTs[0]=0.5 {{{3403.40015,759.997498}, {3403.40015,760.002502}}} {{3403.40015,760}} wnTs[0]=0.5 {{{3403.40259,760}, {3403.39771,760}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{3403.39771,6099}, {3403.39771,760}}} {{3403.39771,760}} wnTs[0]=0 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.39771,760}, {3403.40259,760}}} {{3403.39771,760}} wnTs[0]=0 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection wtTs[0]=8.36411997e-13 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.39771,760}} wnTs[0]=0 {{{3403.39771,760}, {3403.39771,380}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{3403.39771,760}, {3403.40259,760}}} {{3403.40259,760}} wnTs[0]=1 {{{3403.40259,380}, {3403.40259,760}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.40259,760}} wnTs[0]=1 {{{3403.40259,380}, {3403.40259,760}}}
|
||||
SkOpSegment::markDone id=10 (3403.39771,760 3403.40259,760) t=0 [19] (3403.39771,760) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=19 (3403.40259,760 3403.39771,760) t=0 [37] (3403.40259,760) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
debugShowLineIntersection wtTs[0]=1 {{{3403.39771,6099}, {3403.39771,760}}} {{3403.39771,760}} wnTs[0]=1 {{{3403.40259,760}, {3403.39771,760}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.39771,760}, {3403.40259,760}}} {{3403.39771,760}} wtTs[1]=1 {{3403.40259,760}} wnTs[0]=1 {{{3403.40259,760}, {3403.39771,760}}} wnTs[1]=0
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.40259,760}} wnTs[0]=0 {{{3403.40259,760}, {3403.39771,760}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{559.002686,570}, {558.997681,570}}} {{559.002686,570}} wnTs[0]=1 {{{559.002686,551}, {559.002686,570}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{558.997681,551}, {559.002686,551}}} {{559.002686,551}} wnTs[0]=0 {{{559.002686,551}, {559.002686,570}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{558.997681,570}, {558.997681,551}}} {{558.997681,570}} wnTs[0]=1 {{{559.002686,570}, {558.997681,570}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{558.997681,551}, {559.002686,551}}} {{558.997681,551}} wnTs[0]=1 {{{558.997681,570}, {558.997681,551}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40015,759.997498}, {3403.40015,760.002502}}} {{3403.40015,759.997498}} wnTs[0]=1 {{{364,759.997498}, {3403.40015,759.997498}}}
|
||||
debugShowLineIntersection wtTs[0]=1 {{{364,760.002502}, {364,759.997498}}} {{364,759.997498}} wnTs[0]=0 {{{364,759.997498}, {3403.40015,759.997498}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40015,760.002502}, {364,760.002502}}} {{3403.40015,760.002502}} wnTs[0]=1 {{{3403.40015,759.997498}, {3403.40015,760.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{364,760.002502}, {364,759.997498}}} {{364,760.002502}} wnTs[0]=1 {{{3403.40015,760.002502}, {364,760.002502}}}
|
||||
debugShowLineIntersection no intersect {{{3403.39771,6099}, {3403.39771,760}}} {{{3403.40015,759.997498}, {3403.40015,760.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0.5 {{{3403.39771,760}, {3403.40259,760}}} {{3403.40015,760}} wnTs[0]=0.5 {{{3403.40015,759.997498}, {3403.40015,760.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=4.68710178e-07 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.40015,760.002502}} wnTs[0]=1 {{{3403.40015,759.997498}, {3403.40015,760.002502}}}
|
||||
SkOpSegment::markDone id=6 (3403.40015,759.997498 3403.40015,760.002502) t=0 [11] (3403.40015,759.997498) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=1 oppValue=0
|
||||
debugShowLineIntersection wtTs[0]=0.999999531 {{{3403.39771,6099}, {3403.39771,760}}} {{3403.39771,760.002502}} wnTs[0]=8.03253e-07 {{{3403.40015,760.002502}, {364,760.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=4.68710178e-07 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.40015,760.002502}} wnTs[0]=0 {{{3403.40015,760.002502}, {364,760.002502}}}
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.39771,760}, {3403.40259,760}}} {{3403.39771,760}} wnTs[0]=1 {{{3403.39771,6099}, {3403.39771,760}}}
|
||||
debugShowLineIntersection wtTs[0]=8.36411997e-13 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.39771,760}} wtTs[1]=1 {{3403.39771,6099}} wnTs[0]=1 {{{3403.39771,6099}, {3403.39771,760}}} wnTs[1]=0
|
||||
debugShowLineIntersection wtTs[0]=0 {{{3403.40259,760}, {3403.39771,6099}}} {{3403.40259,760}} wnTs[0]=1 {{{3403.39771,760}, {3403.40259,760}}}
|
||||
------------------x--x------x--------- addExpanded
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
SkOpSegment::debugShowActiveSpans id=12 (1274,379.997498 3403.40015,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=14 (3403.40015,380.002502 1274,380.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=15 (1274,380.002502 1274,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=16 (3403.39771,760 3403.39771,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=17 (3403.39771,380 3403.40259,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (559.002686,551 559.002686,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (559.002686,570 558.997681,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (558.997681,570 558.997681,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (558.997681,551 559.002686,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=9 (3403.39771,6099 3403.39771,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=11 (3403.40259,760 3403.39771,6099) t=0 tEnd=1 windSum=? windValue=1
|
||||
------------------x--x------x--------- move_multiples
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
------------------x--x------x--------- move_nearby
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
SkOpSegment::markDone id=17 (3403.39771,380 3403.40259,380) t=0 [33] (3403.39771,380) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
|
||||
------------------x--x------x--------- correctEnds
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
SkOpSegment::debugShowActiveSpans id=12 (1274,379.997498 3403.40015,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=14 (3403.40015,380.002502 1274,380.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=15 (1274,380.002502 1274,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=16 (3403.39771,760 3403.39771,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (559.002686,551 559.002686,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (559.002686,570 558.997681,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (558.997681,570 558.997681,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (558.997681,551 559.002686,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=9 (3403.39771,6099 3403.39771,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=11 (3403.40259,760 3403.39771,6099) t=0 tEnd=1 windSum=? windValue=1
|
||||
------------------x--x------x--------- addEndMovedSpans
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
------------------x--x------x--------- expand
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
------------------x--x------x--------- addExpanded
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
------------------x--x------x--------- mark
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
05: seg/base=9/17 seg/base=11/21 MarkCoinStart
|
||||
06: seg/base=9/18 seg/base=11/22 MarkCoinEnd
|
||||
----------------------------x--------- missing_coincidence
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
----------------------------x--------- expand
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
----------------------------x--------- expand
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
----------------------------x--------- apply
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
SkOpSegment::markDone id=9 (3403.39771,6099 3403.39771,760) t=0 [17] (3403.39771,6099) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
|
||||
SkOpSegment::markDone id=11 (3403.40259,760 3403.39771,6099) t=0 [21] (3403.40259,760) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
|
||||
----------------------------x--------- findOverlaps
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
SkOpSegment::debugShowActiveSpans id=12 (1274,379.997498 3403.40015,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=14 (3403.40015,380.002502 1274,380.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=15 (1274,380.002502 1274,379.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=16 (3403.39771,760 3403.39771,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (559.002686,551 559.002686,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (559.002686,570 558.997681,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (558.997681,570 558.997681,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (558.997681,551 559.002686,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
----------------------------x--------- calc_angles
|
||||
00: segment=13 MoveNearbyClearAll2
|
||||
01: segment=17 MoveNearbyClearAll2
|
||||
02: segment=19 MoveNearbyClearAll2
|
||||
03: segment=6 MoveNearbyClearAll2
|
||||
04: segment=10 MoveNearbyClearAll2
|
||||
SkOpSegment::sortAngles [12] tStart=1 [24]
|
||||
SkOpAngle::after [12/1] 15/15 tStart=1 tEnd=0 < [16/4] 23/23 tStart=1 tEnd=0 < [14/2] 15/15 tStart=0 tEnd=1 F 5
|
||||
SkOpAngle::afterPart {{{3403.39771,380}, {1273.99756,380}}} id=12
|
||||
SkOpAngle::afterPart {{{3403.39771,380}, {3403.39771,760}}} id=16
|
||||
SkOpAngle::afterPart {{{3403.39771,380}, {1273.99756,380}}} id=14
|
||||
SkOpSegment::sortAngles [14] tStart=0 [27]
|
||||
SkOpSegment::sortAngles [16] tStart=0 [31]
|
||||
SkOpAngle::after [16/3] 7/7 tStart=0 tEnd=1 < [7/7] 15/15 tStart=0 tEnd=1 < [18/5] 7/7 tStart=1 tEnd=0 F 5
|
||||
SkOpAngle::afterPart {{{3403.40015,760.002502}, {3403.40015,380.002502}}} id=16
|
||||
SkOpAngle::afterPart {{{3403.40015,760.002502}, {364,760.002502}}} id=7
|
||||
SkOpAngle::afterPart {{{3403.40015,760.002502}, {3403.40015,380.002502}}} id=18
|
||||
SkOpAngle::after [16/3] 7/7 tStart=0 tEnd=1 < [5/6] 15/15 tStart=1 tEnd=0 < [18/5] 7/7 tStart=1 tEnd=0 F 5
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {3403.40015,379.997498}}} id=16
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {364,759.997498}}} id=5
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {3403.40015,379.997498}}} id=18
|
||||
SkOpAngle::after [18/5] 7/7 tStart=1 tEnd=0 < [5/6] 15/15 tStart=1 tEnd=0 < [7/7] 15/15 tStart=0 tEnd=1 T 7
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {3403.40015,379.997498}}} id=18
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {364,759.997498}}} id=5
|
||||
SkOpAngle::afterPart {{{3403.40015,759.997498}, {364,759.997498}}} id=7
|
||||
SkOpSegment::sortAngles [16] tStart=1 [32]
|
||||
SkOpSegment::sortAngles [18] tStart=1 [36]
|
||||
SkOpSegment::sortAngles [1] tStart=0 [1]
|
||||
SkOpAngle::after [1/1] 15/15 tStart=0 tEnd=1 < [10/6] 23/23 tStart=0.13699827 tEnd=1 < [10/5] 7/7 tStart=0.13699827 tEnd=0 T 4
|
||||
SkOpAngle::afterPart {{{6.74737978,1.29324913}, {5.41376305,1.29324913}}} id=1
|
||||
SkOpAngle::afterPart {{{6.74737978,1.29324913}, {6.74737978,4.82642984}}} id=10
|
||||
SkOpAngle::afterPart {{{6.74737978,1.29324913}, {6.74737978,0.732370019}}} id=10
|
||||
SkOpSegment::sortAngles [5] tStart=1 [10]
|
||||
SkOpSegment::sortAngles [7] tStart=0 [13]
|
||||
coinSpan - id=9 t=0 tEnd=1
|
||||
coinSpan + id=11 t=1 tEnd=0
|
||||
SkOpSpan::sortableTop dir=kTop seg=12 t=0.5 pt=(2338.7002,379.997498)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=23 ccw=1 seg=12 {{{1274, 379.997498f}, {3403.40015f, 379.997498f}}} t=0.5 pt=(2338.7002,379.997498) slope=(2129.40015,0)
|
||||
SkOpSegment::markWinding id=12 (1274,379.997498 3403.40015,379.997498) t=0 [23] (1274,379.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=12 (1274,379.997498 3403.40015,379.997498) t=0 [23] (1274,379.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=15 (1274,380.002502 1274,379.997498) t=0 [29] (1274,380.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=14 (3403.40015,380.002502 1274,380.002502) t=0 [27] (3403.40015,380.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=12 t=1 tEnd=0 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=12 (1274,379.997498 3403.40015,379.997498) t=0 [23] (1274,379.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=12 from=(3403.40015,379.997498) to=(1274,379.997498)
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=15 (1274,380.002502 1274,379.997498) t=0 [29] (1274,380.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=15 from=(1274,379.997498) to=(1274,380.002502)
|
||||
path.moveTo(3403.40015,379.997498);
|
||||
path.lineTo(1274,379.997498);
|
||||
SkOpSegment::markDone id=14 (3403.40015,380.002502 1274,380.002502) t=0 [27] (3403.40015,380.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
path.lineTo(1274,380.002502);
|
||||
SkOpSegment::debugShowActiveSpans id=16 (3403.39771,760 3403.39771,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=1 (559.002686,551 559.002686,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=2 (559.002686,570 558.997681,570) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=3 (558.997681,570 558.997681,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=4 (558.997681,551 559.002686,551) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSpan::sortableTop dir=kLeft seg=16 t=0.5 pt=(3403.39771,570)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=0 span=5 ccw=1 seg=3 {{{558.997681f, 570}, {558.997681f, 551}}} t=0 pt=(558.997681,570) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=-1 ccw=1 t=1 pt=(559.002686,570) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=1 span=31 ccw=1 seg=16 {{{3403.39771f, 760}, {3403.39771f, 380}}} t=0.5 pt=(3403.39771,570) slope=(0,-380)
|
||||
SkOpSpan::sortableTop dir=kLeft seg=18 t=0.5 pt=(3403.40259,570)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=0 span=5 ccw=1 seg=3 {{{558.997681f, 570}, {558.997681f, 551}}} t=0 pt=(558.997681,570) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=0 operand=0 span=-1 ccw=1 t=1 pt=(559.002686,570) slope=(0,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=1 span=31 ccw=1 seg=16 {{{3403.39771f, 760}, {3403.39771f, 380}}} t=0.5 pt=(3403.39771,570) slope=(0,-380)
|
||||
SkOpSpan::sortableTop [3] valid=1 operand=1 span=35 ccw=0 seg=18 {{{3403.40259f, 380}, {3403.40259f, 760}}} t=0.5 pt=(3403.40259,570) slope=(0,380)
|
||||
SkOpSpan::sortableTop dir=kLeft seg=1 t=0.5 pt=(559.002686,560.5)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=0 span=5 ccw=1 seg=3 {{{558.997681f, 570}, {558.997681f, 551}}} t=0.5 pt=(558.997681,560.5) slope=(0,-19)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=1 ccw=0 seg=1 {{{559.002686f, 551}, {559.002686f, 570}}} t=0.5 pt=(559.002686,560.5) slope=(0,19)
|
||||
SkOpSegment::markWinding id=3 (558.997681,570 558.997681,551) t=0 [5] (558.997681,570) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=4 (558.997681,551 559.002686,551) t=0 [7] (558.997681,551) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=1 (559.002686,551 559.002686,570) t=0 [1] (559.002686,551) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=2 (559.002686,570 558.997681,570) t=0 [3] (559.002686,570) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=3 (558.997681,570 558.997681,551) t=0 [5] (558.997681,570) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=1 t=1 tEnd=0 op=union miFrom=0 miTo=1 suFrom=0 suTo=0 result=1
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=1 (559.002686,551 559.002686,570) t=0 [1] (559.002686,551) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=1 from=(559.002686,570) to=(559.002686,551)
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=4 (558.997681,551 559.002686,551) t=0 [7] (558.997681,551) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=4 from=(559.002686,551) to=(558.997681,551)
|
||||
path.moveTo(559.002686,570);
|
||||
path.lineTo(559.002686,551);
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=3 (558.997681,570 558.997681,551) t=0 [5] (558.997681,570) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=3 from=(558.997681,551) to=(558.997681,570)
|
||||
path.lineTo(558.997681,551);
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=2 (559.002686,570 558.997681,570) t=0 [3] (559.002686,570) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=2 from=(558.997681,570) to=(559.002686,570)
|
||||
path.lineTo(558.997681,570);
|
||||
path.lineTo(559.002686,570);
|
||||
path.close();
|
||||
SkOpSegment::debugShowActiveSpans id=16 (3403.39771,760 3403.39771,380) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSpan::sortableTop dir=kTop seg=16 t=0.5 pt=(3403.39771,570)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=23 ccw=1 seg=12 {{{1274, 379.997498f}, {3403.40015f, 379.997498f}}} t=0.999998853 pt=(3403.39771,379.997498) slope=(2129.40015,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=1 span=27 ccw=0 seg=14 {{{3403.40015f, 380.002502f}, {1274, 380.002502f}}} t=1.146523e-06 pt=(3403.39771,380.002502) slope=(-2129.40015,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=1 span=31 ccw=0 seg=16 {{{3403.39771f, 760}, {3403.39771f, 380}}} t=0.5 pt=(3403.39771,570) slope=(0,-380)
|
||||
SkOpSegment::markWinding id=16 (3403.39771,760 3403.39771,380) t=0 [31] (3403.39771,760) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=16 (3403.39771,760 3403.39771,380) t=0 [31] (3403.39771,760) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=16 t=1 tEnd=0 op=union miFrom=0 miTo=0 suFrom=1 suTo=0 result=1
|
||||
SkOpSegment::markDone id=16 (3403.39771,760 3403.39771,380) t=0 [31] (3403.39771,760) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=5 (364,759.997498 3403.40015,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=7 (3403.40015,760.002502 364,760.002502) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSegment::debugShowActiveSpans id=8 (364,760.002502 364,759.997498) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSpan::sortableTop dir=kTop seg=18 t=0.5 pt=(3403.40259,570)
|
||||
SkOpSpan::sortableTop [0] valid=0 operand=0 span=-1 ccw=0 t=1 pt=(3403.40259,380) slope=(0,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=1 span=35 ccw=0 seg=18 {{{3403.40259f, 380}, {3403.40259f, 760}}} t=0.5 pt=(3403.40259,570) slope=(0,380)
|
||||
SkOpSpan::sortableTop dir=kTop seg=5 t=0.5 pt=(1883.70007,759.997498)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=23 ccw=1 seg=12 {{{1274, 379.997498f}, {3403.40015f, 379.997498f}}} t=0.286324801 pt=(1883.70007,379.997498) slope=(2129.40015,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=1 span=27 ccw=0 seg=14 {{{3403.40015f, 380.002502f}, {1274, 380.002502f}}} t=0.713675199 pt=(1883.70007,380.002502) slope=(-2129.40015,0)
|
||||
SkOpSpan::sortableTop [2] valid=1 operand=1 span=9 ccw=1 seg=5 {{{364, 759.997498f}, {3403.40015f, 759.997498f}}} t=0.5 pt=(1883.70007,759.997498) slope=(3039.40015,0)
|
||||
SkOpSegment::markWinding id=5 (364,759.997498 3403.40015,759.997498) t=0 [9] (364,759.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=5 (364,759.997498 3403.40015,759.997498) t=0 [9] (364,759.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=8 (364,760.002502 364,759.997498) t=0 [15] (364,760.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=7 (3403.40015,760.002502 364,760.002502) t=0 [13] (3403.40015,760.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=5 t=1 tEnd=0 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=5 (364,759.997498 3403.40015,759.997498) t=0 [9] (364,759.997498) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=5 from=(3403.40015,759.997498) to=(364,759.997498)
|
||||
SkOpSegment::findNextOp simple
|
||||
SkOpSegment::markDone id=8 (364,760.002502 364,759.997498) t=0 [15] (364,760.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
bridgeOp current id=8 from=(364,759.997498) to=(364,760.002502)
|
||||
path.moveTo(3403.40015,759.997498);
|
||||
path.lineTo(364,759.997498);
|
||||
SkOpSegment::markDone id=7 (3403.40015,760.002502 364,760.002502) t=0 [13] (3403.40015,760.002502) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
path.lineTo(364,760.002502);
|
||||
SkOpSegment::debugShowActiveSpans id=18 (3403.40259,380 3403.40259,760) t=0 tEnd=1 windSum=? windValue=1
|
||||
SkOpSpan::sortableTop dir=kLeft seg=18 t=0.25 pt=(3403.40259,475)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=1 span=31 ccw=1 seg=16 {{{3403.39771f, 760}, {3403.39771f, 380}}} t=0.75 pt=(3403.39771,475) slope=(0,-380)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=1 span=35 ccw=0 seg=18 {{{3403.40259f, 380}, {3403.40259f, 760}}} t=0.25 pt=(3403.40259,475) slope=(0,380)
|
||||
SkOpSegment::markWinding id=18 (3403.40259,380 3403.40259,760) t=0 [35] (3403.40259,380) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=18 (3403.40259,380 3403.40259,760) t=0 [35] (3403.40259,380) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=18 t=1 tEnd=0 op=union miFrom=0 miTo=0 suFrom=0 suTo=1 result=1
|
||||
SkOpSegment::markDone id=18 (3403.40259,380 3403.40259,760) t=0 [35] (3403.40259,380) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpAngle::after [5/2] 31/31 tStart=1 tEnd=0 < [10/4] 23/23 tStart=0 tEnd=0.13699827 < [9/3] 31/31 tStart=1 tEnd=0 F 5
|
||||
SkOpAngle::afterPart {{{6.74737978,0.732370019}, {7.88303804,0.732370019}}} id=5
|
||||
SkOpAngle::afterPart {{{6.74737978,0.732370019}, {6.74737978,1.29324913}}} id=10
|
||||
SkOpAngle::afterPart {{{6.74737978,0.732370019}, {9.66343975,0.732370019}}} id=9
|
||||
SkOpSegment::sortAngles [9] tStart=1 [18]
|
||||
SkOpSegment::sortAngles [10] tStart=0 [19]
|
||||
SkOpSegment::sortAngles [10] tStart=0.13699827 [21]
|
||||
coinSpan - id=10 t=0 tEnd=0.13699827
|
||||
coinSpan + id=6 t=0 tEnd=1
|
||||
SkOpSpan::sortableTop dir=kTop seg=1 t=0.5 pt=(6.08057499,1.29324913)
|
||||
SkOpSpan::sortableTop [0] valid=1 operand=0 span=5 ccw=1 seg=3 {{{5.41376638f, 0.429016858f}, {7.88304138f, 0.429016858f}}} t=0.270042262 pt=(6.08057499,0.429016858) slope=(2.469275,0)
|
||||
SkOpSpan::sortableTop [1] valid=1 operand=0 span=1 ccw=0 seg=1 {{{6.74738312f, 1.29324913f}, {5.41376638f, 1.29324913f}}} t=0.5 pt=(6.08057499,1.29324913) slope=(-1.33361673,0)
|
||||
SkOpSegment::markWinding id=3 (5.41376638,0.429016858 7.88304138,0.429016858) t=0 [5] (5.41376638,0.429016858) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=4 (7.88304138,0.429016858 7.88304138,0.732369661) t=0 [7] (7.88304138,0.429016858) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=5 (7.88304138,0.732369661 6.74738312,0.732369661) t=0 [9] (7.88304138,0.732369661) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=3 (5.41376638,0.429016858 7.88304138,0.429016858) t=0 [5] (5.41376638,0.429016858) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=2 (5.41376638,1.29324913 5.41376638,0.429016858) t=0 [3] (5.41376638,1.29324913) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=1 (6.74738312,1.29324913 5.41376638,1.29324913) t=0 [1] (6.74738312,1.29324913) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=1 t=1 tEnd=0 op=diff miFrom=0 miTo=1 suFrom=0 suTo=0 result=1
|
||||
SkOpSegment::markWinding id=10 (6.74737978,0.732370019 6.74737978,4.82642984) t=0.13699827 [21] (6.74737978,1.29324913) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=7 (6.74737978,4.82642984 9.66343975,4.82642984) t=0 [13] (6.74737978,4.82642984) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=8 (9.66343975,4.82642984 9.66343975,0.732370019) t=0 [15] (9.66343975,4.82642984) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markWinding id=9 (9.66343975,0.732370019 6.74737978,0.732370019) t=0 [17] (9.66343975,0.732370019) tEnd=1 newWindSum=1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
|
||||
SkOpSegment::markAngle last segment=9 span=18
|
||||
SkOpSegment::markWinding id=10 (6.74737978,0.732370019 6.74737978,4.82642984) t=0 [19] (6.74737978,0.732370019) tEnd=0.13699827 newWindSum=1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1
|
||||
SkOpSegment::markAngle last segment=10 span=19 windSum=1
|
||||
SkOpSegment::findNextOp
|
||||
SkOpAngle::dumpOne [1/1] next=10/6 sect=15/15 s=0 [1] e=1 [2] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0
|
||||
SkOpAngle::dumpOne [10/6] next=10/5 sect=23/23 s=0.13699827 [21] e=1 [20] sgn=-1 windVal=1 windSum=1 oppVal=0 oppSum=0 operand
|
||||
SkOpAngle::dumpOne [10/5] next=1/1 sect=7/7 s=0.13699827 [21] e=0 [19] sgn=1 windVal=1 windSum=1 oppVal=1 oppSum=-1 operand
|
||||
SkOpSegment::activeOp id=10 t=0.13699827 tEnd=1 op=diff miFrom=0 miTo=0 suFrom=0 suTo=1 result=0
|
||||
SkOpSegment::markDone id=10 (6.74737978,0.732370019 6.74737978,4.82642984) t=0.13699827 [21] (6.74737978,1.29324913) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=7 (6.74737978,4.82642984 9.66343975,4.82642984) t=0 [13] (6.74737978,4.82642984) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=8 (9.66343975,4.82642984 9.66343975,0.732370019) t=0 [15] (9.66343975,4.82642984) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=9 (9.66343975,0.732370019 6.74737978,0.732370019) t=0 [17] (9.66343975,0.732370019) tEnd=1 newWindSum=1 newOppSum=0 oppSum=0 windSum=1 windValue=1 oppValue=0
|
||||
SkOpSegment::findNextOp chase.append segment=9 span=18
|
||||
SkOpSegment::activeOp id=10 t=0.13699827 tEnd=0 op=diff miFrom=0 miTo=1 suFrom=1 suTo=0 result=1
|
||||
SkOpSegment::findNextOp chase.append segment=10 span=19 windSum=1
|
||||
SkOpSegment::markDone id=1 (6.74738312,1.29324913 5.41376638,1.29324913) t=0 [1] (6.74738312,1.29324913) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::findNextOp from:[1] to:[10] start=-1039144456 end=-1039144768
|
||||
bridgeOp current id=1 from=(5.41376638,1.29324913) to=(6.74738312,1.29324913)
|
||||
SkOpSegment::findNextOp
|
||||
SkOpAngle::dumpOne [10/4] next=5/2 sect=23/23 s=0 [19] e=0.13699827 [21] sgn=-1 windVal=1 windSum=1 oppVal=1 oppSum=-1 operand
|
||||
SkOpAngle::dumpOne [5/2] next=9/3 sect=31/31 s=1 [10] e=0 [9] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 unorderable
|
||||
SkOpAngle::dumpOne [9/3] next=10/4 sect=31/31 s=1 [18] e=0 [17] sgn=1 windVal=1 windSum=1 oppVal=0 oppSum=0 done unorderable operand
|
||||
SkOpSegment::activeOp id=5 t=1 tEnd=0 op=diff miFrom=0 miTo=1 suFrom=1 suTo=1 result=0
|
||||
SkOpSegment::markDone id=5 (7.88304138,0.732369661 6.74738312,0.732369661) t=0 [9] (7.88304138,0.732369661) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=4 (7.88304138,0.429016858 7.88304138,0.732369661) t=0 [7] (7.88304138,0.429016858) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=3 (5.41376638,0.429016858 7.88304138,0.429016858) t=0 [5] (5.41376638,0.429016858) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::markDone id=2 (5.41376638,1.29324913 5.41376638,0.429016858) t=0 [3] (5.41376638,1.29324913) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
|
||||
SkOpSegment::activeOp id=9 t=1 tEnd=0 op=diff miFrom=1 miTo=1 suFrom=1 suTo=0 result=1
|
||||
SkOpSegment::markDone id=10 (6.74737978,0.732370019 6.74737978,4.82642984) t=0 [19] (6.74737978,0.732370019) tEnd=0.13699827 newWindSum=1 newOppSum=-1 oppSum=-1 windSum=1 windValue=1 oppValue=1
|
||||
SkOpSegment::findNextOp from:[10] to:[9] start=-1039144952 end=-1039145096
|
||||
bridgeOp current id=10 from=(6.74737978,1.29324913) to=(6.74737978,0.732370019)
|
||||
path.moveTo(5.41376638,1.29324913);
|
||||
path.lineTo(6.74738312,1.29324913);
|
||||
path.lineTo(6.74737978,0.732370019);
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -538,8 +182,7 @@ SkOpSegment::markDone id=18 (3403.40259,380 3403.40259,760) t=0 [35] (3403.40259
|
||||
<script type="text/javascript">
|
||||
|
||||
var testDivs = [
|
||||
filinmangust14,
|
||||
halbug,
|
||||
op_4,
|
||||
];
|
||||
|
||||
var decimal_places = 3; // make this 3 to show more precision
|
||||
|
Loading…
Reference in New Issue
Block a user