summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/pathops/SkOpSpan.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/pathops/SkOpSpan.h')
-rw-r--r--chromium/third_party/skia/src/pathops/SkOpSpan.h20
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