From 26bdd272e3d26040a8c9b64b302fd94d7b6be978 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 13:20:53 +0800 Subject: feat(viewport): orbit drag/zoom controls with idle auto-rotate pause; cache-busted script urls --- src/SomhairlesDream.Frontend/Bindings.fs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/SomhairlesDream.Frontend/Bindings.fs') diff --git a/src/SomhairlesDream.Frontend/Bindings.fs b/src/SomhairlesDream.Frontend/Bindings.fs index e7c567d..19056a5 100644 --- a/src/SomhairlesDream.Frontend/Bindings.fs +++ b/src/SomhairlesDream.Frontend/Bindings.fs @@ -65,6 +65,24 @@ let createGLTFLoader () : obj = jsNative [] let loadGLTF (loader: obj) (url: string) (onLoad: GLTFScene -> unit) (onError: obj -> unit) : unit = jsNative +[] +let createOrbitControls (camera: obj) (canvas: obj) : obj = jsNative + +[] +let setControlsTarget (controls: obj) (x: float) (y: float) (z: float) : unit = jsNative + +[] +let setControlsDamping (controls: obj) (enabled: bool) : unit = jsNative + +[] +let setControlsAutoRotate (controls: obj) (auto: bool) : unit = jsNative + +[] +let setControlsAutoRotateSpeed (controls: obj) (speed: float) : unit = jsNative + +[] +let updateControls (controls: obj) : unit = jsNative + [] let queryParam (name: string) : string = jsNative @@ -100,8 +118,8 @@ let createBox3 () : ThreeBox3 = jsNative [] let createVector3 () : ThreeVector = jsNative -[] -let exposeViewerDebug (camera: ThreeCamera) (scene: ThreeNode) (group: ThreeNode) (canvas: obj) : unit = jsNative +[] +let exposeViewerDebug (camera: ThreeCamera) (scene: ThreeNode) (group: ThreeNode) (canvas: obj) (controls: obj) : unit = jsNative [] let clearChildren (node: obj) : unit = jsNative -- cgit v1.2.3