This special bounding volume is the union of all of its constituent bounding volumes.
A point is defined to be within a UnionBoundingVolume if it is within any one or more of its component bounding volumes.
Constructs an empty union.
void add_component(GeometricBoundingVolume const *component)
Adds a new component to the volume. This does not necessarily increase the total number of components by one, and you may or may not be able to find this component in the volume by a subsequent call to
get_component(); certain optimizations may prevent the component from being added, or have other unexpected effects on the total set of components.
Removes all components from the volume.
void filter_intersection(BoundingVolume const *volume)
Removes from the union any components that have no intersection with the indicated volume.
int get_num_components(void) const
Returns the number of components in the union.
bool validate_ptr(void const *ptr)