ViennaLS
Loading...
Searching...
No Matches
lsCurvatureFormulas.hpp File Reference
#include <cmath>
#include <lsDomain.hpp>
#include <vcLogger.hpp>

Go to the source code of this file.

Namespaces

namespace  lsInternal
 

Functions

template<class It >
double lsInternal::squareSumSquare (It begin, It end)
 Returns the squared sum square for values in the range [start, end[.
 
template<class It >
double lsInternal::rootSumSquarePow3 (It begin, It end)
 Returns the root sum square to the 3rd power for values in the range [start, end[.
 
template<class T , std::size_t N>
double lsInternal::meanCurvature2D (std::array< T, N > funcValues)
 Mean curvature formula for implicit surfaces in 2D, the passed array should contain the function values in the following order: (F_x, F_y, F_z, F_xx, F_yy, F_zz, F_xy, F_yz, F_zx)
 
template<class T , std::size_t N>
double lsInternal::meanCurvature3D (std::array< T, N > funcValues)
 Mean curvature formula for implicit surfaces in 3D, the passed array should contain the function values in the following order: (F_x, F_y, F_z, F_xx, F_yy, F_zz, F_xy, F_yz, F_zx)
 
template<class T , std::size_t N>
double lsInternal::gaussianCurvature3D (std::array< T, N > funcValues)
 Gaussian curvature formula for implicit surfaces in 3D, the passed array should contain the function values in the following order: (F_x, F_y, F_z, F_xx, F_yy, F_zz, F_xy, F_yz, F_zx)
 
template<class It , class T = typename It::DomainType::hrleValueType>
std::array< T, 9 > lsInternal::smallStencilFromIterator (It &it, const double gridDelta)
 Fills an std::array with differential values calculated from neighbour values. This stencil only uses direct neighbours for fast calculation of the differentials.
 
template<class It , class T = typename It::DomainType::hrleValueType>
std::array< T, 9 > lsInternal::bigStencilFromIterator (It &it, const double gridDelta)
 Fills an std::array with differential values calculated from neighbour values. This stencil also uses diagonal neighbours to achieve a higher accuracy.
 
template<class It , class T = typename It::DomainType::hrleValueType>
T lsInternal::meanCurvature (It &it, bool bigStencil=false)
 Calculates the Mean Curvature of the level set function from a suitable hrle iterator. Requires an iterator that is big enough to calculate second order derivatives(e.g. hrleBoxIterator or hrleCartesianPlaneIterator)
 
template<class It , class T = typename It::DomainType::hrleValueType>
T lsInternal::gaussianCurvature (It &it, bool bigStencil=false)
 Calculates the Gaussian Curvature of the level set function from a suitable hrle iterator. Requires an iterator that is big enough to calculate second order derivatives(e.g. hrleBoxIterator or hrleCartesianPlaneIterator)