37 #ifndef VIGRA_IMAGEITERATORADAPTER_HXX
38 #define VIGRA_IMAGEITERATORADAPTER_HXX
76 template <
class IMAGE_ITERATOR>
86 typedef typename IMAGE_ITERATOR::value_type
PixelType;
90 typedef typename IMAGE_ITERATOR::reference
reference;
98 typedef typename IMAGE_ITERATOR::pointer
pointer;
122 IMAGE_ITERATOR::operator=(i);
131 IMAGE_ITERATOR::operator=(i);
188 IMAGE_ITERATOR ret(*
this);
196 IMAGE_ITERATOR ret(*
this);
204 return this->y - c.y;
225 return this->y < c.y;
232 return IMAGE_ITERATOR::operator*();
239 return IMAGE_ITERATOR::operator()(0, d);
246 return IMAGE_ITERATOR::operator->();
282 template <
class IMAGE_ITERATOR>
304 typedef typename IMAGE_ITERATOR::pointer
pointer;
328 IMAGE_ITERATOR::operator=(i);
337 IMAGE_ITERATOR::operator=(i);
394 IMAGE_ITERATOR ret(*
this);
402 IMAGE_ITERATOR ret(*
this);
410 return this->x - c.x;
431 return this->x < c.x;
438 return IMAGE_ITERATOR::operator*();
445 return IMAGE_ITERATOR::operator()(d, 0);
452 return IMAGE_ITERATOR::operator->();
481 template <
class IMAGE_ITERATOR>
499 typedef typename IMAGE_ITERATOR::pointer
pointer;
512 IMAGE_ITERATOR
const & end)
513 : IMAGE_ITERATOR(start), x_(0.0), y_(0.0)
515 int dx = end.x - start.x;
516 int dy = end.y - start.y;
517 int adx = (dx < 0) ? -dx : dx;
518 int ady = (dy < 0) ? -dy : dy;
519 int dd = (adx > ady) ? adx : ady;
522 dx_ = (double)dx / dd;
523 dy_ = (double)dy / dd;
524 if(adx > ady) y_ += dy_ / 2.0;
525 else x_ += dx_ / 2.0;
538 else if(x_ <= -1.0) {
547 else if(y_ <= -1.0) {
583 return IMAGE_ITERATOR::operator*();
590 return IMAGE_ITERATOR::operator->();
601 double x_, y_, dx_, dy_;
608 #endif // VIGRA_IMAGEITERATORADAPTER_HXX
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:86
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:251
LineIterator(IMAGE_ITERATOR const &start, IMAGE_ITERATOR const &end)
Definition: imageiteratoradapter.hxx:511
IMAGE_ITERATOR::index_reference index_reference
Definition: imageiteratoradapter.hxx:94
pointer operator->() const
Definition: imageiteratoradapter.hxx:244
reference operator*() const
Definition: imageiteratoradapter.hxx:230
int operator-(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:408
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:457
bool operator!=(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:422
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:595
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:507
RowIterator(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:320
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:98
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:82
bool operator<(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:429
reference operator*() const
Definition: imageiteratoradapter.hxx:581
Iterator adapter to linearly access row.
Definition: imageiteratoradapter.hxx:283
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:487
reference operator*() const
Definition: imageiteratoradapter.hxx:436
std::random_access_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:312
RowIterator & operator=(RowIterator const &i)
Definition: imageiteratoradapter.hxx:326
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:296
IMAGE_ITERATOR::difference_type::MoveY difference_type
Definition: imageiteratoradapter.hxx:102
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:110
RowIterator & operator=(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:335
ColumnIterator & operator=(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:129
pointer operator->() const
Definition: imageiteratoradapter.hxx:450
bool operator!=(LineIterator const &c) const
Definition: imageiteratoradapter.hxx:574
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:292
bool operator!=(FFTWComplex< R > const &a, const FFTWComplex< R > &b)
not equal
Definition: fftw3.hxx:841
ColumnIterator operator-(int d) const
Definition: imageiteratoradapter.hxx:194
bool operator==(FFTWComplex< R > const &a, const FFTWComplex< R > &b)
equal
Definition: fftw3.hxx:825
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:316
ColumnIterator operator+(int d) const
Definition: imageiteratoradapter.hxx:186
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:499
ColumnIterator & operator=(ColumnIterator const &i)
Definition: imageiteratoradapter.hxx:120
int operator-(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:202
bool operator==(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:209
bool operator==(LineIterator const &c) const
Definition: imageiteratoradapter.hxx:567
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:288
Iterator adapter to linearly access columns.
Definition: imageiteratoradapter.hxx:77
ColumnIterator(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:114
bool operator==(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:415
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:304
IMAGE_ITERATOR::difference_type::MoveY difference_type
Definition: imageiteratoradapter.hxx:308
bool operator!=(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:216
index_reference operator[](int d) const
Definition: imageiteratoradapter.hxx:237
index_reference operator[](int d) const
Definition: imageiteratoradapter.hxx:443
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:495
bool operator<(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:223
RowIterator operator-(int d) const
Definition: imageiteratoradapter.hxx:400
Iterator adapter to iterate along an arbitrary line on the image.
Definition: imageiteratoradapter.hxx:482
pointer operator->() const
Definition: imageiteratoradapter.hxx:588
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:491
std::forward_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:503
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:90
std::random_access_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:106
IMAGE_ITERATOR::index_reference index_reference
Definition: imageiteratoradapter.hxx:300
RowIterator operator+(int d) const
Definition: imageiteratoradapter.hxx:392