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
225 template <
typename Accessor>
226 class TriaRawIterator :
public std::iterator<std::bidirectional_iterator_tag,Accessor>
265 template <
typename OtherAccessor>
276 const typename AccessorType::AccessorData *local_data = 0);
287 template <
typename OtherAccessor>
296 const typename Accessor::AccessorData *local_data);
302 template <
typename OtherAccessor>
309 template <
typename OtherAccessor>
476 template <
class StreamType>
477 void print (StreamType &out)
const;
494 <<
"You tried to dereference a cell iterator for which this " 495 <<
"is not possible. More information on this iterator: " 496 <<
"level=" << arg1.level()
497 <<
", index=" << arg1.index()
501 "past_the_end" :
"invalid")));
509 <<
"You tried to dereference an iterator for which this " 510 <<
"is not possible. More information on this iterator: " 511 <<
"index=" << arg1.index()
515 "past_the_end" :
"invalid")));
544 template <
typename SomeAccessor>
friend class TriaIterator;
556 template <
typename Accessor>
590 const typename Accessor::AccessorData *local_data = 0);
596 template <
typename OtherAccessor>
608 template <
typename OtherAccessor>
617 const typename Accessor::AccessorData *local_data);
624 template <
typename OtherAccessor>
631 template <
typename OtherAccessor>
651 template <
class OtherAccessor>
660 template <
class OtherAccessor>
712 template <
typename Accessor>
755 const typename Accessor::AccessorData *local_data = 0);
766 template <
typename OtherAccessor>
775 const typename Accessor::AccessorData *local_data);
784 template <
typename OtherAccessor>
811 template <
class OtherAccessor>
820 template <
class OtherAccessor>
829 template <
class OtherAccessor>
875 template <
typename Accessor>
885 template <
typename Accessor>
886 template <
typename OtherAccessor>
896 template <
typename Accessor>
897 template <
typename OtherAccessor>
907 template <
typename Accessor>
908 template <
typename OtherAccessor>
918 template <
typename Accessor>
919 template <
typename OtherAccessor>
929 template <
typename Accessor>
934 Assert (Accessor::structure_dimension!=Accessor::dimension ||
936 ExcDereferenceInvalidCell(
accessor));
937 Assert (Accessor::structure_dimension==Accessor::dimension ||
939 ExcDereferenceInvalidObject(
accessor));
946 template <
typename Accessor>
951 Assert (Accessor::structure_dimension!=Accessor::dimension ||
953 ExcDereferenceInvalidCell(
accessor));
954 Assert (Accessor::structure_dimension==Accessor::dimension ||
956 ExcDereferenceInvalidObject(
accessor));
963 template <
typename Accessor>
973 template <
typename Accessor>
983 template <
typename Accessor>
993 template <
typename Accessor>
1003 template <
typename Accessor>
1012 ExcInvalidComparison());
1020 return ((**
this) < (*other));
1025 template <
typename Accessor>
1030 return (other < *
this);
1035 template <
typename Accessor>
1048 template <
typename Accessor>
1061 template <
typename Accessor>
1062 template <
class StreamType>
1067 if (Accessor::structure_dimension==Accessor::dimension)
1075 template <
typename Accessor>
1085 template <
typename Accessor>
1086 template <
typename OtherAccessor>
1095 template <
typename Accessor>
1096 template <
typename OtherAccessor>
1105 template <
typename Accessor>
1106 template <
typename OtherAccessor>
1121 ExcAssignmentOfUnusedObject());
1125 template <
typename Accessor>
1126 template <
typename OtherAccessor>
1140 ExcAssignmentOfUnusedObject());
1144 template <
typename Accessor>
1145 template <
typename OtherAccessor>
1154 template <
typename Accessor>
1155 template <
typename OtherAccessor>
1170 ExcAssignmentOfInactiveObject());
1183 template <
typename Accessor>
1201 template <
typename Accessor>
1219 template <
typename Accessor>
1229 DEAL_II_NAMESPACE_CLOSE
1234 # include "tria_iterator.templates.h"
Iterator is invalid, probably due to an error.
const Accessor * operator->() const
const Accessor & operator*() const
bool operator>(const TriaRawIterator &) const
#define Assert(cond, exc)
TriaRawIterator & operator++()
bool operator==(const TriaRawIterator &) const
bool operator!=(const TriaRawIterator &) const
TriaRawIterator & operator--()
DeclException0(ExcAdvanceInvalidObject)
TriaRawIterator & operator=(const TriaRawIterator &)
Iterator reached end of container.
const Accessor & access_any() const
Iterator points to a valid object.
void print(StreamType &out) const
IteratorState::IteratorStates state() const
DeclException1(ExcDereferenceInvalidCell, Accessor,<< "You tried to dereference a cell iterator for which this "<< "is not possible. More information on this iterator: "<< "level="<< arg1.level()<< ", index="<< arg1.index()<< ", state="<<(arg1.state()==IteratorState::valid ? "valid" :(arg1.state()==IteratorState::past_the_end ? "past_the_end" :"invalid")))
StreamType & operator<<(StreamType &s, UpdateFlags u)
bool operator<(const TriaRawIterator &) const
std::size_t memory_consumption() const