diff options
author | Sébastien Dailly <sebastien@chimrod.com> | 2021-05-24 22:19:43 +0200 |
---|---|---|
committer | Sébastien Dailly <sebastien@dailly.me> | 2022-02-07 16:22:43 +0100 |
commit | 05008c81a9652472a454f47940a6d8aa9a228538 (patch) | |
tree | c3a9225f10045dc794d43bf6e78806727fd20b9d /script.it/script.ml | |
parent | 38cf58ac5e1adb38a1b99ea7cdda19ef7b5e12bf (diff) |
Update
Diffstat (limited to 'script.it/script.ml')
-rwxr-xr-x | script.it/script.ml | 79 |
1 files changed, 5 insertions, 74 deletions
diff --git a/script.it/script.ml b/script.it/script.ml index bc79a22..200d118 100755 --- a/script.it/script.ml +++ b/script.it/script.ml @@ -6,73 +6,6 @@ open Brr_note module State = Script_state.State module Selection = Script_state.Selection -module Out = struct - type t = { point : float * float - ; timer : Elements.Timer.t - ; worker : Brr_webworkers.Worker.t - } - - let apply {point; timer ; worker} state = - match state.State.mode with - - | Edit -> - let stamp = Elements.Timer.delay timer in - Elements.Timer.stop timer; - begin match Path.Path_Builder.peek2 state.current with - (* If there is at last two points selected, handle this as a curve - creation. And we add the new point in the current path *) - | Some _ -> - - let current = State.insert_or_replace state point stamp state.current in - let path = Path.Fixed.to_fixed - (module Path.Path_Builder) - current in - - (* Create a copy from the path with all the interior points *) - let back = Path.Fixed.map - path - (fun pt -> Path.Point.copy pt @@ Path.Point.get_coord' pt) in - - let last = - Outline.{ path - ; back - ; id = Outline.get_id () - } - in - - (* Send to the worker for a full review *) - let () = State.post worker (`Complete last) in - - let state = - { state with - mode = Out - ; paths = last::state.paths - ; current = Path.Path_Builder.empty } in - state - - (* Else, check if there is a curve under the cursor, and remove it *) - | None -> - let current = Path.Path_Builder.empty in - begin match Selection.get_from_paths point state.paths with - | _, None -> - { state with - mode = Out - ; current - } - | dist, Some selection -> - State.select_segment point selection { state with current } dist - - end - end - - | mode when Elements.Timer.delay timer < 0.3 -> - State.click state mode - - | _ -> - State.longClick point state worker state.mode - -end - let post : Brr_webworkers.Worker.t -> Worker_messages.to_worker -> unit = Brr_webworkers.Worker.post @@ -466,13 +399,11 @@ let page_main id = `Generic ( State.E - ( Out.{ point = c - ; worker - ; timer - } - , (module Out: State.Handler with type t = Out.t) - - + ( Script_event.Out.{ point = c + ; worker + ; timer + } + , (module Script_event.Out: State.Handler with type t = Script_event.Out.t) ) ) |