Field3D
DenseField< Data_T >::const_iterator Class Reference

#include <DenseField.h>

List of all members.

Public Types

typedef DenseField< Data_T > class_type

Public Member Functions

 const_iterator (const class_type &field, const Box3i &window, const V3i &currentPos)
template<class Iter_T >
bool operator!= (const Iter_T &rhs) const
const Data_T & operator* () const
const const_iteratoroperator++ ()
const Data_T * operator-> () const
template<class Iter_T >
bool operator== (const Iter_T &rhs) const

Public Attributes

int x
 Current position.
int y
int z

Private Attributes

const class_typem_field
 Reference to field being iterated over.
const Data_T * m_p
 Pointer to current element.
Box3i m_window
 Window to traverse.

Detailed Description

template<class Data_T>
class DenseField< Data_T >::const_iterator

Definition at line 248 of file DenseField.h.


Member Typedef Documentation

template<class Data_T>
typedef DenseField<Data_T> DenseField< Data_T >::const_iterator::class_type

Definition at line 254 of file DenseField.h.


Constructor & Destructor Documentation

template<class Data_T>
DenseField< Data_T >::const_iterator::const_iterator ( const class_type field,
const Box3i window,
const V3i currentPos 
) [inline]

Definition at line 258 of file DenseField.h.

    : x(currentPos.x), y(currentPos.y), z(currentPos.z), 
      m_window(window), m_field(field)
  { m_p = m_field.ptr(x, y, z); }

Member Function Documentation

template<class Data_T>
const const_iterator& DenseField< Data_T >::const_iterator::operator++ ( ) [inline]

Definition at line 266 of file DenseField.h.

  {
    if (x == m_window.max.x) {
      if (y == m_window.max.y) {
        m_p = m_field.ptr(x = m_window.min.x, y = m_window.min.y, ++z);
      } else {
        m_p = m_field.ptr(x = m_window.min.x, ++y, z);
      }
    } else {
      ++x;
      ++m_p;
    }
    return *this;
  }
template<class Data_T>
template<class Iter_T >
bool DenseField< Data_T >::const_iterator::operator== ( const Iter_T &  rhs) const [inline]

Definition at line 282 of file DenseField.h.

  {
    return m_p == &(*rhs);
  }
template<class Data_T>
template<class Iter_T >
bool DenseField< Data_T >::const_iterator::operator!= ( const Iter_T &  rhs) const [inline]

Definition at line 288 of file DenseField.h.

  {
    return m_p != &(*rhs);
  }
template<class Data_T>
const Data_T& DenseField< Data_T >::const_iterator::operator* ( ) const [inline]

Definition at line 293 of file DenseField.h.

  {
    return *m_p;
  }
template<class Data_T>
const Data_T* DenseField< Data_T >::const_iterator::operator-> ( ) const [inline]

Definition at line 298 of file DenseField.h.

  {
    return m_p;
  }

Member Data Documentation

template<class Data_T>
int DenseField< Data_T >::const_iterator::x

Current position.

Definition at line 306 of file DenseField.h.

template<class Data_T>
int DenseField< Data_T >::const_iterator::y

Definition at line 306 of file DenseField.h.

template<class Data_T>
int DenseField< Data_T >::const_iterator::z

Definition at line 306 of file DenseField.h.

template<class Data_T>
const Data_T* DenseField< Data_T >::const_iterator::m_p [private]

Pointer to current element.

Definition at line 313 of file DenseField.h.

template<class Data_T>
Box3i DenseField< Data_T >::const_iterator::m_window [private]

Window to traverse.

Definition at line 315 of file DenseField.h.

template<class Data_T>
const class_type& DenseField< Data_T >::const_iterator::m_field [private]

Reference to field being iterated over.

Definition at line 317 of file DenseField.h.


The documentation for this class was generated from the following file: