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