31 #if defined(TiledImage_RECURSES)
32 #error Recursive header files inclusion detected in TiledImage.h
33 #else // defined(TiledImage_RECURSES)
35 #define TiledImage_RECURSES
37 #if !defined TiledImage_h
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/ConceptUtils.h"
46 #include "DGtal/images/CImage.h"
47 #include "DGtal/images/CImageFactory.h"
48 #include "DGtal/images/CImageCacheReadPolicy.h"
49 #include "DGtal/images/CImageCacheWritePolicy.h"
50 #include "DGtal/base/Alias.h"
52 #include "DGtal/images/ImageCache.h"
54 #include "DGtal/base/TiledImageBidirectionalConstRangeFromPoint.h"
55 #include "DGtal/base/TiledImageBidirectionalRangeFromPoint.h"
75 template <
typename TImageContainer,
typename TImageFactory,
typename TImageCacheReadPolicy,
typename TImageCacheWritePolicy>
171 if (
this != &other )
212 Point lowerBoundCords, upperBoundCoords;
216 lowerBoundCords[i] = 0;
217 upperBoundCoords[i] =
myN;
220 upperBoundCoords[i]--;
223 return Domain(lowerBoundCords, upperBoundCoords);
233 std::iterator<std::bidirectional_iterator_tag, Value, ptrdiff_t, Value*, Value&>
505 for(i=0; i<Domain::dimension; i++)
517 for(i=0; i<Domain::dimension; i++)
576 return Range(
this );
609 for(i=0; i<Domain::dimension; i++)
615 for(i=0; i<Domain::dimension; i++)
618 dMax[i] = dMin[i] + (
mySize[i]-1);
641 for(i=0; i<Domain::dimension; i++)
665 for(i=0; i<Domain::dimension; i++)
668 dMax[i] = dMin[i] + (
mySize[i]-1);
816 template <
typename TImageContainer,
typename TImageFactory,
typename TImageCacheReadPolicy,
typename TImageCacheWritePolicy>
825 #include "DGtal/images/TiledImage.ih"
830 #endif // !defined TiledImage_h
832 #undef TiledImage_RECURSES
833 #endif // else defined(TiledImage_RECURSES)
ReverseOutputIterator routputIterator(const Point &aPoint)
ImageContainer::Value Value
TiledImageBidirectionalRangeFromPoint< TiledImage > Range
TImageContainer ImageContainer
Types copied from the container.
ConstIterator begin() const
bool write(const Point &aPoint, const Value &aValue)
Aim: Defines the concept describing a cache read policy.
TiledIterator & operator--()
void update(const Domain &aDomain)
Value operator()(const Point &aPoint) const
unsigned int getCacheMissWrite()
ConstReverseIterator rbegin() const
ReverseOutputIterator rbegin()
ReverseOutputIterator routputIterator()
void nextLexicographicOrder()
TImageCacheReadPolicy ImageCacheReadPolicy
ReverseOutputIterator rbegin(const Point &aPoint)
void clearCacheAndResetCacheMisses()
TImageFactory ImageFactory
Types.
OutputIterator outputIterator(const Point &aPoint)
TiledImage< TImageContainer, TImageFactory, TImageCacheReadPolicy, TImageCacheWritePolicy > Self
bool operator!=(const TiledIterator &it) const
ImageFactory * myImageFactory
ImageFactory pointer.
ImageContainer::Difference Difference
TiledIterator & operator++()
void prevLexicographicOrder()
ReverseTiledIterator ConstReverseIterator
Point m_lowerBound
domain lower and upper bound
TImageCacheReadPolicy * myReadPolicy
TImageCacheReadPolicy pointer.
Aim: model of CConstBidirectionalRangeFromPoint that adapts a TiledImage range of elements bounded by...
DGtal::uint32_t Dimension
std::reverse_iterator< TiledIterator > ReverseTiledIterator
bool operator==(const TiledIterator &it) const
const TiledImage * myTiledImage
TiledImage pointer.
TiledIterator(BlockCoordsIterator aBlockCoordsIterator, const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > *aTiledImage)
TiledIterator OutputIterator
ImageContainer::Point Point
Domain::Iterator BlockCoordsIterator
Domain::Integer myN
Number of tiles per dimension.
ImageCache< OutputImage, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > MyImageCache
ReverseTiledIterator ReverseOutputIterator
ConstReverseIterator rend() const
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
const Domain findSubDomainFromBlockCoords(const Point &aCoord) const
TiledImage & operator=(const TiledImage &other)
BOOST_CONCEPT_ASSERT((concepts::CImage< TImageContainer >))
Checking concepts.
TImageCacheWritePolicy ImageCacheWritePolicy
unsigned int getCacheMissRead()
const Domain & domain() const
BlockCoordsIterator myBlockCoordsIterator
Current block coords iterator.
ImageContainer::Range::Iterator TiledRangeIterator
DGtal is the top-level namespace which contains all DGtal functions and types.
ConstReverseIterator rend()
OutputIterator begin(const Point &aPoint)
void setValue(const Point &aPoint, const Value &aValue)
TiledImage(const TiledImage &other)
unsigned int getCacheMissWrite()
unsigned int getCacheMissRead()
ConstRange constRange() const
Aim: model of CBidirectionalRangeFromPoint that adapts a TiledImage range of elements bounded by two ...
const Point findBlockCoordsFromPoint(const Point &aPoint) const
ImageContainer * findTileFromBlockCoords(const Point &aCoord) const
Point mySize
Width of a tile (for each dimension)
void clearCacheAndResetCacheMisses()
ImageContainer * myTile
Alias on the current tile.
OutputIterator outputIterator()
const Domain domainBlockCoords() const
ConstIterator begin(const Point &aPoint) const
TImageCacheWritePolicy * myWritePolicy
TImageCacheWritePolicy pointer.
TiledImage(Alias< ImageFactory > anImageFactory, Alias< ImageCacheReadPolicy > aReadPolicy, Alias< ImageCacheWritePolicy > aWritePolicy, typename Domain::Integer N)
Iterator for HyperRectDomain.
TiledIterator(BlockCoordsIterator aBlockCoordsIterator, const Point &aPoint, const TiledImage< ImageContainer, ImageFactory, ImageCacheReadPolicy, ImageCacheWritePolicy > *aTiledImage)
ConstReverseIterator rbegin(const Point &aPoint) const
ImageContainer::Domain Domain
MyImageCache * myImageCache
ImageCache pointer.
ImageFactory::OutputImage OutputImage
TiledIterator ConstIterator
TiledImageBidirectionalConstRangeFromPoint< TiledImage > ConstRange
ImageContainer * getPage(const Domain &aDomain) const
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Aim: implements an images cache with 'read and write' policies.
Aim: Defines the concept describing an image factory.
Aim: implements a tiled image from a "bigger/original" one from an ImageFactory.
ImageContainerBySTLVector< HyperRectDomain< Z2i::Space >, std::unordered_set< Z2i::Point > > TImageContainer
TiledRangeIterator myTiledRangeIterator
Current tiled range iterator.
SimpleRandomAccessRangeFromPoint< ConstIterator, Iterator, DistanceFunctorFromPoint< Self > > Range
Aim: Defines the concept describing a cache write policy.
std::vector< Value >::difference_type Difference
ConstIterator end() const
void selfDisplay(std::ostream &out) const
const Domain findSubDomain(const Point &aPoint) const
bool read(const Point &aPoint, Value &aValue) const
Aim: Defines the concept describing a read/write image, having an output iterator.