1#ifndef DUNE_GRID_SPGRID_DIRECTION_HH
2#define DUNE_GRID_SPGRID_DIRECTION_HH
21 static_assert( (dim >= 0) && (dim < 8*
sizeof(
unsigned long )),
"Invalid dimension." );
33 bool operator== (
const This &other )
const {
return (bits_ == other.bits_); }
34 bool operator!= (
const This &other )
const {
return (bits_ != other.bits_); }
36 unsigned int operator[] (
int i )
const {
return bits_[ i ]; }
41 unsigned long bits ()
const {
return bits_.to_ulong(); }
44 std::bitset< dimension > bits_;
52 template<
int dim,
int mydim >
57 static_assert( (mydim >= 0) && (mydim <= dim),
"Invalid entity dimension." );
72 template<
int dim,
int mydim >
155 template<
int dim,
int codim >
172 operator bool ()
const {
return (bits_ != ((1u << dim) - (1u << codim) + 1u)); }
194 for(
int i = 0; i < dimension; ++i )
195 bits_[ i ] = (
id[ i ] & 1);
203 template<
int dim,
int mydim >
211 template<
int dim,
int codim >
218 }
while( *
this && (
Direction( bits_ ).mydimension() != (dim - codim)) );
miscellaneous helper functions
Definition: iostream.hh:7
Definition: direction.hh:18
static const int dimension
Definition: direction.hh:27
unsigned long bits() const
Definition: direction.hh:41
int mydimension() const
Definition: direction.hh:38
bool operator==(const This &other) const
Definition: direction.hh:33
SPDirection(unsigned long bits)
Definition: direction.hh:31
int codimension() const
Definition: direction.hh:39
SPDirection(const SPMultiIndex< dimension > &id)
Definition: direction.hh:192
bool operator!=(const This &other) const
Definition: direction.hh:34
unsigned int operator[](int i) const
Definition: direction.hh:36
Definition: direction.hh:54
static const int dimension
Definition: direction.hh:60
int mydimension() const
Definition: direction.hh:64
SPDirection< dimension > Direction
Definition: direction.hh:62
Definition: direction.hh:75
SPEntityDirection()
Definition: direction.hh:84
Base::Direction Direction
Definition: direction.hh:82
SPEntityDirection(const SPMultiIndex< dimension > &id)
Definition: direction.hh:85
Definition: direction.hh:97
Base::Direction Direction
Definition: direction.hh:104
SPEntityDirection(const SPMultiIndex< dimension > &id)
Definition: direction.hh:107
SPEntityDirection()=default
Definition: direction.hh:116
Base::Direction Direction
Definition: direction.hh:123
SPEntityDirection()=default
SPEntityDirection(const SPMultiIndex< dimension > &id)
Definition: direction.hh:126
Definition: direction.hh:135
Base::Direction Direction
Definition: direction.hh:142
SPEntityDirection(const SPMultiIndex< dimension > &id)
Definition: direction.hh:145
SPEntityDirection()=default
Definition: direction.hh:157
SPDirectionIterator(const This &)=default
Direction operator*() const
Definition: direction.hh:174
SPDirectionIterator(const Direction &direction)
Definition: direction.hh:164
const This & operator++()
Definition: direction.hh:213
SPDirectionIterator()
Definition: direction.hh:163
SPDirectionIterator(This &&)=default
SPDirection< dim > Direction
Definition: direction.hh:161
This & operator=(const This &)=default