From 3572ec63f172af2ef3440c3744455de7ea94c799 Mon Sep 17 00:00:00 2001
From: Matt Sullivan <matt@rive.app>
Date: Sat, 25 Jul 2020 15:19:32 -0700
Subject: [PATCH] Normalized use of circle constant

---
 lib/src/rive_core/math/circle_constant.dart | 2 +-
 lib/src/rive_core/shapes/ellipse.dart       | 3 +--
 lib/src/rive_core/shapes/path.dart          | 4 ++--
 pubspec.lock                                | 4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/lib/src/rive_core/math/circle_constant.dart b/lib/src/rive_core/math/circle_constant.dart
index 08aee37..67f3041 100644
--- a/lib/src/rive_core/math/circle_constant.dart
+++ b/lib/src/rive_core/math/circle_constant.dart
@@ -1 +1 @@
-double circleConstant = 0.552284749831;
+const circleConstant = 0.552284749831;
diff --git a/lib/src/rive_core/shapes/ellipse.dart b/lib/src/rive_core/shapes/ellipse.dart
index 9b4f935..2e934a7 100644
--- a/lib/src/rive_core/shapes/ellipse.dart
+++ b/lib/src/rive_core/shapes/ellipse.dart
@@ -1,10 +1,9 @@
+import 'package:rive/src/rive_core/math/circle_constant.dart';
 import 'package:rive/src/rive_core/shapes/cubic_detached_vertex.dart';
 import 'package:rive/src/rive_core/shapes/path_vertex.dart';
 import 'package:rive/src/generated/shapes/ellipse_base.dart';
 export 'package:rive/src/generated/shapes/ellipse_base.dart';
 
-const double circleConstant = 0.55;
-
 class Ellipse extends EllipseBase {
   @override
   List<PathVertex> get vertices => [
diff --git a/lib/src/rive_core/shapes/path.dart b/lib/src/rive_core/shapes/path.dart
index 1ba1d3f..51c10ca 100644
--- a/lib/src/rive_core/shapes/path.dart
+++ b/lib/src/rive_core/shapes/path.dart
@@ -4,6 +4,7 @@ import 'package:rive/src/rive_core/bounds_delegate.dart';
 import 'package:rive/src/rive_core/component.dart';
 import 'package:rive/src/rive_core/component_dirt.dart';
 import 'package:rive/src/rive_core/math/aabb.dart';
+import 'package:rive/src/rive_core/math/circle_constant.dart';
 import 'package:rive/src/rive_core/math/mat2d.dart';
 import 'package:rive/src/rive_core/math/vec2d.dart';
 import 'package:rive/src/rive_core/shapes/cubic_vertex.dart';
@@ -124,8 +125,7 @@ abstract class Path extends PathBase {
     }
     List<PathVertex> renderPoints = [];
     int pl = pts.length;
-    const double arcConstant = 0.55;
-    const double iarcConstant = 1.0 - arcConstant;
+    const double iarcConstant = 1.0 - circleConstant;
     PathVertex previous = isClosed ? pts[pl - 1] : null;
     for (int i = 0; i < pl; i++) {
       PathVertex point = pts[i];
diff --git a/pubspec.lock b/pubspec.lock
index ca477ab..6d15d4e 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,7 +7,7 @@ packages:
       name: async
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.4.2"
+    version: "2.4.1"
   boolean_selector:
     dependency: transitive
     description:
@@ -106,7 +106,7 @@ packages:
       name: stack_trace
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.5"
+    version: "1.9.3"
   stream_channel:
     dependency: transitive
     description: