CollisionRay
-
class CollisionRay
Bases:
CollisionSolid
An infinite ray, with a specific origin and direction. It begins at its origin and continues in one direction to infinity, and it has no radius. Useful for picking from a window, or for gravity effects.
Inheritance diagram
-
CollisionRay(void)
-
explicit CollisionRay(PN_stdfloat ox, PN_stdfloat oy, PN_stdfloat oz, PN_stdfloat dx, PN_stdfloat dy, PN_stdfloat dz)
Creates an invalid ray. This isn’t terribly useful; it’s expected that the user will subsequently adjust the ray via set_origin()/set_direction() or
set_from_lens()
.
-
static TypeHandle get_class_type(void)
-
void set_direction(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
-
bool set_from_lens(LensNode *camera, PN_stdfloat px, PN_stdfloat py)
Accepts a
LensNode
and a 2-d point in the range [-1,1]. Sets theCollisionRay
so that it begins at the LensNode’s near plane and extends to infinity, making it suitable for picking objects from the screen given a camera and a mouse location.Accepts a
LensNode
and a 2-d point in the range [-1,1]. Sets theCollisionRay
so that it begins at the LensNode’s near plane and extends to infinity, making it suitable for picking objects from the screen given a camera and a mouse location.Returns true if the point was acceptable, false otherwise.
-
void set_origin(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
-
CollisionRay(void)