3 #ifndef DUNE_GRID_INTERSECTIONITERATOR_HH 4 #define DUNE_GRID_INTERSECTIONITERATOR_HH 6 #include <dune/common/iteratorfacades.hh> 7 #include <dune/common/proxymemberaccess.hh> 82 template<
class Gr
idImp,
class IntersectionIteratorImp,
class IntersectionImp >
83 class IntersectionIterator
85 #if DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS 90 friend class GridDefaultImplementation<
91 GridImp::dimension, GridImp::dimensionworld,
92 typename GridImp::ctype,
93 typename GridImp::GridFamily> ;
136 typename std::conditional<
137 std::is_lvalue_reference<
138 decltype(realIterator.dereference())
145 return this->realIterator.dereference();
149 decltype(handle_proxy_member_access(realIterator.dereference()))
152 return handle_proxy_member_access(realIterator.dereference());
173 return rhs.equals(*
this);
183 return ! rhs.equals(*
this);
190 this->realIterator.increment();
198 this->realIterator.increment();
215 return this->realIterator.equals(rhs.realIterator);
220 : realIterator( impl )
225 realIterator(i.realIterator) {}
235 template<
class Gr
idImp,
class IntersectionIteratorImp,
class IntersectionImp >
249 #endif // DUNE_GRID_INTERSECTIONITERATOR_HH Implementation & impl()
return reference to the real implementation
Definition: common/intersectioniterator.hh:99
Intersection of a mesh entities of codimension 0 ("elements") with a "neighboring" element or with th...
Definition: albertagrid/dgfparser.hh:26
IntersectionIterator operator++(int)
Postincrement operator. Proceed to next intersection.
Definition: common/intersectioniterator.hh:195
IntersectionIterator & operator++()
Preincrement operator. Proceed to next intersection.
Definition: common/intersectioniterator.hh:188
IntersectionIteratorImp Implementation
Definition: common/intersectioniterator.hh:96
const Dune::Intersection< GridImp, IntersectionImp > value_type
Definition: common/intersectioniterator.hh:239
bool equals(const IntersectionIterator &rhs) const
forward equality check to realIterator
Definition: common/intersectioniterator.hh:213
IntersectionIterator()
Default constructor.
Definition: common/intersectioniterator.hh:203
forward_iterator_tag iterator_category
Definition: common/intersectioniterator.hh:242
Intersection operator*() const
Dereferencing operator.
value_type & reference
Definition: common/intersectioniterator.hh:241
ptrdiff_t difference_type
Definition: common/intersectioniterator.hh:238
IntersectionIterator(const IntersectionIterator &i)
Definition: common/intersectioniterator.hh:224
Dune::Intersection< GridImp, IntersectionImp > Intersection
Type of Intersection this IntersectionIterator points to.
Definition: common/intersectioniterator.hh:108
IntersectionIterator(const Implementation &impl)
Definition: common/intersectioniterator.hh:219
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:171
const Intersection * operator->() const
Pointer operator.
value_type * pointer
Definition: common/intersectioniterator.hh:240
Include standard header files.
Definition: agrid.hh:59
Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" eleme...
Definition: common/grid.hh:360
const Implementation & impl() const
return reference to the real implementation
Definition: common/intersectioniterator.hh:101
Implementation realIterator
Definition: common/intersectioniterator.hh:104
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:181