ソースを参照

Add ability to pass in xy coords to pick routine

Mark Mine 22 年 前
コミット
3a9e70645a
1 ファイル変更8 行追加4 行削除
  1. 8 4
      direct/src/directtools/DirectSelection.py

+ 8 - 4
direct/src/directtools/DirectSelection.py

@@ -530,9 +530,12 @@ class SelectionRay(SelectionQueue):
         SelectionQueue.__init__(self, parentNP)
         self.addCollider(CollisionRay())
     
-    def pick(self, targetNodePath):
+    def pick(self, targetNodePath, xy = None):
         # Determine ray direction based upon the mouse coordinates
-        if direct:
+        if xy:
+            mx = xy[0]
+            my = xy[1]
+        elif direct:
             mx = direct.dr.mouseX
             my = direct.dr.mouseY
         else:
@@ -554,9 +557,10 @@ class SelectionRay(SelectionQueue):
         # Determine collision entry
         return self.findCollisionEntry(skipFlags)
 
-    def pickGeom(self, targetNodePath = render, skipFlags = SKIP_ALL ):
+    def pickGeom(self, targetNodePath = render, skipFlags = SKIP_ALL,
+                 xy = None):
         self.collideWithGeom()
-        self.pick(targetNodePath)
+        self.pick(targetNodePath, xy = xy)
         # Determine collision entry
         return self.findCollisionEntry(skipFlags)