24class EXPCL_PANDA_MATHUTIL OmniBoundingVolume :
public GeometricBoundingVolume {
26 INLINE_MATHUTIL OmniBoundingVolume();
29 virtual BoundingVolume *make_copy()
const;
31 virtual LPoint3 get_approx_center()
const;
32 virtual void xform(
const LMatrix4 &mat);
34 virtual void output(std::ostream &out)
const;
37 virtual bool extend_other(BoundingVolume *other)
const;
38 virtual bool around_other(BoundingVolume *other,
39 const BoundingVolume **first,
40 const BoundingVolume **last)
const;
41 virtual int contains_other(
const BoundingVolume *other)
const;
44 virtual bool extend_by_point(
const LPoint3 &point);
45 virtual bool extend_by_sphere(
const BoundingSphere *sphere);
46 virtual bool extend_by_box(
const BoundingBox *box);
47 virtual bool extend_by_hexahedron(
const BoundingHexahedron *hexahedron);
49 virtual bool around_points(
const LPoint3 *first,
51 virtual bool around_spheres(
const BoundingVolume **first,
52 const BoundingVolume **last);
53 virtual bool around_boxes(
const BoundingVolume **first,
54 const BoundingVolume **last);
55 virtual bool around_hexahedrons(
const BoundingVolume **first,
56 const BoundingVolume **last);
58 virtual int contains_point(
const LPoint3 &point)
const;
59 virtual int contains_lineseg(
const LPoint3 &a,
const LPoint3 &b)
const;
60 virtual int contains_hexahedron(
const BoundingHexahedron *hexahedron)
const;
61 virtual int contains_sphere(
const BoundingSphere *sphere)
const;
62 virtual int contains_box(
const BoundingBox *box)
const;
68 static void init_type() {
69 GeometricBoundingVolume::init_type();
71 GeometricBoundingVolume::get_class_type());
74 return get_class_type();
76 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
81 friend class BoundingHexahedron;
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...