Sfoglia il codice sorgente

Added optional skip flags to be able to ignore certain types of geometry for select detection.

Justin Butler 21 anni fa
parent
commit
b1daa2b2ff
1 ha cambiato i file con 4 aggiunte e 2 eliminazioni
  1. 4 2
      direct/src/directtools/DirectManipulation.py

+ 4 - 2
direct/src/directtools/DirectManipulation.py

@@ -35,6 +35,7 @@ class DirectManipulationControl(PandaObject):
             ['shift-f', self.objectHandles.growToFit],
             ['i', self.plantSelectedNodePath],
             ]
+        self.optionalSkipFlags = 0
 
     def manipulationStart(self, modifiers):
         # Start out in select mode
@@ -86,8 +87,9 @@ class DirectManipulationControl(PandaObject):
         # depending on flag.....
         if self.mode == 'select':
             # Check for object under mouse
-            # Don't intersect with hidden or backfacing objects
-            skipFlags = SKIP_HIDDEN | SKIP_BACKFACE
+            # Don't intersect with hidden or backfacing objects, as well as any
+            # optionally specified things
+            skipFlags = SKIP_HIDDEN | SKIP_BACKFACE | self.optionalSkipFlags
             # Skip camera (and its children), unless control key is pressed
             skipFlags |= SKIP_CAMERA * (1 - base.getControl())
             entry = direct.iRay.pickGeom(skipFlags = skipFlags)