Lines Matching defs:ab
281 // ab is the vector from a to the second control point.
287 const SkVector& ab,
293 SkScalar apXab = ap.cross(ab);
330 SkVector ab = p[1] - p[0];
333 if (ab.isZero()) {
341 ab = p[2] - p[0];
347 // When the ab and cd tangents are nearly parallel with vector from d to a the constraint that
359 // cross(ab, da)^2/length(da)^2 == sqd distance from b to line from d to a.
361 SkScalar detABSqd = ab.cross(da);
367 SkPoint b = p[0] + ab;
371 // Insert two quadratics to cover the case when ab points away from d and/or dc
373 if (SkVector::DotProduct(da, dc) < 0 || SkVector::DotProduct(ab,da) > 0) {
395 ab.scale(kLengthScale);
398 // e0 and e1 are extrapolations along vectors ab and dc.
400 c0 += ab;
413 !is_point_within_cubic_tangents(p[0], ab, dc, p[3], dir, cAvg)) {
415 ab.setOrthog(ab);
416 SkScalar z0 = -ab.dot(p[0]);
419 cAvg.fX = SkScalarMul(ab.fY, z1) - SkScalarMul(z0, dc.fY);
420 cAvg.fY = SkScalarMul(z0, dc.fX) - SkScalarMul(ab.fX, z1);
421 SkScalar z = SkScalarMul(ab.fX, dc.fY) - SkScalarMul(ab.fY, dc.fX);