BoundingVolume¶
-
class BoundingVolume¶
Bases:
TypedReferenceCountThis 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
digraph inheritancea2ae344a2d { bgcolor=transparent; rankdir=BT; size="8.0, 12.0"; "BoundingVolume" [URL="acron.core.BoundingVolume.html#acron.core.BoundingVolume",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "TypedReferenceCount" -> "BoundingVolume" [arrowsize=0.75,style=""]; "DTOOL_SUPER_BASE" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style=""]; "ReferenceCount" [URL="acron.core.ReferenceCount.html#acron.core.ReferenceCount",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "ReferenceCount" [arrowsize=0.75,style=""]; "TypedObject" [URL="acron.core.TypedObject.html#acron.core.TypedObject",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "TypedObject" [arrowsize=0.75,style=""]; "TypedReferenceCount" [URL="acron.core.TypedReferenceCount.html#acron.core.TypedReferenceCount",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "TypedObject" -> "TypedReferenceCount" [arrowsize=0.75,style=""]; "ReferenceCount" -> "TypedReferenceCount" [arrowsize=0.75,style=""]; }-
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¶
- BoundingVolume.contains()¶
Returns the appropriate set of
IntersectionFlagsto indicate the amount of intersection with the indicated volume.
- BoundingVolume.extend_by()¶
Increases the size of the volume to include the given volume.
- static BoundingVolume.get_class_type()¶
- BoundingVolume.is_empty()¶
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.
- BoundingVolume.is_infinite()¶
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.make_copy()¶
- BoundingVolume.output()¶
- BoundingVolume.set_infinite()¶
Marks the volume as infinite, even if it is normally finite. You can think of this as an infinite
extend_by()operation.
- BoundingVolume.write()¶
-
enum BoundsType¶