|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
Blurred/interpolated implicit function — can be used for smoothing. More...
#include <EBGeometry_Transform.hpp>


Public Member Functions | |
| BlurIF ()=delete | |
| Disallowed weak construction. | |
| BlurIF (const BlurIF &a_other) noexcept=default | |
| Copy constructor. | |
| BlurIF (BlurIF &&a_other) noexcept=default | |
| Move constructor. | |
| BlurIF (const std::shared_ptr< ImplicitFunction< T > > &a_implicitFunction, const T a_blurDistance, const T a_alpha=0.5) noexcept | |
| Full constructor. | |
| ~BlurIF () override=default | |
| Destructor. | |
| BlurIF & | operator= (const BlurIF &a_other) noexcept=default |
| Copy assignment operator. | |
| BlurIF & | operator= (BlurIF &&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. | |
| T | m_blurDistance |
| Blur distance. | |
| T | m_alpha |
| Alpha factor. | |
Blurred/interpolated implicit function — can be used for smoothing.
Passes the input implicit function through a 3D box filter sampled at face centres, edge centres, and corners of a cube with half-side m_blurDistance. The per-sample weights are products of alpha^(3-n) * ((1-alpha)/2)^n where n is the number of displaced axes.
| T | Floating-point precision |
|
defaultnoexcept |
Copy constructor.
| [in] | a_other | Other BlurIF. |
|
defaultnoexcept |
Move constructor.
| [in,out] | a_other | Other BlurIF. |
|
noexcept |
Full constructor.
| [in] | a_implicitFunction | Input implicit function |
| [in] | a_blurDistance | Blur distance |
| [in] | a_alpha | Blend factor in [0, 1]; 1 = no blur, 0 = full blur. |
|
defaultnoexcept |
|
defaultnoexcept |
|
overridevirtualnoexcept |
Value function.
| [in] | a_point | Query point |
Implements EBGeometry::ImplicitFunction< T >.