Home | History | Annotate | Download | only in Intersection

Lines Matching defs:fT

658     double fT;
659 double fOtherT; // value at fOther[fOtherIndex].fT
794 (*SegmentXYAtT2[fVerb])(fPts, i.fT[0][index], &loc);
803 (*SegmentXYAtT2[rh.fVerb])(rh.fPts, ri.fT[0][index], &loc);
869 double startT = (*fSpans)[fStart].fT;
870 double endT = (*fSpans)[fEnd].fT;
917 if (thisSpan.fTiny || precisely_equal(thisSpan.fT, nextSpan.fT)) {
924 (*SegmentXYAtT[fVerb])(fPts, thisSpan.fT, &iPt);
925 (*SegmentXYAtT[fVerb])(fPts, nextSpan.fT, &ePt);
1365 if (approximately_negative(span.fT - lastT)) {
1377 SkPoint curveTop = (*SegmentTop[fVerb])(fPts, lastT, span.fT);
1386 lastT = span.fT;
1457 (*angles[0].spans())[angles[0].start()].fT, &angle0Pt);
1458 (*SegmentXYAtT[fVerb])(fPts, fTs[start].fT, &newPt);
1474 } while (!approximately_negative(tStart - fTs[tIndex].fT) && tIndex < tCount);
1478 } while (!approximately_negative(oStart - other.fTs[oIndex].fT) && oIndex < oCount);
1482 nextT = fTs[++tIndex].fT;
1486 oNextT = other.fTs[++oIndex].fT;
1501 fTs[tIndexStart].fT, xyAtT(tIndexStart).fX,
1504 addTPair(fTs[tIndexStart].fT, other, other.fTs[oIndex].fT, false,
1511 fTs[tIndex].fT, xyAtT(tIndex).fX,
1514 addTPair(fTs[tIndex].fT, other, other.fTs[oIndexStart].fT, false, fTs[tIndex].fPt);
1522 other.fTs[oIndexStart].fT, other.xyAtT(oIndexStart).fX,
1524 other.debugAddTPair(other.fTs[oIndexStart].fT, *this, fTs[tIndex].fT
1531 other.fTs[oIndex].fT, other.xyAtT(oIndex).fX,
1533 other.debugAddTPair(other.fTs[oIndex].fT, *this, fTs[tIndexStart].fT);
1550 } while (!approximately_negative(tStart - fTs[tIndex].fT));
1554 } while (!approximately_negative(oStart - other.fTs[oIndex].fT));
1558 tStart = fTs[tIndex].fT;
1559 oStart = other.fTs[oIndex].fT;
1563 nextT = fTs[++tIndex].fT;
1568 nextT = other.fTs[++oIndex].fT;
1693 if (newT < fTs[index].fT) {
1705 span->fT = newT;
1725 double tInterval = newT - span[less].fT;
1739 if (approximately_negative(newT - span[less].fT)) {
1744 if (approximately_less_than_zero(span[less].fT)) {
1751 double tInterval = newT - span[less].fT;
1764 if (span[less].fT == 0) {
1765 span->fT = newT = 0;
1778 double tEndInterval = span[more].fT - newT;
1792 if (approximately_negative(span[more].fT - newT)) {
1793 if (approximately_greater_than_one(span[more].fT)) {
1804 double tEndInterval = span[more].fT - newT;
1820 span->fT = newT = span[more].fT;
1843 while (!approximately_negative(startT - fTs[index].fT)) {
1847 while (approximately_positive(other.fTs[--oIndex].fT - oEndT))
1857 double testT = test->fT;
1858 double oTestT = oTest->fT;
1863 } else if (track && span->fT < 1 && oTestT < 1) {
1864 TrackOutside(outsideTs, span->fT, oTestT);
1867 } while (approximately_negative(span->fT - testT));
1869 double otherTMatchStart = oEndT - (span->fT - startT) * tRatio;
1870 double otherTMatchEnd = oEndT - (test->fT - startT) * tRatio;
1872 while (approximately_negative(otherTMatchStart - oSpan->fT)
1873 && !approximately_negative(otherTMatchEnd - oSpan->fT)) {
1879 } else if (track && oSpan->fT < 1 && testT < 1) {
1880 TrackOutside(oOutsideTs, oSpan->fT, testT);
1889 } while (!approximately_negative(endT - test->fT));
1890 SkASSERT(!oIndex || approximately_negative(oTest->fT - oStartT));
1943 const double oStartT = oTest->fT;
1946 TrackOutside(outsideTs, end->fT, oStartT);
1949 } while (approximately_negative(end->fT - test->fT));
1961 const double startT = test->fT;
1962 const double oStartT = oTest->fT;
1963 while (!approximately_negative(oEndT - oEnd->fT)
1964 && approximately_negative(oEnd->fT - oStartT)) {
1966 TrackOutside(oOutsideTs, oEnd->fT, startT);
1986 while (!approximately_negative(startT - fTs[index].fT)) {
1990 while (!approximately_negative(oStartT - other.fTs[oIndex].fT)) {
2009 } while (!approximately_negative(endT - test->fT));
2010 SkASSERT(approximately_negative(oTest->fT - oEndT));
2011 SkASSERT(approximately_negative(oEndT - oTest->fT));
2026 if (!approximately_negative(span.fT - t)) {
2029 if (approximately_negative(span.fT - t) && span.fOther == &other
2070 } while (approximately_negative(end->fT - test->fT));
2077 const double oStartT = oTest->fT;
2078 while (!approximately_negative(oEndT - oEnd->fT)
2079 && approximately_negative(oEnd->fT - oStartT)) {
2089 return approximately_between(fTs[lesser].fT, testT, fTs[greater].fT);
2097 double referenceT = fTs[index].fT;
2100 && precisely_negative(referenceT - fTs[lesser].fT)) {
2106 && precisely_negative(fTs[index].fT - referenceT));
2260 double closest = fabs(intersections.fT[0][0] - mid);
2262 double test = fabs(intersections.fT[0][idx] - mid);
2269 intersections.fT[0][closestIdx] = intersections.fT[0][pts - 1];
2275 double foundT = intersections.fT[0][index];
2307 } while (fTs[end].fT < bestT);
2357 return count > 1 && fTs[0].fT == 0 && fTs[--count].fT == 1;
2374 return (*SegmentDXDYAtT[fVerb])(fPts, fTs[index].fT);
2378 return (*SegmentDYAtT[fVerb])(fPts, fTs[index].fT);
2383 double greaterT = fTs[greaterTIndex].fT;
2384 double lesserT = fTs[lesserTIndex].fT;
2427 double startT = other->fTs[nextStart].fT;
2432 while (precisely_zero(startT - other->fTs[nextEnd].fT));
2549 double startT = other->fTs[nextStart].fT;
2554 while (precisely_zero(startT - other->fTs[nextEnd].fT));
2662 double startT = other->fTs[nextStart].fT;
2676 while (precisely_zero(startT - other->fTs[nextEnd].fT));
2827 if (moSpan.fOtherT == match->fT) {
2829 moStartT = moSpan.fT;
2840 moEndT = moSpan.fT;
2859 if (toSpan.fOtherT == test->fT) {
2861 toStartT = toSpan.fT;
2872 toEndT = toSpan.fT;
3009 if (oT == oSpan.fT && this == oSpan.fOther && oSpan.fOtherT == iSpan.fT) {
3112 QuadSubDivide(fPts, fTs[start].fT, fTs[end].fT, qPart);
3117 CubicSubDivide(fPts, fTs[start].fT, fTs[end].fT, cPart);
3127 if (approximately_zero(startT - fTs[index].fT)) {
3139 double t = fTs[end].fT;
3141 return !approximately_less_than_zero(fTs[1].fT);
3144 return !approximately_greater_than_one(fTs[count - 2].fT);
3158 return (*SegmentLeftMost[fVerb])(fPts, fTs[start].fT, fTs[end].fT);
3312 double referenceT = fTs[index].fT;
3314 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3319 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3325 double referenceT = fTs[index].fT;
3327 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3332 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3336 double referenceT = fTs[index].fT;
3338 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3343 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3349 double referenceT = fTs[index].fT;
3351 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3356 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3360 double referenceT = fTs[index].fT;
3362 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3367 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3458 sub_divide(aCubic, fTs[tStart].fT, fTs[tEnd].fT, dst);
3474 SkPoint topPt = CubicTop(fPts, fTs[tStart].fT, fTs[tEnd].fT);
3493 sub_divide(aCubic, fTs[tStart].fT, fTs[tEnd].fT, dst);
3503 sub_divide(aCubic, fTs[tStart].fT, fTs[tEnd].fT, dst);
3560 double referenceT = fTs[index].fT;
3562 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3567 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3573 double referenceT = fTs[index].fT;
3575 while (--lesser >= 0 && precisely_negative(referenceT - fTs[lesser].fT)) {
3580 } while (++index < fTs.count() && precisely_negative(fTs[index].fT - referenceT));
3588 if (approximately_negative(t - below.fT)) {
3595 if (approximately_negative(above.fT - t)) {
3647 if (fTs[end].fT == 1) {
3687 if (approximately_zero(span.fT - fromSpan.fT)) {
3706 if (precisely_zero(span.fT - fromSpan.fT)) {
3766 span.fT = t;
3851 edge[1] = sub_divide(aQuad, sub[0], sub[1], fTs[start].fT, fTs[end].fT).asSkPoint();
3854 sub_divide(aCubic, sub[0], sub[1], fTs[start].fT, fTs[end].fT, sub);
3869 return fTs[tIndex].fT;
3873 return fTs[start].fT * (1 - mid) + fTs[end].fT * mid;
3902 double startT = fTs[index].fT;
3903 while (approximately_negative(fTs[++index].fT - startT))
4021 if (fTs[index].fT == t) {
4044 if (span->fT == 0) {
4046 } else if (span->fT == 1) {
4049 (*SegmentXYAtT[fVerb])(fPts, span->fT, &span->fPt);
4074 } while (approximately_negative(end->fT - test->fT));
4080 const double startT = test->fT;
4081 const double oStartT = oTest->fT;
4082 double otherTMatch = (test->fT - startT) * tRatio + oStartT;
4083 while (!approximately_negative(oEndT - oEnd->fT)
4084 && approximately_negative(oEnd->fT - otherTMatch)) {
4109 kLVerbStr[fVerb], i, fTs[i].fT, out.fX, out.fY,
4122 if (fTs[i].fT == t && fTs[i].fOther == &other && fTs[i].fOtherT == otherT) {
4142 SkDebugf(" [t=%1.3g %1.9g,%1.9g w=", span.fT, xAtT(&span), yAtT(&span));
4162 bool change = lastT != fTs[i].fT || lastWind != fTs[i].fWindValue
4172 lastT = fTs[i].fT;
4208 fT) {
4212 lastT = fTs[i].fT;
4220 SkDebugf(") t=%1.9g (%1.9g,%1.9g)", fTs[i].fT,
4223 while (fTs[iEnd].fT < 1 && approximately_equal(fTs[i].fT, fTs[iEnd].fT)) {
4226 SkDebugf(" tEnd=%1.9g", fTs[iEnd].fT);
4252 double baseT = fTs[index].fT;
4253 while (first > 0 && approximately_equal(fTs[first - 1].fT, baseT)) {
4257 while (last < tCount - 1 && approximately_equal(fTs[last + 1].fT, baseT)) {
4285 span.fT, span.fOther->fTs[span.fOtherIndex].fOtherIndex, pt.fX, pt.fY,
4286 (&span)[1].fT, winding);
4305 span.fT, span.fOther->fTs[span.fOtherIndex].fOtherIndex, pt.fX, pt.fY,
4306 (&span)[1].fT, winding, oppWinding);
4392 SkDebugf(" tStart=%1.9g tEnd=%1.9g", sSpan.fT, eSpan.fT);
4519 coincidence.fTs[swap][0] = ts.fT[0][0];
4520 coincidence.fTs[swap][1] = ts.fT[0][1];
4521 coincidence.fTs[!swap][0] = ts.fT[1][0];
4522 coincidence.fTs[!swap][1] = ts.fT[1][1];
5391 i.fT[0][0], LINE_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5393 SkDebugf(" " T_DEBUG_STR(wtTs, 1) " " PT_DEBUG_STR, i.fT[0][1], PT_DEBUG_DATA(i, 1));
5395 SkDebugf(" wnTs[0]=%g " LINE_DEBUG_STR, i.fT[1][0], LINE_DEBUG_DATA(wn.pts()));
5397 SkDebugf(" " T_DEBUG_STR(wnTs, 1), i.fT[1][1]);
5411 i.fT[0][0], QUAD_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5413 SkDebugf(" " TX_DEBUG_STR(wtTs) " " PT_DEBUG_STR, n, i.fT[0][n], PT_DEBUG_DATA(i, n));
5415 SkDebugf(" wnTs[0]=%g " LINE_DEBUG_STR, i.fT[1][0], LINE_DEBUG_DATA(wn.pts()));
5417 SkDebugf(" " TX_DEBUG_STR(wnTs), n, i.fT[1][n]);
5431 i.fT[0][0], QUAD_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5433 SkDebugf(" " TX_DEBUG_STR(wtTs) " " PT_DEBUG_STR, n, i.fT[0][n], PT_DEBUG_DATA(i, n));
5435 SkDebugf(" wnTs[0]=%g " QUAD_DEBUG_STR, i.fT[1][0], QUAD_DEBUG_DATA(wn.pts()));
5437 SkDebugf(" " TX_DEBUG_STR(wnTs), n, i.fT[1][n]);
5451 i.fT[0][0], CUBIC_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5453 SkDebugf(" " TX_DEBUG_STR(wtTs) " " PT_DEBUG_STR, n, i.fT[0][n], PT_DEBUG_DATA(i, n));
5455 SkDebugf(" wnTs[0]=%g " LINE_DEBUG_STR, i.fT[1][0], LINE_DEBUG_DATA(wn.pts()));
5457 SkDebugf(" " TX_DEBUG_STR(wnTs), n, i.fT[1][n]);
5471 i.fT[0][0], CUBIC_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5473 SkDebugf(" " TX_DEBUG_STR(wtTs) " " PT_DEBUG_STR, n, i.fT[0][n], PT_DEBUG_DATA(i, n));
5475 SkDebugf(" wnTs[0]=%g " QUAD_DEBUG_STR, i.fT[1][0], QUAD_DEBUG_DATA(wn.pts()));
5477 SkDebugf(" " TX_DEBUG_STR(wnTs), n, i.fT[1][n]);
5491 i.fT[0][0], CUBIC_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5493 SkDebugf(" " TX_DEBUG_STR(wtTs) " " PT_DEBUG_STR, n, i.fT[0][n], PT_DEBUG_DATA(i, n));
5495 SkDebugf(" wnTs[0]=%g " CUBIC_DEBUG_STR, i.fT[1][0], CUBIC_DEBUG_DATA(wn.pts()));
5497 SkDebugf(" " TX_DEBUG_STR(wnTs), n, i.fT[1][n]);
5510 i.fT[0][0], CUBIC_DEBUG_DATA(wt.pts()), PT_DEBUG_DATA(i, 0));
5511 SkDebugf(" " T_DEBUG_STR(wtTs, 1), i.fT[1][0]);
5740 int testTAt = wt.addUnsortableT(wt, start, point, ts.fT[swap][pt]);
5741 wt.addOtherT(testTAt, ts.fT[swap][pt], testTAt);
5742 testTAt = wn.addUnsortableT(wn, start ^ ts.fFlip, point, ts.fT[!swap][pt]);
5743 wn.addOtherT(testTAt, ts.fT[!swap][pt], testTAt);
5764 SkASSERT(ts.fT[0][pt] >= 0 && ts.fT[0][pt] <= 1);
5765 SkASSERT(ts.fT[1][pt] >= 0 && ts.fT[1][pt] <= 1);
5767 int testTAt = wt.addT(wn, point, ts.fT[swap][pt]);
5768 int nextTAt = wn.addT(wt, point, ts.fT[!swap][pt]);
5769 wt.addOtherT(testTAt, ts.fT[!swap][pt ^ ts.fFlip], nextTAt);
5770 wn.addOtherT(nextTAt, ts.fT[swap][pt ^ ts.fFlip], testTAt);
5791 SkASSERT(ts.fT[0][0] >= 0 && ts.fT[0][0] <= 1);
5792 SkASSERT(ts.fT[1][0] >= 0 && ts.fT[1][0] <= 1);
5794 int testTAt = wt.addSelfT(wt, point, ts.fT[0][0]);
5795 int nextTAt = wt.addT(wt, point, ts.fT[1][0]);
5796 wt.addOtherT(testTAt, ts.fT[1][0], nextTAt);
5797 wt.addOtherT(nextTAt, ts.fT[0][0], testTAt);