## Expand description

This module contains traits and implements for working with bounding shapes

There are four traits used:

`BoundingVolume`

is a generic abstraction for any bounding volume`IntersectsVolume`

abstracts intersection tests against a`BoundingVolume`

`Bounded2d`

/`Bounded3d`

are abstractions for shapes to generate`BoundingVolume`

s

## Structs§

- A 2D axis-aligned bounding box, or bounding rectangle
- A 3D axis-aligned bounding box
- An intersection test that casts an
`Aabb2d`

along a ray. - An intersection test that casts an
`Aabb3d`

along a ray. - A bounding circle
- An intersection test that casts a
`BoundingCircle`

along a ray. - A bounding sphere
- An intersection test that casts a
`BoundingSphere`

along a ray. - A raycast intersection test for 2D bounding volumes
- A raycast intersection test for 3D bounding volumes

## Traits§

- A trait with methods that return 2D bounded volumes for a shape
- A trait with methods that return 3D bounded volumes for a shape
- A trait implemented on 2D shapes which determines the 3D bounding volumes of their extrusions.
- A trait that generalizes different bounding volumes. Bounding volumes are simplified shapes that are used to get simpler ways to check for overlapping elements or finding intersections.
- A trait that generalizes intersection tests against a volume. Intersection tests can be used for a variety of tasks, for example: