33 #if defined(COBANaivePlaneComputer_RECURSES)
34 #error Recursive header files inclusion detected in COBANaivePlaneComputer.h
37 #define COBANaivePlaneComputer_RECURSES
39 #if !defined COBANaivePlaneComputer_h
41 #define COBANaivePlaneComputer_h
47 #include "DGtal/base/Common.h"
48 #include "DGtal/kernel/CInteger.h"
49 #include "DGtal/kernel/CSpace.h"
50 #include "DGtal/kernel/SpaceND.h"
51 #include "DGtal/kernel/PointVector.h"
52 #include "DGtal/arithmetic/IntegerComputer.h"
53 #include "DGtal/arithmetic/LatticePolytope2D.h"
54 #include "DGtal/geometry/surfaces/ParallelStrip.h"
127 template <
typename TSpace,
128 typename TInternalInteger >
141 typedef typename PointSet::size_type
Size;
352 template <
typename TInputIterator>
353 bool extend( TInputIterator it, TInputIterator itE );
369 template <
typename TInputIterator>
396 template <
typename Vector3D>
410 template <
typename Vector3D>
510 template <
typename TInputIterator>
530 template <
typename TInputIterator>
562 template <
typename TSpace,
typename TInternalInteger>
571 #include "DGtal/geometry/surfaces/COBANaivePlaneComputer.ih"
578 #undef COBANaivePlaneComputer_RECURSES
Aim: A class that contains the COBA algorithm (Emilie Charrier, Lilian Buzer, DGCI2008) for recognizi...
SpaceND< 2, InternalInteger > InternalSpace2
PointSet::const_pointer const_pointer
bool extendAsIs(const Point &p)
PointSet::size_type size_type
void computeGradient(InternalPoint2 &grad, const State &state) const
bool operator()(const Point &p) const
void init(Dimension axis, InternalInteger diameter, InternalInteger widthNumerator=NumberTraits< InternalInteger >::ONE, InternalInteger widthDenominator=NumberTraits< InternalInteger >::ONE)
bool checkPlaneWidth(const State &state) const
void getBounds(double &min, double &max) const
BOOST_STATIC_ASSERT((TSpace::dimension==3))
ParallelStrip< Space, true, true > Primitive
COBANaivePlaneComputer & operator=(const COBANaivePlaneComputer &other)
PointSet::iterator Iterator
void selfDisplay(std::ostream &out) const
void getNormal(Vector3D &normal) const
PointSet::const_iterator ConstIterator
MyIntegerComputer & ic() const
~COBANaivePlaneComputer()
void computeCentroidAndNormal(State &state) const
InternalSpace2::Point InternalPoint2
PointVector< 3, InternalInteger > InternalPoint3
void computeMinMax(State &state, TInputIterator itB, TInputIterator itE) const
ConstIterator end() const
PointVector< 3, InternalInteger > IntegerVector3
std::set< Point > PointSet
const Point & maximalPoint() const
PointSet::const_iterator const_iterator
Primitive primitive() const
ConstIterator begin() const
PointSet::difference_type difference_type
BOOST_CONCEPT_ASSERT((concepts::CInteger< TInternalInteger >))
PointSet::value_type value_type
bool extend(TInputIterator it, TInputIterator itE)
PointSet::const_reference const_reference
void getUnitNormal(Vector3D &normal) const
bool isExtendable(TInputIterator it, TInputIterator itE) const
COBANaivePlaneComputer(const COBANaivePlaneComputer &other)
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
LatticePolytope2D< InternalSpace2 > ConvexPolygonZ2
ConvexPolygonZ2::HalfSpace HalfSpace
TInternalInteger InternalInteger
bool updateMinMax(State &state, TInputIterator itB, TInputIterator itE) const
bool isExtendable(const Point &p) const
const IntegerVector3 & exactNormal() const
void doubleCut(InternalPoint2 &grad, State &state) const
bool extend(const Point &p)
const Point & minimalPoint() const
IntegerComputer< InternalInteger > MyIntegerComputer
Aim: This class gathers several types and methods to make computation with integers.
Aim: A parallel strip in the space is the intersection of two parallel half-planes such that each hal...
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
DGtal::uint32_t Dimension
Aim: A half-space specified by a vector N and a constant c. The half-space is the set .
Aim: The traits class for all models of Cinteger.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.