An Axis-Aligned Bounding Box. These are not as simple as a bounding sphere but may encapsulate a mesh better. The box expands/shrinks along the standard X,Y,Z unit axes if the mesh it represents scales/rotates.
Represents an intersection with a bounding volume and a ray. Three cases can occur: 1. No intersection 2. One point intersection (e.g. ray starts inside, exits) 3. Two point intersection (e.g. entry, exit points)
A sphere that is defined by a center and a radius. This is one of the simpler volumes and collision checks are fast, but may yield more false-positives than using volumes that more tightly enclose the geometry (such as OrientedBoundingBox). The algorithm for generating the sphere is an implemention of Welzl's minimum-volume sphere algorithm.
Enumerates the typeos bounding volumes supported by the engine.
BoundingVolume is an abstract class that represents a 3D shape that encapsulates some volume, which are used to represent a more complex 3D mesh. All volumes inherit from this base class, and contain a variety of helpful methods for checking intersections.
Enumerates containment results used for tests between bounding boxes and frustums.
Comparer that compares the distances of two intersection records.
Interface for an object that can be picked - that is, tested to see if a ray intersects it.
Query class used to accumulate pick results and then sort them. Picking involves using an array that is cast into a scene to test for intersections with objects - usually bounding volumes or primitive (triangle) meshes.
Represents the results from a ray-object intersection test. This structure simply holds the results of a test, but does not provide the test itself.
Intersection record for Ray-Primitive tests. May contain any number of intersections. The array passed to the record will be sorted based on each intersection's distance to the ray.