libMesh::Elem::SideIter Class Reference

#include <elem.h>

List of all members.

Public Member Functions

 SideIter (const unsigned int side_number, Elem *parent)
 SideIter ()
 SideIter (const SideIter &other)
SideIteroperator= (const SideIter &other)
Elem *& operator* () const
SideIteroperator++ ()
bool operator== (const SideIter &other) const
bool side_on_boundary () const

Private Member Functions

void _update_side_ptr () const

Private Attributes

AutoPtr< Elem_side
Elem_side_ptr
Elem_parent
unsigned int _side_number

Detailed Description

The definition of the protected nested SideIter class.

Definition at line 2203 of file elem.h.


Constructor & Destructor Documentation

libMesh::Elem::SideIter::SideIter ( const unsigned int  side_number,
Elem parent 
) [inline]

Definition at line 2207 of file elem.h.

02209     : _side(),
02210       _side_ptr(NULL),
02211       _parent(parent),
02212       _side_number(side_number)
02213   {}

libMesh::Elem::SideIter::SideIter (  )  [inline]

Definition at line 2217 of file elem.h.

02218     : _side(),
02219       _side_ptr(NULL),
02220       _parent(NULL),
02221       _side_number(libMesh::invalid_uint)
02222   {}

libMesh::Elem::SideIter::SideIter ( const SideIter other  )  [inline]

Definition at line 2226 of file elem.h.

02227     : _side(),
02228       _side_ptr(NULL),
02229       _parent(other._parent),
02230       _side_number(other._side_number)
02231   {}


Member Function Documentation

void libMesh::Elem::SideIter::_update_side_ptr (  )  const [inline, private]

Definition at line 2280 of file elem.h.

References _parent, _side, _side_number, _side_ptr, libMesh::Elem::build_side(), and libMesh::AutoPtr< Tp >::get().

Referenced by operator*().

02281   {
02282     // Construct new side, store in AutoPtr
02283     this->_side = this->_parent->build_side(this->_side_number);
02284 
02285     // Also set our internal naked pointer.  Memory is still owned
02286     // by the AutoPtr.
02287     this->_side_ptr = _side.get();
02288   }

Elem*& libMesh::Elem::SideIter::operator* (  )  const [inline]

Definition at line 2243 of file elem.h.

References _side_ptr, and _update_side_ptr().

02244   {
02245     // Set the AutoPtr
02246     this->_update_side_ptr();
02247 
02248     // Return a reference to _side_ptr
02249     return this->_side_ptr;
02250   }

SideIter& libMesh::Elem::SideIter::operator++ (  )  [inline]

Definition at line 2253 of file elem.h.

References _side_number.

02254   {
02255     ++_side_number;
02256     return *this;
02257   }

SideIter& libMesh::Elem::SideIter::operator= ( const SideIter other  )  [inline]

Definition at line 2235 of file elem.h.

References _parent, and _side_number.

02236   {
02237     this->_parent      = other._parent;
02238     this->_side_number = other._side_number;
02239     return *this;
02240   }

bool libMesh::Elem::SideIter::operator== ( const SideIter other  )  const [inline]

Definition at line 2261 of file elem.h.

References _parent, and _side_number.

02262   {
02263     return (this->_side_number == other._side_number &&
02264             this->_parent      == other._parent);
02265   }

bool libMesh::Elem::SideIter::side_on_boundary (  )  const [inline]

Definition at line 2272 of file elem.h.

References _parent, _side_number, and libMesh::Elem::neighbor().

02273   {
02274     return this->_parent->neighbor(_side_number) == NULL;
02275   }


Member Data Documentation

Definition at line 2304 of file elem.h.

Referenced by _update_side_ptr(), operator=(), operator==(), and side_on_boundary().

Definition at line 2292 of file elem.h.

Referenced by _update_side_ptr().

unsigned int libMesh::Elem::SideIter::_side_number [private]

Definition at line 2307 of file elem.h.

Referenced by _update_side_ptr(), operator++(), operator=(), operator==(), and side_on_boundary().

Definition at line 2301 of file elem.h.

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


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

Site Created By: libMesh Developers
Last modified: February 05 2013 19:55:17 UTC

Hosted By:
SourceForge.net Logo