16 #ifndef dealii__tria_iterator_h 17 #define dealii__tria_iterator_h 23 #include <deal.II/base/config.h> 24 #include <deal.II/base/exceptions.h> 26 #include <deal.II/base/point.h> 27 #include <deal.II/grid/tria_iterator_base.h> 33 DEAL_II_NAMESPACE_OPEN
224 template <
typename Accessor>
225 class TriaRawIterator :
public std::iterator<std::bidirectional_iterator_tag,Accessor>
264 template <
typename OtherAccessor>
275 const typename AccessorType::AccessorData *local_data = 0);
286 template <
typename OtherAccessor>
295 const typename Accessor::AccessorData *local_data);
301 template <
typename OtherAccessor>
308 template <
typename OtherAccessor>
457 template <
class StreamType>
458 void print (StreamType &out)
const;
475 <<
"You tried to dereference a cell iterator for which this " 476 <<
"is not possible. More information on this iterator: " 477 <<
"level=" << arg1.level()
478 <<
", index=" << arg1.index()
482 "past_the_end" :
"invalid")));
490 <<
"You tried to dereference an iterator for which this " 491 <<
"is not possible. More information on this iterator: " 492 <<
"index=" << arg1.index()
496 "past_the_end" :
"invalid")));
525 template <
typename SomeAccessor>
friend class TriaIterator;
537 template <
typename Accessor>
571 const typename Accessor::AccessorData *local_data = 0);
577 template <
typename OtherAccessor>
589 template <
typename OtherAccessor>
598 const typename Accessor::AccessorData *local_data);
605 template <
typename OtherAccessor>
612 template <
typename OtherAccessor>
632 template <
class OtherAccessor>
641 template <
class OtherAccessor>
693 template <
typename Accessor>
736 const typename Accessor::AccessorData *local_data = 0);
747 template <
typename OtherAccessor>
756 const typename Accessor::AccessorData *local_data);
765 template <
typename OtherAccessor>
792 template <
class OtherAccessor>
801 template <
class OtherAccessor>
810 template <
class OtherAccessor>
856 template <
typename Accessor>
866 template <
typename Accessor>
867 template <
typename OtherAccessor>
877 template <
typename Accessor>
878 template <
typename OtherAccessor>
883 accessor (i.accessor)
888 template <
typename Accessor>
889 template <
typename OtherAccessor>
894 accessor (i.accessor)
899 template <
typename Accessor>
900 template <
typename OtherAccessor>
905 accessor (i.accessor)
910 template <
typename Accessor>
915 Assert (Accessor::structure_dimension!=Accessor::dimension ||
917 ExcDereferenceInvalidCell(accessor));
918 Assert (Accessor::structure_dimension==Accessor::dimension ||
927 template <
typename Accessor>
932 Assert (Accessor::structure_dimension!=Accessor::dimension ||
934 ExcDereferenceInvalidCell(accessor));
935 Assert (Accessor::structure_dimension==Accessor::dimension ||
944 template <
typename Accessor>
954 template <
typename Accessor>
964 template <
typename Accessor>
974 template <
typename Accessor>
979 return accessor.state ();
984 template <
typename Accessor>
992 Assert (&accessor.get_triangulation() == &other.
accessor.get_triangulation(),
993 ExcInvalidComparison());
1001 return ((**
this) < (*other));
1006 template <
typename Accessor>
1011 return (other < *
this);
1016 template <
typename Accessor>
1029 template <
typename Accessor>
1042 template <
typename Accessor>
1043 template <
class StreamType>
1048 if (Accessor::structure_dimension==Accessor::dimension)
1049 out << accessor.level() <<
"." << accessor.index();
1051 out << accessor.index();
1056 template <
typename Accessor>
1066 template <
typename Accessor>
1067 template <
typename OtherAccessor>
1076 template <
typename Accessor>
1077 template <
typename OtherAccessor>
1086 template <
typename Accessor>
1087 template <
typename OtherAccessor>
1106 template <
typename Accessor>
1107 template <
typename OtherAccessor>
1125 template <
typename Accessor>
1126 template <
typename OtherAccessor>
1135 template <
typename Accessor>
1136 template <
typename OtherAccessor>
1164 template <
typename Accessor>
1182 template <
typename Accessor>
1200 template <
typename Accessor>
1210 DEAL_II_NAMESPACE_CLOSE
1215 # include "tria_iterator.templates.h"
Iterator is invalid, probably due to an error.
TriaActiveIterator< Accessor > & operator++()
const Accessor * operator->() const
static ::ExceptionBase & ExcInvalidComparison()
static ::ExceptionBase & ExcAdvanceInvalidObject()
const Accessor & operator*() const
static ::ExceptionBase & ExcAssignmentOfInactiveObject()
bool operator>(const TriaRawIterator &) const
TriaIterator< Accessor > & operator++()
#define DeclException1(Exception1, type1, outsequence)
TriaActiveIterator< Accessor > & operator--()
#define Assert(cond, exc)
TriaRawIterator & operator++()
#define DeclException0(Exception0)
TriaIterator< Accessor > & operator--()
static ::ExceptionBase & ExcDereferenceInvalidObject(Accessor arg1)
bool operator==(const TriaRawIterator &) const
bool operator!=(const TriaRawIterator &) const
TriaRawIterator & operator--()
static ::ExceptionBase & ExcAssignmentOfUnusedObject()
TriaActiveIterator< Accessor > & operator=(const TriaActiveIterator< Accessor > &)
OutputOperator< VectorType > & operator<<(OutputOperator< VectorType > &out, unsigned int step)
static ::ExceptionBase & ExcDereferenceInvalidCell(Accessor arg1)
TriaRawIterator & operator=(const TriaRawIterator &)
Iterator reached end of container.
const Accessor & access_any() const
Iterator points to a valid object.
TriaIterator< Accessor > & operator=(const TriaIterator< Accessor > &)
void print(StreamType &out) const
IteratorState::IteratorStates state() const
Point< dim, typename ProductType< Number, typename EnableIfScalar< OtherNumber >::type >::type > operator*(const OtherNumber) const
static ::ExceptionBase & ExcDereferenceInvalidObject()
bool operator<(const TriaRawIterator &) const
std::size_t memory_consumption() const