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