Lines Matching refs:pts
56 bool SkPathMeasure::quad_too_curvy(const SkPoint pts[3]) { in quad_too_curvy()
59 SkScalar dx = SkScalarHalf(pts[1].fX) - in quad_too_curvy()
60 SkScalarHalf(SkScalarHalf(pts[0].fX + pts[2].fX)); in quad_too_curvy()
61 SkScalar dy = SkScalarHalf(pts[1].fY) - in quad_too_curvy()
62 SkScalarHalf(SkScalarHalf(pts[0].fY + pts[2].fY)); in quad_too_curvy()
84 bool SkPathMeasure::cubic_too_curvy(const SkPoint pts[4]) { in cubic_too_curvy()
85 return cheap_dist_exceeds_limit(pts[1], in cubic_too_curvy()
86 SkScalarInterp(pts[0].fX, pts[3].fX, SK_Scalar1/3), in cubic_too_curvy()
87 SkScalarInterp(pts[0].fY, pts[3].fY, SK_Scalar1/3)) in cubic_too_curvy()
89 cheap_dist_exceeds_limit(pts[2], in cubic_too_curvy()
90 SkScalarInterp(pts[0].fX, pts[3].fX, SK_Scalar1*2/3), in cubic_too_curvy()
91 SkScalarInterp(pts[0].fY, pts[3].fY, SK_Scalar1*2/3)); in cubic_too_curvy()
94 static SkScalar quad_folded_len(const SkPoint pts[3]) { in quad_folded_len()
95 SkScalar t = SkFindQuadMaxCurvature(pts); in quad_folded_len()
96 SkPoint pt = SkEvalQuadAt(pts, t); in quad_folded_len()
97 SkVector a = pts[2] - pt; in quad_folded_len()
100 SkVector b = pts[0] - pt; in quad_folded_len()
113 static SkScalar compute_quad_len(const SkPoint pts[3]) { in compute_quad_len()
115 a.fX = pts[0].fX - 2 * pts[1].fX + pts[2].fX; in compute_quad_len()
116 a.fY = pts[0].fY - 2 * pts[1].fY + pts[2].fY; in compute_quad_len()
119 a = pts[2] - pts[0]; in compute_quad_len()
122 b.fX = 2 * (pts[1].fX - pts[0].fX); in compute_quad_len()
123 b.fY = 2 * (pts[1].fY - pts[0].fY); in compute_quad_len()
132 return quad_folded_len(pts); in compute_quad_len()
138 return quad_folded_len(pts); in compute_quad_len()
146 SkScalar SkPathMeasure::compute_quad_segs(const SkPoint pts[3], in compute_quad_segs()
148 if (tspan_big_enough(maxt - mint) && quad_too_curvy(pts)) { in compute_quad_segs()
152 SkChopQuadAtHalf(pts, tmp); in compute_quad_segs()
156 SkScalar d = SkPoint::Distance(pts[0], pts[2]); in compute_quad_segs()
193 SkScalar SkPathMeasure::compute_cubic_segs(const SkPoint pts[4], in compute_cubic_segs()
195 if (tspan_big_enough(maxt - mint) && cubic_too_curvy(pts)) { in compute_cubic_segs()
199 SkChopCubicAtHalf(pts, tmp); in compute_cubic_segs()
203 SkScalar d = SkPoint::Distance(pts[0], pts[3]); in compute_cubic_segs()
218 SkPoint pts[4]; in buildSegments() local
235 switch (fIter.next(pts)) { in buildSegments()
238 fPts.append(1, pts); in buildSegments()
247 SkScalar d = SkPoint::Distance(pts[0], pts[1]); in buildSegments()
257 fPts.append(1, pts + 1); in buildSegments()
265 SkScalar length = compute_quad_len(pts); in buildSegments()
275 distance = this->compute_quad_segs(pts, distance, 0, kMaxTValue, ptIndex); in buildSegments()
278 fPts.append(2, pts + 1); in buildSegments()
284 const SkConic conic(pts, fIter.conicWeight()); in buildSegments()
293 fPts.append(2, pts + 1); in buildSegments()
300 distance = this->compute_cubic_segs(pts, distance, 0, kMaxTValue, ptIndex); in buildSegments()
302 fPts.append(3, pts + 1); in buildSegments()
349 static void compute_pos_tan(const SkPoint pts[], int segType, in compute_pos_tan() argument
354 pos->set(SkScalarInterp(pts[0].fX, pts[1].fX, t), in compute_pos_tan()
355 SkScalarInterp(pts[0].fY, pts[1].fY, t)); in compute_pos_tan()
358 tangent->setNormalize(pts[1].fX - pts[0].fX, pts[1].fY - pts[0].fY); in compute_pos_tan()
362 SkEvalQuadAt(pts, t, pos, tangent); in compute_pos_tan()
368 SkConic(pts[0], pts[2], pts[3], pts[1].fX).evalAt(t, pos, tangent); in compute_pos_tan()
374 SkEvalCubicAt(pts, t, pos, tangent, nullptr); in compute_pos_tan()
384 static void seg_to(const SkPoint pts[], int segType, in seg_to() argument
404 dst->lineTo(pts[1]); in seg_to()
406 dst->lineTo(SkScalarInterp(pts[0].fX, pts[1].fX, stopT), in seg_to()
407 SkScalarInterp(pts[0].fY, pts[1].fY, stopT)); in seg_to()
413 dst->quadTo(pts[1], pts[2]); in seg_to()
415 SkChopQuadAt(pts, tmp0, stopT); in seg_to()
419 SkChopQuadAt(pts, tmp0, startT); in seg_to()
429 SkConic conic(pts[0], pts[2], pts[3], pts[1].fX); in seg_to()
454 dst->cubicTo(pts[1], pts[2], pts[3]); in seg_to()
456 SkChopCubicAt(pts, tmp0, stopT); in seg_to()
460 SkChopCubicAt(pts, tmp0, startT); in seg_to()