Implicit function union using BVHs.
More...
#include <EBGeometry_CSG.hpp>
|
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.
|
|
|
| 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. More...
|
|
| FastUnionIF (const std::vector< std::shared_ptr< P >> &a_primitives, const std::vector< BV > &a_boundingVolumes) noexcept |
| Full constructor - constructs bounding volumes in place. More...
|
|
virtual | ~FastUnionIF ()=default |
| Destructor (does nothing)
|
|
virtual T | value (const Vec3T< T > &a_point) const noexcept override |
| Value function. More...
|
|
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. More...
|
|
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. More...
|
|
|
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. More...
|
|
|
std::shared_ptr< EBGeometry::BVH::LinearBVH< T, P, BV, K > > | m_bvh |
| Root node for linearized BVH tree.
|
|
template<class T, class P, class BV, size_t K>
class FastUnionIF< T, P, BV, K >
Implicit function union using BVHs.
◆ FastUnionIF() [1/2]
template<class T , class P , class BV , size_t K>
FastUnionIF< T, P, BV, K >::FastUnionIF |
( |
const std::vector< std::pair< std::shared_ptr< const P >, BV >> & |
a_primsAndBVs | ) |
|
|
noexcept |
Full constructor - constructs bounding volumes in place.
- Parameters
-
[in] | a_primsAndBVs | Primitives and their bounding volumes. |
◆ FastUnionIF() [2/2]
template<class T , class P , class BV , size_t K>
FastUnionIF< T, P, BV, K >::FastUnionIF |
( |
const std::vector< std::shared_ptr< P >> & |
a_primitives, |
|
|
const std::vector< BV > & |
a_boundingVolumes |
|
) |
| |
|
noexcept |
Full constructor - constructs bounding volumes in place.
- Parameters
-
[in] | a_primitives | Input primitives. |
[in] | a_boundingVolumes | Bounding volumes for primitives. |
◆ buildTree()
template<class T , class P , class BV , size_t K>
void FastUnionIF< T, P, BV, K >::buildTree |
( |
const std::vector< std::pair< std::shared_ptr< const P >, BV >> & |
a_primsAndBVs, |
|
|
const BVH::Build |
a_build = BVH::Build::TopDown |
|
) |
| |
|
inlineprotectednoexcept |
Build BVH tree for the input objects.
- Parameters
-
[in] | a_primsAndBVs | Geometric primitives and their bounding volumes. |
[in] | a_build | Build method (see EBGeometry_BVH.hpp) |
◆ value()
template<class T , class P , class BV , size_t K>
The documentation for this class was generated from the following file: