Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

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:

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 |

enum IntersectionFlags

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]`

Reimplemented from TypedReferenceCount.

Reimplemented in GeometricBoundingVolume, FiniteBoundingVolume, BoundingBox, BoundingHexahedron, BoundingLine, BoundingPlane, BoundingSphere, IntersectionBoundingVolume, OmniBoundingVolume, and UnionBoundingVolume.

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 | ) |

write | ( | ostream | out,
|  | int | indent_level
| ) |  |

All Classes Namespaces Functions Variables Enumerations Enumerator Properties