|
(Note that these are not member functions.)
|
| template<std::size_t N> |
| constexpr bool | Contains (const AABB< N > &a, const AABB< N > &b) noexcept |
| | Checks whether the first AABB fully contains the second AABB. More...
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > & | Fatten (AABB< N > &var, const NonNegative< Length > amount) noexcept |
| | Fattens an AABB by the given amount.
|
| |
|
template<std::size_t N> |
| constexpr Vector< Length, N > | GetCenter (const AABB< N > &aabb) noexcept |
| | Gets the center of the AABB.
|
| |
|
template<std::size_t N> |
| constexpr Vector< Length, N > | GetDimensions (const AABB< N > &aabb) noexcept |
| | Gets dimensions of the given AABB.
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > | GetDisplacedAABB (AABB< N > aabb, const Vector< Length, N > displacement) |
| | Gets the AABB that the result of displacing the given AABB by the given displacement amount.
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > | GetEnclosingAABB (AABB< N > a, const AABB< N > &b) |
| | Gets the AABB that minimally encloses the given AABBs.
|
| |
|
template<std::size_t N> |
| constexpr Vector< Length, N > | GetExtents (const AABB< N > &aabb) noexcept |
| | Gets the extents of the AABB (half-widths).
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > | GetFattenedAABB (AABB< N > aabb, const Length amount) |
| | Gets the fattened AABB result.
|
| |
|
template<std::size_t N> |
| constexpr Vector< Length, N > | GetLowerBound (const AABB< N > &aabb) noexcept |
| | Gets the lower bound.
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > | GetMovedAABB (AABB< N > aabb, const Vector< Length, N > value) noexcept |
| | Gets the result of moving the given AABB by the given value.
|
| |
| constexpr Length | GetPerimeter (const AABB &aabb) noexcept |
| | Gets the perimeter length of the 2-dimensional AABB. More...
|
| |
|
template<std::size_t N> |
| constexpr Vector< Length, N > | GetUpperBound (const AABB< N > &aabb) noexcept |
| | Gets the upper bound.
|
| |
| template<std::size_t N> |
| constexpr AABB< N > & | Include (AABB< N > &var, const AABB< N > &val) noexcept |
| | Includes the second AABB into the first one. More...
|
| |
|
template<std::size_t N> |
| constexpr AABB< N > & | Include (AABB< N > &var, const Vector< Length, N > &value) noexcept |
| | Includes the given location into the given AABB.
|
| |
| template<std::size_t N> |
| constexpr bool | operator!= (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Gets whether the two AABB objects are not equal. More...
|
| |
|
template<std::size_t N> |
| bool | operator< (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Less-than operator.
|
| |
|
template<std::size_t N> |
| bool | operator<= (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Less-than or equal-to operator.
|
| |
| template<std::size_t N> |
| constexpr bool | operator== (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Gets whether the two AABB objects are equal. More...
|
| |
|
template<std::size_t N> |
| bool | operator> (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Greater-than operator.
|
| |
|
template<std::size_t N> |
| bool | operator>= (const AABB< N > &lhs, const AABB< N > &rhs) noexcept |
| | Greater-than or equal-to operator.
|
| |
| template<std::size_t N> |
| constexpr bool | TestOverlap (const AABB< N > &a, const AABB< N > &b) noexcept |
| | Tests for overlap between two axis aligned bounding boxes. More...
|
| |
template<std::size_t N>
struct playrho::detail::AABB< N >
N-dimensional Axis Aligned Bounding Box.
This is a concrete value class template for an N-dimensional axis aligned bounding box (AABB) which is a type of bounding volume.
- Note
- This class satisfies at least the following named requirement: all the basic named requirements,
EqualityComparable, and Swappable.
-
This class is composed of — as in contains and owns — N
LengthInterval variables.
-
Non-defaulted methods of this class are marked
noexcept and expect that the Length type doesn't throw.
- See also
- https://en.wikipedia.org/wiki/Bounding_volume
-
https://en.cppreference.com/w/cpp/named_req