6#ifndef DUNE_GRID_IO_FILE_VTK_POINTITERATOR_HH
7#define DUNE_GRID_IO_FILE_VTK_POINTITERATOR_HH
12#include <dune/common/iteratorfacades.hh>
13#include <dune/common/typetraits.hh>
15#include <dune/grid/io/file/vtk/corner.hh>
16#include <dune/grid/io/file/vtk/corneriterator.hh>
49 template<
typename CellIterator,
typename IS>
51 :
public ForwardIteratorFacade
52 < PointIterator<CellIterator, IS>,
53 const Corner<typename std::remove_const<typename std::iterator_traits<
54 CellIterator>::value_type>::type>,
55 const Corner<typename std::remove_const<typename std::iterator_traits<
56 CellIterator>::value_type>::type>&,
57 typename std::iterator_traits<CellIterator>::difference_type>
60 typedef VTK::Corner<
typename std::remove_const<
typename std::iterator_traits<
61 CellIterator>::value_type>::type>
Corner;
67 typedef typename std::iterator_traits<CellIterator>::difference_type
70 static const unsigned mydim = std::iterator_traits<CellIterator>::
71 value_type::mydimension;
75 DifferenceType> Facade;
79 std::vector<bool> seen;
86 bool isDereferencable()
const {
87 return cornerit.isDereferencable();
91 return cornerit == other.cornerit;
95 for(++cornerit; isDereferencable(); ++cornerit) {
96 typename IS::IndexType index =
97 is->subIndex(cornerit->cell(), cornerit->duneIndex(), mydim);
114 : cornerit(cellit, cellend), is(&is_), seen(is->size(mydim), false)
121 : cornerit(cellend_), is(0)
iterate over the corners of some cell range
Definition: corneriterator.hh:39
simple class representing a corner of a cell
Definition: corner.hh:25
iterate over the points of some corner range
Definition: pointiterator.hh:58
PointIterator(const CellIterator &cellit, const CellIterator &cellend, const IS &is_)
construct a CornerIterator
Definition: pointiterator.hh:112
PointIterator(const CellIterator &cellend_)
construct a CornerIterator
Definition: pointiterator.hh:120
Include standard header files.
Definition: agrid.hh:60