DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes
DGtal::FPLengthEstimator< TConstIterator > Class Template Reference

#include <FPLengthEstimator.h>

Collaboration diagram for DGtal::FPLengthEstimator< TConstIterator >:
Collaboration graph
[legend]

Public Types

typedef TConstIterator ConstIterator
typedef double Quantity
typedef FP< ConstIterator, int, 4 > FaithfulPolygon
typedef FaithfulPolygon::Point Point
typedef FaithfulPolygon::Vector Vector

Public Member Functions

 FPLengthEstimator ()
 ~FPLengthEstimator ()
void init (const double h, const ConstIterator &itb, const ConstIterator &ite, const bool &isClosed)
Quantity eval () const
void selfDisplay (std::ostream &out) const
bool isValid () const

Private Member Functions

 FPLengthEstimator (const FPLengthEstimator &other)
FPLengthEstimatoroperator= (const FPLengthEstimator &other)

Private Attributes

double myH
std::vector< PointmyRep
bool myIsInitBefore

Detailed Description

template<typename TConstIterator>
class DGtal::FPLengthEstimator< TConstIterator >

Aim: a model of CGlobalCurveEstimator that computes the length of a digital curve using its FP (faithful polygon)

Description of template class 'FPLengthEstimator'

Model of CGlobalCurveGeometricEstimator.

Template Parameters:
TConstIteratora model of CConstIteratorOnPoints.

Definition at line 69 of file FPLengthEstimator.h.


Member Typedef Documentation

template<typename TConstIterator>
typedef TConstIterator DGtal::FPLengthEstimator< TConstIterator >::ConstIterator
Todo:
CONCEPT CHECK sur ConstIterator

Definition at line 76 of file FPLengthEstimator.h.

template<typename TConstIterator>
typedef FP<ConstIterator,int,4> DGtal::FPLengthEstimator< TConstIterator >::FaithfulPolygon

Definition at line 80 of file FPLengthEstimator.h.

template<typename TConstIterator>
typedef FaithfulPolygon::Point DGtal::FPLengthEstimator< TConstIterator >::Point

Definition at line 81 of file FPLengthEstimator.h.

template<typename TConstIterator>
typedef double DGtal::FPLengthEstimator< TConstIterator >::Quantity

Definition at line 78 of file FPLengthEstimator.h.

template<typename TConstIterator>
typedef FaithfulPolygon::Vector DGtal::FPLengthEstimator< TConstIterator >::Vector

Definition at line 82 of file FPLengthEstimator.h.


Constructor & Destructor Documentation

template<typename T >
DGtal::FPLengthEstimator< T >::FPLengthEstimator ( )
inline

Default Constructor.

Constructor.

Definition at line 49 of file FPLengthEstimator.ih.

{
myIsInitBefore = false;
}
template<typename T >
DGtal::FPLengthEstimator< T >::~FPLengthEstimator ( )
inline

Destructor.

Definition at line 59 of file FPLengthEstimator.ih.

{
}
template<typename TConstIterator>
DGtal::FPLengthEstimator< TConstIterator >::FPLengthEstimator ( const FPLengthEstimator< TConstIterator > &  other)
private

Copy constructor.

Parameters:
otherthe object to clone. Forbidden by default.

Member Function Documentation

template<typename T >
DGtal::FPLengthEstimator< T >::Quantity DGtal::FPLengthEstimator< T >::eval ( ) const
inline

Computation of the l1 length of the curve. Complexity: O(|Range|)

Precondition:
init() method must be called before.
Returns:
the curve length.

Definition at line 92 of file FPLengthEstimator.ih.

References DGtal::PointVector< dim, TEuclideanRing >::norm().

{
ASSERT(myH > 0);
ASSERT(myIsInitBefore);
Quantity val = 0;
if (myRep.size() > 1) {
typename std::vector<Point>::const_iterator i = myRep.begin();
typename std::vector<Point>::const_iterator j = i;
++j;
for ( ; j != myRep.end(); ++i, ++j) {
Vector v( *j - *i );
val += v.norm(Vector::L_2);
}
}
return val*myH;
}
template<typename T >
void DGtal::FPLengthEstimator< T >::init ( const double  h,
const ConstIterator itb,
const ConstIterator ite,
const bool &  isClosed 
)
inline

Initialize the measure computation.

Parameters:
hgrid size (must be >0).
itbbegin iterator
iteend iterator
closedtrue if the input range is closed.

Definition at line 73 of file FPLengthEstimator.ih.

References DGtal::FP< TIterator, TInteger, connectivity >::copyFP(), and DGtal::FP< TIterator, TInteger, connectivity >::size().

{
myH = h;
myRep.clear();
FaithfulPolygon fp( itb, ite, isClosed );
myRep.resize( fp.size() );
fp.copyFP( myRep.begin() );
if ( (isClosed)&&(myRep.size()!=0) )
myRep.push_back(myRep.front());
}
template<typename T >
bool DGtal::FPLengthEstimator< T >::isValid ( ) const
inline

Checks the validity/consistency of the object.

Returns:
'true' if the object is valid, 'false' otherwise.

Definition at line 141 of file FPLengthEstimator.ih.

{
}
template<typename TConstIterator>
FPLengthEstimator& DGtal::FPLengthEstimator< TConstIterator >::operator= ( const FPLengthEstimator< TConstIterator > &  other)
private

Assignment.

Parameters:
otherthe object to copy.
Returns:
a reference on 'this'. Forbidden by default.
template<typename T >
void DGtal::FPLengthEstimator< T >::selfDisplay ( std::ostream &  out) const
inline

Writes/Displays the object on an output stream.

Parameters:
outthe output stream where the object is written.

Definition at line 125 of file FPLengthEstimator.ih.

{
out << "[FPLengthEstimator]";
out <<" myH="<<myH;
else
out<< " not initialized";
}

Field Documentation

template<typename TConstIterator>
double DGtal::FPLengthEstimator< TConstIterator >::myH
private

Grid size.

Definition at line 136 of file FPLengthEstimator.h.

template<typename TConstIterator>
bool DGtal::FPLengthEstimator< TConstIterator >::myIsInitBefore
private

Boolean to make sure that init() has been called before eval().

Definition at line 142 of file FPLengthEstimator.h.

template<typename TConstIterator>
std::vector<Point> DGtal::FPLengthEstimator< TConstIterator >::myRep
private

polygonal representation of the input

Definition at line 139 of file FPLengthEstimator.h.


The documentation for this class was generated from the following files: