fix multiple intersection logic
When three or more curves intersect at the same point, ensure that
each curve records the intersections of the others. This fixes a
number of cubic tests.
TBR=reed@google.com
BUG=skia:3588
Review URL: https://codereview.chromium.org/1105943002
diff --git a/tests/PathOpsDebug.cpp b/tests/PathOpsDebug.cpp
index f5708eb..d2e8bd0 100755
--- a/tests/PathOpsDebug.cpp
+++ b/tests/PathOpsDebug.cpp
@@ -945,6 +945,7 @@
const SkOpPtT* oPt = this->ptT()->next();
SkDebugf(" seg/span=%d/%d", oPt->segment()->debugID(), oPt->span()->debugID());
}
+ SkDebugf(" adds=%d", fSpanAdds);
}
void SkOpSpanBase::dumpCoin() const {
@@ -1319,23 +1320,23 @@
}
#endif
-const SkOpAngle* DebugAngle(const SkTArray<SkOpContour*, true>* contours, int id) {
+const SkOpAngle* DebugAngle(const SkTDArray<SkOpContour* >* contours, int id) {
return (*contours)[0]->debugAngle(id);
}
-SkOpContour* DumpContour(const SkTArray<SkOpContour*, true>* contours, int id) {
+SkOpContour* DumpContour(const SkTDArray<SkOpContour* >* contours, int id) {
return (*contours)[0]->debugContour(id);
}
-const SkOpPtT* DebugPtT(const SkTArray<SkOpContour*, true>* contours, int id) {
+const SkOpPtT* DebugPtT(const SkTDArray<SkOpContour* >* contours, int id) {
return (*contours)[0]->debugPtT(id);
}
-const SkOpSegment* DebugSegment(const SkTArray<SkOpContour*, true>* contours, int id) {
+const SkOpSegment* DebugSegment(const SkTDArray<SkOpContour* >* contours, int id) {
return (*contours)[0]->debugSegment(id);
}
-const SkOpSpanBase* DebugSpan(const SkTArray<SkOpContour*, true>* contours, int id) {
+const SkOpSpanBase* DebugSpan(const SkTDArray<SkOpContour* >* contours, int id) {
return (*contours)[0]->debugSpan(id);
}