diff options
author | caryclark <caryclark@google.com> | 2015-04-23 09:13:37 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-23 09:13:37 -0700 |
commit | 03b03cad01628146bbb8d4f33c073bd0c77ee558 (patch) | |
tree | 3daa35fc7a85abd54f6d48e23d3f8f665b677dc5 /src/pathops/SkPathOpsQuad.h | |
parent | 4b17fa353e777de309ca8b0706f1d3e326b59822 (diff) |
working on initial winding for cubics
Path ops works well for all tests except for cubics.
Isolate failures caused by cubics, and do a better job of computing
the initial winding for cubics.
TBR=reed@google.com
BUG=skia:3588
Review URL: https://codereview.chromium.org/1096923003
Diffstat (limited to 'src/pathops/SkPathOpsQuad.h')
-rw-r--r-- | src/pathops/SkPathOpsQuad.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pathops/SkPathOpsQuad.h b/src/pathops/SkPathOpsQuad.h index 847c69cedd..b201860f98 100644 --- a/src/pathops/SkPathOpsQuad.h +++ b/src/pathops/SkPathOpsQuad.h @@ -10,6 +10,8 @@ #include "SkPathOpsPoint.h" +struct SkOpCurve; + struct SkDQuadPair { const SkDQuad& first() const { return (const SkDQuad&) pts[0]; } const SkDQuad& second() const { return (const SkDQuad&) pts[2]; } @@ -58,6 +60,7 @@ struct SkDQuad { static int AddValidTs(double s[], int realRoots, double* t); void align(int endIndex, SkDPoint* dstPt) const; SkDQuadPair chopAt(double t) const; + static bool Clockwise(const SkOpCurve& edge, bool* swap); SkDVector dxdyAtT(double t) const; static int FindExtrema(double a, double b, double c, double tValue[1]); bool hullIntersects(const SkDQuad& , bool* isLinear) const; @@ -86,7 +89,7 @@ struct SkDQuad { } SkDConic toConic() const; SkDCubic toCubic() const; - SkDPoint top(double startT, double endT) const; + SkDPoint top(double startT, double endT, double* topT) const; // utilities callable by the user from the debugger when the implementation code is linked in void dump() const; |