- margin = .3, .3
- dpos = bounds[1][0] + margin[0], 0, -bounds[1][2] - margin[1]
- self._np.set_pos(pos + dpos)
- new_node = NodePath('temp')
- new_node.set_pos(pos + dpos + (bounds[1][0], bounds[1][1], -bounds[1][2]))
- coord3d = new_node.get_pos(base.cam)
- coord2d = Point2()
- base.camLens.project(coord3d, coord2d)
- coord_r2d = Point3(coord2d[0], 0, coord2d[1])
- coord_a2d = base.aspect2d.get_relative_point(render2d, coord_r2d)
+ self._np.set_pos(pos)
+ dist = -1, -1
+ def __update(set, get, delta):
+ set(get() + delta)
+ top_left = self._np.get_pos() + (bounds[0][0], bounds[0][1], bounds[1][2])
+ tl2d = P3dGfxMgr.screen_coord(top_left)
+ tmpnode = NodePath('tmp')
+ tmpnode.set_pos(tl2d[0], 0, tl2d[1])
+ cornernode = NodePath('corner')
+ cornernode.set_pos(corner[0], 0, corner[1])
+ dist = tmpnode.get_pos(cornernode)
+ tmpnode.remove_node()
+ cornernode.remove_node()
+ return dist
+ while dist[0] < .01:
+ dist = __update(self._np.set_x, self._np.get_x, .01)
+ while dist[2] > -.01:
+ dist = __update(self._np.set_z, self._np.get_z, -.01)