31#if defined(FP_RECURSES)
32#error Recursive header files inclusion detected in FP.h
45#include "DGtal/kernel/CInteger.h"
46#include "DGtal/kernel/PointVector.h"
47#include "DGtal/geometry/curves/ArithmeticalDSSComputer.h"
48#include "DGtal/base/Circulator.h"
49#include "DGtal/base/Exceptions.h"
50#include "DGtal/base/Common.h"
51#include "DGtal/io/Color.h"
73 template <
typename TDSS>
93 return myDSS->isExtendableFront();
102 return myDSS->extendFront();
111 return myDSS->retractBack();
117 typename DSS::ConstIterator
end()
159 template <
typename TDSS>
177 return this->
myDSS->Uf();
185 return this->
myDSS->Ul();
210 template <
typename TDSS>
228 return this->
myDSS->Lf();
236 return this->
myDSS->Ll();
291 template <
typename TIterator,
typename TInteger,
int connectivity>
321 FP(
const TIterator& itb,
const TIterator& ite);
352 typename Polygon::size_type
size()
const;
359 template <
typename OutputIterator>
360 OutputIterator
copyFP(OutputIterator result)
const;
366 template <
typename OutputIterator>
367 OutputIterator
copyMLP(OutputIterator result)
const;
396 template<
typename Adapter>
408 template<
typename Adapter>
422 template<
typename Adapter>
424 const typename Adapter::DSS::ConstIterator& itEnd );
433 template<
typename Adapter>
442 void algorithm(
const TIterator& itb,
const TIterator& ite);
535 template <
typename TIterator,
typename TInteger,
int connectivity>
544#include "DGtal/geometry/curves/FP.ih"
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of dig...
Aim: Computes the faithful polygon (FP) of a range of 4/8-connected 2D Points.
void algorithm(const TIterator &itb, const TIterator &ite, CirculatorType)
bool isValid(const Point &a, const Point &b, const Point &c) const
void algorithm(const TIterator &itb, const TIterator &ite, IteratorType)
DGtal::PointVector< 2, double > RealPoint
DGtal::PointVector< 2, TInteger > Vector
void algorithm(const TIterator &itb, const TIterator &ite)
DGtal::PointVector< 2, TInteger > Point
DGtal::PointVector< 2, double > RealVector
OutputIterator copyFP(OutputIterator result) const
Adapter * initConvexityConcavity(typename Adapter::DSS &aDSS)
DGtal::ArithmeticalDSSComputer< TIterator, TInteger, connectivity > DSSComputer
bool quadrant(const Vector &v, const int &q) const
BOOST_CONCEPT_ASSERT((concepts::CInteger< TInteger >))
const Polygon & polygon() const
std::list< Point > Polygon
std::string className() const
bool addingStep(Adapter *adapter, const typename Adapter::DSS::ConstIterator &itEnd)
RealPoint getRealPoint(const Point &a, const Point &b, const Point &c) const
bool removingStep(Adapter *adapter)
void addingStep(Adapter *adapter)
FP(const TIterator &itb, const TIterator &ite)
Polygon::size_type size() const
void selfDisplay(std::ostream &out) const
OutputIterator copyMLP(OutputIterator result) const
FP & operator=(const FP &other)
Aim: Implements basic operations that will be used in Point and Vector classes.
Aim: adapter for TDSS used by FP in CONCAVE parts. Has 2 methods:
TDSS::Point firstLeaningPoint() const
TDSS::Point lastLeaningPoint() const
DSSDecorator4ConcavePart(TDSS &aDSS)
bool isInConvexPart() const
Aim: adapter for TDSS used by FP in CONVEX parts. Has 2 methods:
bool isInConvexPart() const
TDSS::Point firstLeaningPoint() const
DSSDecorator4ConvexPart(TDSS &aDSS)
TDSS::Point lastLeaningPoint() const
Aim: Abstract DSSDecorator for ArithmeticalDSSComputer. Has 2 virtual methods returning the first and...
virtual bool isInConvexPart() const =0
bool isExtendableFront() const
virtual TDSS::Point firstLeaningPoint() const =0
virtual TDSS::Point lastLeaningPoint() const =0
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...