$extrastylesheet
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

UniquePtr< Elem_side
Elem_side_ptr
Elem_parent
unsigned int _side_number

Detailed Description

The definition of the protected nested SideIter class.

Definition at line 2032 of file elem.h.


Constructor & Destructor Documentation

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

Definition at line 2036 of file elem.h.

    : _side(),
      _side_ptr(NULL),
      _parent(parent),
      _side_number(side_number)
  {}

Definition at line 2046 of file elem.h.

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

Definition at line 2055 of file elem.h.

    : _side(),
      _side_ptr(NULL),
      _parent(other._parent),
      _side_number(other._side_number)
  {}

Member Function Documentation

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

Definition at line 2109 of file elem.h.

References _parent, _side, _side_number, _side_ptr, and libMesh::Elem::build_side().

Referenced by operator*().

  {
    // Construct new side, store in UniquePtr
    this->_side = this->_parent->build_side(this->_side_number);

    // Also set our internal naked pointer.  Memory is still owned
    // by the UniquePtr.
    this->_side_ptr = _side.get();
  }
Elem*& libMesh::Elem::SideIter::operator* ( ) const [inline]

Definition at line 2072 of file elem.h.

References _side_ptr, and _update_side_ptr().

  {
    // Set the UniquePtr
    this->_update_side_ptr();

    // Return a reference to _side_ptr
    return this->_side_ptr;
  }
SideIter& libMesh::Elem::SideIter::operator++ ( ) [inline]

Definition at line 2082 of file elem.h.

References _side_number.

  {
    ++_side_number;
    return *this;
  }
SideIter& libMesh::Elem::SideIter::operator= ( const SideIter other) [inline]

Definition at line 2064 of file elem.h.

References _parent, and _side_number.

  {
    this->_parent      = other._parent;
    this->_side_number = other._side_number;
    return *this;
  }
bool libMesh::Elem::SideIter::operator== ( const SideIter other) const [inline]

Definition at line 2090 of file elem.h.

References _parent, and _side_number.

  {
    return (this->_side_number == other._side_number &&
            this->_parent      == other._parent);
  }

Definition at line 2101 of file elem.h.

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

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

Member Data Documentation

Definition at line 2133 of file elem.h.

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

UniquePtr<Elem> libMesh::Elem::SideIter::_side [mutable, private]

Definition at line 2121 of file elem.h.

Referenced by _update_side_ptr().

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

Definition at line 2136 of file elem.h.

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

Definition at line 2130 of file elem.h.

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


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