DGtal
0.9.3
|
#include <DGtal/geometry/curves/estimation/LambdaMST3D.h>
Public Types | |
typedef TSegmentation | Segmentation |
typedef TSegmentation::SegmentComputer | SegmentComputer |
typedef SegmentComputer::ConstIterator | ConstIterator |
typedef Functor::Value | Value |
typedef TSpace::RealVector | RealVector |
typedef TSpace::Point | Point |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >)) | |
BOOST_STATIC_ASSERT ((TSpace::dimension==3)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLMSTTangentFromDSS< Functor >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CForwardSegmentComputer< typename TSegmentation::SegmentComputer >)) | |
LambdaMST3DEstimator () | |
void | init (const ConstIterator &itb, const ConstIterator &ite) |
void | attach (Alias< TSegmentation > segmentComputer) |
bool | isValid () const |
RealVector | eval (const ConstIterator &it) |
template<typename OutputIterator > | |
OutputIterator | eval (const ConstIterator &itb, const ConstIterator &ite, OutputIterator result) |
Protected Member Functions | |
template<typename OutputIterator > | |
void | accumulate (std::multimap< Point, Value > &outValues, const ConstIterator &itb, const ConstIterator &ite, OutputIterator &result) |
Private Attributes | |
ConstIterator | myBegin |
ConstIterator | myEnd |
TSegmentation * | dssSegments |
Functor | myFunctor |
Aim: Implement Lambda MST tangent estimators. This class is a model of CCurveLocalGeometricEstimator.
TSpace | model of CSpace |
TSegmentation | tangential cover obtained by a segmentation of a 2D digital curve by maximal straight segments |
Functor | model of CLMSTTangentFrom2DSS |
Definition at line 59 of file LambdaMST3D.h.
typedef SegmentComputer::ConstIterator DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::ConstIterator |
Type of iterator, at least readable and forward.
Definition at line 74 of file LambdaMST3D.h.
typedef TSpace::Point DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::Point |
Type of 3d real point.
Definition at line 80 of file LambdaMST3D.h.
typedef TSpace::RealVector DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::RealVector |
Type of 3d real vector.
Definition at line 78 of file LambdaMST3D.h.
typedef TSegmentation DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::Segmentation |
Tangential cover algorithm.
Definition at line 70 of file LambdaMST3D.h.
typedef TSegmentation::SegmentComputer DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::SegmentComputer |
Curve segmentation algorithm.
Definition at line 72 of file LambdaMST3D.h.
typedef Functor::Value DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::Value |
Type returned by model of CLMSTTangentFrom2DSS.
Definition at line 76 of file LambdaMST3D.h.
DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::LambdaMST3DEstimator | ( | ) |
Default constructor.
|
protected |
Accumulate partial results obtained for each point. In 3D it can happen that DSSs' direction vectors over same point are opposite. To avoid this problem we measure angle between segments' direction vectors and if this angle is bigger than \(\pi/2\), then one of the vectors is reversed. Finally, tangent direction is estimated and stored.
OutputIterator | writable iterator. |
outValues | partial results for each point |
itb | begin iterator |
ite | end iterator |
result | writable iterator over a container which stores estimated tangent directions. |
void DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::attach | ( | Alias< TSegmentation > | segmentComputer | ) |
segmentComputer | - DSS segmentation algorithm |
DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::BOOST_CONCEPT_ASSERT | ( | (concepts::CSpace< TSpace >) | ) |
DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLMSTTangentFromDSS< Functor >) | ) |
DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::BOOST_CONCEPT_ASSERT | ( | (concepts::CForwardSegmentComputer< typename TSegmentation::SegmentComputer >) | ) |
DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::BOOST_STATIC_ASSERT | ( | (TSpace::dimension==3) | ) |
RealVector DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::eval | ( | const ConstIterator & | it | ) |
it | ConstIterator defined over the underlying curve |
OutputIterator DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::eval | ( | const ConstIterator & | itb, |
const ConstIterator & | ite, | ||
OutputIterator | result | ||
) |
OutputIterator | writable iterator. More efficient way to compute tangent directions for all points of a curve. |
itb | begin iterator |
ite | end iterator |
result | writable iterator over a container which stores estimated tangent directions. |
void DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::init | ( | const ConstIterator & | itb, |
const ConstIterator & | ite | ||
) |
Initialization.
itb | begin iterator |
ite | end iterator |
bool DGtal::LambdaMST3DEstimator< TSpace, TSegmentation, Functor >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
|
private |
Pointer to a curve segmentation algorithm.
Definition at line 154 of file LambdaMST3D.h.
|
private |
Iterator which corresponds to the beginning of a valid range - [myBegin, myEnd)
Definition at line 146 of file LambdaMST3D.h.
|
private |
Iterator which corresponds to the end of a valid range - [myBegin, myEnd)
Definition at line 150 of file LambdaMST3D.h.
|
private |
Functor which takes: reference to digital straight segment - DSS, position of given point in DSS and length of DSS and returns DSS's direction and the eccentricity of the point in the DSS.
Definition at line 160 of file LambdaMST3D.h.