From b46e33c3ddc8b0925acceb0aa6b5271a9b3e00ef Mon Sep 17 00:00:00 2001 From: BoydRotgans Date: Tue, 12 Mar 2019 12:06:27 +0100 Subject: [PATCH] userInteraction boolean for orx-camera --- orx-camera/src/main/kotlin/Debug3D.kt | 4 ++-- orx-camera/src/main/kotlin/OrbitalControls.kt | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/orx-camera/src/main/kotlin/Debug3D.kt b/orx-camera/src/main/kotlin/Debug3D.kt index f19878c3..0a079697 100644 --- a/orx-camera/src/main/kotlin/Debug3D.kt +++ b/orx-camera/src/main/kotlin/Debug3D.kt @@ -8,12 +8,12 @@ import org.openrndr.math.Matrix44 import org.openrndr.math.Vector3 @Suppress("unused") -class Debug3D(eye: Vector3 = Vector3(0.0, 0.0, 10.0), lookAt: Vector3 = Vector3.ZERO, fov:Double = 90.0) : Extension { +class Debug3D(eye: Vector3 = Vector3(0.0, 0.0, 10.0), lookAt: Vector3 = Vector3.ZERO, fov:Double = 90.0, userInteraction:Boolean = true) : Extension { override var enabled: Boolean = true var showGrid = false val orbitalCamera = OrbitalCamera(eye, lookAt, 90.0) - private val orbitalControls = OrbitalControls(orbitalCamera) + private val orbitalControls = OrbitalControls(orbitalCamera, userInteraction) private var lastSeconds: Double = -1.0 private val grid = vertexBuffer( diff --git a/orx-camera/src/main/kotlin/OrbitalControls.kt b/orx-camera/src/main/kotlin/OrbitalControls.kt index 24ce23a5..ed2490f1 100644 --- a/orx-camera/src/main/kotlin/OrbitalControls.kt +++ b/orx-camera/src/main/kotlin/OrbitalControls.kt @@ -4,7 +4,8 @@ import org.openrndr.* import org.openrndr.math.Vector2 import org.openrndr.math.Vector3 -class OrbitalControls(val orbitalCamera: OrbitalCamera) { +class OrbitalControls(val orbitalCamera: OrbitalCamera, val userInteraction: Boolean) { + enum class STATE { NONE, ROTATE, @@ -18,7 +19,6 @@ class OrbitalControls(val orbitalCamera: OrbitalCamera) { private lateinit var lastMousePosition: Vector2 private fun mouseScrolled(event: MouseEvent) { - if (Math.abs(event.rotation.x) > 0.1) return when { @@ -118,11 +118,12 @@ class OrbitalControls(val orbitalCamera: OrbitalCamera) { fun setup(program: Program) { this.program = program - program.mouse.moved.listen { mouseMoved(it) } - program.mouse.buttonDown.listen { mouseButtonDown(it) } - program.mouse.buttonUp.listen { state = STATE.NONE } - program.mouse.scrolled.listen { mouseScrolled(it) } - program.keyboard.keyDown.listen { keyPressed(it) } - program.keyboard.keyRepeat.listen{ keyPressed(it) } + if(userInteraction) + program.mouse.moved.listen { mouseMoved(it) } + program.mouse.buttonDown.listen { mouseButtonDown(it) } + program.mouse.buttonUp.listen { state = STATE.NONE } + program.mouse.scrolled.listen { mouseScrolled(it) } + program.keyboard.keyDown.listen { keyPressed(it) } + program.keyboard.keyRepeat.listen{ keyPressed(it) } } }