Lines Matching refs:opp
98 SkTSpan<OppCurve, TCurve>* findOppSpan(const SkTSpan<OppCurve, TCurve>* opp) const;
130 bool onlyEndPointsInCommon(const SkTSpan<OppCurve, TCurve>* opp, bool* start,
138 bool removeBounded(const SkTSpan<OppCurve, TCurve>* opp);
168 int hullCheck(const SkTSpan<OppCurve, TCurve>* opp, bool* start, bool* oppStart);
268 int intersects(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp,
270 int linesIntersect(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp,
278 void removeByPerpendicular(SkTSect<OppCurve, TCurve>* opp);
282 SkTSect<OppCurve, TCurve>* opp);
285 void removeSpans(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp);
288 void trim(SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp);
384 SkTSpan<TCurve, OppCurve>* opp = this->spanAtT(t, &priorSpan);
385 if (!opp) {
386 opp = this->addFollowing(priorSpan);
388 SkDebugf("%s priorSpan=%d t=%1.9g opp=%d\n", __FUNCTION__, priorSpan->debugID(), t,
389 opp->debugID());
393 opp->dump(); SkDebugf("\n");
394 SkDebugf("%s addBounded span=%d opp=%d\n", __FUNCTION__, priorSpan->debugID(),
395 opp->debugID());
397 opp->addBounded(span, &fHeap);
398 span->addBounded(opp, &fHeap);
460 const SkTSpan<OppCurve, TCurve>* opp) const {
464 if (opp == test) {
477 int SkTSpan<TCurve, OppCurve>::hullCheck(const SkTSpan<OppCurve, TCurve>* opp,
483 if (onlyEndPointsInCommon(opp, start, oppStart, &ptsInCommon)) {
488 if (fPart.hullIntersects(opp->fPart, &linear)) {
505 int SkTSpan<TCurve, OppCurve>::hullsIntersect(SkTSpan<OppCurve, TCurve>* opp,
507 if (!fBounds.intersects(opp->fBounds)) {
510 int hullSect = this->hullCheck(opp, start, oppStart);
514 hullSect = opp->hullCheck(this, oppStart, start);
589 double opp = fPart[end].fY - origY;
590 double maxPart = SkTMax(fabs(adj), fabs(opp));
596 double test = (q2[n].fY - origY) * adj - (q2[n].fX - origX) * opp;
615 bool SkTSpan<TCurve, OppCurve>::onlyEndPointsInCommon(const SkTSpan<OppCurve, TCurve>* opp,
617 if (opp->fPart[0] == fPart[0]) {
619 } else if (opp->fPart[0] == fPart[TCurve::kPointLast]) {
622 } else if (opp->fPart[OppCurve::kPointLast] == fPart[0]) {
625 } else if (opp->fPart[OppCurve::kPointLast] == fPart[TCurve::kPointLast]) {
635 opp->fPart.otherPts(*oppStart ? 0 : OppCurve::kPointLast, oppOtherPts);
667 SkTSpan<OppCurve, TCurve>* opp = bounded->fBounded;
668 deleteSpan |= opp->removeBounded(this);
675 bool SkTSpan<TCurve, OppCurve>::removeBounded(const SkTSpan<OppCurve, TCurve>* opp) {
682 if (opp != test) {
698 if (opp == bounded->fBounded) {
857 const OppCurve& opp = sect2->fCurve;
873 work.fCoinStart.setPerp(fCurve, work.fStartT, last, opp);
895 if (oppPt.approximatelyEqual(opp[0])) {
897 } else if (oppPt.approximatelyEqual(opp[OppCurve::kPointLast])) {
974 const OppCurve& opp = sect2->fCurve;
982 work->fCoinStart.setPerp(fCurve, work->fStartT, work->fPart[0], opp);
992 work->fCoinEnd.setPerp(fCurve, work->fEndT, work->fPart[TCurve::kPointLast], opp);
1194 SkTSect<OppCurve, TCurve>* opp,
1228 int sects = this->linesIntersect(span, opp, oppSpan, &i);
1247 SkTSect<OppCurve, TCurve>* opp,
1254 if (!thisRayI.intersectRay(opp->fCurve, thisLine)) {
1300 if (!thisRayI.intersectRay(opp->fCurve, thisLine)) {
1304 oppLine[0] = opp->fCurve.ptAtT(start);
1305 oppLine[1] = oppLine[0] + opp->fCurve.dxdyAtT(start);
1312 oCoinS.setPerp(opp->fCurve, oppSpan->fStartT, oppSpan->fPart[0], fCurve);
1313 oCoinE.setPerp(opp->fCurve, oppSpan->fEndT, oppSpan->fPart[OppCurve::kPointLast], fCurve);
1328 coinS.setPerp(fCurve, span->fStartT, span->fPart[0], opp->fCurve);
1337 coinE.setPerp(fCurve, span->fEndT, span->fPart[TCurve::kPointLast], opp->fCurve);
1358 coinW.setPerp(fCurve, workT, workPt, opp->fCurve);
1365 if (!opp->fHead->contains(oppTTest)) {
1490 SkTSpan<TCurve, OppCurve>* span, SkTSect<OppCurve, TCurve>* opp) {
1495 // may have been deleted when opp did 'remove all but'
1499 opp->removeSpan(bounded);
1510 void SkTSect<TCurve, OppCurve>::removeByPerpendicular(SkTSect<OppCurve, TCurve>* opp) {
1527 this->removeSpans(test, opp);
1571 SkTSect<OppCurve, TCurve>* opp) {
1580 opp->removeSpan(spanBounded);
1582 SkASSERT(!span->fDeleted || !opp->debugHasBounded(span));
1616 SkTSect<OppCurve, TCurve>* opp) {
1622 int oppSects, sects = this->intersects(span, opp, test, &oppSects);
1625 test->initBounds(opp->fCurve);
1626 opp->removeAllBut(span, test, this);
1630 this->removeAllBut(test, span, opp);
1638 opp->removeSpan(test);