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");
41 Check = Base::PROVIDES_FIRST_FUNDAMENTAL_FORM_COMPONENTS &&
42 Base::PROVIDES_SECOND_FUNDAMENTAL_FORM_COMPONENTS,
43 PROVIDES_WEINGARTEN_MAP
56 template<
typename Matrix2Derived>
67 template<
typename Matrix2Derived>
74 PONCA_MULTIARCH [[nodiscard]]
inline Matrix2
weingartenMap()
const;
78 template<
typename Matrix2Derived>
79 PONCA_MULTIARCH
inline void weingartenMap(Matrix2Derived &w)
const;
106 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T >
109 PONCA_FITTING_DECLARE_DEFAULT_TYPES
110 PONCA_FITTING_DECLARE_MATRIX_TYPE
111 PONCA_FITTING_DECLARE_DEFAULT_DER_TYPES
112 using Matrix2 = Eigen::Matrix<Scalar, 2, 2>;
113 static_assert ( DataPoint::Dim == 3,
"NormalDerivativeWeingartenEstimator is only valid in 3D");
114 static_assert ( Base::isSpaceDer(),
"NormalDerivativeWeingartenEstimator requires spatial derivation");
118 Check = Base::PROVIDES_NORMAL_DERIVATIVE,
119 PROVIDES_WEINGARTEN_MAP,
120 PROVIDES_TANGENT_PLANE_BASIS
124 MatrixType m_tangentBasis {MatrixType::Zero()};
128 PONCA_FITTING_DECLARE_FINALIZE
134 PONCA_MULTIARCH [[nodiscard]]
inline Matrix2
weingartenMap()
const;
138 template<
typename Matrix2Derived>
139 PONCA_MULTIARCH
inline void weingartenMap(Matrix2Derived &w)
const;
144 bool _isPositionVector =
true)
const;
148 bool _isPositionVector =
true)
const;
170 template <
class DataPo
int,
class _NFilter,
typename T >
173 PONCA_FITTING_DECLARE_DEFAULT_TYPES
174 using Matrix2 = Eigen::Matrix<Scalar, 2, 2>;
175 static_assert ( DataPoint::Dim == 3,
"WeingartenCurvatureEstimator is only valid in 3D");
179 Check = Base::PROVIDES_TANGENT_PLANE_BASIS &&
180 Base::PROVIDES_PRINCIPAL_CURVATURES &&
181 Base::PROVIDES_WEINGARTEN_MAP
185 PONCA_FITTING_DECLARE_FINALIZE
190 template <
class DataPo
int,
class _NFilter,
typename T >
192 PONCA_FITTING_DECLARE_DEFAULT_TYPES
197 template <
class DataPo
int,
class _NFilter,
int DiffType,
typename T >
199 PONCA_FITTING_DECLARE_DEFAULT_TYPES
200 PONCA_FITTING_DECLARE_DEFAULT_DER_TYPES
207#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...