-let private vectorRotation (p1x: float32) (p1y: float32) (v1x: float32) (v1y: float32) (px: float32) (py: float32) : float32 =
- if p1y > py
- then
- if v1x > 0.f then -1.f else 1.f
- elif p1y < py
- then
- if v1x < 0.f then -1.f else 1.f
- elif p1x > px
- then
- if v1y < 0.f then -1.f else 1.f
+// Optimized version of 'ellipse': TODO
+let ellipse' (p1x : float) (p1y : float) (m1 : float) (p2x : float) (p2y : float) (m2 : float) (p3x : float) (p3y : float) : Types.Ellipse option =
+ ellipse p1x p1y m1 p2x p2y m2 p3x p3y
+
+let inline private vectorRotation (px : float32) (py : float32) (vx : float32) (vy : float32) (p0x : float32) (p0y : float32) : float32 =
+ if py > p0y then
+ if vx > 0.f then -1.f else 1.f
+ elif py < p0y then
+ if vx < 0.f then -1.f else 1.f
+ elif px > p0x then
+ if vy < 0.f then -1.f else 1.f