15 #ifndef OMNIBOUNDINGVOLUME_H
16 #define OMNIBOUNDINGVOLUME_H
18 #include "pandabase.h"
20 #include "geometricBoundingVolume.h"
34 virtual LPoint3 get_approx_center()
const;
35 virtual void xform(
const LMatrix4 &mat);
37 virtual void output(ostream &out)
const;
47 virtual bool extend_by_point(
const LPoint3 &point);
52 virtual bool around_points(
const LPoint3 *first,
61 virtual int contains_point(
const LPoint3 &point)
const;
62 virtual int contains_lineseg(
const LPoint3 &a,
const LPoint3 &b)
const;
65 virtual int contains_box(
const BoundingBox *box)
const;
71 static void init_type() {
72 GeometricBoundingVolume::init_type();
73 register_type(_type_handle,
"OmniBoundingVolume",
74 GeometricBoundingVolume::get_class_type());
77 return get_class_type();
79 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
87 #include "omniBoundingVolume.I"
An axis-aligned bounding box; that is, a minimum and maximum coordinate triple.
This defines a bounding sphere, consisting of a center and a radius.
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
This is another abstract class, for a general class of bounding volumes that actually enclose points ...
This is a 4-by-4 transform matrix.
This is a special kind of GeometricBoundingVolume that fills all of space.
TypeHandle is the identifier used to differentiate C++ class types.
This defines a bounding convex hexahedron.