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 >:
PylsGeometricAdvectDistribution< D > viennals::BoxDistribution< T, D > viennals::CustomSphereDistribution< T, D > viennals::SphereDistribution< T, D >

Public Member Functions

 GeometricAdvectDistribution ()=default
virtual bool isInside (const Vec3D< viennahrle::CoordType > &initial, const Vec3D< viennahrle::CoordType > &candidate, double eps) 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< viennahrle::CoordType > &initial, const Vec3D< viennahrle::CoordType > &candidate, unsigned long pointId) 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< viennahrle::CoordType, 6 > getBounds () const =0
 Sets bounds to the bounding box of the distribution.
virtual bool useSurfacePointId () const
virtual ~GeometricAdvectDistribution ()=default
virtual void prepare (SmartPointer< Domain< T, D > > domain)
virtual void finalize ()

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 ( )
default

◆ ~GeometricAdvectDistribution()

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

Member Function Documentation

◆ finalize()

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

◆ getBounds()

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

◆ getSignedDistance()

template<class T, int D>
virtual T viennals::GeometricAdvectDistribution< T, D >::getSignedDistance ( const Vec3D< viennahrle::CoordType > & initial,
const Vec3D< viennahrle::CoordType > & candidate,
unsigned long pointId ) 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 >, viennals::CustomSphereDistribution< T, D >, and viennals::SphereDistribution< T, D >.

◆ isInside()

template<class T, int D>
virtual bool viennals::GeometricAdvectDistribution< T, D >::isInside ( const Vec3D< viennahrle::CoordType > & initial,
const Vec3D< viennahrle::CoordType > & candidate,
double eps ) 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 >.

◆ prepare()

template<class T, int D>
virtual void viennals::GeometricAdvectDistribution< T, D >::prepare ( SmartPointer< Domain< T, D > > domain)
inlinevirtual

◆ useSurfacePointId()

template<class T, int D>
virtual bool viennals::GeometricAdvectDistribution< T, D >::useSurfacePointId ( ) const
inlinevirtual

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