diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index a0057351c6..b9c2759ad2 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -155,6 +155,7 @@ class ShowBase(DirectObject.DirectObject): self.camLens = None self.camera = None self.camera2d = None + self.camFrustumVis = None # This is used for syncing multiple PCs in a distributed cluster try: @@ -1430,6 +1431,19 @@ class ShowBase(DirectObject.DirectObject): self.oobeCullFrustumVis.removeNode() self.oobeCullFrustumVis = None + def showCameraFrustum(self): + # Create a visible representation of the frustum. + self.removeCameraFrustum() + geom = self.camLens.makeGeometry() + if geom != None: + gn = GeomNode('frustum') + gn.addGeom(geom) + self.camFrustumVis = self.camera.attachNewNode(gn) + + def removeCameraFrustum(self): + if self.camFrustumVis: + self.camFrustumVis.removeNode() + def screenshot(self, namePrefix='screenshot'): filename = self.win.saveScreenshotDefault(namePrefix) if filename.empty():