Lines Matching refs:opp

115     SkTSpan<OppCurve, TCurve>* findOppSpan(const SkTSpan<OppCurve, TCurve>* opp) const;
147 bool onlyEndPointsInCommon(const SkTSpan<OppCurve, TCurve>* opp, bool* start,
155 bool removeBounded(const SkTSpan<OppCurve, TCurve>* opp);
185 int hullCheck(const SkTSpan<OppCurve, TCurve>* opp, bool* start, bool* oppStart);
286 int intersects(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp,
288 bool isParallel(const SkDLine& thisLine, const SkTSect<OppCurve, TCurve>* opp) const;
289 int linesIntersect(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp,
297 void removeByPerpendicular(SkTSect<OppCurve, TCurve>* opp);
301 SkTSect<OppCurve, TCurve>* opp);
304 void removeSpans(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp);
307 void trim(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp);
403 SkTSpan<TCurve, OppCurve>* opp = this->spanAtT(t, &priorSpan); in addForPerp() local
404 if (!opp) { in addForPerp()
405 opp = this->addFollowing(priorSpan); in addForPerp()
408 priorSpan->debugID() : -1, t, opp->debugID()); in addForPerp()
412 opp->dump(); SkDebugf("\n"); in addForPerp()
414 priorSpan->debugID() : -1, opp->debugID()); in addForPerp()
416 opp->addBounded(span, &fHeap); in addForPerp()
417 span->addBounded(opp, &fHeap); in addForPerp()
479 const SkTSpan<OppCurve, TCurve>* opp) const { in findOppSpan() argument
483 if (opp == test) { in findOppSpan()
496 int SkTSpan<TCurve, OppCurve>::hullCheck(const SkTSpan<OppCurve, TCurve>* opp, in hullCheck() argument
502 if (onlyEndPointsInCommon(opp, start, oppStart, &ptsInCommon)) { in hullCheck()
507 if (fPart.hullIntersects(opp->fPart, &linear)) { in hullCheck()
524 int SkTSpan<TCurve, OppCurve>::hullsIntersect(SkTSpan<OppCurve, TCurve>* opp, in hullsIntersect() argument
526 if (!fBounds.intersects(opp->fBounds)) { in hullsIntersect()
529 int hullSect = this->hullCheck(opp, start, oppStart); in hullsIntersect()
533 hullSect = opp->hullCheck(this, oppStart, start); in hullsIntersect()
608 double opp = fPart[end].fY - origY; in linearIntersects() local
609 double maxPart = SkTMax(fabs(adj), fabs(opp)); in linearIntersects()
615 double test = (q2[n].fY - origY) * adj - (q2[n].fX - origX) * opp; in linearIntersects()
634 bool SkTSpan<TCurve, OppCurve>::onlyEndPointsInCommon(const SkTSpan<OppCurve, TCurve>* opp, in onlyEndPointsInCommon() argument
636 if (opp->fPart[0] == fPart[0]) { in onlyEndPointsInCommon()
638 } else if (opp->fPart[0] == fPart[TCurve::kPointLast]) { in onlyEndPointsInCommon()
641 } else if (opp->fPart[OppCurve::kPointLast] == fPart[0]) { in onlyEndPointsInCommon()
644 } else if (opp->fPart[OppCurve::kPointLast] == fPart[TCurve::kPointLast]) { in onlyEndPointsInCommon()
654 opp->fPart.otherPts(*oppStart ? 0 : OppCurve::kPointLast, oppOtherPts); in onlyEndPointsInCommon()
686 SkTSpan<OppCurve, TCurve>* opp = bounded->fBounded; in removeAllBounded() local
687 deleteSpan |= opp->removeBounded(this); in removeAllBounded()
694 bool SkTSpan<TCurve, OppCurve>::removeBounded(const SkTSpan<OppCurve, TCurve>* opp) { in removeBounded() argument
701 if (opp != test) { in removeBounded()
717 if (opp == bounded->fBounded) { in removeBounded()
884 const OppCurve& opp = sect2->fCurve; in binarySearchCoin() local
900 work.fCoinStart.setPerp(fCurve, work.fStartT, last, opp); in binarySearchCoin()
922 if (oppPt.approximatelyEqual(opp[0])) { in binarySearchCoin()
924 } else if (oppPt.approximatelyEqual(opp[OppCurve::kPointLast])) { in binarySearchCoin()
1034 const OppCurve& opp = sect2->fCurve; in computePerpendiculars() local
1042 work->fCoinStart.setPerp(fCurve, work->fStartT, work->fPart[0], opp); in computePerpendiculars()
1052 work->fCoinEnd.setPerp(fCurve, work->fEndT, work->fPart[TCurve::kPointLast], opp); in computePerpendiculars()
1254 SkTSect<OppCurve, TCurve>* opp, in intersects() argument
1288 int sects = this->linesIntersect(span, opp, oppSpan, &i); in intersects()
1306 static bool is_parallel(const SkDLine& thisLine, const TCurve& opp) { in is_parallel() argument
1307 if (!opp.IsConic()) { in is_parallel()
1316 perpRayI.intersectRay(opp, thisPerp); in is_parallel()
1323 perpRayI.intersectRay(opp, thisPerp); in is_parallel()
1335 SkTSect<OppCurve, TCurve>* opp, in linesIntersect() argument
1342 if (!thisRayI.intersectRay(opp->fCurve, thisLine)) { in linesIntersect()
1356 if (ptMatches == 2 || is_parallel(thisLine, opp->fCurve)) { in linesIntersect()
1411 if (!thisRayI.intersectRay(opp->fCurve, thisLine)) { in linesIntersect()
1415 oppLine[0] = opp->fCurve.ptAtT(start); in linesIntersect()
1416 oppLine[1] = oppLine[0] + opp->fCurve.dxdyAtT(start); in linesIntersect()
1423 oCoinS.setPerp(opp->fCurve, oppSpan->fStartT, oppSpan->fPart[0], fCurve); in linesIntersect()
1424 oCoinE.setPerp(opp->fCurve, oppSpan->fEndT, oppSpan->fPart[OppCurve::kPointLast], fCurve); in linesIntersect()
1439 coinS.setPerp(fCurve, span->fStartT, span->fPart[0], opp->fCurve); in linesIntersect()
1448 coinE.setPerp(fCurve, span->fEndT, span->fPart[TCurve::kPointLast], opp->fCurve); in linesIntersect()
1469 coinW.setPerp(fCurve, workT, workPt, opp->fCurve); in linesIntersect()
1482 if (!opp->fHead->contains(oppTTest)) { in linesIntersect()
1607 SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp) { in removeAllBut() argument
1616 opp->removeSpan(bounded); in removeAllBut()
1627 void SkTSect<TCurve, OppCurve>::removeByPerpendicular(SkTSect<OppCurve, TCurve>* opp) { in removeByPerpendicular() argument
1644 this->removeSpans(test, opp); in removeByPerpendicular()
1688 SkTSect<OppCurve, TCurve>* opp) { in removeSpans() argument
1697 opp->removeSpan(spanBounded); in removeSpans()
1699 SkASSERT(!span->fDeleted || !opp->debugHasBounded(span)); in removeSpans()
1733 SkTSect<OppCurve, TCurve>* opp) { in trim() argument
1739 int oppSects, sects = this->intersects(span, opp, test, &oppSects); in trim()
1742 test->initBounds(opp->fCurve); in trim()
1743 opp->removeAllBut(span, test, this); in trim()
1747 this->removeAllBut(test, span, opp); in trim()
1755 opp->removeSpan(test); in trim()