Fix OrbitalCamera and OrbitalControls to be compatible with OR 0.3.36
This commit is contained in:
@@ -37,10 +37,10 @@ plugins {
|
||||
//}
|
||||
|
||||
project.ext {
|
||||
openrndrVersion = "0.3.35"
|
||||
openrndrVersion = "0.3.36"
|
||||
kotlinVersion = "1.3.50"
|
||||
spekVersion = "2.0.6"
|
||||
libfreenectVersion = "0.5.7-1.5.1"
|
||||
libfreenectVersion = "0.5.7-1.5.2"
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
||||
@@ -39,7 +39,7 @@ class OrbitalCamera(eye: Vector3 = Vector3.ZERO, lookAt: Vector3 = Vector3.UNIT_
|
||||
}
|
||||
|
||||
fun rotate(rotX: Double, rotY: Double) {
|
||||
sphericalEnd += Spherical(0.0, rotX, rotY)
|
||||
sphericalEnd += Spherical(rotX, rotY, 0.0)
|
||||
sphericalEnd = sphericalEnd.makeSafe()
|
||||
dirty = true
|
||||
}
|
||||
@@ -67,7 +67,7 @@ class OrbitalCamera(eye: Vector3 = Vector3.ZERO, lookAt: Vector3 = Vector3.UNIT_
|
||||
}
|
||||
|
||||
fun dolly(distance: Double) {
|
||||
sphericalEnd += Spherical(distance, 0.0, 0.0)
|
||||
sphericalEnd += Spherical(0.0, 0.0, distance)
|
||||
dirty = true
|
||||
}
|
||||
|
||||
|
||||
@@ -40,15 +40,15 @@ class OrbitalControls(val orbitalCamera: OrbitalCamera , val userInteraction: Bo
|
||||
val offset = Vector3.fromSpherical(orbitalCamera.spherical) - orbitalCamera.lookAt
|
||||
|
||||
// half of the fov is center to top of screen
|
||||
val targetDistance = offset.length * tan((fov / 2) * PI / 180)
|
||||
val targetDistance = offset.length * tan((Math.toRadians((fov) / 2) ) )
|
||||
val panX = (2 * delta.x * targetDistance / program.window.size.x)
|
||||
val panY = (2 * delta.y * targetDistance / program.window.size.y)
|
||||
|
||||
orbitalCamera.pan(panX, -panY, 0.0)
|
||||
|
||||
} else {
|
||||
val rotX = 2 * PI * delta.x / program.window.size.x
|
||||
val rotY = 2 * PI * delta.y / program.window.size.y
|
||||
val rotX = 360.0 * delta.x / program.window.size.x
|
||||
val rotY = 360.0 * delta.y / program.window.size.y
|
||||
orbitalCamera.rotate(rotX, rotY)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user