diff options
Diffstat (limited to 'path/point.ml')
-rwxr-xr-x | path/point.ml | 54 |
1 files changed, 0 insertions, 54 deletions
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 |