Lines Matching refs:sweepAngle
247 static bool arc_is_lone_point(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
249 if (0 == sweepAngle && (0 == startAngle || SkIntToScalar(360) == startAngle)) {
270 static void angles_to_unit_vectors(SkScalar startAngle, SkScalar sweepAngle,
273 stopRad = SkDegreesToRadians(startAngle + sweepAngle);
289 SkScalar sw = SkScalarAbs(sweepAngle);
292 SkScalar deltaRad = SkScalarCopySign(SK_Scalar1/512, sweepAngle);
301 *dir = sweepAngle > 0 ? kCW_SkRotationDirection : kCCW_SkRotationDirection;
328 SkPathBuilder& SkPathBuilder::arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
339 if (arc_is_lone_point(oval, startAngle, sweepAngle, &lonePt)) {
345 angles_to_unit_vectors(startAngle, sweepAngle, &startV, &stopV, &dir);
361 // indicates that the sweepAngle is too small such that angles_to_unit_vectors
364 SkScalar endAngle = SkDegreesToRadians(startAngle + sweepAngle);
367 // We do not use SkScalar[Sin|Cos]SnapToZero here. When sin(startAngle) is 0 and sweepAngle
391 SkPathBuilder& SkPathBuilder::addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle) {
392 if (oval.isEmpty() || 0 == sweepAngle) {
398 if (sweepAngle >= kFullCircleAngle || sweepAngle <= -kFullCircleAngle) {
408 return this->addOval(oval, sweepAngle > 0 ? SkPathDirection::kCW : SkPathDirection::kCCW,
412 return this->arcTo(oval, startAngle, sweepAngle, true);