Lines Matching defs: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);
257 bool SkIntersections::cubicCheckCoincidence(const SkDCubic& c1, const SkDCubic& c2) {
267 SkDPoint testPt1 = c1.ptAtT(testT1);
432 static bool only_end_pts_in_common(const SkDCubic& c1, const SkDCubic& c2) {
441 endPt[opp - 1] = &c1[end];
455 double sign = (c1[oddMan].fY - origY) * adj - (c1[oddMan].fX - origX) * opp;
473 int SkIntersections::intersect(const SkDCubic& c1, const SkDCubic& c2) {
477 bool selfIntersect = &c1 == &c2;
479 if (c1[0].approximatelyEqual(c1[3])) {
480 insert(0, 1, c1[0]);
487 if (c1[i1].approximatelyEqual(c2[i2])) {
488 insert(i1 >> 1, i2 >> 1, c1[i1]);
495 if (only_end_pts_in_common(c1, c2)) {
498 if (only_end_pts_in_common(c2, c1)) {
510 exactEndBits |= cubicExactEnd(c1, false, c2) << 0;
511 exactEndBits |= cubicExactEnd(c1, true, c2) << 1;
513 exactEndBits |= cubicExactEnd(c2, false, c1) << 2;
514 exactEndBits |= cubicExactEnd(c2, true, c1) << 3;
517 if (cubicCheckCoincidence(c1, c2)) {
525 cubicNearEnd(c1, false, c2, c2Bounds);
531 cubicNearEnd(c1, true, c2, c2Bounds);
543 c1Bounds.setBounds(c1); // OPTIMIZE use setRawBounds ?
546 cubicNearEnd(c2, false, c1, c1Bounds);
549 cubicNearEnd(c2, true, c1, c1Bounds);
553 if (cubicCheckCoincidence(c1, c2)) {
560 ::intersect(c1, 0, 1, c2, 0, 1, 1, i);
576 SkDPoint pt = c1.ptAtT(tAvg);
594 SkDPoint pt = c1.ptAtT(tAvg);
619 if (closeStart(c1, 0, *this, pt[0]) && closeStart(c2, 1, *this, pt[1])
623 if (closeEnd(c1, 0, *this, pt[0]) && closeEnd(c2, 1, *this, pt[1])
635 pt[0] = c1.ptAtT(mid1);