EBGeometry 1.0
|
Implicit function union using BVHs. More...
#include <EBGeometry_CSG.hpp>
Public Types | |
using | Root = typename EBGeometry::BVH::LinearBVH< T, P, BV, K > |
Alias for linear BVH type. | |
using | Node = typename Root::LinearNode |
Alias for linear BVH node. | |
Public Member Functions | |
FastUnionIF ()=delete | |
Disallowed, use the full constructor. | |
FastUnionIF (const std::vector< std::pair< std::shared_ptr< const P >, BV > > &a_primsAndBVs) noexcept | |
Full constructor - constructs bounding volumes in place. | |
FastUnionIF (const std::vector< std::shared_ptr< P > > &a_primitives, const std::vector< BV > &a_boundingVolumes) noexcept | |
Full constructor - constructs bounding volumes in place. | |
virtual | ~FastUnionIF ()=default |
Destructor (does nothing) | |
virtual T | value (const Vec3T< T > &a_point) const noexcept override |
Value function. | |
const BV & | getBoundingVolume () const noexcept |
Get the bounding volume. | |
![]() | |
ImplicitFunction ()=default | |
Disallowed, use the full constructor. | |
virtual | ~ImplicitFunction ()=default |
Destructor (does nothing) | |
T | operator() (const Vec3T< T > &a_point) const noexcept |
Alternative signature for the value function. | |
template<class BV > | |
BV | approximateBoundingVolumeOctree (const Vec3T< T > &a_initialLowCorner, const Vec3T< T > &a_initialHighCorner, const unsigned int a_maxTreeDepth, const T &a_safety=0.0) const noexcept |
Compute an approximation to the bounding volume for the implicit surface, using octrees. | |
Protected Member Functions | |
void | buildTree (const std::vector< std::pair< std::shared_ptr< const P >, BV > > &a_primsAndBVs, const BVH::Build a_build=BVH::Build::TopDown) noexcept |
Build BVH tree for the input objects. | |
Protected Attributes | |
std::shared_ptr< EBGeometry::BVH::LinearBVH< T, P, BV, K > > | m_bvh |
Root node for linearized BVH tree. | |
Implicit function union using BVHs.
|
noexcept |
Full constructor - constructs bounding volumes in place.
[in] | a_primsAndBVs | Primitives and their bounding volumes. |
|
noexcept |
Full constructor - constructs bounding volumes in place.
[in] | a_primitives | Input primitives. |
[in] | a_boundingVolumes | Bounding volumes for primitives. |
|
inlineprotectednoexcept |
Build BVH tree for the input objects.
[in] | a_primsAndBVs | Geometric primitives and their bounding volumes. |
[in] | a_build | Build method (see EBGeometry_BVH.hpp) |
|
overridevirtualnoexcept |
Value function.
[in] | a_point | 3D point. |
Implements ImplicitFunction< T >.
Reimplemented in FastSmoothUnionIF< T, P, BV, K >.