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
49 #include "DGtal/base/Common.h"
50 #include "DGtal/base/CountedPtr.h"
51 #include "DGtal/images/ImageContainerBySTLVector.h"
52 #include "DGtal/images/CImage.h"
53 #include "DGtal/kernel/CPointPredicate.h"
54 #include "DGtal/kernel/domains/HyperRectDomain.h"
55 #include "DGtal/geometry/volumes/distance/CSeparableMetric.h"
56 #include "DGtal/kernel/domains/HyperRectDomain.h"
57 #include "DGtal/base/ConstAlias.h"
119 template <
typename TSpace,
120 typename TPointPredicate,
121 typename TSeparableMetric,
123 ImageContainerBySTLVector<HyperRectDomain<TSpace>,
422 template <
typename S,
typename P,
423 typename Sep,
typename TI>
433 #include "DGtal/geometry/volumes/distance/VoronoiMap.ih"
438 #endif // !defined VoronoiMap_h
440 #undef VoronoiMap_RECURSES
441 #endif // else defined(VoronoiMap_RECURSES)
const SeparableMetric * metric() const
DGtal::Dimension Dimension
Copy of the type used for the dimension.
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Aim: model of CConstBidirectionalRangeFromPoint that adapts any range of elements bounded by two iter...
Aim: Implementation of the linear in time Voronoi map construction.
Point myLowerBoundCopy
Copy of the image lower bound.
Component Coordinate
Type for Point elements.
Vector Value
Definition of the image value type.
const SeparableMetric * myMetricPtr
Pointer to the separable metric instance.
Space::Point::Coordinate Abscissa
ConstRange constRange() const
DGtal::uint32_t Dimension
ConstRange constRange() const
size_t Size
Type used to represent sizes in the digital space.
Point myInfinity
Value to act as a +infinity value.
VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer > Self
Self type.
const PeriodicitySpec & getPeriodicitySpec() const
unsigned int dim(const Vector &z)
TImageContainer OutputImage
Type of resulting image.
TSpace Space
Copy of the space type.
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
Point::Coordinate projectCoordinate(typename Point::Coordinate aCoordinate, const Dimension aDim) const
const Domain & domain() const
PeriodicitySpec myPeriodicitySpec
Periodicity along each dimension.
Point projectPoint(Point aPoint) const
OutputImage::ConstRange ConstRange
Definition of the image value type.
Value operator()(const Point &aPoint) const
TSeparableMetric SeparableMetric
Definition of the separable metric type.
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
Self & operator=(const Self &aOtherVoronoiMap)=default
const Domain * myDomainPtr
Pointer to the computation domain.
CountedPtr< OutputImage > myImagePtr
Voronoi map image.
DGtal is the top-level namespace which contains all DGtal functions and types.
void selfDisplay(std::ostream &out) const
void computeOtherStep1D(const Point &row, const Dimension dim) const
const PointPredicate * myPointPredicatePtr
Pointer to the point predicate.
std::array< bool, Space::dimension > PeriodicitySpec
Periodicity specification type.
TPointPredicate PointPredicate
Copy of the point predicate type.
DGtal::int64_t IntegerLong
Large integer type for SeparableMetricHelper construction.
BOOST_STATIC_ASSERT((boost::is_same< typename TSpace::Point, typename TPointPredicate::Point >::value))
Both Space points and PointPredicate points must be the same.
FreemanChain< int >::Vector Vector
Point myUpperBoundCopy
Copy of the image lower bound.
void computeOtherSteps(const Dimension dim) const
Space::Dimension Dimension
bool isPeriodic(const Dimension n) const
Aim: Defines a predicate on a point.
boost::int64_t int64_t
signed 94-bit integer.
Point myDomainExtent
Domain extent.
TImageContainer::Domain Domain
Definition of the underlying domain type.
std::vector< Dimension > myPeriodicityIndex
Index of the periodic dimensions.
Aim: defines the concept of separable metrics.
Aim: Defines the concept describing a read/write image, having an output iterator.