14 #ifndef COLLISIONSPHERE_H
15 #define COLLISIONSPHERE_H
27 INLINE
explicit CollisionSphere(
const LPoint3 ¢er, PN_stdfloat radius);
28 INLINE
explicit CollisionSphere(PN_stdfloat cx, PN_stdfloat cy, PN_stdfloat cz, PN_stdfloat radius);
30 virtual LPoint3 get_collision_origin()
const;
42 virtual void xform(
const LMatrix4 &mat);
47 virtual void output(std::ostream &out)
const;
49 INLINE
static void flush_level();
52 INLINE
void set_center(
const LPoint3 ¢er);
53 INLINE
void set_center(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
54 INLINE
const LPoint3 &get_center()
const;
56 INLINE
void set_radius(PN_stdfloat radius);
57 INLINE PN_stdfloat get_radius()
const;
60 MAKE_PROPERTY(center, get_center, set_center);
61 MAKE_PROPERTY(radius, get_radius, set_radius);
77 test_intersection_from_parabola(
const CollisionEntry &entry)
const;
81 virtual void fill_viz_geom();
84 bool intersects_line(
double &t1,
double &t2,
85 const LPoint3 &from,
const LVector3 &delta,
86 PN_stdfloat inflate_radius)
const;
87 bool intersects_parabola(
double &t,
const LParabola ¶bola,
89 const LPoint3 &p1,
const LPoint3 &p2)
const;
90 LVertex compute_point(PN_stdfloat latitude, PN_stdfloat longitude)
const;
100 static void register_with_read_factory();
111 static void init_type() {
112 CollisionSolid::init_type();
114 CollisionSolid::get_class_type());
117 return get_class_type();
119 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}