31#if defined(SpatialCubicalSubdivision_RECURSES)
32#error Recursive header files inclusion detected in SpatialCubicalSubdivision.h
35#define SpatialCubicalSubdivision_RECURSES
37#if !defined SpatialCubicalSubdivision_h
39#define SpatialCubicalSubdivision_h
45#include "DGtal/base/Common.h"
46#include "DGtal/base/Clone.h"
47#include "DGtal/images/ImageContainerBySTLVector.h"
71 template <
typename TSpace>
150 template <
typename Po
intConstIterator>
151 void push( PointConstIterator it, PointConstIterator itE );
163 template <
typename Po
intPredicate>
165 Point bin_lo,
Point bin_up,
const PointPredicate & pred )
const;
231 template <
typename TSpace>
240#include "DGtal/geometry/tools/SpatialCubicalSubdivision.ih"
247#undef SpatialCubicalSubdivision_RECURSES
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Component Coordinate
Type for Point elements.
Aim: model of CConstBidirectionalRangeFromPoint that adapts any range of elements bounded by two iter...
Aim: This class is a data structure that subdivides a rectangular domains into cubical domains of siz...
void selfDisplay(std::ostream &out) const
Point::Coordinate Coordinate
Point uppermost(Point b) const
void getPoints(std::vector< Point > &pts, Point bin_lo, Point bin_up) const
Point myDiag
a precomputed point to improve performance of uppermost() method.
Coordinate mySize
the edge size of each bin.
std::vector< Point > Storage
~SpatialCubicalSubdivision()
SpatialCubicalSubdivision & operator=(const SpatialCubicalSubdivision &other)
const Domain & domain() const
void push(const Point &p)
SpatialCubicalSubdivision(const SpatialCubicalSubdivision &other)
StorageArray::ConstRange BinConstRange
HyperRectDomain< Space > Domain
void getPoints(std::vector< Point > &pts, Point bin_lo, Point bin_up, const PointPredicate &pred) const
SpatialCubicalSubdivision(Point lo, Point up, Coordinate size)
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
ImageContainerBySTLVector< Domain, Storage * > StorageArray
const Domain & binDomain() const
Point lowest(Point b) const
Domain myDomain
the rectangular domain representing the useful points of the space.
void push(PointConstIterator it, PointConstIterator itE)
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.