Index: src/pathops/SkDCubicIntersection.cpp |
diff --git a/src/pathops/SkDCubicIntersection.cpp b/src/pathops/SkDCubicIntersection.cpp |
index 2fb35e182794dcec2bb86cb654a0d7d22a3b0af0..9d83242eda6085171615d47af598bcd65fb019dd 100644 |
--- a/src/pathops/SkDCubicIntersection.cpp |
+++ b/src/pathops/SkDCubicIntersection.cpp |
@@ -109,14 +109,12 @@ |
__FUNCTION__, t1Start, t1, t2Start, t2); |
SkIntersections xlocals; |
xlocals.allowNear(false); |
- xlocals.allowFlatMeasure(true); |
intersectWithOrder(s1.fQuad, o1, s2.fQuad, o2, xlocals); |
SkDebugf(" xlocals.fUsed=%d\n", xlocals.used()); |
} |
#endif |
SkIntersections locals; |
locals.allowNear(false); |
- locals.allowFlatMeasure(true); |
intersectWithOrder(s1.fQuad, o1, s2.fQuad, o2, locals); |
int tCount = locals.used(); |
for (int tIdx = 0; tIdx < tCount; ++tIdx) { |
@@ -298,7 +296,6 @@ |
tmpLine[1].fY -= cubic2[2 - start].fX - cubic2[t1Index].fX; |
SkIntersections impTs; |
impTs.allowNear(false); |
- impTs.allowFlatMeasure(true); |
impTs.intersectRay(cubic1, tmpLine); |
for (int index = 0; index < impTs.used(); ++index) { |
SkDPoint realPt = impTs.pt(index); |
@@ -559,7 +556,6 @@ |
} |
SkIntersections i; |
i.fAllowNear = false; |
- i.fFlatMeasure = true; |
i.fMax = 9; |
::intersect(c1, 0, 1, c2, 0, 1, 1, i); |
int compCount = i.used(); |
@@ -666,7 +662,7 @@ |
// OPTIMIZATION If this is a common use case, optimize by duplicating |
// the intersect 3 loop to avoid the promotion / demotion code |
int SkIntersections::intersect(const SkDCubic& cubic, const SkDQuad& quad) { |
- fMax = 7; |
+ fMax = 6; |
SkDCubic up = quad.toCubic(); |
(void) intersect(cubic, up); |
return used(); |
@@ -688,9 +684,7 @@ |
// OPTIMIZATION: could quick reject if neither end point tangent ray intersected the line |
// segment formed by the opposite end point to the control point |
(void) intersect(c, c); |
- if (used() > 1) { |
- fUsed = 0; |
- } else if (used() > 0) { |
+ if (used() > 0) { |
if (approximately_equal_double(fT[0][0], fT[1][0])) { |
fUsed = 0; |
} else { |