From e87f64308abd6e8cc221377251f0ec425d569e61 Mon Sep 17 00:00:00 2001 From: Justin Butler Date: Fri, 1 Apr 2005 00:33:25 +0000 Subject: [PATCH] Added flag to be able to disable camera roll when moving/rotating the camera. --- direct/src/directtools/DirectCameraControl.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/direct/src/directtools/DirectCameraControl.py b/direct/src/directtools/DirectCameraControl.py index 586544e3ef..c79cc449d2 100644 --- a/direct/src/directtools/DirectCameraControl.py +++ b/direct/src/directtools/DirectCameraControl.py @@ -58,6 +58,8 @@ class DirectCameraControl(PandaObject): ['-', self.zoomCam, -2.0, t], ['_', self.zoomCam, -2.0, t], ] + # set this to true to prevent the camera from rolling + self.lockRoll = False def toggleMarkerVis(self): if direct.cameraControl.coaMarker.isHidden(): @@ -198,6 +200,9 @@ class DirectCameraControl(PandaObject): (0.5 * direct.dr.mouseDeltaX * direct.dr.fovH), 0.0, 0.0) + if (self.lockRoll == True): + # flatten roll + direct.camera.setR(0) return Task.cont def HPPanTask(self, state): @@ -238,6 +243,9 @@ class DirectCameraControl(PandaObject): (deltaX * direct.dr.fovH), (-deltaY * direct.dr.fovV), 0.0) + if (self.lockRoll == True): + # flatten roll + direct.camera.setR(0) self.camManipRef.setPos(self.coaMarkerPos) self.camManipRef.setHpr(direct.camera, ZERO_POINT) else: @@ -246,6 +254,9 @@ class DirectCameraControl(PandaObject): (-1 * deltaX * 180.0), (deltaY * 180.0), 0.0) + if (self.lockRoll == True): + # flatten roll + self.camManipRef.setR(0) direct.camera.setTransform(self.camManipRef, wrt) return Task.cont @@ -268,6 +279,9 @@ class DirectCameraControl(PandaObject): deltaAngle = angle - state.lastAngle state.lastAngle = angle self.camManipRef.setHpr(self.camManipRef, 0, 0, deltaAngle) + if (self.lockRoll == True): + # flatten roll + self.camManipRef.setR(0) direct.camera.setTransform(self.camManipRef, wrt) return Task.cont