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 *) |
TriaAccessorBase & | operator= (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 |
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 .
typedef void TriaAccessorBase< structdim, dim, spacedim >::AccessorData [protected] |
Declare the data type that this accessor class expects to get passed from the iterator classes. Since the pure triangulation iterators need no additional data, this data type is void
.
Reimplemented in DoFAccessor< structdim, DH >, DoFCellAccessor< DH >, InvalidAccessor< structdim, dim, spacedim >, TriaAccessor< structdim, dim, spacedim >, TriaAccessor< 0, dim, spacedim >, CellAccessor< dim, spacedim >, MGDoFAccessor< structdim, dim, spacedim >, MGDoFCellAccessor< dim, spacedim >, DoFAccessor< DH::dimension, DH >, DoFAccessor< dim, spacedim > >, TriaAccessor< dim, dim, spacedim >, TriaAccessor< celldim, dim, spacedim >, and MGDoFAccessor< dim, dim, spacedim >.
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.
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.
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.
Reimplemented in DoFAccessor< structdim, DH >, InvalidAccessor< structdim, dim, spacedim >, and MGDoFAccessor< structdim, dim, spacedim >.
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.
TriaAccessorBase& TriaAccessorBase< structdim, dim, spacedim >::operator= | ( | const TriaAccessorBase< structdim, dim, spacedim > & | ) | [protected] |
Same as above.
Reimplemented in DoFAccessor< structdim, DH >, TriaAccessor< structdim, dim, spacedim >, CellAccessor< dim, spacedim >, and MGDoFAccessor< structdim, dim, spacedim >.
bool TriaAccessorBase< structdim, dim, spacedim >::operator== | ( | const TriaAccessorBase< structdim, dim, spacedim > & | ) | const [protected] |
Compare for equality.
Reimplemented in DoFAccessor< structdim, DH >, and InvalidAccessor< structdim, dim, spacedim >.
bool TriaAccessorBase< structdim, dim, spacedim >::operator!= | ( | const TriaAccessorBase< structdim, dim, spacedim > & | ) | const [protected] |
Compare for inequality.
Reimplemented in DoFAccessor< structdim, DH >, and InvalidAccessor< structdim, dim, spacedim >.
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.
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.
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.
static int TriaAccessorBase< structdim, dim, spacedim >::level | ( | ) | [static] |
Return the level the element pointed to belongs to. This is only valid for cells.
int TriaAccessorBase< structdim, dim, spacedim >::index | ( | ) | const |
Return the index of the element presently pointed to on the present level.
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.
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.
friend class TriaRawIterator [friend] |
Reimplemented in DoFAccessor< structdim, DH >, DoFAccessor< DH::dimension, DH >, and DoFAccessor< dim, spacedim > >.
friend class TriaIterator [friend] |
friend class TriaActiveIterator [friend] |
int TriaAccessorBase< structdim, dim, spacedim >::present_index [protected] |
Used to store the index of the element presently pointed to on the level presentl used.
const Triangulation<dim,spacedim>* TriaAccessorBase< structdim, dim, spacedim >::tria [protected] |
Pointer to the triangulation which we act on.
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 > >.
const unsigned int TriaAccessorBase< structdim, dim, spacedim >::dimension = dim [static, private] |
Reimplemented in DoFAccessor< structdim, DH >, DoFAccessor< DH::dimension, DH >, and DoFAccessor< dim, spacedim > >.
const unsigned int TriaAccessorBase< structdim, dim, spacedim >::structure_dimension = structdim [static, private] |