3 #ifndef DUNE_GRID_INTERSECTIONITERATOR_HH 4 #define DUNE_GRID_INTERSECTIONITERATOR_HH 6 #include <dune/common/iteratorfacades.hh> 7 #include <dune/common/proxymemberaccess.hh> 79 template<
class Gr
idImp,
class IntersectionIteratorImp,
class IntersectionImp >
80 class IntersectionIterator
137 typename std::conditional<
138 std::is_lvalue_reference<
139 decltype(realIterator.dereference())
146 return this->realIterator.dereference();
150 decltype(handle_proxy_member_access(realIterator.dereference()))
153 return handle_proxy_member_access(realIterator.dereference());
174 return rhs.equals(*
this);
184 return ! rhs.equals(*
this);
191 this->realIterator.increment();
199 this->realIterator.increment();
216 return this->realIterator.equals(rhs.realIterator);
221 : realIterator( impl )
226 realIterator(i.realIterator) {}
236 template<
class Gr
idImp,
class IntersectionIteratorImp,
class IntersectionImp >
250 #endif // DUNE_GRID_INTERSECTIONITERATOR_HH const Implementation & impl() const
access to the underlying implementation
Definition: common/intersectioniterator.hh:102
IntersectionIteratorImp Implementation
type of underlying implementation
Definition: common/intersectioniterator.hh:88
bool operator==(const IntersectionIterator &rhs) const
Checks for equality. Only Iterators pointing to the same intersection from the same Entity are equal...
Definition: common/intersectioniterator.hh:172
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:345
forward_iterator_tag iterator_category
Definition: common/intersectioniterator.hh:243
ptrdiff_t difference_type
Definition: common/intersectioniterator.hh:239
IntersectionIterator operator++(int)
Postincrement operator. Proceed to next intersection.
Definition: common/intersectioniterator.hh:196
IntersectionIterator()
Default constructor.
Definition: common/intersectioniterator.hh:204
Implementation realIterator
Definition: common/intersectioniterator.hh:105
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: albertagrid/dgfparser.hh:26
Dune::Intersection< GridImp, IntersectionImp > Intersection
Type of Intersection this IntersectionIterator points to.
Definition: common/intersectioniterator.hh:109
const Intersection * operator->() const
Pointer operator.
Implementation & impl()
access to the underlying implementation
Definition: common/intersectioniterator.hh:95
const Dune::Intersection< GridImp, IntersectionImp > value_type
Definition: common/intersectioniterator.hh:240
IntersectionIterator(const Implementation &impl)
Definition: common/intersectioniterator.hh:220
Intersection operator*() const
Dereferencing operator.
IntersectionIterator & operator++()
Preincrement operator. Proceed to next intersection.
Definition: common/intersectioniterator.hh:189
bool operator!=(const IntersectionIterator &rhs) const
Checks for inequality. Only Iterators pointing to the same intersection from the same Entity are equa...
Definition: common/intersectioniterator.hh:182
value_type & reference
Definition: common/intersectioniterator.hh:242
IntersectionIterator(const IntersectionIterator &i)
Definition: common/intersectioniterator.hh:225
value_type * pointer
Definition: common/intersectioniterator.hh:241
bool equals(const IntersectionIterator &rhs) const
forward equality check to realIterator
Definition: common/intersectioniterator.hh:214
Include standard header files.
Definition: agrid.hh:58