Index: src/pathops/SkAddIntersections.cpp |
diff --git a/src/pathops/SkAddIntersections.cpp b/src/pathops/SkAddIntersections.cpp |
index 27422eda5f012a85e7381f866579a8a9a1d00f0e..c27434f9f778cb1a4df19570b6ecfdbeb8d90e38 100644 |
--- a/src/pathops/SkAddIntersections.cpp |
+++ b/src/pathops/SkAddIntersections.cpp |
@@ -307,6 +307,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next) { |
} |
case SkIntersectionHelper::kQuad_Segment: { |
pts = ts.quadQuad(wt.pts(), wn.pts()); |
+ ts.alignQuadPts(wt.pts(), wn.pts()); |
debugShowQuadIntersection(pts, wt, wn, ts); |
break; |
} |
@@ -366,8 +367,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next) { |
if (wt.addCoincident(wn, ts, swap)) { |
continue; |
} |
- ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
- pts = 1; |
+ pts = ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
} else if (wn.segmentType() >= SkIntersectionHelper::kQuad_Segment |
&& wt.segmentType() >= SkIntersectionHelper::kQuad_Segment |
&& ts.isCoincident(0)) { |
@@ -375,8 +375,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next) { |
if (wt.addCoincident(wn, ts, swap)) { |
continue; |
} |
- ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
- pts = 1; |
+ pts = ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
} |
} |
if (pts >= 2) { |
@@ -387,8 +386,7 @@ bool AddIntersectTs(SkOpContour* test, SkOpContour* next) { |
&& wn.isPartial(ts[!swap][pt], ts[!swap][pt + 1], point, next)) { |
if (!wt.addPartialCoincident(wn, ts, pt, swap)) { |
// remove extra point if two map to same float values |
- ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
- pts = 1; |
+ pts = ts.cleanUpCoincidence(); // prefer (t == 0 or t == 1) |
} |
} |
} |