EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Classes | Functions
EBGeometry::BoundingVolumes Namespace Reference

Namespace encapsulating bounding volume types for use with bounding volume hierarchies. More...

Classes

class  AABBT
 Axis-aligned bounding box (AABB) enclosing a set of 3D points. More...
 
class  SphereT
 Bounding sphere — an approximation to the smallest sphere enclosing a set of 3D points. More...
 

Functions

template<class T >
bool intersects (const SphereT< T > &a_u, const SphereT< T > &a_v) noexcept
 Test whether two bounding spheres overlap.
 
template<class T >
bool intersects (const AABBT< T > &a_u, const AABBT< T > &a_v) noexcept
 Test whether two axis-aligned bounding boxes overlap.
 
template<class T >
getOverlappingVolume (const SphereT< T > &a_u, const SphereT< T > &a_v) noexcept
 Compute the overlapping volume between two bounding spheres.
 
template<class T >
getOverlappingVolume (const AABBT< T > &a_u, const AABBT< T > &a_v) noexcept
 Compute the overlapping volume between two axis-aligned bounding boxes.
 

Detailed Description

Namespace encapsulating bounding volume types for use with bounding volume hierarchies.

Function Documentation

◆ getOverlappingVolume() [1/2]

template<class T >
T EBGeometry::BoundingVolumes::getOverlappingVolume ( const AABBT< T > &  a_u,
const AABBT< T > &  a_v 
)
noexcept

Compute the overlapping volume between two axis-aligned bounding boxes.

Template Parameters
TFloating-point precision.
Parameters
[in]a_uOne bounding box.
[in]a_vThe other bounding box.
Returns
Overlap volume; zero if the boxes do not intersect.

◆ getOverlappingVolume() [2/2]

template<class T >
T EBGeometry::BoundingVolumes::getOverlappingVolume ( const SphereT< T > &  a_u,
const SphereT< T > &  a_v 
)
noexcept

Compute the overlapping volume between two bounding spheres.

Template Parameters
TFloating-point precision.
Parameters
[in]a_uOne bounding sphere.
[in]a_vThe other bounding sphere.
Returns
Overlap volume; zero if the spheres do not intersect.

◆ intersects() [1/2]

template<class T >
bool EBGeometry::BoundingVolumes::intersects ( const AABBT< T > &  a_u,
const AABBT< T > &  a_v 
)
noexcept

Test whether two axis-aligned bounding boxes overlap.

Template Parameters
TFloating-point precision.
Parameters
[in]a_uOne bounding box.
[in]a_vThe other bounding box.
Returns
True if the boxes intersect, false otherwise.

◆ intersects() [2/2]

template<class T >
bool EBGeometry::BoundingVolumes::intersects ( const SphereT< T > &  a_u,
const SphereT< T > &  a_v 
)
noexcept

Test whether two bounding spheres overlap.

Template Parameters
TFloating-point precision.
Parameters
[in]a_uOne bounding sphere.
[in]a_vThe other bounding sphere.
Returns
True if the spheres intersect, false otherwise.