Home | History | Annotate | Download | only in pathops

Lines Matching refs:c1

79     SkDCubic c1 = cubic1.subDivide(t1s, t1e);
82 // OPTIMIZE: if c1 == c2, call once (happens when detecting self-intersection)
83 c1.toQuadraticTs(c1.calcPrecision() * precisionScale, &ts1);
366 static bool only_end_pts_in_common(const SkDCubic& c1, const SkDCubic& c2) {
375 endPt[opp - 1] = &c1[end];
386 double sign = (c1[oddMan].fY - origY) * adj - (c1[oddMan].fX - origX) * opp;
404 int SkIntersections::intersect(const SkDCubic& c1, const SkDCubic& c2) {
405 bool selfIntersect = &c1 == &c2;
407 if (c1[0].approximatelyEqualHalf(c1[3])) {
408 insert(0, 1, c1[0]);
413 if (c1[i1].approximatelyEqualHalf(c2[i2])) {
414 insert(i1 >> 1, i2 >> 1, c1[i1]);
421 if (only_end_pts_in_common(c1, c2)) {
424 if (only_end_pts_in_common(c2, c1)) {
432 c1Bounds.setBounds(c1); // OPTIMIZE use setRawBounds ?
434 intersectEnd(c1, false, c2, c2Bounds, selfIntersect, *this);
435 intersectEnd(c1, true, c2, c2Bounds, selfIntersect, *this);
442 intersectEnd(c2, false, c1, c1Bounds, false, *this);
443 intersectEnd(c2, true, c1, c1Bounds, false, *this);
455 SkDPoint testPt1 = c1.ptAtT(testT1);
471 ::intersect(c1, 0, 1, c2, 0, 1, 1, *this);
479 if (closeStart(c1, 0, *this, pt[0]) && closeStart(c2, 1, *this, pt[1])
483 if (closeEnd(c1, 0, *this, pt[0]) && closeEnd(c2, 1, *this, pt[1])
495 pt[0] = c1.ptAtT(mid1);