Go to the documentation of this file.
14 #ifndef BOUNDINGVOLUME_H
15 #define BOUNDINGVOLUME_H
48 INLINE_MATHUTIL
bool is_empty()
const;
49 INLINE_MATHUTIL
bool is_infinite()
const;
51 INLINE_MATHUTIL
void set_infinite();
64 enum IntersectionFlags {
66 IF_no_intersection = 0,
90 IF_dont_understand = 0x08
95 virtual void output(std::ostream &out)
const=0;
96 virtual void write(std::ostream &out,
int indent_level = 0)
const;
113 virtual const BoundingBox *as_bounding_box()
const;
118 static BoundsType string_bounds_type(
const std::string &str);
141 virtual bool extend_by_box(
const BoundingBox *box);
170 virtual int contains_box(
const BoundingBox *box)
const;
172 virtual int contains_line(
const BoundingLine *line)
const;
173 virtual int contains_plane(
const BoundingPlane *plane)
const;
184 static void init_type() {
185 TypedReferenceCount::init_type();
187 TypedReferenceCount::get_class_type());
190 return get_class_type();
192 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
206 INLINE_MATHUTIL std::ostream &operator << (std::ostream &out,
const BoundingVolume &bound);
210 EXPCL_PANDA_MATHUTIL std::ostream &operator << (std::ostream &out, BoundingVolume::BoundsType type);
211 EXPCL_PANDA_MATHUTIL std::istream &operator >> (std::istream &in, BoundingVolume::BoundsType &type);
This defines a bounding sphere, consisting of a center and a radius.
A special kind of GeometricBoundingVolume that is known to be finite.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
An axis-aligned bounding box; that is, a minimum and maximum coordinate triple.
TypeHandle is the identifier used to differentiate C++ class types.
This special bounding volume is the union of all of its constituent bounding volumes.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is another abstract class, for a general class of bounding volumes that actually enclose points ...
This funny bounding volume is an infinite line with no thickness and extending to infinity in both di...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This defines a bounding convex hexahedron.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
This special bounding volume is the intersection of all of its constituent bounding volumes.
This funny bounding volume is an infinite plane that divides space into two regions: the part behind ...