aboutsummaryrefslogtreecommitdiff
path: root/shapes/tools
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-02-05 09:08:39 +0100
committerSébastien Dailly <sebastien@dailly.me>2022-02-07 14:39:30 +0100
commit561d0f0155f4906d90eb7e73a3ff9cb28909126f (patch)
tree9a606c2d7832272ea33d7052512a5fa59805d582 /shapes/tools
parent86ec559f913c389e8dc055b494630f21a45e039b (diff)
Update project structure
Diffstat (limited to 'shapes/tools')
-rwxr-xr-xshapes/tools/dune6
-rwxr-xr-xshapes/tools/utils.ml63
-rwxr-xr-xshapes/tools/utils.mli21
3 files changed, 0 insertions, 90 deletions
diff --git a/shapes/tools/dune b/shapes/tools/dune
deleted file mode 100755
index a2c3fdb..0000000
--- a/shapes/tools/dune
+++ /dev/null
@@ -1,6 +0,0 @@
-(library
- (name tools)
- (libraries
- gg
- )
- )
diff --git a/shapes/tools/utils.ml b/shapes/tools/utils.ml
deleted file mode 100755
index b8a473f..0000000
--- a/shapes/tools/utils.ml
+++ /dev/null
@@ -1,63 +0,0 @@
-open Gg.V2
-
-let norm_angle vect =
- mod_float
- ((angle vect) +. Gg.Float.two_pi)
- Gg.Float.two_pi
-
-
-let intersection
- : (Gg.v2 * Gg.v2) -> (Gg.v2 * Gg.v2) -> Gg.v2 option
- = fun (p0, p1) (p2, p3) ->
- let i = p1 - p0
- and j = p3 - p2 in
-
- let d = (x i *. y j) -. (y i *. x j) in
- if Float.( (abs d) <= 0.01 ) then
- None
- else
- let m = ((x i) *. (y p0)
- -. (x i) *. (y p2)
- -. (y i) *. (x p0)
- +. (y i) *. (x p2)) /. d in
- Some (p2 + m * j)
- (*
- let k = ((x j) *. (y p0)
- -. (x j) *. (y p2)
- -. (y j) *. (x p0)
- +. (y j) *. (x p2)) /. d in
- Some (p0 + k * i)
- *)
-
-
-let center
- : Gg.v2 -> Gg.v2 -> Gg.v2 -> Gg.v2 option
- = fun p0 p1 p2 ->
- (* deltas *)
- let d1 = p1 - p0
- and d2 = p2 - p1 in
-
- (* perpendiculars *)
- let d1p = ortho d1
- and d2p = ortho d2 in
-
- (* Chord midpoints *)
- let m1 = half (p0 + p1)
- and m2 = half (p1 + p2) in
-
- (* midpoint offsets *)
- let m1n = m1 + d1p
- and m2n = m2 + d2p in
-
- intersection (m1, m1n) (m2, m2n)
-
-let rotate
- : Gg.v2 -> float -> Gg.v2
- = fun p0 theta ->
- let r = x (to_polar p0) in
- of_polar (v r theta)
-
-let equal_point
- : float -> Gg.v2 -> Gg.v2 -> bool
- = fun eps p0 p1 ->
- Gg.V2.equal_f (fun v0 v1 -> (Float.abs (v1 -. v0)) <= eps ) p0 p1
diff --git a/shapes/tools/utils.mli b/shapes/tools/utils.mli
deleted file mode 100755
index 4e12906..0000000
--- a/shapes/tools/utils.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-(** Return a normalize angle *)
-val norm_angle
- : Gg.v2 -> float
-
-(** return the interesction for two segments *)
-val intersection
- : (Gg.v2 * Gg.v2) -> (Gg.v2 * Gg.v2) -> Gg.v2 option
-
-(** Return the center of the cercle for three points
- None if the point cannot be evaluated
-*)
-val center
- : Gg.v2 -> Gg.v2 -> Gg.v2 -> Gg.v2 option
-
-(** Rotate the vector by the given angle *)
-val rotate
- : Gg.v2 -> float -> Gg.v2
-
-(** Test equality between two points *)
-val equal_point
- : float -> Gg.v2 -> Gg.v2 -> bool