ya2 · news · projects · code · about

abstract test positions in world units
[pmachines.git] / ya2 / p3d / gfx.py
index 7eb5281d65ade073697e597f73232e78868cf4a0..d0871ba0d7c5b9ac3d00fd805ae2c576bb5e9953 100755 (executable)
@@ -120,10 +120,22 @@ class P3dGfxMgr:
 
     @staticmethod
     def pos2d(node):
-        p3d = base.cam.get_relative_point(node.node, Point3(0, 0, 0))
+        p3d = base.cam.get_relative_point(node, Point3(0, 0, 0))
         p2d = Point2()
         return p2d if base.camLens.project(p3d, p2d) else None
 
+    @staticmethod
+    def pos2d_p2d(node):
+        p3d = base.cam.get_relative_point(node, Point3(0, 0, 0))
+        p2d = Point2()
+        ret = p2d if base.camLens.project(p3d, p2d) else None
+        if ret:
+            n = NodePath('tmp')
+            rpos = (ret[0], 0, ret[1])
+            n.set_pos(rpos)
+            pos = n.get_pos(pixel2d)
+            return int(round(pos[0])), int(round(-pos[2]))
+
     @staticmethod
     def screen_coord(pos):
         new_node = NodePath('temp')