#include <boundingVolume.h>
Inheritance diagram for BoundingVolume:
Public Member Functions | |
virtual TypeHandle | get_type () const |
virtual TypeHandle | force_init_type () |
Static Public Member Functions | |
TypeHandle | get_class_type () |
void | init_type () |
Protected Types | |
enum | Flags { F_empty = 0x01, F_infinite = 0x02 } |
Protected Member Functions | |
virtual bool | extend_other (BoundingVolume *other) const=0 |
virtual bool | around_other (BoundingVolume *other, const BoundingVolume **first, const BoundingVolume **last) const=0 |
virtual int | contains_other (const BoundingVolume *other) const=0 |
virtual bool | extend_by_sphere (const BoundingSphere *sphere) |
virtual bool | extend_by_hexahedron (const BoundingHexahedron *hexahedron) |
virtual bool | extend_by_line (const BoundingLine *line) |
virtual bool | around_spheres (const BoundingVolume **first, const BoundingVolume **last) |
virtual bool | around_hexahedrons (const BoundingVolume **first, const BoundingVolume **last) |
virtual bool | around_lines (const BoundingVolume **first, const BoundingVolume **last) |
virtual int | contains_sphere (const BoundingSphere *sphere) const |
virtual int | contains_hexahedron (const BoundingHexahedron *hexahedron) const |
virtual int | contains_line (const BoundingLine *line) const |
Protected Attributes | |
int | _flags |
Private Types | |
enum | IntersectionFlags { IF_no_intersection = 0, IF_possible = 0x01, IF_some = 0x02, IF_all = 0x04, IF_dont_understand = 0x08 } |
Private Member Functions | |
virtual BoundingVolume * | make_copy () const=0 |
INLINE_MATHUTIL bool | is_empty () const |
INLINE_MATHUTIL bool | is_infinite () const |
INLINE_MATHUTIL void | set_infinite () |
INLINE_MATHUTIL bool | extend_by (const BoundingVolume *vol) |
bool | around (const BoundingVolume **first, const BoundingVolume **last) |
INLINE_MATHUTIL int | contains (const BoundingVolume *vol) const |
virtual void | output (ostream &out) const=0 |
virtual void | write (ostream &out, int indent_level=0) const |
Private Attributes | |
PUBLISHED | __pad0__: INLINE_MATHUTIL BoundingVolume() |
Static Private Attributes | |
TypeHandle | _type_handle |
Friends | |
class | BoundingSphere |
class | BoundingHexahedron |
class | BoundingLine |
|
Definition at line 98 of file boundingVolume.h. |
|
Definition at line 62 of file boundingVolume.h. |
|
Definition at line 35 of file boundingVolume.cxx. References _flags, F_empty, F_infinite, first, and is_empty(). Referenced by PandaNode::recompute_bound(), PGItem::recompute_internal_bound(), GeomNode::recompute_internal_bound(), and CollisionNode::recompute_internal_bound(). |
|
Reimplemented in BoundingHexahedron, BoundingSphere, and OmniBoundingVolume. Definition at line 143 of file boundingVolume.cxx. References _flags, and F_infinite. Referenced by BoundingHexahedron::around_other(). |
|
Definition at line 156 of file boundingVolume.cxx. References _flags, F_infinite, FiniteBoundingVolume::get_class_type(), and TypedObject::is_of_type(). Referenced by BoundingLine::around_other(). |
|
Implemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. |
|
Reimplemented in BoundingHexahedron, BoundingSphere, and OmniBoundingVolume. Definition at line 130 of file boundingVolume.cxx. References _flags, and F_infinite. Referenced by BoundingSphere::around_other(). |
|
|
|
Reimplemented in BoundingHexahedron, BoundingSphere, and OmniBoundingVolume. Definition at line 190 of file boundingVolume.cxx. References IF_dont_understand. Referenced by BoundingHexahedron::contains_other(). |
|
Reimplemented in BoundingSphere. Definition at line 202 of file boundingVolume.cxx. References IF_dont_understand. Referenced by BoundingLine::contains_other(). |
|
Implemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. |
|
Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. Definition at line 178 of file boundingVolume.cxx. References IF_dont_understand. Referenced by BoundingSphere::contains_other(). |
|
Referenced by CollisionSphere::recompute_bound(). |
|
Reimplemented in BoundingHexahedron, BoundingSphere, and OmniBoundingVolume. Definition at line 104 of file boundingVolume.cxx. References _flags, and F_infinite. Referenced by BoundingHexahedron::extend_other(). |
|
Reimplemented in BoundingLine. Definition at line 117 of file boundingVolume.cxx. References _flags, and F_infinite. Referenced by BoundingLine::extend_other(). |
|
Reimplemented in BoundingHexahedron, BoundingSphere, and OmniBoundingVolume. Definition at line 91 of file boundingVolume.cxx. References _flags, and F_infinite. Referenced by BoundingSphere::extend_other(). |
|
Implemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. |
|
Reimplemented from TypedReferenceCount. Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 146 of file boundingVolume.h. References ReferenceCount::get_class_type(), and TypedReferenceCount::init_type(). |
|
Reimplemented from ReferenceCount. Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 135 of file boundingVolume.h. Referenced by GeometricBoundingVolume::force_init_type(), GeometricBoundingVolume::get_type(), GeometricBoundingVolume::init_type(), and PT(). |
|
Reimplemented from TypedReferenceCount. Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 143 of file boundingVolume.h. References ReferenceCount::get_class_type(). Referenced by PandaNode::recompute_bound(), and CollisionNode::recompute_internal_bound(). |
|
Reimplemented from TypedReferenceCount. Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 138 of file boundingVolume.h. References TypedObject::get_class_type(), TypedReferenceCount::init_type(), and register_type(). Referenced by ConfigureFn(), GeometricBoundingVolume::force_init_type(), and GeometricBoundingVolume::init_type(). |
|
|
|
Implemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. Referenced by CollisionLevelState::prepare_collider(). |
|
Implemented in BoundingHexahedron, BoundingLine, BoundingSphere, and OmniBoundingVolume. |
|
Referenced by OmniBoundingVolume::around_other(), and OmniBoundingVolume::extend_other(). |
|
Reimplemented in BoundingHexahedron. Definition at line 79 of file boundingVolume.cxx. References indent(). |
|
Reimplemented in BoundingSphere, and OmniBoundingVolume. Definition at line 152 of file boundingVolume.h. |
|
Definition at line 153 of file boundingVolume.h. |
|
Reimplemented in BoundingHexahedron, and BoundingLine. Definition at line 151 of file boundingVolume.h. |
|
Reimplemented from TypedReferenceCount. Reimplemented in BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 44 of file boundingVolume.h. |
|
|
Reimplemented from TypedReferenceCount. Reimplemented in BoundingHexahedron, BoundingLine, BoundingSphere, FiniteBoundingVolume, GeometricBoundingVolume, and OmniBoundingVolume. Definition at line 24 of file boundingVolume.cxx. |