[orx-camera] Add setupMouseEvents to Camera2D
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package org.openrndr.extra.camera
|
package org.openrndr.extra.camera
|
||||||
|
|
||||||
import org.openrndr.Extension
|
import org.openrndr.Extension
|
||||||
|
import org.openrndr.MouseEvents
|
||||||
import org.openrndr.Program
|
import org.openrndr.Program
|
||||||
import org.openrndr.draw.Drawer
|
import org.openrndr.draw.Drawer
|
||||||
import org.openrndr.math.Matrix44
|
import org.openrndr.math.Matrix44
|
||||||
@@ -16,11 +17,12 @@ import org.openrndr.math.transforms.buildTransform
|
|||||||
class Camera2D : Extension {
|
class Camera2D : Extension {
|
||||||
override var enabled = true
|
override var enabled = true
|
||||||
var view = Matrix44.IDENTITY
|
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
|
view = buildTransform { translate(it.dragDisplacement) } * view
|
||||||
}
|
}
|
||||||
program.mouse.scrolled.listen {
|
mouse.scrolled.listen {
|
||||||
val scaleFactor = 1.0 - it.rotation.y * 0.03
|
val scaleFactor = 1.0 - it.rotation.y * 0.03
|
||||||
view = buildTransform {
|
view = buildTransform {
|
||||||
translate(it.position)
|
translate(it.position)
|
||||||
@@ -29,6 +31,9 @@ class Camera2D : Extension {
|
|||||||
} * view
|
} * view
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override fun setup(program: Program) {
|
||||||
|
setupMouseEvents(program.mouse)
|
||||||
|
}
|
||||||
|
|
||||||
override fun beforeDraw(drawer: Drawer, program: Program) {
|
override fun beforeDraw(drawer: Drawer, program: Program) {
|
||||||
drawer.view = view
|
drawer.view = view
|
||||||
|
|||||||
Reference in New Issue
Block a user