libMesh
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libMesh::Elem::SideIter Class Reference

The definition of the protected nested SideIter class. More...

#include <elem.h>

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 2707 of file elem.h.

Constructor & Destructor Documentation

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

Definition at line 2711 of file elem.h.

2713  : _side(),
2715  _parent(parent),
2716  _side_number(side_number)
2717  {}
const Elem * parent() const
Definition: elem.h:2346
const class libmesh_nullptr_t libmesh_nullptr
unsigned int _side_number
Definition: elem.h:2811
UniquePtr< Elem > _side
Definition: elem.h:2796
libMesh::Elem::SideIter::SideIter ( )

Definition at line 2721 of file elem.h.

2722  : _side(),
2726  {}
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value.
Definition: libmesh.h:184
const class libmesh_nullptr_t libmesh_nullptr
unsigned int _side_number
Definition: elem.h:2811
UniquePtr< Elem > _side
Definition: elem.h:2796
libMesh::Elem::SideIter::SideIter ( const SideIter other)

Definition at line 2730 of file elem.h.

2731  : _side(),
2733  _parent(other._parent),
2734  _side_number(other._side_number)
2735  {}
const class libmesh_nullptr_t libmesh_nullptr
unsigned int _side_number
Definition: elem.h:2811
UniquePtr< Elem > _side
Definition: elem.h:2796

Member Function Documentation

void libMesh::Elem::SideIter::_update_side_ptr ( ) const
private

Definition at line 2784 of file elem.h.

2785  {
2786  // Construct new side, store in UniquePtr
2787  this->_side = this->_parent->build_side_ptr(this->_side_number);
2788 
2789  // Also set our internal naked pointer. Memory is still owned
2790  // by the UniquePtr.
2791  this->_side_ptr = _side.get();
2792  }
virtual UniquePtr< Elem > build_side_ptr(const unsigned int i, bool proxy=true)=0
unsigned int _side_number
Definition: elem.h:2811
UniquePtr< Elem > _side
Definition: elem.h:2796
Elem*& libMesh::Elem::SideIter::operator* ( ) const

Definition at line 2747 of file elem.h.

2748  {
2749  // Set the UniquePtr
2750  this->_update_side_ptr();
2751 
2752  // Return a reference to _side_ptr
2753  return this->_side_ptr;
2754  }
void _update_side_ptr() const
Definition: elem.h:2784
SideIter& libMesh::Elem::SideIter::operator++ ( )

Definition at line 2757 of file elem.h.

2758  {
2759  ++_side_number;
2760  return *this;
2761  }
unsigned int _side_number
Definition: elem.h:2811
SideIter& libMesh::Elem::SideIter::operator= ( const SideIter other)

Definition at line 2739 of file elem.h.

References _parent, and _side_number.

2740  {
2741  this->_parent = other._parent;
2742  this->_side_number = other._side_number;
2743  return *this;
2744  }
unsigned int _side_number
Definition: elem.h:2811
bool libMesh::Elem::SideIter::operator== ( const SideIter other) const

Definition at line 2765 of file elem.h.

References _parent, and _side_number.

2766  {
2767  return (this->_side_number == other._side_number &&
2768  this->_parent == other._parent);
2769  }
unsigned int _side_number
Definition: elem.h:2811
bool libMesh::Elem::SideIter::side_on_boundary ( ) const

Definition at line 2776 of file elem.h.

References libmesh_nullptr.

2777  {
2779  }
const class libmesh_nullptr_t libmesh_nullptr
unsigned int _side_number
Definition: elem.h:2811
const Elem * neighbor_ptr(unsigned int i) const
Definition: elem.h:1967

Member Data Documentation

Elem* libMesh::Elem::SideIter::_parent
private

Definition at line 2808 of file elem.h.

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

UniquePtr<Elem> libMesh::Elem::SideIter::_side
mutableprivate

Definition at line 2796 of file elem.h.

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

Definition at line 2811 of file elem.h.

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

Elem* libMesh::Elem::SideIter::_side_ptr
mutableprivate

Definition at line 2805 of file elem.h.


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