|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
Mollified implicit function. More...
#include <EBGeometry_Transform.hpp>


Public Member Functions | |
| MollifyIF ()=delete | |
| Disallowed weak construction. | |
| MollifyIF (const MollifyIF &a_other)=default | |
| Copy constructor. | |
| MollifyIF (MollifyIF &&a_other) noexcept=default | |
| Move constructor. | |
| MollifyIF (const std::shared_ptr< ImplicitFunction< T > > &a_implicitFunction, const std::shared_ptr< ImplicitFunction< T > > &a_mollifier, const T a_maxValue, const size_t a_numPoints) noexcept | |
| Full constructor. | |
| ~MollifyIF () override=default | |
| Destructor. | |
| MollifyIF & | operator= (const MollifyIF &a_other)=default |
| Copy assignment operator. | |
| MollifyIF & | operator= (MollifyIF &&a_other) noexcept=default |
| Move assignment operator. | |
| T | value (const Vec3T< T > &a_point) const noexcept override |
| Value function. | |
Public Member Functions inherited from EBGeometry::ImplicitFunction< T > | |
| ImplicitFunction ()=default | |
| Default constructor. | |
| virtual | ~ImplicitFunction ()=default |
| Default destructor. | |
| T | operator() (const Vec3T< T > &a_point) const noexcept |
| Call operator — 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 |
| Compute an approximation to the bounding volume for the implicit surface using octree subdivision. | |
Protected Attributes | |
| std::shared_ptr< ImplicitFunction< T > > | m_implicitFunction = nullptr |
| Original implicit function. | |
| std::shared_ptr< ImplicitFunction< T > > | m_mollifier = nullptr |
| Mollifier. | |
| std::vector< std::pair< Vec3T< T >, T > > | m_sampledMollifier |
| Mollifier Weights. | |
Mollified implicit function.
Convolves the wrapped implicit function with a pre-sampled mollifier kernel (typically a sphere SDF) over a uniform 3-D grid of a_numPoints^3 sample offsets spanning [-a_maxValue, a_maxValue]^3. Weights are normalized to sum to 1.
| T | Floating-point precision |
|
default |
Copy constructor.
| [in] | a_other | Other MollifyIF. |
|
defaultnoexcept |
Move constructor.
| [in,out] | a_other | Other MollifyIF. |
|
noexcept |
Full constructor.
| [in] | a_implicitFunction | Input implicit function. |
| [in] | a_mollifier | Mollifier implicit function (e.g. a sphere SDF) |
| [in] | a_maxValue | Half-width of the sampling region; must be > 0 for any smoothing to occur. |
| [in] | a_numPoints | Number of sample points per axis; must be >= 2 for any smoothing to occur. |
|
default |
|
defaultnoexcept |
|
overridevirtualnoexcept |
Value function.
| [in] | a_point | Query point |
Implements EBGeometry::ImplicitFunction< T >.