16 #ifndef dealii_tria_iterator_h
17 #define dealii_tria_iterator_h
34 template <
int dim,
int spacedim>
37 template <
int,
int,
int>
226 template <
typename Accessor>
266 template <
typename OtherAccessor>
278 const typename AccessorType::AccessorData *local_data =
nullptr);
289 template <
typename OtherAccessor>
300 Accessor::space_dimension> &tria_accessor,
301 const typename Accessor::AccessorData *local_data);
307 template <
typename OtherAccessor>
314 template <
typename OtherAccessor>
377 template <
typename OtherAccessor = Accessor>
378 std::enable_if_t<std::is_convertible_v<OtherAccessor, Accessor>,
bool>
477 template <
typename StreamType>
479 print(StreamType &out)
const;
509 <<
"You tried to dereference a cell iterator for which this "
510 <<
"is not possible. More information on this iterator: "
511 <<
"level=" << arg1.level() <<
", index=" << arg1.index()
524 <<
"You tried to dereference an iterator for which this "
525 <<
"is not possible. More information on this iterator: "
526 <<
"index=" << arg1.index() <<
", state="
557 template <
typename SomeAccessor>
559 template <
typename SomeAccessor>
561 template <
typename SomeAccessor>
573 template <
typename Accessor>
612 const typename Accessor::AccessorData *local_data =
nullptr);
618 template <
typename OtherAccessor>
630 template <
typename OtherAccessor>
640 Accessor::space_dimension> &tria_accessor,
641 const typename Accessor::AccessorData *local_data);
648 template <
typename OtherAccessor>
655 template <
typename OtherAccessor>
675 template <
class OtherAccessor>
684 template <
class OtherAccessor>
754 template <
typename Accessor>
804 const typename Accessor::AccessorData *local_data =
nullptr);
815 template <
typename OtherAccessor>
826 Accessor::space_dimension> &tria_accessor,
827 const typename Accessor::AccessorData *local_data);
840 template <
typename OtherAccessor>
867 template <
class OtherAccessor>
876 template <
class OtherAccessor>
885 template <
class OtherAccessor>
948 template <
typename Accessor>
955 template <
typename Accessor>
956 template <
typename OtherAccessor>
963 template <
typename Accessor>
964 template <
typename OtherAccessor>
967 : accessor(i.accessor)
972 template <
typename Accessor>
973 template <
typename OtherAccessor>
976 : accessor(i.accessor)
981 template <
typename Accessor>
982 template <
typename OtherAccessor>
985 : accessor(i.accessor)
990 template <
typename Accessor>
994 Assert(Accessor::structure_dimension != Accessor::dimension ||
996 ExcDereferenceInvalidCell(accessor));
997 Assert(Accessor::structure_dimension == Accessor::dimension ||
1006 template <
typename Accessor>
1007 inline const Accessor &
1015 template <
typename Accessor>
1016 inline const Accessor *
1024 template <
typename Accessor>
1033 template <
typename Accessor>
1037 return accessor.state();
1042 template <
typename Accessor>
1052 Assert(&accessor.get_triangulation() == &other.
accessor.get_triangulation(),
1053 ExcInvalidComparison());
1061 return ((**
this) < (*other));
1066 template <
typename Accessor>
1071 return (other < *
this);
1076 template <
typename Accessor>
1088 template <
typename Accessor>
1100 template <
typename Accessor>
1101 template <
typename StreamType>
1105 if (Accessor::structure_dimension == Accessor::dimension)
1106 out << accessor.level() <<
'.' << accessor.index();
1108 out << accessor.index();
1113 template <
typename Accessor>
1122 template <
typename Accessor>
1123 template <
typename OtherAccessor>
1131 template <
typename Accessor>
1132 template <
typename OtherAccessor>
1140 template <
typename Accessor>
1141 template <
typename OtherAccessor>
1158 template <
typename Accessor>
1159 template <
typename OtherAccessor>
1175 template <
typename Accessor>
1176 template <
typename OtherAccessor>
1184 template <
typename Accessor>
1185 template <
typename OtherAccessor>
1210 template <
typename Accessor>
1211 inline std::ostream &
1225 template <
typename Accessor>
1226 inline std::ostream &
1240 template <
typename Accessor>
1241 inline std::ostream &
1254 # include "tria_iterator.templates.h"
OutputOperator< VectorType > & operator<<(OutputOperator< VectorType > &out, unsigned int step)
TriaActiveIterator< Accessor > operator--(int)
TriaActiveIterator< Accessor > & operator=(const TriaActiveIterator< OtherAccessor > &)
TriaActiveIterator(const TriaActiveIterator< Accessor > &)
TriaActiveIterator< Accessor > & operator=(const TriaActiveIterator< Accessor > &)
TriaActiveIterator< Accessor > & operator=(const TriaIterator< Accessor > &)
TriaActiveIterator(const TriaRawIterator< Accessor > &)
TriaActiveIterator< Accessor > & operator=(const TriaRawIterator< OtherAccessor > &)
TriaActiveIterator< Accessor > & operator=(const TriaRawIterator< Accessor > &)
TriaActiveIterator(const TriaAccessorBase< Accessor::structure_dimension, Accessor::dimension, Accessor::space_dimension > &tria_accessor, const typename Accessor::AccessorData *local_data)
TriaActiveIterator< Accessor > operator++(int)
TriaActiveIterator(const Triangulation< Accessor::dimension, Accessor::space_dimension > *parent, const int level, const int index, const typename Accessor::AccessorData *local_data=nullptr)
TriaActiveIterator< Accessor > & operator++()
TriaActiveIterator< Accessor > & operator--()
TriaActiveIterator< Accessor > & operator=(const TriaIterator< OtherAccessor > &)
TriaActiveIterator(const TriaIterator< Accessor > &)
typename TriaRawIterator< Accessor >::pointer pointer
TriaIterator(const TriaIterator< Accessor > &)
TriaIterator< Accessor > & operator=(const TriaIterator< OtherAccessor > &)
typename TriaRawIterator< Accessor >::iterator_category iterator_category
typename TriaRawIterator< Accessor >::value_type value_type
TriaIterator< Accessor > & operator--()
typename TriaRawIterator< Accessor >::difference_type difference_type
TriaIterator< Accessor > & operator=(const TriaRawIterator< Accessor > &)
TriaIterator(const TriaAccessorBase< Accessor::structure_dimension, Accessor::dimension, Accessor::space_dimension > &tria_accessor, const typename Accessor::AccessorData *local_data)
typename TriaRawIterator< Accessor >::reference reference
TriaIterator< Accessor > operator++(int)
TriaIterator< Accessor > operator--(int)
TriaIterator< Accessor > & operator=(const TriaRawIterator< OtherAccessor > &)
TriaIterator(const Triangulation< Accessor::dimension, Accessor::space_dimension > *parent, const int level, const int index, const typename Accessor::AccessorData *local_data=nullptr)
TriaIterator< Accessor > & operator=(const TriaIterator< Accessor > &)
TriaIterator(const TriaRawIterator< Accessor > &)
TriaIterator< Accessor > & operator++()
const Accessor * operator->() const
bool operator>(const TriaRawIterator &) const
std::size_t memory_consumption() const
TriaRawIterator(const Triangulation< Accessor::dimension, Accessor::space_dimension > *parent, const int level, const int index, const typename AccessorType::AccessorData *local_data=nullptr)
TriaRawIterator(const TriaAccessorBase< Accessor::structure_dimension, Accessor::dimension, Accessor::space_dimension > &tria_accessor, const typename Accessor::AccessorData *local_data)
TriaRawIterator & operator=(const TriaRawIterator &)
bool operator<(const TriaRawIterator &) const
TriaRawIterator(const TriaRawIterator &)
IteratorState::IteratorStates state() const
Accessor operator*() const
std::enable_if_t< std::is_convertible_v< OtherAccessor, Accessor >, bool > operator==(const TriaRawIterator< OtherAccessor > &) const
void print(StreamType &out) const
friend class TriaRawIterator
bool operator!=(const TriaRawIterator &) const
TriaRawIterator operator++(int)
std::bidirectional_iterator_tag iterator_category
TriaRawIterator & operator++()
const Accessor & access_any() const
TriaRawIterator & operator--()
TriaRawIterator operator--(int)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CXX20_REQUIRES(condition)
#define DEAL_II_NAMESPACE_CLOSE
#define DeclException0(Exception0)
#define Assert(cond, exc)
static ::ExceptionBase & ExcAdvanceInvalidObject()
static ::ExceptionBase & ExcAssignmentOfUnusedObject()
static ::ExceptionBase & ExcDereferenceInvalidObject(AccessorType arg1)
static ::ExceptionBase & ExcDereferenceInvalidCell(Accessor arg1)
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcDereferenceInvalidObject(Accessor arg1)
static ::ExceptionBase & ExcAssignmentOfInactiveObject()
static ::ExceptionBase & ExcInvalidComparison()
@ past_the_end
Iterator reached end of container.
@ valid
Iterator points to a valid object.
@ invalid
Iterator is invalid, probably due to an error.