Browse Source

*** empty log message ***

Mark Mine 21 years ago
parent
commit
0e03b75c0e
1 changed files with 14 additions and 0 deletions
  1. 14 0
      direct/src/showbase/ShowBase.py

+ 14 - 0
direct/src/showbase/ShowBase.py

@@ -155,6 +155,7 @@ class ShowBase(DirectObject.DirectObject):
         self.camLens = None
         self.camLens = None
         self.camera = None
         self.camera = None
         self.camera2d = None
         self.camera2d = None
+        self.camFrustumVis = None
 
 
         # This is used for syncing multiple PCs in a distributed cluster
         # This is used for syncing multiple PCs in a distributed cluster
         try:
         try:
@@ -1430,6 +1431,19 @@ class ShowBase(DirectObject.DirectObject):
                 self.oobeCullFrustumVis.removeNode()
                 self.oobeCullFrustumVis.removeNode()
                 self.oobeCullFrustumVis = None
                 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'):
     def screenshot(self, namePrefix='screenshot'):
         filename = self.win.saveScreenshotDefault(namePrefix)
         filename = self.win.saveScreenshotDefault(namePrefix)
         if filename.empty():
         if filename.empty():