14 #ifndef COLLISIONRAY_H
15 #define COLLISIONRAY_H
30 INLINE
explicit CollisionRay(
const LPoint3 &origin,
const LVector3 &direction);
31 INLINE
explicit CollisionRay(PN_stdfloat ox, PN_stdfloat oy, PN_stdfloat oz,
32 PN_stdfloat dx, PN_stdfloat dy, PN_stdfloat dz);
34 virtual LPoint3 get_collision_origin()
const;
43 virtual void xform(
const LMatrix4 &mat);
45 virtual void output(std::ostream &out)
const;
48 INLINE
void set_origin(
const LPoint3 &origin);
49 INLINE
void set_origin(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
50 INLINE
const LPoint3 &get_origin()
const;
51 MAKE_PROPERTY(origin, get_origin, set_origin);
53 INLINE
void set_direction(
const LVector3 &direction);
54 INLINE
void set_direction(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
55 INLINE
const LVector3 &get_direction()
const;
56 MAKE_PROPERTY(direction, get_direction, set_direction);
58 bool set_from_lens(
LensNode *camera,
const LPoint2 &point);
59 INLINE
bool set_from_lens(
LensNode *camera, PN_stdfloat px, PN_stdfloat py);
65 virtual void fill_viz_geom();
72 static void register_with_read_factory();
83 static void init_type() {
84 CollisionSolid::init_type();
86 CollisionSolid::get_class_type());
89 return get_class_type();
91 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}