Panda3D
|
This is an abstract class for any volume in any sense which can be said to define the locality of reference of a node in a graph, along with all of its descendants. It is not necessarily a geometric volume (although see GeometricBoundingVolume); this is simply an abstract interface for bounds of any sort. More...
Public Types | |
enum | BoundsType { BT_default = 0, BT_best = 1, BT_sphere = 2, BT_box = 3, BT_fastest = 4 } |
This enum is used to control the automatic generation of bounding volumes. More... | |
enum | IntersectionFlags { IF_no_intersection = 0, IF_possible = 1, IF_some = 2, IF_all = 4, IF_dont_understand = 8 } |
The contains() functions return the union of one or more of these bits. More... | |
Public Member Functions | |
int | contains (const BoundingVolume vol) |
Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume. More... | |
bool | extendBy (const BoundingVolume vol) |
Increases the size of the volume to include the given volume. More... | |
bool | isEmpty () |
Any kind of volume might be empty. This is a degenerate volume that contains no points; it's not the same as, for instance, a sphere with radius zero, since that contains one point (the center). It intersects with no other volumes. More... | |
bool | isInfinite () |
The other side of the empty coin is an infinite volume. This is a degenerate state of a normally finite volume that contains all points. (Note that some kinds of infinite bounding volumes, like binary separating planes, do not contain all points and thus correctly return is_infinite() == false, even though they are technically infinite. This is a special case of the word 'infinite' meaning the volume covers all points in space.) More... | |
BoundingVolume | makeCopy () |
output (Ostream out) | |
setInfinite () | |
Marks the volume as infinite, even if it is normally finite. You can think of this as an infinite extend_by() operation. More... | |
write (Ostream out, int indent_level) | |
![]() | |
TypeHandle | getType () |
Derived classes should override this function to return get_class_type(). More... | |
int | getTypeIndex () |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. This is equivalent to get_type().get_index(). More... | |
bool | isExactType (TypeHandle handle) |
Returns true if the current object is the indicated type exactly. More... | |
bool | isOfType (TypeHandle handle) |
Returns true if the current object is or derives from the indicated type. More... | |
![]() | |
int | getRefCount () |
Returns the current reference count. More... | |
ref () | |
Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. More... | |
bool | testRefCountIntegrity () |
Does some easy checks to make sure that the reference count isn't completely bogus. Returns true if ok, false otherwise. More... | |
bool | testRefCountNonzero () |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. Returns true if ok, false otherwise. More... | |
bool | unref () |
Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic.) However, see the helper function unref_delete(). More... | |
Static Public Member Functions | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
This is an abstract class for any volume in any sense which can be said to define the locality of reference of a node in a graph, along with all of its descendants. It is not necessarily a geometric volume (although see GeometricBoundingVolume); this is simply an abstract interface for bounds of any sort.
enum BoundsType |
enum IntersectionFlags |
The contains() functions return the union of one or more of these bits.
int contains | ( | const BoundingVolume | vol | ) |
Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume.
bool extendBy | ( | const BoundingVolume | vol | ) |
Increases the size of the volume to include the given volume.
|
static |
bool isEmpty | ( | ) |
Any kind of volume might be empty. This is a degenerate volume that contains no points; it's not the same as, for instance, a sphere with radius zero, since that contains one point (the center). It intersects with no other volumes.
bool isInfinite | ( | ) |
The other side of the empty coin is an infinite volume. This is a degenerate state of a normally finite volume that contains all points. (Note that some kinds of infinite bounding volumes, like binary separating planes, do not contain all points and thus correctly return is_infinite() == false, even though they are technically infinite. This is a special case of the word 'infinite' meaning the volume covers all points in space.)
It completely intersects with all other volumes except empty volumes.
BoundingVolume makeCopy | ( | ) |
output | ( | Ostream | out | ) |
setInfinite | ( | ) |
Marks the volume as infinite, even if it is normally finite. You can think of this as an infinite extend_by() operation.
write | ( | Ostream | out, |
int | indent_level | ||
) |