#include <SkOpCoincidence.h>
|
const SkOpPtT * | coinPtTEnd () const |
|
const SkOpPtT * | coinPtTStart () const |
|
SkOpPtT * | coinPtTEndWritable () const |
|
SkOpPtT * | coinPtTStartWritable () const |
|
bool | collapsed (const SkOpPtT *) const |
|
bool | contains (const SkOpPtT *s, const SkOpPtT *e) const |
|
void | correctEnds () |
|
void | correctOneEnd (const SkOpPtT *(SkCoincidentSpans::*getEnd)() const, void(SkCoincidentSpans::*setEnd)(const SkOpPtT *ptT)) |
|
const char * | debugID () const |
|
void | debugShow () const |
|
void | dump () const |
|
bool | expand () |
|
bool | extend (const SkOpPtT *coinPtTStart, const SkOpPtT *coinPtTEnd, const SkOpPtT *oppPtTStart, const SkOpPtT *oppPtTEnd) |
|
bool | flipped () const |
|
| SkDEBUGCODE (SkOpGlobalState *globalState() { return fGlobalState;}) void init(SkDEBUGCODE(SkOpGlobalState *globalState)) |
|
SkCoincidentSpans * | next () |
|
const SkCoincidentSpans * | next () const |
|
SkCoincidentSpans ** | nextPtr () |
|
const SkOpPtT * | oppPtTStart () const |
|
const SkOpPtT * | oppPtTEnd () const |
|
SkOpPtT * | oppPtTStartWritable () const |
|
SkOpPtT * | oppPtTEndWritable () const |
|
bool | ordered (bool *result) const |
|
void | set (SkCoincidentSpans *next, const SkOpPtT *coinPtTStart, const SkOpPtT *coinPtTEnd, const SkOpPtT *oppPtTStart, const SkOpPtT *oppPtTEnd) |
|
void | setCoinPtTEnd (const SkOpPtT *ptT) |
|
void | setCoinPtTStart (const SkOpPtT *ptT) |
|
void | setEnds (const SkOpPtT *coinPtTEnd, const SkOpPtT *oppPtTEnd) |
|
void | setOppPtTEnd (const SkOpPtT *ptT) |
|
void | setOppPtTStart (const SkOpPtT *ptT) |
|
void | setStarts (const SkOpPtT *coinPtTStart, const SkOpPtT *oppPtTStart) |
|
void | setNext (SkCoincidentSpans *next) |
|
Definition at line 22 of file SkOpCoincidence.h.
◆ coinPtTEnd()
const SkOpPtT * SkCoincidentSpans::coinPtTEnd |
( |
| ) |
const |
◆ coinPtTEndWritable()
SkOpPtT * SkCoincidentSpans::coinPtTEndWritable |
( |
| ) |
const |
|
inline |
◆ coinPtTStart()
const SkOpPtT * SkCoincidentSpans::coinPtTStart |
( |
| ) |
const |
◆ coinPtTStartWritable()
SkOpPtT * SkCoincidentSpans::coinPtTStartWritable |
( |
| ) |
const |
|
inline |
◆ collapsed()
bool SkCoincidentSpans::collapsed |
( |
const SkOpPtT * |
test | ) |
const |
◆ contains()
bool SkCoincidentSpans::contains |
( |
const SkOpPtT * |
s, |
|
|
const SkOpPtT * |
e |
|
) |
| const |
Definition at line 131 of file SkOpCoincidence.cpp.
131 {
135 }
136 if (
s->segment() == fCoinPtTStart->
segment()) {
137 return fCoinPtTStart->
fT <=
s->fT &&
e->fT <= fCoinPtTEnd->
fT;
138 } else {
140 double oppTs = fOppPtTStart->
fT;
141 double oppTe = fOppPtTEnd->
fT;
142 if (oppTs > oppTe) {
145 }
146 return oppTs <=
s->fT &&
e->fT <= oppTe;
147 }
148}
void swap(sk_sp< T > &a, sk_sp< T > &b)
const SkOpSegment * segment() const
◆ correctEnds()
void SkCoincidentSpans::correctEnds |
( |
| ) |
|
Definition at line 57 of file SkOpCoincidence.cpp.
57 {
62}
const SkOpPtT * oppPtTEnd() const
void setOppPtTEnd(const SkOpPtT *ptT)
void setCoinPtTStart(const SkOpPtT *ptT)
const SkOpPtT * coinPtTEnd() const
const SkOpPtT * coinPtTStart() const
void correctOneEnd(const SkOpPtT *(SkCoincidentSpans::*getEnd)() const, void(SkCoincidentSpans::*setEnd)(const SkOpPtT *ptT))
void setCoinPtTEnd(const SkOpPtT *ptT)
void setOppPtTStart(const SkOpPtT *ptT)
const SkOpPtT * oppPtTStart() const
◆ correctOneEnd()
void SkCoincidentSpans::correctOneEnd |
( |
const SkOpPtT *(SkCoincidentSpans::*)() const |
getEnd, |
|
|
void(SkCoincidentSpans::*)(const SkOpPtT *ptT) |
setEnd |
|
) |
| |
Definition at line 40 of file SkOpCoincidence.cpp.
42 {
43 const SkOpPtT* origPtT = (this->*getEnd)();
48 if (origPtT != testPtT) {
49 (this->*setEnd)(testPtT);
50 }
51}
static float prev(float f)
const SkOpSpanBase * span() const
const SkOpSpan * prev() const
const SkOpPtT * ptT() const
SkOpSpanBase * next() const
◆ debugID()
const char * SkCoincidentSpans::debugID |
( |
| ) |
const |
|
inline |
Definition at line 46 of file SkOpCoincidence.h.
46 {
47#if DEBUG_COIN
48 return fGlobalState->debugCoinDictEntry().fFunctionName;
49#else
50 return nullptr;
51#endif
52 }
◆ debugShow()
void SkCoincidentSpans::debugShow |
( |
| ) |
const |
Definition at line 2083 of file SkPathOpsDebug.cpp.
2083 {
2088}
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
const char * debugID() const
◆ dump()
void SkCoincidentSpans::dump |
( |
| ) |
const |
◆ expand()
bool SkCoincidentSpans::expand |
( |
| ) |
|
Definition at line 66 of file SkOpCoincidence.cpp.
66 {
67 bool expanded = false;
70 do {
74 if (!
prev || !(oppPtT =
prev->contains(oppSegment))) {
75 break;
76 }
77 double midT = (
prev->t() +
start->t()) / 2;
78 if (!segment->
isClose(midT, oppSegment)) {
79 break;
80 }
82 expanded = true;
83 } while (true);
84 do {
88 break;
89 }
92 break;
93 }
94 double midT = (
end->t() +
next->t()) / 2;
95 if (!segment->
isClose(midT, oppSegment)) {
96 break;
97 }
99 expanded = true;
100 } while (true);
101 return expanded;
102}
bool contains(const SkOpPtT *s, const SkOpPtT *e) const
SkCoincidentSpans * next()
void setStarts(const SkOpPtT *coinPtTStart, const SkOpPtT *oppPtTStart)
void setEnds(const SkOpPtT *coinPtTEnd, const SkOpPtT *oppPtTEnd)
bool isClose(double t, const SkOpSegment *opp) const
◆ extend()
bool SkCoincidentSpans::extend |
( |
const SkOpPtT * |
coinPtTStart, |
|
|
const SkOpPtT * |
coinPtTEnd, |
|
|
const SkOpPtT * |
oppPtTStart, |
|
|
const SkOpPtT * |
oppPtTEnd |
|
) |
| |
◆ flipped()
bool SkCoincidentSpans::flipped |
( |
| ) |
const |
|
inline |
◆ next() [1/2]
◆ next() [2/2]
◆ nextPtr()
◆ oppPtTEnd()
const SkOpPtT * SkCoincidentSpans::oppPtTEnd |
( |
| ) |
const |
◆ oppPtTEndWritable()
SkOpPtT * SkCoincidentSpans::oppPtTEndWritable |
( |
| ) |
const |
|
inline |
◆ oppPtTStart()
const SkOpPtT * SkCoincidentSpans::oppPtTStart |
( |
| ) |
const |
◆ oppPtTStartWritable()
SkOpPtT * SkCoincidentSpans::oppPtTStartWritable |
( |
| ) |
const |
|
inline |
◆ ordered()
bool SkCoincidentSpans::ordered |
( |
bool * |
result | ) |
const |
Definition at line 163 of file SkOpCoincidence.cpp.
163 {
169 return true;
170 }
173 double oppLastT = fOppPtTStart->
fT;
174 do {
176 if (!opp) {
177
178 return false;
179 }
182 return true;
183 }
186 break;
187 }
188 if (!
next->upCastable()) {
190 return true;
191 }
193 } while (true);
195 return true;
196}
◆ set()
Definition at line 122 of file SkOpCoincidence.cpp.
123 {
128}
static bool Ordered(const SkOpPtT *coinPtTStart, const SkOpPtT *oppPtTStart)
◆ setCoinPtTEnd()
void SkCoincidentSpans::setCoinPtTEnd |
( |
const SkOpPtT * |
ptT | ) |
|
|
inline |
Definition at line 85 of file SkOpCoincidence.h.
85 {
89 fCoinPtTEnd = ptT;
91 }
void setCoincident() const
◆ setCoinPtTStart()
void SkCoincidentSpans::setCoinPtTStart |
( |
const SkOpPtT * |
ptT | ) |
|
|
inline |
◆ setEnds()
void SkCoincidentSpans::setEnds |
( |
const SkOpPtT * |
coinPtTEnd, |
|
|
const SkOpPtT * |
oppPtTEnd |
|
) |
| |
|
inline |
◆ setNext()
◆ setOppPtTEnd()
void SkCoincidentSpans::setOppPtTEnd |
( |
const SkOpPtT * |
ptT | ) |
|
|
inline |
◆ setOppPtTStart()
void SkCoincidentSpans::setOppPtTStart |
( |
const SkOpPtT * |
ptT | ) |
|
|
inline |
◆ setStarts()
void SkCoincidentSpans::setStarts |
( |
const SkOpPtT * |
coinPtTStart, |
|
|
const SkOpPtT * |
oppPtTStart |
|
) |
| |
|
inline |
◆ SkDEBUGCODE()
SkCoincidentSpans::SkDEBUGCODE |
( |
SkOpGlobalState *globalState() { return fGlobalState;} |
| ) |
|
|
inline |
Definition at line 64 of file SkOpCoincidence.h.
64 { return fGlobalState; })
65
69 }
sk_bzero(glyphs, sizeof(glyphs))
SkDEBUGCODE(SkOpGlobalState *globalState() { return fGlobalState;}) void init(SkDEBUGCODE(SkOpGlobalState *globalState))
The documentation for this class was generated from the following files: