dune-grid 2.8.0
Loading...
Searching...
No Matches
albertagrid/intersectioniterator.hh
Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=4 sw=2 sts=2:
3#ifndef DUNE_ALBERTA_INTERSECTIONITERATOR_HH
4#define DUNE_ALBERTA_INTERSECTIONITERATOR_HH
5
7
9
15#if HAVE_ALBERTA
16
17namespace Dune
18{
19
20 // AlbertaGridLeafIntersectionIterator
21 // -----------------------------------
22
23 template< class GridImp >
25 {
27
28 public:
30
31 static const int dimension = Intersection::Entity::dimension;
32
33 struct Begin {};
34 struct End {};
35
36 private:
38
39 public:
41 {}
42
43 template< class EntityImp >
44 AlbertaGridLeafIntersectionIterator ( const EntityImp &entity, Begin )
45 : intersection_( IntersectionImp( entity, 0 ) )
46 {}
47
48 template< class EntityImp >
49 AlbertaGridLeafIntersectionIterator ( const EntityImp &entity, End )
50 : intersection_( IntersectionImp( entity, dimension+1 ) )
51 {}
52
54 : intersection_( other.intersection_.impl() )
55 {}
56
57 This &operator= ( const This &other )
58 {
59 intersection_.impl() = other.intersection_.impl();
60 return *this;
61 }
62
63 const Intersection &dereference () const
64 {
65 return intersection_;
66 }
67
68 bool equals ( const This &other ) const
69 {
70 return (intersection_.impl() == other.intersection_.impl());
71 }
72
73 void increment ()
74 {
75 intersection_.impl().next();
76 }
77
78 private:
79 Intersection intersection_;
80 };
81
82}
83
84#endif // #if HAVE_ALBERTA
85
86#endif // #ifndef DUNE_ALBERTA_INTERSECTIONITERATOR_HH
Include standard header files.
Definition: agrid.hh:58
Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the d...
Definition: common/intersection.hh:162
Implementation & impl()
access to the underlying implementation
Definition: common/intersection.hh:176
Definition: albertagrid/intersection.hh:103
void next()
Definition: intersection.cc:354
Definition: albertagrid/intersectioniterator.hh:25
AlbertaGridLeafIntersectionIterator(const EntityImp &entity, Begin)
Definition: albertagrid/intersectioniterator.hh:44
This & operator=(const This &other)
Definition: albertagrid/intersectioniterator.hh:57
AlbertaGridLeafIntersectionIterator()
Definition: albertagrid/intersectioniterator.hh:40
Dune::Intersection< GridImp, AlbertaGridLeafIntersection< GridImp > > Intersection
Definition: albertagrid/intersectioniterator.hh:29
AlbertaGridLeafIntersectionIterator(const EntityImp &entity, End)
Definition: albertagrid/intersectioniterator.hh:49
static const int dimension
Definition: albertagrid/intersectioniterator.hh:31
AlbertaGridLeafIntersectionIterator(const This &other)
Definition: albertagrid/intersectioniterator.hh:53
bool equals(const This &other) const
Definition: albertagrid/intersectioniterator.hh:68
void increment()
Definition: albertagrid/intersectioniterator.hh:73
const Intersection & dereference() const
Definition: albertagrid/intersectioniterator.hh:63
Definition: albertagrid/intersectioniterator.hh:33
Definition: albertagrid/intersectioniterator.hh:34