31#if defined(LocalEstimatorFromSurfelFunctorAdapter_RECURSES)
32#error Recursive header files inclusion detected in LocalEstimatorFromSurfelFunctorAdapter.h
35#define LocalEstimatorFromSurfelFunctorAdapter_RECURSES
37#if !defined LocalEstimatorFromSurfelFunctorAdapter_h
39#define LocalEstimatorFromSurfelFunctorAdapter_h
45#include "DGtal/base/Common.h"
46#include "DGtal/base/Alias.h"
47#include "DGtal/base/ConstAlias.h"
48#include "DGtal/base/CUnaryFunctor.h"
49#include "DGtal/topology/CanonicSCellEmbedder.h"
50#include "DGtal/topology/CSCellEmbedder.h"
51#include "DGtal/topology/CDigitalSurfaceContainer.h"
52#include "DGtal/topology/DigitalSurface.h"
53#include "DGtal/graph/DistanceBreadthFirstVisitor.h"
54#include "DGtal/geometry/volumes/distance/CMetricSpace.h"
55#include "DGtal/base/BasicFunctors.h"
56#include "DGtal/geometry/surfaces/estimation/estimationFunctors/CLocalEstimatorFromSurfelFunctor.h"
101 template <
typename TDigitalSurfaceContainer,
typename TMetric,
102 typename TFunctorOnSurfel,
typename TConvolutionFunctor>
121 typedef typename Metric::Value
Value;
124 typedef typename Metric::Point
Point;
133 typedef typename TFunctorOnSurfel::Quantity
Quantity;
142 typedef typename DigitalSurfaceContainer::Surfel
Surfel;
149 typedef typename FunctorOnSurfel::SCellEmbedder
Embedder;
259 template<
typename SurfelConstIterator>
260 void init(
const double _h, SurfelConstIterator itb, SurfelConstIterator ite);
267 template<
typename SurfelConstIterator>
277 template<
typename SurfelConstIterator,
typename OutputIterator>
278 OutputIterator
eval(
const SurfelConstIterator& itb,
279 const SurfelConstIterator& ite,
280 OutputIterator result)
const;
335 template <
typename TD,
typename TV,
typename TF,
typename TC>
343#include "DGtal/geometry/surfaces/estimation//LocalEstimatorFromSurfelFunctorAdapter.ih"
350#undef LocalEstimatorFromSurfelFunctorAdapter_RECURSES
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Aim: Smart or simple const pointer on T. It can be a smart pointer based on reference counts or a sim...
Aim: Represents a set of n-1-cells in a nD space, together with adjacency relation between these cell...
Aim: This class is useful to perform an exploration of a graph given a starting point or set (called ...
Aim: this class adapts any local functor on digital surface element to define a local estimator....
CountedConstPtrOrConstPtr< ConvolutionFunctor > myConvFunctor
Convolution functor.
LocalEstimatorFromSurfelFunctorAdapter(ConstAlias< Surface > aSurface, ConstAlias< TMetric > aMetric, Alias< FunctorOnSurfel > aFunctor, ConstAlias< ConvolutionFunctor > aConvolutionFunctor)
Metric::Value Value
Metric value type.
TMetric Metric
Metric type.
void attach(ConstAlias< Surface > aSurface)
void init(const double _h, SurfelConstIterator itb, SurfelConstIterator ite)
void selfDisplay(std::ostream &out) const
TDigitalSurfaceContainer DigitalSurfaceContainer
Digital surface container type.
DistanceBreadthFirstVisitor< Surface, VertexFunctor > Visitor
CountedConstPtrOrConstPtr< Metric > myMetric
Distance functor.
bool myInit
Has init been done before eval.
LocalEstimatorFromSurfelFunctorAdapter(const LocalEstimatorFromSurfelFunctorAdapter &other)
Embedder myEmbedder
Embedder object.
void setParams(ConstAlias< TMetric > aMetric, Alias< FunctorOnSurfel > aFunctor, ConstAlias< ConvolutionFunctor > aConvolutionFunctor, const Value radius)
CountedConstPtrOrConstPtr< Surface > mySurface
Digital surface member.
FunctorOnSurfel::SCellEmbedder Embedder
Embedded and type definitions.
double Scalar
The "real number" type.
LocalEstimatorFromSurfelFunctorAdapter & operator=(const LocalEstimatorFromSurfelFunctorAdapter &other)
DigitalSurfaceContainer::Surfel Surfel
Surfel type.
TFunctorOnSurfel::Quantity Quantity
Quantity type.
OutputIterator eval(const SurfelConstIterator &itb, const SurfelConstIterator &ite, OutputIterator result) const
TFunctorOnSurfel FunctorOnSurfel
Functor on surfels type.
Metric::Point Point
Metric point type.
DigitalSurface< DigitalSurfaceContainer > Surface
Digital surface type.
TConvolutionFunctor ConvolutionFunctor
Functor on double to compute convolution weights.
functors::Composer< Embedder, MetricToPoint, Value > VertexFunctor
~LocalEstimatorFromSurfelFunctorAdapter()
FunctorOnSurfel * myFunctor
Functor member.
BOOST_CONCEPT_ASSERT((concepts::CUnaryFunctor< TConvolutionFunctor, double, double >))
std::function< Value(Point) > MetricToPoint
Embedder::RealPoint RealPoint
Real point type.
BOOST_CONCEPT_ASSERT((concepts::CDigitalSurfaceContainer< TDigitalSurfaceContainer >))
Quantity eval(const SurfelConstIterator &it) const
Value myRadius
Ball radius.
LocalEstimatorFromSurfelFunctorAdapter()
BOOST_CONCEPT_ASSERT((concepts::CLocalEstimatorFromSurfelFunctor< TFunctorOnSurfel >))
BOOST_CONCEPT_ASSERT((concepts::CMetricSpace< TMetric >))
Concept Checks.
Aim: Define a new Functor from the composition of two other functors.
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: The digital surface container concept describes a minimal set of inner types and methods so as t...
Aim: this concept describes functors on digtal surface surfel which can be used to define local estim...
Aim: defines the concept of metric spaces.
Aim: Defines a unary functor, which associates arguments to results.