Ponca  5b0151ad2869758185d699615c3cca5855cc2cee
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::internal::CNCEigen< DataPoint > Struct Template Reference

This class contains some stand-alone CorrectedNormalCurrent formulas for triangles, using eigen as linear algebra backend. More...

#include <cncFormulaEigen.h>

+ Collaboration diagram for Ponca::internal::CNCEigen< DataPoint >:

Classes

struct  SphericalTriangle
 Represents a triangle on a sphere of radius one. More...
 

Public Types

using MatrixType = typename DataPoint::MatrixType
 
using Scalar = typename DataPoint::Scalar
 
using VectorType = typename DataPoint::VectorType
 

Static Public Member Functions

Functions for computing measures
static Scalar mu0InterpolatedU (const VectorType &a, const VectorType &b, const VectorType &c, const VectorType &ua, const VectorType &ub, const VectorType &uc, bool unit_u=false)
 Computes mu0 measure (area) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.
 
static Scalar mu1InterpolatedU (const VectorType &a, const VectorType &b, const VectorType &c, const VectorType &ua, const VectorType &ub, const VectorType &uc, bool unit_u=false)
 Computes mu1 measure (mean curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.
 
static Scalar mu2InterpolatedU (const VectorType &a, const VectorType &b, const VectorType &c, const VectorType &ua, const VectorType &ub, const VectorType &uc, bool unit_u=false)
 Computes mu2 measure (Gaussian curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.
 
static MatrixType muXYInterpolatedU (const VectorType &a, const VectorType &b, const VectorType &c, const VectorType &ua, const VectorType &ub, const VectorType &uc, bool unit_u=false)
 Computes muXY measure (anisotropic curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.
 
Helper functions
static std::pair< VectorType, VectorType > curvDirFromTensor (const MatrixType &tensor, const Scalar area, const VectorType &N)
 Computing principal curvatures k1 and k2 from tensor.
 
static std::tuple< Scalar, Scalar, VectorType, VectorType > curvaturesFromTensor (const MatrixType &tensor, const Scalar area, const VectorType &N)
 Computing principal curvatures k1 and k2 from tensor.
 

Static Public Attributes

static constexpr Scalar epsilon = Eigen::NumTraits<Scalar>::epsilon()
 Small constant used to approximate zero.
 

Detailed Description

template<typename DataPoint>
struct Ponca::internal::CNCEigen< DataPoint >

This class contains some stand-alone CorrectedNormalCurrent formulas for triangles, using eigen as linear algebra backend.

Definition at line 73 of file cncFormulaEigen.h.

Member Typedef Documentation

◆ MatrixType

template<typename DataPoint >
using Ponca::internal::CNCEigen< DataPoint >::MatrixType = typename DataPoint::MatrixType

Definition at line 74 of file cncFormulaEigen.h.

◆ Scalar

template<typename DataPoint >
using Ponca::internal::CNCEigen< DataPoint >::Scalar = typename DataPoint::Scalar

Definition at line 75 of file cncFormulaEigen.h.

◆ VectorType

template<typename DataPoint >
using Ponca::internal::CNCEigen< DataPoint >::VectorType = typename DataPoint::VectorType

Definition at line 76 of file cncFormulaEigen.h.

Member Function Documentation

◆ curvaturesFromTensor()

template<typename DataPoint >
static std::tuple< Scalar, Scalar, VectorType, VectorType > Ponca::internal::CNCEigen< DataPoint >::curvaturesFromTensor ( const MatrixType &  tensor,
const Scalar  area,
const VectorType &  N 
)
inlinestatic

Computing principal curvatures k1 and k2 from tensor.

Parameters
tensorThe muXY integrated tensor
areaArea of the face
Nthe normal vector
Returns
a pair of principal directions.

Definition at line 340 of file cncFormulaEigen.h.

◆ curvDirFromTensor()

template<typename DataPoint >
static std::pair< VectorType, VectorType > Ponca::internal::CNCEigen< DataPoint >::curvDirFromTensor ( const MatrixType &  tensor,
const Scalar  area,
const VectorType &  N 
)
inlinestatic

Computing principal curvatures k1 and k2 from tensor.

Parameters
tensorThe muXY integrated tensor
areaArea of the face
Nthe normal vector
Returns
a pair of principal directions.

Definition at line 308 of file cncFormulaEigen.h.

◆ mu0InterpolatedU()

template<typename DataPoint >
static Scalar Ponca::internal::CNCEigen< DataPoint >::mu0InterpolatedU ( const VectorType &  a,
const VectorType &  b,
const VectorType &  c,
const VectorType &  ua,
const VectorType &  ub,
const VectorType &  uc,
bool  unit_u = false 
)
inlinestatic

Computes mu0 measure (area) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.

Parameters
aany point
bany point
cany point
uathe corrected normal vector at point a
ubthe corrected normal vector at point b
ucthe corrected normal vector at point c
unit_uwhen 'true' considers that interpolated corrected normals should be made unitary, otherwise interpolated corrected normals may have smaller norms.
Returns
the mu0-measure of triangle abc, i.e. its area.

Definition at line 175 of file cncFormulaEigen.h.

◆ mu1InterpolatedU()

template<typename DataPoint >
static Scalar Ponca::internal::CNCEigen< DataPoint >::mu1InterpolatedU ( const VectorType &  a,
const VectorType &  b,
const VectorType &  c,
const VectorType &  ua,
const VectorType &  ub,
const VectorType &  uc,
bool  unit_u = false 
)
inlinestatic

Computes mu1 measure (mean curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.

Parameters
aany point
bany point
cany point
uathe corrected normal vector at point a
ubthe corrected normal vector at point b
ucthe corrected normal vector at point c
unit_uwhen 'true' considers that interpolated corrected normals should be made unitary, otherwise interpolated corrected normals may have smaller norms.
Returns
the mu1-measure of triangle abc, i.e. its mean curvature.

Definition at line 207 of file cncFormulaEigen.h.

◆ mu2InterpolatedU()

template<typename DataPoint >
static Scalar Ponca::internal::CNCEigen< DataPoint >::mu2InterpolatedU ( const VectorType &  a,
const VectorType &  b,
const VectorType &  c,
const VectorType &  ua,
const VectorType &  ub,
const VectorType &  uc,
bool  unit_u = false 
)
inlinestatic

Computes mu2 measure (Gaussian curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.

Parameters
aany point
bany point
cany point
uathe corrected normal vector at point a
ubthe corrected normal vector at point b
ucthe corrected normal vector at point c
unit_uwhen 'true' considers that interpolated corrected normals should be made unitary, otherwise interpolated corrected normals may have smaller norms.
Returns
the mu2-measure of triangle abc, i.e. its Gaussian curvature.

Definition at line 237 of file cncFormulaEigen.h.

◆ muXYInterpolatedU()

template<typename DataPoint >
static MatrixType Ponca::internal::CNCEigen< DataPoint >::muXYInterpolatedU ( const VectorType &  a,
const VectorType &  b,
const VectorType &  c,
const VectorType &  ua,
const VectorType &  ub,
const VectorType &  uc,
bool  unit_u = false 
)
inlinestatic

Computes muXY measure (anisotropic curvature) of triangle abc given an interpolated corrected normal vector ua, \ub , uc.

Parameters
aany point
bany point
cany point
uathe corrected normal vector at point a
ubthe corrected normal vector at point b
ucthe corrected normal vector at point c
Returns
the muXY-measure of triangle abc, i.e. its anisotropic curvature.

Definition at line 265 of file cncFormulaEigen.h.

Member Data Documentation

◆ epsilon

template<typename DataPoint >
constexpr Scalar Ponca::internal::CNCEigen< DataPoint >::epsilon = Eigen::NumTraits<Scalar>::epsilon()
staticconstexpr

Small constant used to approximate zero.

Definition at line 78 of file cncFormulaEigen.h.