7#ifndef SkOpContour_DEFINED
8#define SkOpContour_DEFINED
77 }
while ((segment = segment->
next()));
105 void debugCheckHealth(SkPathOpsDebug::GlitchLog* )
const;
113 void debugMissingCoincidence(SkPathOpsDebug::GlitchLog* log)
const;
114 void debugMoveMultiples(SkPathOpsDebug::GlitchLog* )
const;
115 void debugMoveNearby(SkPathOpsDebug::GlitchLog* log)
const;
126#if DEBUG_ACTIVE_SPANS
127 void debugShowActiveSpans(
SkString* str) {
130 segment->debugShowActiveSpans(str);
131 }
while ((segment = segment->
next()));
151 }
while ((segment = segment->
next()));
172 void dumpPts(
const char* prefix =
"seg")
const;
173 void dumpPtsX(
const char* prefix)
const;
220 }
while ((segment =
next));
227 }
while ((segment = segment->
next()));
239 segment = segment->
next();
251 }
while ((segment = segment->
next()));
262 }
while ((segment = segment->
next()));
317 while ((segment = segment->
next())) {
356 }
while ((segment = segment->
next()));
368 }
while ((segment = segment->
prev()));
375 }
while ((segment = segment->
next()));
437 prev->setNext(
nullptr);
static float prev(float f)
#define SkAssertResult(cond)
#define SkDEBUGRELEASE(a, b)
int SkPathOpsVerbToPoints(SkPath::Verb verb)
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
void addConic(SkPoint pts[3], SkScalar weight)
void addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight=1)
void setContour(SkOpContour *contour)
SkOpContourBuilder(SkOpContour *contour)
void addCubic(SkPoint pts[4])
void addQuad(SkPoint pts[3])
void addLine(const SkPoint pts[2])
SkOpContour * appendContour()
void remove(SkOpContour *contour)
const SkPathOpsBounds & bounds() const
void addCubic(SkPoint pts[4])
void toReversePath(SkPathWriter *path) const
SkOpGlobalState * globalState() const
const SkOpSegment * debugSegment(int id) const
const SkPoint & end() const
bool missingCoincidence()
void setOppXor(bool isOppXor)
SkOpSegment & appendSegment()
void init(SkOpGlobalState *globalState, bool operand, bool isXor)
SkDEBUGCODE(int fID;) SkDEBUGCODE(mutable int fDebugIndent
void dumpContoursAngles() const
const SkOpCoincidence * debugCoincidence() const
bool operator<(const SkOpContour &rh) const
const SkOpContour * next() const
const SkOpSpanBase * debugSpan(int id) const
SkOpSpan * findSortableTop(SkOpContour *)
SkOpContour * debugContour(int id) const
void dumpContoursPts() const
void rayCheck(const SkOpRayHit &base, SkOpRayDir dir, SkOpRayHit **hits, SkArenaAlloc *)
void dumpContoursAll() const
void toPartialForward(SkPathWriter *path) const
void dumpContoursSpans() const
const SkOpSegment * first() const
void dumpPts(const char *prefix="seg") const
void dumpSegments(const char *prefix="seg", SkPathOp op=(SkPathOp) -1) const
void dumpContours() const
void dumpSegment(int) const
void dumpContoursPt(int segmentID) const
void addQuad(SkPoint pts[3])
void addConic(SkPoint pts[3], SkScalar weight)
void toPath(SkPathWriter *path) const
const SkOpAngle * debugAngle(int id) const
void toPartialBackward(SkPathWriter *path) const
SkOpSegment * addLine(SkPoint pts[2])
void dumpPtsX(const char *prefix) const
const SkPoint & start() const
void dumpContoursSpan(int segmentID) const
void setNext(SkOpContour *contour)
const SkOpPtT * debugPtT(int id) const
void setGlobalState(SkOpGlobalState *state)
void dumpContoursSegment(int segmentID) const
void debugValidate() const
void setOperand(bool isOp)
SkArenaAlloc * allocator()
SkOpCoincidence * coincidence()
SkOpSegment * addConic(SkPoint pts[3], SkScalar weight, SkOpContour *parent)
void debugValidate() const
void joinEnds(SkOpSegment *start)
SkPath::Verb verb() const
SkOpSegment * addLine(SkPoint pts[2], SkOpContour *parent)
void setPrev(SkOpSegment *prev)
const SkPathOpsBounds & bounds() const
const SkOpSegment * prev() const
const SkOpSpanBase * tail() const
const SkOpSpan * head() const
bool addCurveTo(const SkOpSpanBase *start, const SkOpSpanBase *end, SkPathWriter *path) const
SkOpSegment * addCubic(SkPoint pts[4], SkOpContour *parent)
void setNext(SkOpSegment *next)
const SkPoint * pts() const
SkOpSegment * addQuad(SkPoint pts[3], SkOpContour *parent)
bool missingCoincidence()
SkOpSegment * next() const
void add(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
SkScalar fLeft
smaller x-axis bounds
void setLTRB(float left, float top, float right, float bottom)
SkScalar fTop
smaller y-axis bounds