8#include "../../../Fitting"
18#define DECLARE_FACTORY_CONCEPT_FULL(_conceptname, _newname, _notnewname) \
19 template <typename T> \
20 struct _newname : std::bool_constant<_conceptname<typename T::type>> \
23 template <typename T> \
24 struct _notnewname : std::bool_constant<!_conceptname<typename T::type>> \
28#define DECLARE_FACTORY_CONCEPT(_name) \
29 DECLARE_FACTORY_CONCEPT_FULL(Provides##_name, _name##Provider, Not##_name##Provider)
40 template <StringLiteral Name>
44 static constexpr bool value =
strequal(Name.value, T::name);
53 struct pred : std::bool_constant<strequal(Name.value, T::name)>
58 DECLARE_FACTORY_CONCEPT(Derivatives)
59 DECLARE_FACTORY_CONCEPT(ProjectionOperator)
60 DECLARE_FACTORY_CONCEPT(ImplicitPrimitive)
65 DECLARE_FACTORY_CONCEPT(GeomVar)
67 DECLARE_FACTORY_CONCEPT(
Line)
70 DECLARE_FACTORY_CONCEPT(PositionCovariance)
71 DECLARE_FACTORY_CONCEPT(PrincipalCurvatures)
72 DECLARE_FACTORY_CONCEPT(TangentPlaneBasis)
73 DECLARE_FACTORY_CONCEPT(MeanCurvature)
77 template<typename P, typename NF,
int DerType>
78 using FactoryGenericList = std::tuple<
92 template<
typename P,
typename NF,
int DerType>
93 using Factory3DList = internal::Factory::tuple_cat_t<
94 FactoryGenericList<P, NF, DerType>,
105 template<
typename P,
typename NF,
int DerType>
106 using Factory3DSpaceDerivatives = internal::Factory::tuple_cat_t<
107 Factory3DList<P, NF, DerType>,
Compute the mean normal of the input points.
Algebraic Sphere primitive.
Aggregator class used to declare specialized structures with derivatives computations,...
Aggregator class used to declare specialized structures using CRTP.
Corrected Normal Current Fit type.
Empty fitting object doing no computation.
Growing Least Squares reparametrization of the OrientedSphereFit.
Internal base classe for height fields.
A parametrized line is defined by an origin point and a unit direction vector such that the line co...
Compute the barycenter of the input points.
Extension performing derivation of the mls surface.
Monge Patch primitive, defined as , with defined by a Base class.
Compute a Weingarten map from the spatial derivatives of the normal field .
Implicit hyperplane defined by an homogeneous vector .
This Source Code Form is subject to the terms of the Mozilla Public License, v.
constexpr bool strequal(const char *a, const char *b)
Constexpr version of string comparison.
CovariancePlaneFitImpl< DataPoint, _NFilter, CovarianceBase< DataPoint, _NFilter, MeanPosition< DataPoint, _NFilter, Plane< DataPoint, _NFilter, T > > > > CovariancePlaneFit
Helper alias for Plane fitting on 3D points using CovariancePlaneFitImpl [CovariancePlaneFit Definiti...
OrientedSphereFitImpl< DataPoint, _NFilter, MeanPosition< DataPoint, _NFilter, MeanNormal< DataPoint, _NFilter, AlgebraicSphere< DataPoint, _NFilter, T > > > > OrientedSphereFit
Helper alias for Oriented Sphere fitting on 3D points using OrientedSphereFitImpl [OrientedSphereFit ...
CovarianceLineFitImpl< DataPoint, _NFilter, CovarianceBase< DataPoint, _NFilter, MeanPosition< DataPoint, _NFilter, Line< DataPoint, _NFilter, T > > > > CovarianceLineFit
Helper alias for Line fitting on 3D points using CovarianceLineFitImpl.
SphereFitImpl< DataPoint, _NFilter, AlgebraicSphere< DataPoint, _NFilter, T > > SphereFit
Helper alias for Sphere fitting on 3D points using SphereFitImpl.
OrientedSphereDerImpl< DataPoint, _NFilter, DiffType, MeanPositionDer< DataPoint, _NFilter, DiffType, T > > OrientedSphereDer
Helper alias for Oriented Sphere fitting on 3D points using OrientedSphereDerImpl.
MeanPlaneFitImpl< DataPoint, _NFilter, MeanNormal< DataPoint, _NFilter, MeanPosition< DataPoint, _NFilter, Plane< DataPoint, _NFilter, T > > > > MeanPlaneFit
Helper alias for Plane fitting on points using MeanPlaneFitImpl [MeanPlaneFit Definition].
A type that behaves as value.
Class to check for if an entry has a corresponding Id.
Compute principal curvatures from a base class providing fundamental forms.