Field3D
MACField::const_mac_comp_iterator Class Reference

#include <MACField.h>

List of all members.

Public Types

typedef MACField< Data_T > class_type
typedef MACField< Data_T >::real_t real_t

Public Member Functions

 const_mac_comp_iterator (MACComponent comp, const class_type &field, const Box3i &window, const V3i &currentPos)
template<class Iter_T >
bool operator!= (const Iter_T &rhs) const
const real_toperator* () const
const const_mac_comp_iteratoroperator++ ()
const real_toperator-> () const
template<class Iter_T >
bool operator== (const Iter_T &rhs) const

Public Attributes

int x
 Current position.
int y
int z

Private Member Functions

void updatePointer ()

Private Attributes

MACComponent m_comp
 Component to look up.
const class_typem_field
 Reference to field being iterated over.
const real_tm_p
 Pointer to current element.
Box3i m_window
 Window to traverse.

Member Typedef Documentation

Definition at line 366 of file MACField.h.

Definition at line 367 of file MACField.h.


Constructor & Destructor Documentation

MACField::const_mac_comp_iterator::const_mac_comp_iterator ( MACComponent  comp,
const class_type field,
const Box3i window,
const V3i currentPos 
) [inline]

Definition at line 371 of file MACField.h.

    : x(currentPos.x), y(currentPos.y), z(currentPos.z), 
      m_p(NULL), m_window(window), m_comp(comp), 
      m_field(field)
  { 
    updatePointer();
  }

Member Function Documentation

const const_mac_comp_iterator& MACField::const_mac_comp_iterator::operator++ ( ) [inline]

Definition at line 384 of file MACField.h.

References x.

  {
    if (x == m_window.max.x) {
      if (y == m_window.max.y) {
        x = m_window.min.x; 
        y = m_window.min.y; 
        ++z;
      } else {
        x = m_window.min.x; 
        ++y;
      }
      updatePointer();
    } else {
      ++x;
      ++m_p;
    }
    return *this;
  }
template<class Iter_T >
bool MACField::const_mac_comp_iterator::operator== ( const Iter_T &  rhs) const [inline]

Definition at line 404 of file MACField.h.

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

Definition at line 410 of file MACField.h.

  {
    return m_p != &(*rhs);
  }
const real_t& MACField::const_mac_comp_iterator::operator* ( ) const [inline]

Definition at line 415 of file MACField.h.

  {
    return *m_p;
  }
const real_t* MACField::const_mac_comp_iterator::operator-> ( ) const [inline]

Definition at line 420 of file MACField.h.

  {
    return m_p;
  }
void MACField::const_mac_comp_iterator::updatePointer ( ) [inline, private]

Definition at line 434 of file MACField.h.

References MACCompU, MACCompV, and MACCompW.

  {
    switch (m_comp) {
    case MACCompU:
      m_p = m_field.uPtr(x, y, z);
      break;
    case MACCompV:
      m_p = m_field.vPtr(x, y, z);
      break;
    case MACCompW:
      m_p = m_field.wPtr(x, y, z);
      break;
    default:
      assert(false && "Illegal MACComponent in const_mac_comp_iterator");
    }    
  }

Member Data Documentation

Current position.

Definition at line 428 of file MACField.h.

Referenced by operator++().

Definition at line 428 of file MACField.h.

Definition at line 428 of file MACField.h.

Pointer to current element.

Definition at line 454 of file MACField.h.

Window to traverse.

Definition at line 456 of file MACField.h.

Component to look up.

Definition at line 458 of file MACField.h.

Reference to field being iterated over.

Definition at line 460 of file MACField.h.


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