11#include <Eigen/Eigenvalues>
16 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T>
24 PONCA_FITTING_DECLARE_DEFAULT_TYPES
25 PONCA_FITTING_DECLARE_MATRIX_TYPE
30 PROVIDES_PRINCIPAL_CURVATURES
41 m_vmax {VectorType::Zero()};
44 bool m_isValid {
false};
46 static_assert ( DataPoint::Dim == 3,
"CurvatureEstimatorBase is only valid in 3D");
50 PONCA_FITTING_DECLARE_INIT
53 PONCA_MULTIARCH [[nodiscard]]
inline bool isValid()
const {
return m_isValid; }
59 PONCA_MULTIARCH [[nodiscard]]
inline Scalar kmin()
const {
return m_kmin; }
62 PONCA_MULTIARCH [[nodiscard]]
inline Scalar kmax()
const {
return m_kmax; }
71 PONCA_MULTIARCH [[nodiscard]]
inline Scalar kMean()
const {
return (m_kmin + m_kmax)/
Scalar(2);}
88#include "curvature.hpp"
Base class for any 3d curvature estimator: holds , and associated vectors, such that .
typename Base::VectorType VectorType
Alias to vector type.
VectorType kminDirection() const
Returns an estimate of the minimal principal curvature direction.
Scalar kmax() const
Returns an estimate of the maximal principal curvature value.
void setCurvatureValues(Scalar kmin, Scalar kmax, const VectorType &vmin, const VectorType &vmax)
Set curvature values. To be called in finalize() by child classes.
CurvatureEstimatorBase< DataPoint, _NFilter, DiffType, T > & curvatureEstimatorBase()
Explicit conversion to CurvatureEstimatorBase , to access methods potentially hidden by heritage.
Scalar GaussianCurvature() const
Returns an estimate of the Gaussian curvature.
bool isValid() const
Returns true if contains valid curvature values (and not default ones)
typename DataPoint::Scalar Scalar
Alias to scalar type.
Scalar kmin() const
Returns an estimate of the minimal principal curvature value.
VectorType kmaxDirection() const
Returns an estimate of the maximal principal curvature direction.
Scalar kMean() const
Returns an estimate of the mean curvature.
This Source Code Form is subject to the terms of the Mozilla Public License, v.