00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef IMG_EXTENT_ITERATOR_H
00028 #define IMG_EXTENT_ITERATOR_H
00029
00030 #include "point.hh"
00031 #include "data.hh"
00032
00033 namespace ost { namespace img {
00034
00035 class Extent;
00036
00038
00052 class DLLEXPORT_OST_IMG_BASE ExtentIterator {
00053 public:
00055 explicit ExtentIterator(const Extent& b, unsigned int domain=SPATIAL);
00056
00058 ExtentIterator(const ExtentIterator &i);
00059
00061 ExtentIterator& operator=(const ExtentIterator& p);
00062
00064 ExtentIterator& operator++();
00065
00067 ExtentIterator operator++(int);
00068
00070 ExtentIterator& operator--();
00071
00073 ExtentIterator operator--(int);
00074
00076 void Inc();
00077
00079 void Dec();
00080
00082 ExtentIterator& ToStart();
00083
00085 ExtentIterator& ToEnd();
00086
00088 Extent GetExtent() const;
00089
00091 const Point &GetStart() const;
00092
00094 const Point &GetEnd() const;
00095
00097 bool AtEnd() const;
00098
00100 bool AtStart() const;
00101
00103 int operator[](int i) const;
00104
00105 operator Point() const;
00106
00107 private:
00108 Point start_, end_, current_,startpos_;
00109 };
00110
00111 }}
00112
00113 #endif