37 #ifndef VIGRA_IMAGEITERATORADAPTER_HXX
38 #define VIGRA_IMAGEITERATORADAPTER_HXX
75 template <
class IMAGE_ITERATOR>
85 typedef typename IMAGE_ITERATOR::value_type
PixelType;
89 typedef typename IMAGE_ITERATOR::reference
reference;
97 typedef typename IMAGE_ITERATOR::pointer
pointer;
121 IMAGE_ITERATOR::operator=(i);
130 IMAGE_ITERATOR::operator=(i);
187 IMAGE_ITERATOR ret(*
this);
195 IMAGE_ITERATOR ret(*
this);
203 return this->y - c.y;
224 return this->y < c.y;
231 return IMAGE_ITERATOR::operator*();
238 return IMAGE_ITERATOR::operator()(0, d);
245 return IMAGE_ITERATOR::operator->();
280 template <
class IMAGE_ITERATOR>
302 typedef typename IMAGE_ITERATOR::pointer
pointer;
326 IMAGE_ITERATOR::operator=(i);
335 IMAGE_ITERATOR::operator=(i);
392 IMAGE_ITERATOR ret(*
this);
400 IMAGE_ITERATOR ret(*
this);
408 return this->x - c.x;
429 return this->x < c.x;
436 return IMAGE_ITERATOR::operator*();
443 return IMAGE_ITERATOR::operator()(d, 0);
450 return IMAGE_ITERATOR::operator->();
478 template <
class IMAGE_ITERATOR>
496 typedef typename IMAGE_ITERATOR::pointer
pointer;
509 IMAGE_ITERATOR
const & end)
510 : IMAGE_ITERATOR(start), x_(0.0), y_(0.0)
512 int dx = end.x - start.x;
513 int dy = end.y - start.y;
514 int adx = (dx < 0) ? -dx : dx;
515 int ady = (dy < 0) ? -dy : dy;
516 int dd = (adx > ady) ? adx : ady;
519 dx_ = (double)dx / dd;
520 dy_ = (double)dy / dd;
521 if(adx > ady) y_ += dy_ / 2.0;
522 else x_ += dx_ / 2.0;
535 else if(x_ <= -1.0) {
544 else if(y_ <= -1.0) {
580 return IMAGE_ITERATOR::operator*();
587 return IMAGE_ITERATOR::operator->();
598 double x_, y_, dx_, dy_;
605 #endif // VIGRA_IMAGEITERATORADAPTER_HXX
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:85
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:250
LineIterator(IMAGE_ITERATOR const &start, IMAGE_ITERATOR const &end)
Definition: imageiteratoradapter.hxx:508
IMAGE_ITERATOR::index_reference index_reference
Definition: imageiteratoradapter.hxx:93
pointer operator->() const
Definition: imageiteratoradapter.hxx:243
reference operator*() const
Definition: imageiteratoradapter.hxx:229
int operator-(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:406
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:455
bool operator!=(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:420
Adaptee & adaptee() const
Definition: imageiteratoradapter.hxx:592
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:504
RowIterator(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:318
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:97
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:81
bool operator<(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:427
reference operator*() const
Definition: imageiteratoradapter.hxx:578
Iterator adapter to linearly access row.
Definition: imageiteratoradapter.hxx:281
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:484
reference operator*() const
Definition: imageiteratoradapter.hxx:434
std::random_access_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:310
RowIterator & operator=(RowIterator const &i)
Definition: imageiteratoradapter.hxx:324
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:294
IMAGE_ITERATOR::difference_type::MoveY difference_type
Definition: imageiteratoradapter.hxx:101
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:109
RowIterator & operator=(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:333
ColumnIterator & operator=(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:128
pointer operator->() const
Definition: imageiteratoradapter.hxx:448
bool operator!=(LineIterator const &c) const
Definition: imageiteratoradapter.hxx:571
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:290
bool operator!=(FFTWComplex< R > const &a, const FFTWComplex< R > &b)
not equal
Definition: fftw3.hxx:841
ColumnIterator operator-(int d) const
Definition: imageiteratoradapter.hxx:193
bool operator==(FFTWComplex< R > const &a, const FFTWComplex< R > &b)
equal
Definition: fftw3.hxx:825
IMAGE_ITERATOR Adaptee
Definition: imageiteratoradapter.hxx:314
ColumnIterator operator+(int d) const
Definition: imageiteratoradapter.hxx:185
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:496
ColumnIterator & operator=(ColumnIterator const &i)
Definition: imageiteratoradapter.hxx:119
int operator-(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:201
bool operator==(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:208
bool operator==(LineIterator const &c) const
Definition: imageiteratoradapter.hxx:564
IMAGE_ITERATOR::value_type value_type
Definition: imageiteratoradapter.hxx:286
Iterator adapter to linearly access columns.
Definition: imageiteratoradapter.hxx:76
ColumnIterator(IMAGE_ITERATOR const &i)
Definition: imageiteratoradapter.hxx:113
bool operator==(RowIterator const &c) const
Definition: imageiteratoradapter.hxx:413
IMAGE_ITERATOR::pointer pointer
Definition: imageiteratoradapter.hxx:302
IMAGE_ITERATOR::difference_type::MoveY difference_type
Definition: imageiteratoradapter.hxx:306
bool operator!=(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:215
index_reference operator[](int d) const
Definition: imageiteratoradapter.hxx:236
index_reference operator[](int d) const
Definition: imageiteratoradapter.hxx:441
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:492
bool operator<(ColumnIterator const &c) const
Definition: imageiteratoradapter.hxx:222
RowIterator operator-(int d) const
Definition: imageiteratoradapter.hxx:398
Iterator adapter to iterate along an arbitrary line on the image.
Definition: imageiteratoradapter.hxx:479
pointer operator->() const
Definition: imageiteratoradapter.hxx:585
IMAGE_ITERATOR::value_type PixelType
Definition: imageiteratoradapter.hxx:488
std::forward_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:500
IMAGE_ITERATOR::reference reference
Definition: imageiteratoradapter.hxx:89
std::random_access_iterator_tag iterator_category
Definition: imageiteratoradapter.hxx:105
IMAGE_ITERATOR::index_reference index_reference
Definition: imageiteratoradapter.hxx:298
RowIterator operator+(int d) const
Definition: imageiteratoradapter.hxx:390