Ponca  7b3f8ad3fde25a027e6452783ccee143798a71b8
Point Cloud Analysis library
Loading...
Searching...
No Matches
baskets.h
1/*
2 This Source Code Form is subject to the terms of the Mozilla Public
3 License, v. 2.0. If a copy of the MPL was not distributed with this
4 file, You can obtain one at http://mozilla.org/MPL/2.0/.
5*/
6#if defined(_PONCA_INSTANTIATE_SCALESPACEDER) || defined(_PONCA_INSTANTIATE_ALL)
7# define _DT FitScaleSpaceDer
8# define _ScaleDer
9# include "basketsdiff.h"
10# undef _ScaleDer
11# undef _DT
12#endif
13#if defined(_PONCA_INSTANTIATE_SPACEDER) || defined(_PONCA_INSTANTIATE_ALL)
14# define _DT FitSpaceDer
15# include "basketsdiff.h"
16# undef _DT
17#endif
18
19// Define the list of basket in this file:
20// - _S: Scalar type
21// - _D: Dimension
22// - _P: Point type
23// - _NF: Neighbor filter
24//
25// You may filter by dimension, but not by "type" as the
26// preprocessor does not allows this. You may however define
27// a custom macros and then check for this definition. This
28// is what is done with '_Normal'. Please, do not forget to
29// add them to the following list:
30//
31// Type information macros:
32// - _Normal: Defined when point provides normals
33//
34// Wrap the type within the _PONCA_BASKET_X call:
35// - Name of the basket
36// - Description
37// - Actual basket class
38//
39// The name and description might be used to generate mappings
40// or bindings to these class
41//
42// The _PONCA_BASKET_X macro will be defined elsewhere to generate
43// the desired code
44#if _D == 3
45_PONCA_BASKET_X("MongePatchFit", "", Basket<_P, _NF, MongePatchQuadraticFit>)
46_PONCA_BASKET_X("MongePatchRestrictedFit", "Provides curvature estimation without spatial differentiation",
47 Basket<_P, _NF, MongePatchRestrictedQuadraticFit>)
48#endif
49
50#if _D == 2 || _D == 3
51_PONCA_BASKET_X("CovariancePlaneFit", "", Basket<_P, _NF, CovariancePlaneFit>)
52_PONCA_BASKET_X("SphereFit", "", Basket<_P, _NF, SphereFit, GLSParam>)
53# if defined(_Normal)
54_PONCA_BASKET_X("MeanPlaneFit", "", Basket<_P, _NF, MeanPlaneFit>)
55_PONCA_BASKET_X("OrientedSphereFit", "AKA Algebraic Point Set Surfaces (APSS)",
56 Basket<_P, _NF, OrientedSphereFit, GLSParam>)
57_PONCA_BASKET_X("UnorientedSphereFit", "AKA", Basket<_P, _NF, UnorientedSphereFit, GLSParam>)
58# endif
59#endif