| Index: src/pathops/SkPathOpsCurve.cpp
|
| diff --git a/src/pathops/SkPathOpsCurve.cpp b/src/pathops/SkPathOpsCurve.cpp
|
| index 651e64a908e66c260e31df7338bddbe3602792f2..bf44d25e17c9b1ec12f7d85512bd5e2e2564f421 100644
|
| --- a/src/pathops/SkPathOpsCurve.cpp
|
| +++ b/src/pathops/SkPathOpsCurve.cpp
|
| @@ -8,98 +8,6 @@
|
| #include "SkPathOpsRect.h"
|
| #include "SkPathOpsCurve.h"
|
|
|
| -SkDPoint SkDCurve::conicTop(const SkPoint curve[3], SkScalar curveWeight,
|
| - double startT, double endT, double* topT) {
|
| - SkDPoint topPt = fConic[0];
|
| - *topT = startT;
|
| - if (topPt.fY > fConic[2].fY || (topPt.fY == fConic[2].fY && topPt.fX > fConic[2].fX)) {
|
| - *topT = endT;
|
| - topPt = fConic[2];
|
| - }
|
| - if (!fConic.monotonicInY()) {
|
| - double extremeT;
|
| - if (SkDConic::FindExtrema(&fConic.fPts.fPts[0].fY, fConic.fWeight, &extremeT)) {
|
| - SkDConic dCurve;
|
| - dCurve.set(curve, curveWeight);
|
| - extremeT = startT + (endT - startT) * extremeT;
|
| - SkDPoint test = dCurve.ptAtT(extremeT);
|
| - if (topPt.fY > test.fY || (topPt.fY == test.fY && topPt.fX > test.fX)) {
|
| - *topT = extremeT;
|
| - topPt = test;
|
| - }
|
| - }
|
| - }
|
| - return topPt;
|
| -}
|
| -
|
| -SkDPoint SkDCurve::cubicTop(const SkPoint curve[4], SkScalar ,
|
| - double startT, double endT, double* topT) {
|
| - SkDPoint topPt = fCubic[0];
|
| - *topT = startT;
|
| - if (topPt.fY > fCubic[3].fY || (topPt.fY == fCubic[3].fY && topPt.fX > fCubic[3].fX)) {
|
| - *topT = endT;
|
| - topPt = fCubic[3];
|
| - }
|
| - double extremeTs[2];
|
| - if (!fCubic.monotonicInY()) {
|
| - int roots = SkDCubic::FindExtrema(&fCubic.fPts[0].fY, extremeTs);
|
| - SkDCubic dCurve;
|
| - dCurve.set(curve);
|
| - for (int index = 0; index < roots; ++index) {
|
| - double t = startT + (endT - startT) * extremeTs[index];
|
| - SkDPoint mid = dCurve.ptAtT(t);
|
| - if (topPt.fY > mid.fY || (topPt.fY == mid.fY && topPt.fX > mid.fX)) {
|
| - *topT = t;
|
| - topPt = mid;
|
| - }
|
| - }
|
| - }
|
| - return topPt;
|
| -}
|
| -
|
| -SkDPoint SkDCurve::lineTop(const SkPoint[2], SkScalar , double startT, double endT, double* topT) {
|
| - SkDPoint topPt = fLine[0];
|
| - *topT = startT;
|
| - if (topPt.fY > fLine[1].fY || (topPt.fY == fLine[1].fY && topPt.fX > fLine[1].fX)) {
|
| - *topT = endT;
|
| - topPt = fLine[1];
|
| - }
|
| - return topPt;
|
| -}
|
| -
|
| -SkDPoint SkDCurve::quadTop(const SkPoint curve[3], SkScalar ,
|
| - double startT, double endT, double* topT) {
|
| - SkDPoint topPt = fQuad[0];
|
| - *topT = startT;
|
| - if (topPt.fY > fQuad[2].fY || (topPt.fY == fQuad[2].fY && topPt.fX > fQuad[2].fX)) {
|
| - *topT = endT;
|
| - topPt = fQuad[2];
|
| - }
|
| - if (!fQuad.monotonicInY()) {
|
| - double extremeT;
|
| - if (SkDQuad::FindExtrema(&fQuad.fPts[0].fY, &extremeT)) {
|
| - SkDQuad dCurve;
|
| - dCurve.set(curve);
|
| - extremeT = startT + (endT - startT) * extremeT;
|
| - SkDPoint test = dCurve.ptAtT(extremeT);
|
| - if (topPt.fY > test.fY || (topPt.fY == test.fY && topPt.fX > test.fX)) {
|
| - *topT = extremeT;
|
| - topPt = test;
|
| - }
|
| - }
|
| - }
|
| - return topPt;
|
| -}
|
| -
|
| -SkDPoint (SkDCurve::* const Top[])(const SkPoint curve[], SkScalar curveWeight,
|
| - double tStart, double tEnd, double* topT) = {
|
| - NULL,
|
| - &SkDCurve::lineTop,
|
| - &SkDCurve::quadTop,
|
| - &SkDCurve::conicTop,
|
| - &SkDCurve::cubicTop
|
| -};
|
| -
|
| void SkDCurve::setConicBounds(const SkPoint curve[3], SkScalar curveWeight,
|
| double tStart, double tEnd, SkPathOpsBounds* bounds) {
|
| SkDConic dCurve;
|
| @@ -120,12 +28,6 @@ void SkDCurve::setCubicBounds(const SkPoint curve[4], SkScalar ,
|
| SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom));
|
| }
|
|
|
| -void SkDCurve::setLineBounds(const SkPoint[2], SkScalar ,
|
| - double , double , SkPathOpsBounds* bounds) {
|
| - bounds->setPointBounds(fLine[0]);
|
| - bounds->add(fLine[1]);
|
| -}
|
| -
|
| void SkDCurve::setQuadBounds(const SkPoint curve[3], SkScalar ,
|
| double tStart, double tEnd, SkPathOpsBounds* bounds) {
|
| SkDQuad dCurve;
|
| @@ -135,12 +37,3 @@ void SkDCurve::setQuadBounds(const SkPoint curve[3], SkScalar ,
|
| bounds->set(SkDoubleToScalar(dRect.fLeft), SkDoubleToScalar(dRect.fTop),
|
| SkDoubleToScalar(dRect.fRight), SkDoubleToScalar(dRect.fBottom));
|
| }
|
| -
|
| -void (SkDCurve::* const SetBounds[])(const SkPoint curve[], SkScalar curveWeight,
|
| - double tStart, double tEnd, SkPathOpsBounds* bounds) = {
|
| - NULL,
|
| - &SkDCurve::setLineBounds,
|
| - &SkDCurve::setQuadBounds,
|
| - &SkDCurve::setConicBounds,
|
| - &SkDCurve::setCubicBounds
|
| -};
|
|
|