Lines Matching refs:sweepAngle
846 static bool arc_is_lone_point(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
848 if (0 == sweepAngle && (0 == startAngle || SkIntToScalar(360) == startAngle)) {
869 static void angles_to_unit_vectors(SkScalar startAngle, SkScalar sweepAngle,
872 stopRad = SkDegreesToRadians(startAngle + sweepAngle);
888 SkScalar sw = SkScalarAbs(sweepAngle);
891 SkScalar deltaRad = SkScalarCopySign(SK_Scalar1/512, sweepAngle);
900 *dir = sweepAngle > 0 ? kCW_SkRotationDirection : kCCW_SkRotationDirection;
1092 SkPath& SkPath::arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
1103 if (arc_is_lone_point(oval, startAngle, sweepAngle, &lonePt)) {
1109 angles_to_unit_vectors(startAngle, sweepAngle, &startV, &stopV, &dir);
1128 // indicates that the sweepAngle is too small such that angles_to_unit_vectors
1131 SkScalar endAngle = SkDegreesToRadians(startAngle + sweepAngle);
1134 // We do not use SkScalar[Sin|Cos]SnapToZero here. When sin(startAngle) is 0 and sweepAngle
1303 SkPath& SkPath::addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle) {
1304 if (oval.isEmpty() || 0 == sweepAngle) {
1310 if (sweepAngle >= kFullCircleAngle || sweepAngle <= -kFullCircleAngle) {
1320 return this->addOval(oval, sweepAngle > 0 ? SkPathDirection::kCW : SkPathDirection::kCCW,
1324 return this->arcTo(oval, startAngle, sweepAngle, true);
3225 bool SkPathPriv::DrawArcIsConvex(SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect) {
3226 if (isFillNoPathEffect && SkScalarAbs(sweepAngle) >= 360.f) {
3232 return SkScalarAbs(sweepAngle) <= 180.f;
3236 return SkScalarAbs(sweepAngle) <= 360.f;
3240 SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect) {
3242 SkASSERT(sweepAngle);
3244 if (sweepAngle > 3600.0f || sweepAngle < -3600.0f) {
3251 if (isFillNoPathEffect && SkScalarAbs(sweepAngle) >= 360.f) {
3253 SkASSERT(path->isConvex() && DrawArcIsConvex(sweepAngle, false, isFillNoPathEffect));
3260 sweepAngle > 0 ? SkPathFirstDirection::kCW : SkPathFirstDirection::kCCW;
3261 bool convex = DrawArcIsConvex(sweepAngle, useCenter, isFillNoPathEffect);
3264 while (sweepAngle <= -360.f) {
3270 sweepAngle += 360.f;
3272 while (sweepAngle >= 360.f) {
3278 sweepAngle -= 360.f;
3280 path->arcTo(oval, startAngle, sweepAngle, forceMoveTo);