Lines Matching refs:pts

47 static int contains_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight, const SkPoint& edge) {
49 bounds.setBounds(pts, kPtCount[verb] + 1);
63 int count = (*CurveIntercept[verb * 2])(pts, weight, edge.fY, tVals);
67 SkScalar intersectX = (*CurvePointAtT[verb])(pts, weight, tVals[index]).fX;
76 // if intersect x equals edge x, we need to determine if pts is to the left or right of edge
77 if (pts[0].fX < edge.fX && pts[kPtCount[verb]].fX < edge.fX) {
82 // example: edge ends 45 degree diagonal going up. If pts is to the left of edge, keep.
83 // if pts is to the right of edge, discard. With code as is, can't distiguish the two cases.
88 directions[index] = to_direction((*CurveSlopeAtT[verb])(pts, weight, tVals[index]).fY);
104 static SkPoint left_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight,
112 result = pts[0].fX < pts[1].fX ? pts[0] : pts[1];
113 dy = pts[1].fY - pts[0].fY;
116 quad.set(pts);
123 result = pts[0].fX < pts[2].fX ? pts[0] : pts[2];
124 t = pts[0].fX < pts[2].fX ? 0 : 1;
129 conic.set(pts, weight);
136 result = pts[0].fX < pts[2].fX ? pts[0] : pts[2];
137 t = pts[0].fX < pts[2].fX ? 0 : 1;
143 cubic.set(pts);
159 result = pts[0].fX < pts[3].fX ? pts[0] : pts[3];
160 t = pts[0].fX < pts[3].fX ? 0 : 1;
184 for (auto [verb, pts, w] : SkPathPriv::Iterate(fPath)) {
190 bounds.setBounds(&pts[kPtIndex[SkPath::kMove_Verb]], kPtCount[SkPath::kMove_Verb]);
194 verbBounds.setBounds(&pts[kPtIndex[(int)verb]], kPtCount[(int)verb]);
206 SkPoint pts[4];
211 verb = iter.next(pts);
223 if (pts[0].fY != pts[index].fY) {
232 winding += contains_edge(pts, verb, conic_weight(iter, verb), contour.fMinXY);
237 SkPoint minXY = left_edge(pts, verb, conic_weight(iter, verb), &direction);
335 auto [verb, pts, w] = *iter;
338 temp->moveTo(pts[0]);
341 temp->lineTo(pts[1]);
344 temp->quadTo(pts[1], pts[2]);
347 temp->conicTo(pts[1], pts[2], *w);
350 temp->cubicTo(pts[1], pts[2], pts[3]);