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);
An axis-aligned bounding box; that is, a minimum and maximum coordinate triple.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This defines a bounding sphere, consisting of a center and a radius.
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.
This funny bounding volume is an infinite plane that divides space into two regions: the part behind ...
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
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 special bounding volume is the intersection of all of its constituent bounding volumes.
This special bounding volume is the union of all of its constituent bounding volumes.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A special kind of GeometricBoundingVolume that is known to be finite.
TypeHandle is the identifier used to differentiate C++ class types.
This defines a bounding convex hexahedron.
This funny bounding volume is an infinite line with no thickness and extending to infinity in both di...