diff options
Diffstat (limited to 'src/SomhairlesDream.Frontend/Bindings.fs')
| -rw-r--r-- | src/SomhairlesDream.Frontend/Bindings.fs | 22 |
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 |
