diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index e61b4dbceb..68e8b7599a 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -2188,7 +2188,7 @@ class ShowBase(DirectObject.DirectObject): dr.setCamera(self.showVertices) - def oobe(self): + def oobe(self, cam = None): """ Enable a special "out-of-body experience" mouse-interface mode. This can be used when a "god" camera is needed; it @@ -2209,6 +2209,9 @@ class ShowBase(DirectObject.DirectObject): This is a toggle; the second time this function is called, it disables the mode. """ + if cam is None: + cam = self.cam + # If oobeMode was never set, set it to false and create the # structures we need to implement OOBE. try: @@ -2223,7 +2226,7 @@ class ShowBase(DirectObject.DirectObject): self.oobeLens.setNearFar(0.1, 10000.0) self.oobeLens.setMinFov(40) - self.oobeTrackball = NodePath(Trackball('oobeTrackball'), 1) + self.oobeTrackball = NodePath(Trackball('oobeTrackball')) self.oobe2cam = self.oobeTrackball.attachNewNode(Transform2SG('oobe2cam')) self.oobe2cam.node().setNode(self.oobeCameraTrackball.node()) @@ -2259,8 +2262,9 @@ class ShowBase(DirectObject.DirectObject): bt.setButtonRepeatEvent('') bt.setButtonUpEvent('') - self.cam.reparentTo(self.camera) - self.camNode.setLens(self.camLens) + cam.reparentTo(self.camera) + #if cam == self.cam: + # self.camNode.setLens(self.camLens) self.oobeCamera.reparentTo(self.hidden) self.oobeMode = 0 bboard.post('oobeEnabled', False) @@ -2287,7 +2291,7 @@ class ShowBase(DirectObject.DirectObject): mat.invertInPlace() self.oobeTrackball.node().setMat(mat) - self.cam.reparentTo(self.oobeCameraTrackball) + cam.reparentTo(self.oobeCameraTrackball) # Temporarily disable button events by routing them # through the oobe filters. @@ -2298,7 +2302,8 @@ class ShowBase(DirectObject.DirectObject): bt.setButtonUpEvent('oobe-up') # Don't change the camera lens--keep it with the original lens. - #self.camNode.setLens(self.oobeLens) + #if cam == self.cam: + # self.camNode.setLens(self.oobeLens) if self.oobeVis: self.oobeVis.reparentTo(self.camera)