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>
264 template <
typename OtherAccessor>
275 const typename AccessorType::AccessorData *local_data =
nullptr);
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;
473 typedef Accessor value_type;
474 typedef int difference_type;
475 typedef Accessor *pointer;
476 typedef Accessor &reference;
485 <<
"You tried to dereference a cell iterator for which this " 486 <<
"is not possible. More information on this iterator: " 487 <<
"level=" << arg1.level()
488 <<
", index=" << arg1.index()
492 "past_the_end" :
"invalid")));
499 <<
"You tried to dereference an iterator for which this " 500 <<
"is not possible. More information on this iterator: " 501 <<
"index=" << arg1.index()
505 "past_the_end" :
"invalid")));
534 template <
typename SomeAccessor>
friend class TriaIterator;
546 template <
typename Accessor>
580 const typename Accessor::AccessorData *local_data =
nullptr);
586 template <
typename OtherAccessor>
598 template <
typename OtherAccessor>
607 const typename Accessor::AccessorData *local_data);
614 template <
typename OtherAccessor>
621 template <
typename OtherAccessor>
641 template <
class OtherAccessor>
650 template <
class OtherAccessor>
692 typedef typename TriaRawIterator<Accessor>::value_type value_type;
693 typedef typename TriaRawIterator<Accessor>::pointer pointer;
694 typedef typename TriaRawIterator<Accessor>::reference reference;
695 typedef typename TriaRawIterator<Accessor>::difference_type difference_type;
713 template <
typename Accessor>
756 const typename Accessor::AccessorData *local_data = 0);
767 template <
typename OtherAccessor>
776 const typename Accessor::AccessorData *local_data);
785 template <
typename OtherAccessor>
812 template <
class OtherAccessor>
821 template <
class OtherAccessor>
830 template <
class OtherAccessor>
872 typedef typename TriaIterator<Accessor>::value_type value_type;
873 typedef typename TriaIterator<Accessor>::pointer pointer;
874 typedef typename TriaIterator<Accessor>::reference reference;
875 typedef typename TriaIterator<Accessor>::difference_type difference_type;
887 template <
typename Accessor>
897 template <
typename Accessor>
898 template <
typename OtherAccessor>
908 template <
typename Accessor>
909 template <
typename OtherAccessor>
914 accessor (i.accessor)
919 template <
typename Accessor>
920 template <
typename OtherAccessor>
925 accessor (i.accessor)
930 template <
typename Accessor>
931 template <
typename OtherAccessor>
936 accessor (i.accessor)
941 template <
typename Accessor>
946 Assert (Accessor::structure_dimension!=Accessor::dimension ||
948 ExcDereferenceInvalidCell(accessor));
949 Assert (Accessor::structure_dimension==Accessor::dimension ||
958 template <
typename Accessor>
963 Assert (Accessor::structure_dimension!=Accessor::dimension ||
965 ExcDereferenceInvalidCell(accessor));
966 Assert (Accessor::structure_dimension==Accessor::dimension ||
975 template <
typename Accessor>
985 template <
typename Accessor>
995 template <
typename Accessor>
1005 template <
typename Accessor>
1010 return accessor.state ();
1015 template <
typename Accessor>
1023 Assert (&accessor.get_triangulation() == &other.
accessor.get_triangulation(),
1024 ExcInvalidComparison());
1032 return ((**
this) < (*other));
1037 template <
typename Accessor>
1042 return (other < *
this);
1047 template <
typename Accessor>
1060 template <
typename Accessor>
1073 template <
typename Accessor>
1074 template <
class StreamType>
1079 if (Accessor::structure_dimension==Accessor::dimension)
1080 out << accessor.level() <<
"." << accessor.index();
1082 out << accessor.index();
1087 template <
typename Accessor>
1097 template <
typename Accessor>
1098 template <
typename OtherAccessor>
1107 template <
typename Accessor>
1108 template <
typename OtherAccessor>
1117 template <
typename Accessor>
1118 template <
typename OtherAccessor>
1137 template <
typename Accessor>
1138 template <
typename OtherAccessor>
1156 template <
typename Accessor>
1157 template <
typename OtherAccessor>
1166 template <
typename Accessor>
1167 template <
typename OtherAccessor>
1195 template <
typename Accessor>
1213 template <
typename Accessor>
1231 template <
typename Accessor>
1241 DEAL_II_NAMESPACE_CLOSE
1246 # 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()
static ::ExceptionBase & ExcDereferenceInvalidObject(AccessorType arg1)
const Accessor & operator*() const
static ::ExceptionBase & ExcAssignmentOfInactiveObject()
bool operator>(const TriaRawIterator &) const
std::bidirectional_iterator_tag iterator_category
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)
TriaRawIterator< Accessor >::iterator_category iterator_category
bool operator==(const TriaRawIterator &) const
bool operator!=(const TriaRawIterator &) const
TriaRawIterator & operator--()
static ::ExceptionBase & ExcAssignmentOfUnusedObject()
TriaActiveIterator< Accessor > & operator=(const TriaActiveIterator< Accessor > &)
TriaIterator< Accessor >::iterator_category iterator_category
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
bool operator<(const TriaRawIterator &) const
std::size_t memory_consumption() const