Lines Matching defs:span
13 // returns true if coincident span's start and end are the same
31 // sets the span's end to the ptT referenced by the previous-next
36 const SkOpSpanBase* origSpan = origPtT->span();
48 // makes all span ends agree with the segment's spans that define them
63 const SkOpSpan* start = coinPtTStart()->span()->upCast();
77 const SkOpSpanBase* end = coinPtTEnd()->span();
96 // increase the range of this span
113 // set the range of this span
152 // A coincident span is unordered if the pairs of points in the main and opposite curves'
156 const SkOpSpanBase* start = this->coinPtTStart()->span();
157 const SkOpSpanBase* end = this->coinPtTEnd()->span();
169 // SkOPOBJASSERT(start, 0); // may assert if coincident span isn't fully processed
262 coinPtTStart = coinPtTStart->span()->ptT();
263 coinPtTEnd = coinPtTEnd->span()->ptT();
264 oppPtTStart = oppPtTStart->span()->ptT();
265 oppPtTEnd = oppPtTEnd->span()->ptT();
297 if (testPtT->span()->ptT() != testPtT) {
324 oppStart->span()->addOpp(writableBase);
358 FAIL_IF(!ptT->span()->upCastable());
359 const SkOpSpan* base = ptT->span()->upCast();
381 coincident pair. If so, check for a new coincident span between B-end/A ptT loop
386 SkCoincidentSpans* span = fHead;
387 if (!span) {
390 fTop = span;
393 if (span->coinPtTStart()->fPt != span->oppPtTStart()->fPt) {
394 FAIL_IF(1 == span->coinPtTStart()->fT);
395 bool onEnd = span->coinPtTStart()->fT == 0;
396 bool oOnEnd = zero_or_one(span->oppPtTStart()->fT);
399 if (!this->addEndMovedSpans(span->oppPtTStart())) {
404 if (!this->addEndMovedSpans(span->coinPtTStart())) {
409 if (span->coinPtTEnd()->fPt != span->oppPtTEnd()->fPt) {
410 bool onEnd = span->coinPtTEnd()->fT == 1;
411 bool oOnEnd = zero_or_one(span->oppPtTEnd()->fT);
414 if (!this->addEndMovedSpans(span->oppPtTEnd())) {
419 if (!this->addEndMovedSpans(span->coinPtTEnd())) {
424 } while ((span = span->next()));
431 // if the spans don't match, add the missing pt to the segment and loop it in the opposite span
445 const SkOpSpanBase* start = startPtT->span();
446 const SkOpSpanBase* oStart = oStartPtT->span();
447 const SkOpSpanBase* end = coin->coinPtTEnd()->span();
448 const SkOpSpanBase* oEnd = coin->oppPtTEnd()->span();
477 && walk != coin->coinPtTEnd()->span());
502 end = coin->coinPtTEnd()->span();
503 oEnd = coin->oppPtTEnd()->span();
526 // given a t span, map the same range on the coincident span
534 const SkOpSpanBase* work = overS->span();
567 // return true if span overlaps existing and needs to adjust the coincident list
734 csWritable->span()->addOpp(osWritable->span());
745 FAIL_IF(!ceWritable->span()->addOpp(oeWritable->span()));
900 if (!s1->starter(e1)->span()->upCast()->windValue()) {
905 if (!s1->starter(e1)->span()->upCast()->windValue()) {
913 if (!s2->starter(e2)->span()->upCast()->windValue()) {
918 if (!s2->starter(e2)->span()->upCast()->windValue()) {
1017 // walk span sets in parallel, moving winding from one to the other
1025 SkOpSpanBase* startSpan = coin->coinPtTStartWritable()->span();
1031 const SkOpSpanBase* end = coin->coinPtTEnd()->span();
1035 : coin->oppPtTStartWritable())->span();
1041 const SkOpSpanBase* oEnd = (flipped ? coin->oppPtTStart() : coin->oppPtTEnd())->span();
1117 SkDebugf("seg=%d span=%d windValue=%d oppValue=%d\n", segment->debugID(),
1119 SkDebugf("seg=%d span=%d windValue=%d oppValue=%d\n", oSegment->debugID(),
1141 // if the opposite ran out too soon, just reuse the last span
1303 if (coin->coinPtTEnd()->span() == kept->span()) {
1310 if (coin->coinPtTStart()->span() == kept->span()) {
1317 if (coin->oppPtTEnd()->span() == kept->span()) {
1324 if (coin->oppPtTStart()->span() == kept->span()) {
1342 SkOpSpanBase* startBase = coin->coinPtTStartWritable()->span();
1346 SkOpSpanBase* end = coin->coinPtTEndWritable()->span();
1348 SkOpSpanBase* oStart = coin->oppPtTStartWritable()->span();
1350 SkOpSpanBase* oEnd = coin->oppPtTEndWritable()->span();