4#ifndef DUNE_GRID_IO_FILE_VTK_CORNERITERATOR_HH
5#define DUNE_GRID_IO_FILE_VTK_CORNERITERATOR_HH
12#include <dune/geometry/referenceelements.hh>
14#include <dune/grid/io/file/vtk/corner.hh>
28 template<
typename CellIterator>
31 < CornerIterator<CellIterator>,
32 const Corner<typename remove_const<typename std::iterator_traits<
33 CellIterator>::value_type>::type>,
34 const Corner<typename remove_const<typename std::iterator_traits<
35 CellIterator>::value_type>::type>&,
36 typename std::iterator_traits<CellIterator>::difference_type>
41 typedef VTK::Corner<
typename remove_const<
typename std::iterator_traits<
42 CellIterator>::value_type>::type>
Corner;
45 typedef typename std::iterator_traits<CellIterator>::difference_type
48 typedef typename std::iterator_traits<CellIterator>::value_type::Geometry::ctype
50 static const unsigned dim = std::iterator_traits<CellIterator>::
51 value_type::mydimension;
67 bool isDereferencable()
const {
68 return cellit != cellend;
72 bool mePassedTheEnd = !isDereferencable();
73 bool otherPassedTheEnd = !other.isDereferencable();
75 if(mePassedTheEnd && otherPassedTheEnd)
return true;
77 if(mePassedTheEnd || otherPassedTheEnd)
return false;
79 return cellit == other.cellit &&
88 if(cellit != cellend) {
104 unsigned vtkIndex = 0)
105 : cellit(cellit_), cellend(cellend_)
107 if(cellit != cellend) {
108 corner.
cell(*cellit);
117 : cellit(cellend_), cellend(cellend_)
Base class for stl conformant forward iterators.
Definition: iteratorfacades.hh:141
iterate over the corners of some cell range
Definition: corneriterator.hh:37
CornerIterator(const CellIterator &cellit_, const CellIterator &cellend_, unsigned vtkIndex=0)
construct a CornerIterator
Definition: corneriterator.hh:103
CornerIterator(const CellIterator &cellend_)
construct a CornerIterator
Definition: corneriterator.hh:116
simple class representing a corner of a cell
Definition: corner.hh:23
unsigned vtkIndex() const
get the index of the corner within the cell in VTK-numbering
Definition: corner.hh:61
unsigned duneIndex() const
get the index of the corner within the cell in Dune-numbering
Definition: corner.hh:53
const Cell & cell() const
get reference to the cell
Definition: corner.hh:44
This file implements iterator facade classes for writing stl conformant iterators.
Dune namespace.
Definition: alignment.hh:10
Class providing access to the singletons of the reference elements.
Definition: referenceelements.hh:479
static const ReferenceElement< ctype, dim > & general(const GeometryType &type)
get general reference elements
Definition: referenceelements.hh:484
Traits for type conversions and type information.