Loading [MathJax]/extensions/TeX/AMSsymbols.js
DGtal 2.0.0
TiledImageBidirectionalRangeFromPoint.h
1
16
17#pragma once
18
32
33#if defined(TiledImageBidirectionalRangeFromPoint_RECURSES)
34#error Recursive header files inclusion detected in TiledImageBidirectionalRangeFromPoint.h
35#else // defined(TiledImageBidirectionalRangeFromPoint_RECURSES)
37#define TiledImageBidirectionalRangeFromPoint_RECURSES
38
39#if !defined TiledImageBidirectionalRangeFromPoint_h
41#define TiledImageBidirectionalRangeFromPoint_h
42
44// Inclusions
45#include "DGtal/base/BasicFunctors.h"
46#include "DGtal/base/Circulator.h"
47#include "DGtal/base/IteratorAdapter.h"
48#include "DGtal/base/CBidirectionalRangeFromPoint.h"
49#include "boost/concept_check.hpp"
50#include "boost/iterator/reverse_iterator.hpp"
52
53namespace DGtal
54{
55
56
58 // class TiledImageBidirectionalRangeFromPoint
60
70 template <typename TTiledImage>
71
73 {
74
77
78 // ------------------------- inner types --------------------------------
79
80 public:
81
82 typedef TTiledImage TiledImage;
83
84 typedef typename TiledImage::Point Point;
85
88
89 typedef boost::reverse_iterator<Iterator> ReverseIterator;
90 typedef boost::reverse_iterator<ConstIterator> ConstReverseIterator;
91
93 typedef boost::reverse_iterator<Iterator> ReverseOutputIterator;
94
95 // typedef Circulator<Iterator> Circulator;
96 // typedef boost::reverse_iterator<Circulator> ReverseCirculator;
97
98 // ------------------------- standard services --------------------------------
99
106
113
120 {
121 if ( this != &other )
122 {
123 myti = other.myti;
124 }
125
126 return *this;
127 }
128
133
138 bool isValid() const
139 {
140 return true;
141 }
142
143 // ------------------------- display --------------------------------
148 void selfDisplay ( std::ostream & out ) const
149 {
151 out << "[TiledImageBidirectionalRangeFromPoint]" << std::endl;
152 out << "\t";
153 std::copy ( myti->begin(), myti->end(), std::ostream_iterator<Value> ( out, ", " ) );
154 out << std::endl;
155 }
156
160 std::string className() const
161 {
162 return "TiledImageBidirectionalRangeFromPoint";
163 }
164
165
166 // ------------------------- private data --------------------------------
167
168 private:
169
170 const TTiledImage *myti;
171
172 // ------------------------- iterator services --------------------------------
173
174 public:
175
181 {
182 return Iterator ( myti->begin() );
183 }
184
191 {
192 return Iterator ( myti->begin(aPoint) );
193 }
194
200 {
201 return ConstIterator ( myti->begin() );
202 }
203
210 {
211 return ConstIterator ( myti->begin(aPoint) );
212 }
213
219 {
220 return Iterator ( myti->end() );
221 }
222
228 {
229 return ConstIterator ( myti->end() );
230 }
231
237 {
238 return OutputIterator ( myti->begin() );
239 }
240
247 {
248 return OutputIterator ( myti->begin(aPoint) );
249 }
250
256 {
257 return ReverseOutputIterator ( myti->begin() );
258 }
259
266 {
267 return ReverseOutputIterator ( myti->begin(aPoint) );
268 }
269
275 {
276 return ReverseIterator ( this->end() );
277 }
278
284 ReverseIterator rbegin ( const Point &aPoint )
285 {
286 return ReverseIterator ( myti->rbegin(aPoint) );
287 }
288
294 {
295 return ReverseIterator ( this->begin() );
296 }
297
302 ConstReverseIterator rbegin() const
303 {
304 return ConstReverseIterator ( this->end() );
305 }
306
312 ConstReverseIterator rbegin ( const Point &aPoint ) const
313 {
314 return ConstReverseIterator ( myti->rbegin(aPoint) );
315 }
316
322 {
323 return ConstReverseIterator ( this->begin() );
324 }
325
326 // /**
327 // * Circulator service.
328 // * @return a circulator
329 // */
330 // Circulator c() const
331 // {
332 // return Circulator ( this->begin(), this->begin(), this->end() );
333 // }
334
335 // /**
336 // * Circulator service.
337 // * @return a reverse circulator
338 // */
339 // ReverseCirculator rc() const
340 // {
341 // return ReverseCirculator ( this->c() );
342 // }
343
344 }; //end class TiledImageBidirectionalRangeFromPoint
345
346} // namespace DGtal
347
349
350
351#endif // !defined TiledImageBidirectionalRangeFromPoint_h
352
353#undef TiledImageBidirectionalRangeFromPoint_RECURSES
354#endif // else defined(TiledImageBidirectionalRangeFromPoint_RECURSES)
TiledImageBidirectionalRangeFromPoint & operator=(const TiledImageBidirectionalRangeFromPoint &other)
BOOST_CONCEPT_ASSERT((boost::BidirectionalIterator< typename TTiledImage::OutputIterator >))
boost::reverse_iterator< ConstIterator > ConstReverseIterator
BOOST_CONCEPT_ASSERT((boost::BidirectionalIterator< typename TTiledImage::ConstIterator >))
TiledImageBidirectionalRangeFromPoint(const TiledImageBidirectionalRangeFromPoint &other)
ConstReverseIterator rbegin(const Point &aPoint) const
TiledIterator ConstIterator
Definition TiledImage.h:451
ImageContainer::Point Point
Definition TiledImage.h:95
TiledIterator OutputIterator
Definition TiledImage.h:452
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)