|
| FastSmoothUnionIF ()=delete |
| Disallowed, use the full constructor.
|
|
| FastSmoothUnionIF (const std::vector< std::shared_ptr< P > > &a_distanceFunctions, const std::vector< BV > &a_boundingVolumes, const T a_smoothLen, const std::function< T(const T &, const T &, const T &)> a_smoothMin=smoothMin< T >) noexcept |
| Full constructor - constructs bounding volumes in place.
|
|
virtual | ~FastSmoothUnionIF ()=default |
| Destructor (does nothing)
|
|
virtual T | value (const Vec3T< T > &a_point) const noexcept override |
| Value function.
|
|
| 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)
|
|
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.
|
|
Implicit function smoothed union using BVHs.
- Note
- If the BVH-enabled union is to make sense, the primitives must be distance fields (I think). There's a static_assert to make sure of that.