diff options
Diffstat (limited to 'path/builder.ml')
-rwxr-xr-x | path/builder.ml | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/path/builder.ml b/path/builder.ml index 166c073..4403599 100755 --- a/path/builder.ml +++ b/path/builder.ml @@ -203,4 +203,22 @@ module Make(Point:P) = struct path ) + let map + : t -> (Point.t -> Point.t) -> t + = fun (points, beziers) f -> + let points = List.map + points + ~f + and beziers = List.map + beziers + ~f:(fun bezier -> + + { p0 = f bezier.p0 + ; p1 = f bezier.p1 + ; ctrl0 = Point.(get_coord (f ( copy bezier.p0 bezier.ctrl0))) + ; ctrl1 = Point.(get_coord (f ( copy bezier.p1 bezier.ctrl1))) + } + ) in + points, beziers + end |