diff options
author | caryclark <caryclark@google.com> | 2016-09-14 07:18:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-14 07:18:20 -0700 |
commit | eed356d281adbf93ecbd89cb23913a7861cd8578 (patch) | |
tree | e1f354471538f9484de7bd53eb9fafebd18f411a /src/pathops/SkOpAngle.h | |
parent | 8bbcd5aab81dc0742c3367479c0c9d97363b1203 (diff) |
Rewriting path writer
The path writer takes constructs the output path out of
curves that satisfy the pathop operation.
Curves contain lists of t/point pairs that may not be
comparable to each other. To match up curve ends in the
output path, look for adjacent curves to have a shared
membership rather than comparing point values.
Use path utilities to connect partial curve lists into
closed contours.
Share the angle code that determines if a curve has become
a degenerate line with the path writer.
Clean up some code on the way, and delete some unused
functions.
TBR=reed@google.com
BUG=5188
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321973005
Review-Url: https://codereview.chromium.org/2321973005
Diffstat (limited to 'src/pathops/SkOpAngle.h')
-rw-r--r-- | src/pathops/SkOpAngle.h | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/pathops/SkOpAngle.h b/src/pathops/SkOpAngle.h index 4099c4a90b..cbdadf1039 100644 --- a/src/pathops/SkOpAngle.h +++ b/src/pathops/SkOpAngle.h @@ -107,27 +107,23 @@ private: bool midToSide(const SkOpAngle* rh, bool* inside) const; bool oppositePlanes(const SkOpAngle* rh) const; bool orderable(SkOpAngle* rh); // false == this < rh ; true == this > rh - void setCurveHullSweep(); void setSector(); void setSpans(); bool tangentsDiverge(const SkOpAngle* rh, double s0xt0) const; SkDCurve fOriginalCurvePart; // the curve from start to end - SkDCurve fCurvePart; // the curve from start to end offset as needed + SkDCurveSweep fPart; // the curve from start to end offset as needed double fSide; SkLineParameters fTangentHalf; // used only to sort a pair of lines or line-like sections SkOpAngle* fNext; SkOpSpanBase* fLastMarked; - SkDVector fSweep[2]; SkOpSpanBase* fStart; SkOpSpanBase* fEnd; SkOpSpanBase* fComputedEnd; int fSectorMask; int8_t fSectorStart; // in 32nds of a circle int8_t fSectorEnd; - bool fIsCurve; bool fUnorderable; - bool fUnorderedSweep; // set when a cubic's first control point between the sweep vectors bool fComputeSector; bool fComputedSector; bool fCheckCoincidence; |