Index: src/core/SkGeometry.cpp |
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp |
index a12f961948c77b6695ce2e250fa66d94e3eef96c..e6049f9f7bd993804d1fc7e8948b936cb02fad6f 100644 |
--- a/src/core/SkGeometry.cpp |
+++ b/src/core/SkGeometry.cpp |
@@ -382,20 +382,8 @@ int SkChopQuadAtXExtrema(const SkPoint src[3], SkPoint dst[5]) |
return 0; |
} |
-// F(t) = a (1 - t) ^ 2 + 2 b t (1 - t) + c t ^ 2 |
-// F'(t) = 2 (b - a) + 2 (a - 2b + c) t |
-// F''(t) = 2 (a - 2b + c) |
-// |
-// A = 2 (b - a) |
-// B = 2 (a - 2b + c) |
-// |
-// Maximum curvature for a quadratic means solving |
-// Fx' Fx'' + Fy' Fy'' = 0 |
-// |
-// t = - (Ax Bx + Ay By) / (Bx ^ 2 + By ^ 2) |
-// |
-int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5]) |
-{ |
+float SkGetTQuadAtMaxCurvature(const SkPoint src[3]) { |
+ |
SkScalar Ax = src[1].fX - src[0].fX; |
SkScalar Ay = src[1].fY - src[0].fY; |
SkScalar Bx = src[0].fX - src[1].fX - src[1].fX + src[2].fX; |
@@ -427,7 +415,24 @@ int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5]) |
} |
} |
#endif |
+ return t; |
+} |
+// F(t) = a (1 - t) ^ 2 + 2 b t (1 - t) + c t ^ 2 |
bsalomon
2013/07/10 15:14:36
Maybe these comments belong with the new function
|
+// F'(t) = 2 (b - a) + 2 (a - 2b + c) t |
+// F''(t) = 2 (a - 2b + c) |
+// |
+// A = 2 (b - a) |
+// B = 2 (a - 2b + c) |
+// |
+// Maximum curvature for a quadratic means solving |
+// Fx' Fx'' + Fy' Fy'' = 0 |
+// |
+// t = - (Ax Bx + Ay By) / (Bx ^ 2 + By ^ 2) |
+// |
+int SkChopQuadAtMaxCurvature(const SkPoint src[3], SkPoint dst[5]) |
+{ |
+ SkScalar t = SkGetTQuadAtMaxCurvature(src); |
if (t == 0) |
{ |
memcpy(dst, src, 3 * sizeof(SkPoint)); |