Lines Matching refs:verb

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;
77 if (pts[0].fX < edge.fX && pts[kPtCount[verb]].fX < edge.fX) {
88 directions[index] = to_direction((*CurveSlopeAtT[verb])(pts, weight, tVals[index]).fY);
100 static SkScalar conic_weight(const SkPath::Iter& iter, SkPath::Verb verb) {
101 return SkPath::kConic_Verb == verb ? iter.conicWeight() : 1;
104 static SkPoint left_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight,
106 SkASSERT(SkPath::kLine_Verb <= verb && verb <= SkPath::kCubic_Verb);
111 if (SkPath::kLine_Verb == verb) {
114 } else if (SkPath::kQuad_Verb == verb) {
127 } else if (SkPath::kConic_Verb == verb) {
141 SkASSERT(SkPath::kCubic_Verb == verb);
184 for (auto [verb, pts, w] : SkPathPriv::Iterate(fPath)) {
185 if (SkPathVerb::kMove == verb) {
192 if (SkPathVerb::kLine <= verb && verb <= SkPathVerb::kCubic) {
194 verbBounds.setBounds(&pts[kPtIndex[(int)verb]], kPtCount[(int)verb]);
207 SkPath::Verb verb;
211 verb = iter.next(pts);
218 if (SkPath::kLine_Verb > verb || verb > SkPath::kCubic_Verb) {
222 for (int index = 1; index <= kPtCount[verb]; ++index) {
232 winding += contains_edge(pts, verb, conic_weight(iter, verb), contour.fMinXY);
237 SkPoint minXY = left_edge(pts, verb, conic_weight(iter, verb), &direction);
256 } while (SkPath::kDone_Verb != verb);
335 auto [verb, pts, w] = *iter;
336 switch (verb) {