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 >
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);
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)
DSSFilter & getDSSFilter()
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 ...
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
Space::RealVector RealVector
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...
Aim: Defines the concept describing a functor which filters DSSes for L-MST calculations.
Aim: Defines the concept describing a functor which calculates a direction of the 2D DSS and an eccen...
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
ArithmeticalDSSComputer< std::vector< Z2i::Point >::const_iterator, int, 4 > SegmentComputer
InHalfPlaneBySimple3x3Matrix< Point, double > Functor