[orx-camera] Add setupMouseEvents to Camera2D

This commit is contained in:
Edwin Jakobs
2022-10-27 22:31:47 +02:00
parent 503498666c
commit 0a77411406

View File

@@ -1,6 +1,7 @@
package org.openrndr.extra.camera
import org.openrndr.Extension
import org.openrndr.MouseEvents
import org.openrndr.Program
import org.openrndr.draw.Drawer
import org.openrndr.math.Matrix44
@@ -16,11 +17,12 @@ import org.openrndr.math.transforms.buildTransform
class Camera2D : Extension {
override var enabled = true
var view = Matrix44.IDENTITY
override fun setup(program: Program) {
program.mouse.dragged.listen {
fun setupMouseEvents(mouse: MouseEvents) {
mouse.dragged.listen {
view = buildTransform { translate(it.dragDisplacement) } * view
}
program.mouse.scrolled.listen {
mouse.scrolled.listen {
val scaleFactor = 1.0 - it.rotation.y * 0.03
view = buildTransform {
translate(it.position)
@@ -29,6 +31,9 @@ class Camera2D : Extension {
} * view
}
}
override fun setup(program: Program) {
setupMouseEvents(program.mouse)
}
override fun beforeDraw(drawer: Drawer, program: Program) {
drawer.view = view