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..503ea8c3 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 = true) { + 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) } } }