BoundingVolume
from panda3d.core import BoundingVolume
- class BoundingVolume
Bases:
Bases:
TypedReferenceCount
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.Inheritance diagram
-
enum BoundsType
This enum is used to control the automatic generation of bounding volumes.
-
enumerator BT_default = 0
-
enumerator BT_best = 1
-
enumerator BT_sphere = 2
-
enumerator BT_box = 3
-
enumerator BT_fastest = 4
-
enumerator BT_default = 0
-
enum IntersectionFlags
The
contains()
functions return the union of one or more of these bits.-
enumerator IF_no_intersection = 0
If no bits are set, it is known that there is no intersection.
-
enumerator IF_possible = 1
IF_possible is set if there might be an intersection.
-
enumerator IF_some = 2
IF_some is set if there is definitely an intersection. In this case, IF_possible will also be set.
-
enumerator IF_all = 4
When IF_all is set, both IF_possible and IF_some will also be set.
-
enumerator IF_dont_understand = 8
IF_dont_understand is set if the particular volumevolume intersection test has not been implemented.
-
enumerator IF_no_intersection = 0
- contains(vol: BoundingVolume) int
Returns the appropriate set of
IntersectionFlags
to indicate the amount of intersection with the indicated volume.
- extendBy(vol: BoundingVolume) bool
Increases the size of the volume to include the given volume.
- static getClassType() TypeHandle
- isEmpty() bool
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.
- isInfinite() bool
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
isInfinite()
== 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.
- makeCopy() BoundingVolume
- setInfinite()
Marks the volume as infinite, even if it is normally finite. You can think of this as an infinite
extendBy()
operation.
-
enum BoundsType