29#if defined(LAMBDAMST3D_RECURSES)
30#error Recursive header files inclusion detected in LambdaMST3D.h
33#define LAMBDAMST3D_RECURSES
35#if !defined LAMBDAMST3D_h
44#include <DGtal/base/Common.h>
45#include <DGtal/helpers/StdDefs.h>
46#include "DGtal/kernel/CSpace.h"
47#include "DGtal/kernel/PointVector.h"
48#include "DGtal/geometry/curves/estimation/FunctorsLambdaMST.h"
49#include "DGtal/geometry/curves/CForwardSegmentComputer.h"
50#include "DGtal/geometry/curves/estimation/CLMSTTangentFromDSS.h"
51#include "DGtal/geometry/curves/estimation/CLMSTDSSFilter.h"
61 template <
typename TSpace,
typename TSegmentation,
typename Functor,
typename DSSFilter >
84 typedef typename TSpace::Point
Point;
128 template <
typename OutputIterator>
155 template <
typename OutputIterator>
167 template <
typename DSSesIterator,
typename OrphanIterator >
169 void treatOrphans(DSSesIterator begin, DSSesIterator end, OrphanIterator obegin, OrphanIterator oend,
170 std::multimap<Point, Value> &outValues);
208 typename DSSFilter = DSSMuteFilter < typename DSSSegmentationComputer::SegmentComputer > >
211 TangentFromDSS3DFunctor< typename DSSSegmentationComputer::SegmentComputer, LambdaFunction >, DSSFilter >
227#include "DGtal/geometry/curves/estimation/LambdaMST3D.ih"
233#undef LAMBDAMST3D_RECURSES
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
std::vector< Z2i::Point >::const_iterator ConstIterator
BOOST_STATIC_ASSERT((TSpace::dimension==3))
TSpace::Point Point
Type of 3d real point.
TSegmentation::SegmentComputer SegmentComputer
Curve segmentation algorithm.
void treatOrphans(DSSesIterator begin, DSSesIterator end, OrphanIterator obegin, OrphanIterator oend, std::multimap< Point, Value > &outValues)
std::vector< SegmentComputer >::const_iterator OrphanDSSIterator
void attach(Alias< TSegmentation > segmentComputer)
TSpace::RealVector RealVector
Type of 3d real vector.
BOOST_CONCEPT_ASSERT((concepts::CForwardSegmentComputer< typename TSegmentation::SegmentComputer >))
OutputIterator eval(ConstIterator itb, ConstIterator ite, OutputIterator result)
TSegmentation * dssSegments
RealVector eval(const Point &p)
TSegmentation Segmentation
Tangential cover algorithm.
BOOST_CONCEPT_ASSERT((concepts::CLMSTDSSFilter< DSSFilter >))
BOOST_CONCEPT_ASSERT((concepts::CLMSTTangentFromDSS< Functor >))
Value treatOrphan(OrphanDSSIterator begin, OrphanDSSIterator end, const Point &p)
Use the DSS filter defined conditions to ensure estimation over not covered points - orphans.
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
void init(ConstIterator itb, ConstIterator ite)
LambdaMST3DEstimator()
Default constructor.
void accumulate(std::multimap< Point, Value > &outValues, ConstIterator itb, ConstIterator ite, OutputIterator &result)
Accumulate partial results obtained for each point. In 3D it can happen that DSSs' direction vectors ...
DSSFilter & getDSSFilter()
Functor::Value Value
Type returned by model of CLMSTTangentFrom2DSS.
SegmentComputer::ConstIterator ConstIterator
Type of iterator, at least readable and forward.
Aim: Simplify creation of Lambda MST tangent estimator.
LambdaMST3DEstimator< Z3i::Space, DSSSegmentationComputer, TangentFromDSS3DFunctor< typename DSSSegmentationComputer::SegmentComputer, LambdaFunction >, DSSFilter > Super
SpaceND< 3, Integer > Space
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: Defines the concept describing a forward segment computer. Like any model of CIncrementalSegment...
InHalfPlaneBySimple3x3Matrix< Point, double > Functor