15 #ifndef GEOMETRICBOUNDINGVOLUME_H 16 #define GEOMETRICBOUNDINGVOLUME_H 18 #include "pandabase.h" 20 #include "boundingVolume.h" 36 INLINE_MATHUTIL
bool extend_by(
const GeometricBoundingVolume *vol);
43 INLINE_MATHUTIL
bool around(
const GeometricBoundingVolume **first,
44 const GeometricBoundingVolume **last);
48 INLINE_MATHUTIL
int contains(
const GeometricBoundingVolume *vol)
const;
52 virtual LPoint3 get_approx_center()
const=0;
53 virtual void xform(
const LMatrix4 &mat)=0;
62 virtual bool extend_by_point(
const LPoint3 &point);
63 virtual bool around_points(
const LPoint3 *first,
65 virtual int contains_point(
const LPoint3 &point)
const;
66 virtual int contains_lineseg(
const LPoint3 &a,
const LPoint3 &b)
const;
73 static void init_type() {
74 BoundingVolume::init_type();
75 register_type(_type_handle,
"GeometricBoundingVolume",
76 BoundingVolume::get_class_type());
79 return get_class_type();
81 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
87 #include "geometricBoundingVolume.I" virtual const GeometricBoundingVolume * as_geometric_bounding_volume() const
Virtual downcast method.
int contains(const BoundingVolume *vol) const
Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indi...
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.
bool around(const BoundingVolume **first, const BoundingVolume **last)
Resets the volume to enclose only the volumes indicated.
TypeHandle is the identifier used to differentiate C++ class types.
bool extend_by(const BoundingVolume *vol)
Increases the size of the volume to include the given volume.