1#ifndef DUNE_ALU3DITERATORS_HH
2#define DUNE_ALU3DITERATORS_HH
5#include <dune/grid/common/gridenums.hh>
8#include "alu3dinclude.hh"
17 template<
int codim,
class Comm >
18 struct BSMacroIterator
20 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType;
21 typedef typename AccessIterator< HElementType >::Handle IteratorType;
27 template<
int codim,
class Comm >
28 struct ALUHElementType;
30 template<
class Comm >
31 struct ALUHElementType< 0, Comm >
33 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HElementType ElementType;
36 template<
class Comm >
37 struct ALUHElementType< 1, Comm >
39 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HFaceType ElementType;
42 template<
class Comm >
43 struct ALUHElementType< 2, Comm >
45 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HEdgeType ElementType;
48 template<
class Comm >
49 struct ALUHElementType< 3, Comm >
51 typedef typename Dune::ALU3dBasicImplTraits< Comm >::VertexType ElementType;
58 template<
class val_t >
59 class IteratorWrapperInterface
60 :
public IteratorSTI< val_t >
63 virtual ~IteratorWrapperInterface () {}
65 virtual int size () = 0;
66 virtual void next () = 0;
67 virtual void first() = 0;
68 virtual int done ()
const = 0;
69 virtual val_t & item ()
const = 0;
70 virtual IteratorSTI< val_t > * clone ()
const { alugrid_assert (
false); abort();
return 0; }
76 template<
int codim,
class Comm >
79 typedef typename ALUHElementType< codim, Comm >::ElementType ElType;
80 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HBndSegType HBndSegType;
81 typedef std::pair< ElType *, HBndSegType * > val_t;