Panda3D
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties
Public Types | Public Member Functions | Static Public Member Functions
BoundingVolume Class Reference

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. More...

Inheritance diagram for BoundingVolume:
TypedReferenceCount TypedObject ReferenceCount GeometricBoundingVolume BoundingLine BoundingPlane FiniteBoundingVolume IntersectionBoundingVolume OmniBoundingVolume UnionBoundingVolume BoundingBox BoundingHexahedron BoundingSphere

List of all members.

Public Types

enum  BoundsType { BTDefault = 0, BTBest = 1, BTSphere = 2, BTBox = 3 }
enum  IntersectionFlags {
  IFNoIntersection = 0, IFPossible = 1, IFSome = 2, IFAll = 4,
  IFDontUnderstand = 8
}

Public Member Functions

int contains (BoundingVolume const vol)
 Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume.
bool extendBy (BoundingVolume const vol)
 Increases the size of the volume to include the given volume.
bool isEmpty ()
 Any kind of volume might be empty.
bool isInfinite ()
 The other side of the empty coin is an infinite volume.
BoundingVolume makeCopy ()
 output (ostream out)
 setInfinite ()
 Marks the volume as infinite, even if it is normally finite.
 write (ostream out, int indent_level)
 write (ostream out)

Static Public Member Functions

static TypeHandle getClassType ()

Detailed Description

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.


Member Enumeration Documentation

enum BoundsType
Enumerator:
BTDefault 
BTBest 
BTSphere 
BTBox 
Enumerator:
IFNoIntersection 
IFPossible 
IFSome 
IFAll 
IFDontUnderstand 

Member Function Documentation

int contains ( BoundingVolume const  vol)

Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume.

bool extendBy ( BoundingVolume const  vol)

Increases the size of the volume to include the given volume.

static TypeHandle getClassType ( ) [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.

output ( ostream  out)

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 
)
write ( ostream  out)
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties