TriaAccessorBase< structdim, dim, spacedim > Class Template Reference
[Grid classesAccessor classes of the mesh iterators]

Inheritance diagram for TriaAccessorBase< structdim, dim, spacedim >:

Inheritance graph
[legend]

List of all members.

Public Types

typedef void * LocalData

Protected Types

typedef void AccessorData

Protected Member Functions

 TriaAccessorBase (const Triangulation< dim, spacedim > *parent=0, const int level=-1, const int index=-1, const AccessorData *=0)
void copy_from (const TriaAccessorBase &)
void operator= (const TriaAccessorBase *)
TriaAccessorBaseoperator= (const TriaAccessorBase &)
bool operator== (const TriaAccessorBase &) const
bool operator!= (const TriaAccessorBase &) const
internal::Triangulation::TriaObjects
< internal::Triangulation::TriaObject
< structdim > > & 
objects () const
Advancement of iterators
void operator++ ()
void operator-- ()

Protected Attributes

int present_index
const Triangulation< dim,
spacedim > * 
tria

Static Private Attributes

static const unsigned int space_dimension = spacedim
static const unsigned int dimension = dim
static const unsigned int structure_dimension = structdim

Friends

class TriaRawIterator
class TriaIterator
class TriaActiveIterator

Iterator address and state

static int level ()
int index () const
IteratorState::IteratorStates state () const
const Triangulation< dim,
spacedim > & 
get_triangulation () const


Detailed Description

template<int structdim, int dim, int spacedim = dim>
class TriaAccessorBase< structdim, dim, spacedim >

A base class for the accessor classes used by TriaRawIterator and derived classes.

This class offers only the basic functionality required by the iterators (stores the necessary data members, offers comparison operators and the like), but has no functionality to actually dereference data. This is done in the derived classes.

This template is used for faces and edges, which have no level in the triangulation hierarchy associated with them. There exists a partial specialization of the current class template where structdim (the dimensionality of the object represented, for example 1 for a line) equals dim (the dimensionality of the space the object lives in, for example 3 if we solve three-dimensional problems).

Some internals of this class are discussed in Iterator and accessor internals .

Author:
Wolfgang Bangerth, 1998

Member Typedef Documentation

template<int structdim, int dim, int spacedim = dim>
typedef void TriaAccessorBase< structdim, dim, spacedim >::AccessorData [protected]

template<int structdim, int dim, int spacedim = dim>
typedef void* TriaAccessorBase< structdim, dim, spacedim >::LocalData

Data type to be used for passing parameters from iterators to the accessor classes in a unified way, no matter what the type of number of these parameters is.


Constructor & Destructor Documentation

template<int structdim, int dim, int spacedim = dim>
TriaAccessorBase< structdim, dim, spacedim >::TriaAccessorBase ( const Triangulation< dim, spacedim > *  parent = 0,
const int  level = -1,
const int  index = -1,
const AccessorData = 0 
) [protected]

Constructor. Protected, thus only callable from friend classes.


Member Function Documentation

template<int structdim, int dim, int spacedim = dim>
void TriaAccessorBase< structdim, dim, spacedim >::copy_from ( const TriaAccessorBase< structdim, dim, spacedim > &   )  [protected]

Copy operator. Since this is only called from iterators, do not return anything, since the iterator will return itself.

This method is protected, since it is only to be called from the iterator class.

template<int structdim, int dim, int spacedim = dim>
void TriaAccessorBase< structdim, dim, spacedim >::operator= ( const TriaAccessorBase< structdim, dim, spacedim > *   )  [protected]

Copy operator. This is normally used in a context like iterator a,b; *a=*b;. Since the meaning is to copy the object pointed to by b to the object pointed to by a and since accessors are not real but virtual objects, this operation is not useful for iterators on triangulations. We declare this function here private, thus it may not be used from outside. Furthermore it is not implemented and will give a linker error if used anyway.

template<int structdim, int dim, int spacedim = dim>
TriaAccessorBase& TriaAccessorBase< structdim, dim, spacedim >::operator= ( const TriaAccessorBase< structdim, dim, spacedim > &   )  [protected]

Same as above.

template<int structdim, int dim, int spacedim = dim>
bool TriaAccessorBase< structdim, dim, spacedim >::operator== ( const TriaAccessorBase< structdim, dim, spacedim > &   )  const [protected]

Compare for equality.

template<int structdim, int dim, int spacedim = dim>
bool TriaAccessorBase< structdim, dim, spacedim >::operator!= ( const TriaAccessorBase< structdim, dim, spacedim > &   )  const [protected]

Compare for inequality.

template<int structdim, int dim, int spacedim = dim>
void TriaAccessorBase< structdim, dim, spacedim >::operator++ (  )  [protected]

This operator advances the iterator to the next element.

For dim=1 only: The next element is next on this level if there are more. If the present element is the last on this level, the first on the next level is accessed.

template<int structdim, int dim, int spacedim = dim>
void TriaAccessorBase< structdim, dim, spacedim >::operator-- (  )  [protected]

This operator moves the iterator to the previous element.

For dim=1 only: The previous element is previous on this level if index>0. If the present element is the first on this level, the last on the previous level is accessed.

template<int structdim, int dim, int spacedim = dim>
internal::Triangulation::TriaObjects<internal::Triangulation::TriaObject<structdim> >& TriaAccessorBase< structdim, dim, spacedim >::objects (  )  const [protected]

Access to the other objects of a Triangulation with same dimension.

template<int structdim, int dim, int spacedim = dim>
static int TriaAccessorBase< structdim, dim, spacedim >::level (  )  [static]

Return the level the element pointed to belongs to. This is only valid for cells.

template<int structdim, int dim, int spacedim = dim>
int TriaAccessorBase< structdim, dim, spacedim >::index (  )  const

Return the index of the element presently pointed to on the present level.

template<int structdim, int dim, int spacedim = dim>
IteratorState::IteratorStates TriaAccessorBase< structdim, dim, spacedim >::state (  )  const

Return the state of the iterator. For the different states an accessor can be in, refer to the TriaRawIterator documentation.

template<int structdim, int dim, int spacedim = dim>
const Triangulation<dim,spacedim>& TriaAccessorBase< structdim, dim, spacedim >::get_triangulation (  )  const

Return a pointer to the triangulation which the object pointed to by this class belongs to.


Friends And Related Function Documentation

template<int structdim, int dim, int spacedim = dim>
friend class TriaRawIterator [friend]

template<int structdim, int dim, int spacedim = dim>
friend class TriaIterator [friend]

template<int structdim, int dim, int spacedim = dim>
friend class TriaActiveIterator [friend]


Member Data Documentation

template<int structdim, int dim, int spacedim = dim>
int TriaAccessorBase< structdim, dim, spacedim >::present_index [protected]

Used to store the index of the element presently pointed to on the level presentl used.

template<int structdim, int dim, int spacedim = dim>
const Triangulation<dim,spacedim>* TriaAccessorBase< structdim, dim, spacedim >::tria [protected]

Pointer to the triangulation which we act on.

template<int structdim, int dim, int spacedim = dim>
const unsigned int TriaAccessorBase< structdim, dim, spacedim >::space_dimension = spacedim [static, private]

Space dimension of the Accessor

Reimplemented in DoFAccessor< structdim, DH >, DoFAccessor< DH::dimension, DH >, and DoFAccessor< dim, spacedim > >.

template<int structdim, int dim, int spacedim = dim>
const unsigned int TriaAccessorBase< structdim, dim, spacedim >::dimension = dim [static, private]

template<int structdim, int dim, int spacedim = dim>
const unsigned int TriaAccessorBase< structdim, dim, spacedim >::structure_dimension = structdim [static, private]


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

deal.II documentation generated on Sat Aug 15 16:52:28 2009 by doxygen 1.5.9