31#if defined(NormalCycleComputer_RECURSES) 
   32#error Recursive header files inclusion detected in NormalCycleComputer.h 
   35#define NormalCycleComputer_RECURSES 
   37#if !defined NormalCycleComputer_h 
   39#define NormalCycleComputer_h 
   43#include "DGtal/base/Common.h" 
   44#include "DGtal/math/linalg/EigenDecomposition.h" 
   45#include "DGtal/geometry/meshes/SurfaceMeshMeasure.h" 
   46#include "DGtal/geometry/meshes/NormalCycleFormula.h" 
   47#include "DGtal/shapes/SurfaceMesh.h" 
   66  template < 
typename TRealPo
int, 
typename TRealVector >
 
  120      return ( mu0 != 0.0 ) ? mu1 / ( 2.0 * mu0 ) : 0.0;
 
 
  129      return ( mu0 != 0.0 ) ? mu2 / mu0 : 0.0;
 
 
  140    std::tuple< Scalar, Scalar, RealVector, RealVector >
 
  145      const double   coef_N = 1000.0 * mu0;
 
  147      for ( 
int j = 0; j < 3; j++ )
 
  148        for ( 
int k = 0; k < 3; k++ )
 
  149          muXY( j, k ) += coef_N * N[ j ] * N[ k ];
 
  153      return std::make_tuple( ( mu0 != 0.0 ) ? -
L[ 1 ] / mu0 : 0.0,
 
  154                              ( mu0 != 0.0 ) ? -
L[ 0 ] / mu0 : 0.0,
 
 
 
  174#include "NormalCycleComputer.ih" 
  180#undef NormalCycleComputer_RECURSES 
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
 
static void getEigenDecomposition(const Matrix &matrix, Matrix &eigenVectors, Vector &eigenValues)
Compute both eigen vectors and eigen values from an input matrix.
 
static const Dimension dimension
 
ColumnVector column(const DGtal::Dimension j) const
 
SimpleMatrix< Component, TN, TM > transpose() const
 
DGtal is the top-level namespace which contains all DGtal functions and types.
 
DGtal::uint32_t Dimension
 
static Scalar meanCurvature(Scalar mu0, Scalar mu1)
 
std::vector< RealPoint > RealPoints
 
static const Dimension dimension
 
std::vector< RealVector > RealVectors
 
NormalCycleComputer(ConstAlias< SurfaceMesh > aMesh)
 
RealVector::Component Scalar
 
std::vector< Scalar > Scalars
 
const SurfaceMesh & myMesh
 
ScalarMeasure computeMu0() const
 
NormalCycleFormula< RealPoint, RealVector > Formula
 
TensorMeasure computeMuXY() const
 
static Scalar GaussianCurvature(Scalar mu0, Scalar mu2)
 
SurfaceMeshMeasure< RealPoint, RealVector, RealTensor > TensorMeasure
 
std::vector< RealTensor > RealTensors
 
ScalarMeasure computeMu2() const
 
ScalarMeasure computeMu1() const
 
SimpleMatrix< Scalar, dimension, dimension > RealTensor
 
TensorMeasure computeMuXYs() const
 
DGtal::SurfaceMesh< RealPoint, RealVector > SurfaceMesh
 
BOOST_STATIC_ASSERT((dimension==3))
 
static std::tuple< Scalar, Scalar, RealVector, RealVector > principalCurvatures(Scalar mu0, RealTensor muXY, const RealVector &N)
 
SurfaceMesh::Vertex Vertex
 
NormalCycleComputer< RealPoint, RealVector > Self
 
SurfaceMeshMeasure< RealPoint, RealVector, Scalar > ScalarMeasure