Lines Matching defs:conic
953 // we start with a conic on odd indices when moving CW vs. even indices when moving CCW
1275 values are on integers, place the conic on integers as well.
1605 // promote the quad to a conic
2729 static int winding_mono_conic(const SkConic& conic, SkScalar x, SkScalar y, int* onCurveCount) {
2730 const SkPoint* pts = conic.fPts;
2753 SkScalar B = pts[1].fY * conic.fW - y * conic.fW + y;
2768 xt = conic_eval_numerator(&pts[0].fX, conic.fW, t) / conic_eval_denominator(conic.fW, t);
2793 SkConic conic(pts, weight);
2795 // If the data points are very large, the conic may not be monotonic but may also
2796 // fail to chop. Then, the chopper does not split the original conic in two.
2797 bool isMono = is_mono_quad(pts[0].fY, pts[1].fY, pts[2].fY) || !conic.chopAtYExtrema(chopped);
2798 int w = winding_mono_conic(isMono ? conic : chopped[0], x, y, onCurveCount);
2965 SkConic conic(pts, w);
2966 tangents->push_back(conic.evalTangentAt(t));
3125 const SkConic conic(p0, p1, p2, w);
3126 return conic.chopIntoQuadsPOW2(pts, pow2);
3304 SkConic conic(src[0], src[1], src[2], w);
3306 int n = conic.findXExtrema(ts);
3307 n += conic.findYExtrema(&ts[n]);
3310 extremas[i] = conic.evalAt(ts[i]);