2 #ifndef vgl_window_scan_iterator_h_ 3 #define vgl_window_scan_iterator_h_ 16 # include <vcl_msvc_warnings.h> 32 if (x1_ > x2_) { T x=x1_; x1_=x2_; x2_=x; }
33 x1 = (int) std::ceil (x1_);
34 x2 = (int) std::floor(x2_);
37 y1 = (int) std::ceil (y1_);
38 y2 = (int) std::floor(y2_);
41 y2 = (int) std::ceil (y2_);
42 y1 = (int) std::floor(y1_);
66 inline int startx()
const override {
return x1; }
67 inline int endx ()
const override {
return x2; }
70 #define VGL_WINDOW_SCAN_ITERATOR_INSTANTIATE(T) extern "please include <vgl/vgl_window_scan_iterator.hxx> instead" 72 #endif // vgl_window_scan_iterator_h_ Iterator to scan rectangular windows.
bool next() override
Tries to move to the next scan line.
void reset() override
Resets the scan iterator to before the first scan line.
vgl_window_scan_iterator()=default
makes uninitialized iterator.
int startx() const override
Returns starting x-value of the current scan line.
void set_window(T x, T y, T r)
Define rectangular region to be [x-r, x+r] x [y-r, y+r].
vgl_window_scan_iterator(T x1_, T y1_, T x2_, T y2_)
region is [x1, x2] x [y1, y2]. No assumption about x1<x2 or y1<y2.
void set_window_corners(T x1_, T y1_, T x2_, T y2_)
Define rectangular region to be [x1, x2] x [y1, y2].
int scany() const override
y-coordinate of the current scan line.
Abstract base class for iterating over the pixels in a region of an image.
void set_window(T x, T y, T w, T h)
Define rectangular region to be [x-w, x+w] x [y-h, y+h].
int endx() const override
Returns ending x-value of the current scan line.