Ponca  2cfe00173bb12dda99e12b2b48a0e1f683bc5cdd
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 75 of file cncFormulaEigen.h.

Member Typedef Documentation

◆ MatrixType

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

Definition at line 77 of file cncFormulaEigen.h.

◆ Scalar

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

Definition at line 78 of file cncFormulaEigen.h.

◆ VectorType

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

Definition at line 79 of file cncFormulaEigen.h.

Member Function Documentation

◆ curvaturesFromTensor()

template<typename DataPoint>
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 326 of file cncFormulaEigen.h.

◆ curvDirFromTensor()

template<typename DataPoint>
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 295 of file cncFormulaEigen.h.

◆ mu0InterpolatedU()

template<typename DataPoint>
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 184 of file cncFormulaEigen.h.

◆ mu1InterpolatedU()

template<typename DataPoint>
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 211 of file cncFormulaEigen.h.

◆ mu2InterpolatedU()

template<typename DataPoint>
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 234 of file cncFormulaEigen.h.

◆ muXYInterpolatedU()

template<typename DataPoint>
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 256 of file cncFormulaEigen.h.

Member Data Documentation

◆ epsilon

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

Small constant used to approximate zero.

Definition at line 81 of file cncFormulaEigen.h.