summaryrefslogtreecommitdiff
path: root/src/SomhairlesDream.Frontend/Bindings.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SomhairlesDream.Frontend/Bindings.fs')
-rw-r--r--src/SomhairlesDream.Frontend/Bindings.fs22
1 files changed, 20 insertions, 2 deletions
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
[<Emit("$0.load($1, $2, null, $3)")>]
let loadGLTF (loader: obj) (url: string) (onLoad: GLTFScene -> unit) (onError: obj -> unit) : unit = jsNative
+[<Emit("new OrbitControls($0, $1)")>]
+let createOrbitControls (camera: obj) (canvas: obj) : obj = jsNative
+
+[<Emit("$0.target.copy({ x: $1, y: $2, z: $3 })")>]
+let setControlsTarget (controls: obj) (x: float) (y: float) (z: float) : unit = jsNative
+
+[<Emit("$0.enableDamping = $1")>]
+let setControlsDamping (controls: obj) (enabled: bool) : unit = jsNative
+
+[<Emit("$0.autoRotate = $1")>]
+let setControlsAutoRotate (controls: obj) (auto: bool) : unit = jsNative
+
+[<Emit("$0.autoRotateSpeed = $1")>]
+let setControlsAutoRotateSpeed (controls: obj) (speed: float) : unit = jsNative
+
+[<Emit("$0.update()")>]
+let updateControls (controls: obj) : unit = jsNative
+
[<Emit("new URLSearchParams(window.location.search).get($0)")>]
let queryParam (name: string) : string = jsNative
@@ -100,8 +118,8 @@ let createBox3 () : ThreeBox3 = jsNative
[<Emit("new THREE.Vector3()")>]
let createVector3 () : ThreeVector = jsNative
-[<Emit("window.SOMHAIRLES_VIEWER = { camera: $0, scene: $1, group: $2, canvas: $3 }")>]
-let exposeViewerDebug (camera: ThreeCamera) (scene: ThreeNode) (group: ThreeNode) (canvas: obj) : unit = jsNative
+[<Emit("window.SOMHAIRLES_VIEWER = { camera: $0, scene: $1, group: $2, canvas: $3, controls: $4 }")>]
+let exposeViewerDebug (camera: ThreeCamera) (scene: ThreeNode) (group: ThreeNode) (canvas: obj) (controls: obj) : unit = jsNative
[<Emit("var child; while ((child = $0.firstChild)) { $0.removeChild(child); }")>]
let clearChildren (node: obj) : unit = jsNative