ViennaLS
Loading...
Searching...
No Matches
viennals::GeometricAdvectDistribution< T, D > Class Template Referenceabstract

Base class for distributions used by lsGeometricAdvect. All functions are pure virtual and must be implemented by any advection distribution. More...

#include <lsGeometricAdvectDistributions.hpp>

Inheritance diagram for viennals::GeometricAdvectDistribution< T, D >:
viennals::BoxDistribution< T, D > viennals::SphereDistribution< T, D >

Public Member Functions

 GeometricAdvectDistribution ()
 
virtual bool isInside (const Vec3D< hrleCoordType > &initial, const Vec3D< hrleCoordType > &candidate, double eps=0.) const
 Quick check whether a point relative to the distributions center is inside the distribution. If there is no quick check due to the complexity of the distribution, always return true or do not overload this function.
 
virtual T getSignedDistance (const Vec3D< hrleCoordType > &initial, const Vec3D< hrleCoordType > &candidate, unsigned long initialPointId) const =0
 Returns the signed distance of a point relative to the distributions center. This is the signed manhatten distance to the nearest surface point.
 
virtual std::array< hrleCoordType, 6 > getBounds () const =0
 Sets bounds to the bounding box of the distribution.
 
virtual ~GeometricAdvectDistribution ()
 

Detailed Description

template<class T, int D>
class viennals::GeometricAdvectDistribution< T, D >

Base class for distributions used by lsGeometricAdvect. All functions are pure virtual and must be implemented by any advection distribution.

Constructor & Destructor Documentation

◆ GeometricAdvectDistribution()

template<class T , int D>
viennals::GeometricAdvectDistribution< T, D >::GeometricAdvectDistribution ( )
inline

◆ ~GeometricAdvectDistribution()

template<class T , int D>
virtual viennals::GeometricAdvectDistribution< T, D >::~GeometricAdvectDistribution ( )
inlinevirtual

Member Function Documentation

◆ getBounds()

template<class T , int D>
virtual std::array< hrleCoordType, 6 > viennals::GeometricAdvectDistribution< T, D >::getBounds ( ) const
pure virtual

Sets bounds to the bounding box of the distribution.

Implemented in viennals::BoxDistribution< T, D >, and viennals::SphereDistribution< T, D >.

◆ getSignedDistance()

template<class T , int D>
virtual T viennals::GeometricAdvectDistribution< T, D >::getSignedDistance ( const Vec3D< hrleCoordType > & initial,
const Vec3D< hrleCoordType > & candidate,
unsigned long initialPointId ) const
pure virtual

Returns the signed distance of a point relative to the distributions center. This is the signed manhatten distance to the nearest surface point.

Implemented in viennals::BoxDistribution< T, D >, and viennals::SphereDistribution< T, D >.

◆ isInside()

template<class T , int D>
virtual bool viennals::GeometricAdvectDistribution< T, D >::isInside ( const Vec3D< hrleCoordType > & initial,
const Vec3D< hrleCoordType > & candidate,
double eps = 0. ) const
inlinevirtual

Quick check whether a point relative to the distributions center is inside the distribution. If there is no quick check due to the complexity of the distribution, always return true or do not overload this function.

Reimplemented in viennals::BoxDistribution< T, D >, and viennals::SphereDistribution< T, D >.


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