32 template <
class DataPo
int,
class _NFilter,
typename T>
35 PONCA_FITTING_DECLARE_DEFAULT_TYPES
36 using Matrix2 = Eigen::Matrix<Scalar, 2, 2>;
37 static_assert(DataPoint::Dim == 3,
"FundamentalFormWeingartenEstimator is only valid in 3D");
43 Base::PROVIDES_FIRST_FUNDAMENTAL_FORM_COMPONENTS && Base::PROVIDES_SECOND_FUNDAMENTAL_FORM_COMPONENTS,
44 PROVIDES_WEINGARTEN_MAP
58 template <
typename Matrix2Derived>
69 template <
typename Matrix2Derived>
76 PONCA_MULTIARCH [[nodiscard]]
inline Matrix2
weingartenMap()
const;
80 template <
typename Matrix2Derived>
81 PONCA_MULTIARCH
inline void weingartenMap(Matrix2Derived& w)
const;
107 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T>
110 PONCA_FITTING_DECLARE_DEFAULT_TYPES
111 PONCA_FITTING_DECLARE_MATRIX_TYPE
112 PONCA_FITTING_DECLARE_DEFAULT_DER_TYPES
113 using Matrix2 = Eigen::Matrix<Scalar, 2, 2>;
114 static_assert(DataPoint::Dim == 3,
"NormalDerivativeWeingartenEstimator is only valid in 3D");
115 static_assert(Base::isSpaceDer(),
"NormalDerivativeWeingartenEstimator requires spatial derivation");
120 Check = Base::PROVIDES_NORMAL_DERIVATIVE,
121 PROVIDES_WEINGARTEN_MAP,
122 PROVIDES_TANGENT_PLANE_BASIS
126 MatrixType m_tangentBasis{MatrixType::Zero()};
130 PONCA_FITTING_DECLARE_FINALIZE
136 PONCA_MULTIARCH [[nodiscard]]
inline Matrix2
weingartenMap()
const;
140 template <
typename Matrix2Derived>
141 PONCA_MULTIARCH
inline void weingartenMap(Matrix2Derived& w)
const;
145 bool _isPositionVector =
true)
const;
149 bool _isPositionVector =
true)
const;
171 template <
class DataPo
int,
class _NFilter,
typename T>
174 PONCA_FITTING_DECLARE_DEFAULT_TYPES
175 using Matrix2 = Eigen::Matrix<Scalar, 2, 2>;
176 static_assert(DataPoint::Dim == 3,
"WeingartenCurvatureEstimator is only valid in 3D");
181 Check = Base::PROVIDES_TANGENT_PLANE_BASIS &&
182 Base::PROVIDES_PRINCIPAL_CURVATURES &&
183 Base::PROVIDES_WEINGARTEN_MAP
187 PONCA_FITTING_DECLARE_FINALIZE
192 template <
class DataPo
int,
class _NFilter,
typename T>
195 PONCA_FITTING_DECLARE_DEFAULT_TYPES
200 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T>
203 PONCA_FITTING_DECLARE_DEFAULT_TYPES
204 PONCA_FITTING_DECLARE_DEFAULT_DER_TYPES
210#include "weingarten.hpp"
Compute a Weingarten map from the spatial derivatives of the normal field .
typename Base::VectorType VectorType
Alias to vector type.
VectorType tangentPlaneToWorld(const VectorType &_q, bool _isPositionVector=true) const
Transform a point from the tangent plane [h, u, v]^T to ambient space.
NormalDerivativeWeingartenEstimator< DataPoint, _NFilter, DiffType, T > & normalDerivativeWeingartenEstimator()
Explicit conversion to NormalDerivativeWeingartenEstimator , to access methods potentially hidden by ...
VectorType worldToTangentPlane(const VectorType &_q, bool _isPositionVector=true) const
Express a point in ambient space relatively to the tangent plane.
typename DataPoint::MatrixType MatrixType
Alias to matrix type.
Matrix2 weingartenMap() const
Returns the Weingarten Map.
Compute principal curvatures from a base class providing fundamental forms.
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Compute principal curvatures from a base class providing fundamental forms.
WeingartenCurvatureEstimatorDer< DataPoint, _NFilter, DiffType, T > & weingartenCurvatureEstimator()
Explicit conversion to WeingartenCurvatureEstimatorDer , to access methods potentially hidden by heri...
Compute principal curvatures from a base class providing fundamental forms.
WeingartenCurvatureEstimator< DataPoint, _NFilter, T > & weingartenCurvatureEstimator()
Explicit conversion to WeingartenCurvatureEstimator , to access methods potentially hidden by heritag...