Loading [MathJax]/extensions/TeX/AMSsymbols.js
DGtal 2.0.0
TiledImageBidirectionalConstRangeFromPoint.h
1
16
17#pragma once
18
32
33#if defined(TiledImageBidirectionalConstRangeFromPoint_RECURSES)
34#error Recursive header files inclusion detected in TiledImageBidirectionalConstRangeFromPoint.h
35#else // defined(TiledImageBidirectionalConstRangeFromPoint_RECURSES)
37#define TiledImageBidirectionalConstRangeFromPoint_RECURSES
38
39#if !defined TiledImageBidirectionalConstRangeFromPoint_h
41#define TiledImageBidirectionalConstRangeFromPoint_h
42
44// Inclusions
45#include "DGtal/base/BasicFunctors.h"
46#include "DGtal/base/Circulator.h"
47#include "DGtal/base/ConstIteratorAdapter.h"
48#include "DGtal/base/CConstBidirectionalRangeFromPoint.h"
49#include "boost/concept_check.hpp"
50#include "boost/iterator/reverse_iterator.hpp"
52
53namespace DGtal
54{
55
56
58 // class TiledImageBidirectionalConstRangeFromPoint
60
70 template <typename TTiledImage>
71
73 {
74
76
77 // ------------------------- inner types --------------------------------
78
79 public:
80
81 typedef TTiledImage TiledImage;
82
83 typedef typename TiledImage::Point Point;
84
86 typedef boost::reverse_iterator<ConstIterator> ConstReverseIterator;
87
89 typedef boost::reverse_iterator<ConstCirculator> ConstReverseCirculator;
90
91 // ------------------------- standard services --------------------------------
92
99
106
113 {
114 if ( this != &other )
115 {
116 myti = other.myti;
117 }
118
119 return *this;
120 }
121
126
131 bool isValid() const
132 {
133 return true;
134 }
135
136 // ------------------------- display --------------------------------
141 void selfDisplay ( std::ostream & out ) const
142 {
144 out << "[TiledImageBidirectionalConstRangeFromPoint]" << std::endl;
145 out << "\t";
146 std::copy ( myti->begin(), myti->end(), std::ostream_iterator<Value> ( out, ", " ) );
147 out << std::endl;
148 }
149
153 std::string className() const
154 {
155 return "TiledImageBidirectionalConstRangeFromPoint";
156 }
157
158
159 // ------------------------- private data --------------------------------
160
161 private:
162
163 const TTiledImage *myti;
164
165 // ------------------------- iterator services --------------------------------
166
167 public:
168
174 {
175 return ConstIterator ( myti->begin() );
176 }
177
183 {
184 return ConstIterator ( myti->begin(aPoint) );
185 }
186
192 {
193 return ConstIterator ( myti->end() );
194 }
195
201 {
202 return ConstReverseIterator ( this->end() );
203 }
204
209 ConstReverseIterator rbegin ( const Point &aPoint ) const
210 {
211 return ConstReverseIterator ( myti->rbegin(aPoint) );
212 }
213
219 {
220 return ConstReverseIterator ( this->begin() );
221 }
222
227 ConstCirculator c() const
228 {
229 return ConstCirculator ( this->begin(), this->begin(), this->end() );
230 }
231
236 ConstReverseCirculator rc() const
237 {
238 return ConstReverseCirculator ( this->c() );
239 }
240
241 }; //end class TiledImageBidirectionalConstRangeFromPoint
242
243} // namespace DGtal
244
246
247
248#endif // !defined TiledImageBidirectionalConstRangeFromPoint_h
249
250#undef TiledImageBidirectionalConstRangeFromPoint_RECURSES
251#endif // else defined(TiledImageBidirectionalConstRangeFromPoint_RECURSES)
Aim: Provides an adapter for classical iterators that can iterate through the underlying data structu...
Definition Circulator.h:86
TiledImageBidirectionalConstRangeFromPoint(const TiledImageBidirectionalConstRangeFromPoint &other)
TiledImageBidirectionalConstRangeFromPoint & operator=(const TiledImageBidirectionalConstRangeFromPoint &other)
BOOST_CONCEPT_ASSERT((boost::BidirectionalIterator< typename TTiledImage::ConstIterator >))
TiledIterator ConstIterator
Definition TiledImage.h:451
ImageContainer::Point Point
Definition TiledImage.h:95
DGtal is the top-level namespace which contains all DGtal functions and types.
Go to http://www.sgi.com/tech/stl/BidirectionalIterator.html.
Definition Boost.dox:42
const Point aPoint(3, 4)