34 #if defined(VoronoiMap_RECURSES)
35 #error Recursive header files inclusion detected in VoronoiMap.h
36 #else // defined(VoronoiMap_RECURSES)
38 #define VoronoiMap_RECURSES
40 #if !defined VoronoiMap_h
48 #include "DGtal/base/Common.h"
49 #include "DGtal/base/CountedPtr.h"
50 #include "DGtal/images/ImageContainerBySTLVector.h"
51 #include "DGtal/kernel/CPointPredicate.h"
52 #include "DGtal/kernel/domains/HyperRectDomain.h"
53 #include "DGtal/geometry/volumes/distance/CSeparableMetric.h"
54 #include "DGtal/kernel/domains/HyperRectDomain.h"
55 #include "DGtal/base/ConstAlias.h"
106 template <
typename TSpace,
107 typename TPointPredicate,
108 typename TSeparableMetric,
109 typename TImageContainer =
110 ImageContainerBySTLVector<HyperRectDomain<TSpace>,
111 typename TSpace::Vector>
123 typename TPointPredicate::Point >::value ));
127 typename TImageContainer::Domain::Space >::value ));
131 typename TImageContainer::Value >::value ));
135 typename TImageContainer::Domain >::value ));
144 typedef typename TImageContainer::Domain
Domain;
168 TSeparableMetric,TImageContainer>
Self;
207 Self &
operator=(
const Self &aOtherVoronoiMap );
282 const Dimension dim)
const;
328 template <
typename S,
typename P,
329 typename Sep,
typename TI>
331 operator<< ( std::ostream & out, const VoronoiMap<S,P,Sep,TI> & object );
339 #include "DGtal/geometry/volumes/distance/VoronoiMap.ih"
344 #endif // !defined VoronoiMap_h
346 #undef VoronoiMap_RECURSES
347 #endif // else defined(VoronoiMap_RECURSES)
Aim: Implementation of the linear in time Voronoi map construction.
Point myLowerBoundCopy
Copy of the image lower bound.
Component Coordinate
Type for Point elements.
Value operator()(const Point &aPoint) const
TSeparableMetric SeparableMetric
Definition of the separable metric type.
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
void computeOtherSteps(const Dimension dim) const
const SeparableMetric * metric() const
OutputImage::ConstRange ConstRange
Definition of the image value type.
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
void computeOtherStep1D(const Point &row, const Dimension dim) const
const SeparableMetric * myMetricPtr
Pointer to the separable metric instance.
Point myUpperBoundCopy
Copy of the image lower bound.
Space::Point::Coordinate Abscissa
const Domain * myDomainPtr
Pointer to the computation domain.
Point myInfinity
Value to act as a +infinity value.
Self & operator=(const Self &aOtherVoronoiMap)
PointVector< dim, Integer > Vector
Vectors in DGtal::SpaceND.
DGtal::Dimension Dimension
Copy of the type used for the dimension.
BOOST_STATIC_ASSERT((boost::is_same< typename TSpace::Point, typename TPointPredicate::Point >::value))
Both Space points and PointPredicate points must be the same.
DGtal::int64_t IntegerLong
Large integer type for SeparableMetricHelper construction.
Aim: Defines a predicate on a point.
TImageContainer OutputImage
Type of resulting image.
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines...
VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer > Self
Self type.
TSpace Space
Copy of the space type.
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
TPointPredicate PointPredicate
Copy of the point predicate type.
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: defines the concept of separable metrics.
UnsignedInteger Size
Type used to represent sizes in the digital space.
void selfDisplay(std::ostream &out) const
Vector Value
Definition of the image value type.
const Domain & domain() const
CountedPtr< OutputImage > myImagePtr
Voronoi map image.
PointVector< dim, Integer > Point
Points in DGtal::SpaceND.
const PointPredicate * myPointPredicatePtr
Pointer to the point predicate.
TImageContainer::Domain Domain
Definition of the underlying domain type.
boost::int64_t int64_t
signed 94-bit integer.
ConstRange constRange() const
Space::Dimension Dimension