From e5c2a971644746818f8764481c60c4c5cf1a80c4 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Thu, 17 Dec 2020 22:29:25 +0100 Subject: Moved path builder in a dedicated file --- path/point.ml | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) (limited to 'path/point.ml') diff --git a/path/point.ml b/path/point.ml index 91b68c2..9e10200 100755 --- a/path/point.ml +++ b/path/point.ml @@ -1,5 +1,3 @@ -open StdLabels - type t = { p: Gg.v2 ; size : float @@ -24,55 +22,3 @@ let get_coord' let trans = of_polar @@ v t.size t.angle in t.p + trans -let return_segment - : Shapes.Bezier.t -> Shapes.Bezier.t list -> Shapes.Bezier.t list - = fun bezier beziers -> - (* We gave the points in reverse order, so we have to revert the - curve *) - let bezier' = Shapes.Bezier.reverse bezier in - bezier'::beziers - - -let get_new_segment connexion0 p5 p4 p3 p2 p1 = - let p5' = get_coord p5 - and p4' = get_coord p4 - and p3' = get_coord p3 - and p2' = get_coord p2 - and p1' = get_coord p1 in - - let points_to_link = - [ p1' - ; p2' - ; p3' - ; p4' - ; p5' ] in - Shapes.Bspline.to_bezier ?connexion0 points_to_link - -let add_point_in_path - : float * float -> t list -> Shapes.Bezier.t list -> t list * Shapes.Bezier.t list - = fun (x, y) path beziers -> - let lastClick = create x y in - let (let*) v f = - match v with - | Ok bezier -> - if Array.length bezier > 0 then - f (Array.get bezier 0) - else - lastClick::path, beziers - | _ -> - lastClick::path, beziers - in - - let connexion0 = match beziers with - | hd::_ -> Some hd.Shapes.Bezier.p1 - | _ -> None in - - match path with - | p4::p3::p2::p1::_ -> - let* bezier = get_new_segment connexion0 - lastClick p4 p3 p2 p1 in - (* We remove the last point and add the bezier curve in the list*) - let firsts = lastClick::p4::p3::p2::[] in - firsts, return_segment bezier beziers - | _ -> - lastClick::path, beziers -- cgit v1.2.3