EBGeometry  1.0
Public Member Functions | List of all members
SignedDistanceFunction< T > Class Template Referenceabstract

Abstract representation of a signed distance function. More...

#include <EBGeometry_SignedDistanceFunction.hpp>

Inheritance diagram for SignedDistanceFunction< T >:
Inheritance graph
[legend]
Collaboration diagram for SignedDistanceFunction< T >:
Collaboration graph
[legend]

Public Member Functions

 SignedDistanceFunction ()=default
 Disallowed, use the full constructor.
 
virtual ~SignedDistanceFunction ()=default
 Destructor (does nothing)
 
virtual T value (const Vec3T< T > &a_point) const noexcept override final
 Implementation of ImplicitFunction::value. More...
 
virtual T signedDistance (const Vec3T< T > &a_point) const noexcept=0
 Signed distance function. More...
 
virtual Vec3T< T > normal (const Vec3T< T > &a_point, const T &a_delta) const noexcept
 Signed distance normal vector. More...
 
- Public Member Functions inherited from ImplicitFunction< T >
 ImplicitFunction ()=default
 Disallowed, use the full constructor.
 
virtual ~ImplicitFunction ()=default
 Destructor (does nothing)
 
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...
 

Detailed Description

template<class T>
class SignedDistanceFunction< T >

Abstract representation of a signed distance function.

Users can put whatever they like in here, e.g. analytic functions, DCEL meshes, or DCEL meshes stored in full or compact BVH trees. The signedDistance function must be implemented by the user. When computing it, the user can apply transformation operators (rotations, scaling, translations) by calling transformPoint on the input coordinate.

Member Function Documentation

◆ normal()

template<class T >
virtual Vec3T<T> SignedDistanceFunction< T >::normal ( const Vec3T< T > &  a_point,
const T &  a_delta 
) const
inlinevirtualnoexcept

Signed distance normal vector.

Computed using finite differences with step a_delta

Parameters
[in]a_point3D point
[in]a_deltaFinite difference step

◆ signedDistance()

template<class T >
virtual T SignedDistanceFunction< T >::signedDistance ( const Vec3T< T > &  a_point) const
pure virtualnoexcept

◆ value()

template<class T >
virtual T SignedDistanceFunction< T >::value ( const Vec3T< T > &  a_point) const
finaloverridevirtualnoexcept

Implementation of ImplicitFunction::value.

Parameters
[in]a_point3D point.

Implements ImplicitFunction< T >.


The documentation for this class was generated from the following file: