Field3D
WritableField< Data_T >::iterator Class Reference

#include <Field.h>

Public Member Functions

 iterator (WritableField< Data_T > &field, const Box3i &window, const V3i &currentPos)
template<class Iter_T>
bool operator!= (const Iter_T &rhs) const
Data_T & operator* () const
const iteratoroperator++ ()
template<class Iter_T>
bool operator== (const Iter_T &rhs) const

Public Attributes

int x
 Current position.
int y
int z

Private Attributes

WritableField< Data_T > & m_field
 Reference to field being iterated over.
Box3i m_window
 Window to traverse.

Detailed Description

template<class Data_T>
class WritableField< Data_T >::iterator

Definition at line 703 of file Field.h.

Constructor & Destructor Documentation

◆ iterator()

template<class Data_T>
WritableField< Data_T >::iterator::iterator ( WritableField< Data_T > & field,
const Box3i & window,
const V3i & currentPos )
inline

Definition at line 717 of file Field.h.

719 : x(currentPos.x), y(currentPos.y), z(currentPos.z),
721 { }
Box3i m_window
Window to traverse.
Definition Field.h:769
int x
Current position.
Definition Field.h:762
WritableField< Data_T > & m_field
Reference to field being iterated over.
Definition Field.h:771

References m_field, m_window, x, y, and z.

Referenced by operator++().

Member Function Documentation

◆ operator++()

template<class Data_T>
const iterator & WritableField< Data_T >::iterator::operator++ ( )
inline

Definition at line 725 of file Field.h.

726 {
727 if (x == m_window.max.x) {
728 if (y == m_window.max.y) {
729 x = m_window.min.x;
730 y = m_window.min.y;
731 ++z;
732 } else {
733 x = m_window.min.x;
734 ++y;
735 }
736 } else {
737 ++x;
738 }
739 return *this;
740 }

References iterator(), m_window, x, y, and z.

◆ operator==()

template<class Data_T>
template<class Iter_T>
bool WritableField< Data_T >::iterator::operator== ( const Iter_T & rhs) const
inline

Definition at line 743 of file Field.h.

744 {
745 return x == rhs.x && y == rhs.y && z == rhs.z;
746 }

References x, y, and z.

◆ operator!=()

template<class Data_T>
template<class Iter_T>
bool WritableField< Data_T >::iterator::operator!= ( const Iter_T & rhs) const
inline

Definition at line 749 of file Field.h.

750 {
751 return x != rhs.x || y != rhs.y || z != rhs.z;
752 }

References x, y, and z.

◆ operator*()

template<class Data_T>
Data_T & WritableField< Data_T >::iterator::operator* ( ) const
inline

Definition at line 754 of file Field.h.

755 {
756 return m_field.lvalue(x, y, z);
757 }

References m_field, x, y, and z.

Member Data Documentation

◆ x

template<class Data_T>
int WritableField< Data_T >::iterator::x

Current position.

Definition at line 762 of file Field.h.

Referenced by iterator(), operator!=(), operator*(), operator++(), and operator==().

◆ y

template<class Data_T>
int WritableField< Data_T >::iterator::y

Definition at line 762 of file Field.h.

Referenced by iterator(), operator!=(), operator*(), operator++(), and operator==().

◆ z

template<class Data_T>
int WritableField< Data_T >::iterator::z

Definition at line 762 of file Field.h.

Referenced by iterator(), operator!=(), operator*(), operator++(), and operator==().

◆ m_window

template<class Data_T>
Box3i WritableField< Data_T >::iterator::m_window
private

Window to traverse.

Definition at line 769 of file Field.h.

Referenced by iterator(), and operator++().

◆ m_field

template<class Data_T>
WritableField<Data_T>& WritableField< Data_T >::iterator::m_field
private

Reference to field being iterated over.

Definition at line 771 of file Field.h.

Referenced by iterator(), and operator*().


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