diff options
Diffstat (limited to 'chromium/third_party/skia/src/pathops/SkOpSpan.h')
-rw-r--r-- | chromium/third_party/skia/src/pathops/SkOpSpan.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/chromium/third_party/skia/src/pathops/SkOpSpan.h b/chromium/third_party/skia/src/pathops/SkOpSpan.h index 81ede1c9ab7..d9ce44eb772 100644 --- a/chromium/third_party/skia/src/pathops/SkOpSpan.h +++ b/chromium/third_party/skia/src/pathops/SkOpSpan.h @@ -9,28 +9,34 @@ #include "SkPoint.h" +class SkOpAngle; class SkOpSegment; struct SkOpSpan { - SkOpSegment* fOther; SkPoint fPt; // computed when the curves are intersected double fT; double fOtherT; // value at fOther[fOtherIndex].fT + SkOpSegment* fOther; + SkOpAngle* fFromAngle; // (if t > 0) index into segment's angle array going negative in t + SkOpAngle* fToAngle; // (if t < 1) index into segment's angle array going positive in t int fOtherIndex; // can't be used during intersection int fWindSum; // accumulated from contours surrounding this one. int fOppSum; // for binary operators: the opposite winding sum int fWindValue; // 0 == canceled; 1 == normal; >1 == coincident int fOppValue; // normally 0 -- when binary coincident edges combine, opp value goes here + bool fChased; // set after span has been added to chase array + bool fCoincident; // set if span is bumped -- if set additional points aren't inserted bool fDone; // if set, this span to next higher T has been processed - bool fUnsortableStart; // set when start is part of an unsortable pair - bool fUnsortableEnd; // set when end is part of an unsortable pair - bool fSmall; // if set, consecutive points are almost equal - bool fTiny; // if set, span may still be considered once for edge following bool fLoop; // set when a cubic loops back to this point + bool fMultiple; // set if this is one of mutiple spans with identical t and pt values + bool fNear; // set if opposite end point is near but not equal to this one + bool fSmall; // if set, consecutive points are almost equal + bool fTiny; // if set, consecutive points are equal but consecutive ts are not precisely equal -#ifdef SK_DEBUG + // available to testing only + const SkOpSegment* debugToSegment(ptrdiff_t* ) const; void dump() const; -#endif + void dumpOne() const; }; #endif |