33 #ifndef ISOEX_GRIDBASE_HH
34 #define ISOEX_GRIDBASE_HH
39 #include <OpenMesh/Core/Geometry/VectorT.hh>
42 #include <IsoEx/Config/IsoExDefines.hh>
57 template<
class VectorType >
64 typedef VectorType Vec3;
65 typedef typename VectorType::value_type real;
116 CubeIterator
begin()
const {
return CubeIterator(0); }
119 CubeIterator
end()
const {
return CubeIterator(n_cubes()); }
131 virtual unsigned int n_cubes()
const = 0;
134 virtual unsigned int n_points()
const = 0;
137 virtual PointIdx point_idx(CubeIdx _idx,
unsigned char _corner)
const = 0;
140 virtual Vec3 point(PointIdx _idx)
const = 0;
143 virtual bool is_inside(PointIdx _pidx)
const = 0;
146 virtual real scalar_distance(PointIdx _pidx)
const = 0;
149 virtual bool directed_distance(
const Vec3& _p0,
153 real& _distance)
const = 0;
161 #endif // ISOEX_GRIDBASE_HH defined
CubeIterator end() const
Returns end iterator for the grid's cubes.
Definition: Grid.hh:119
CubeIterator begin() const
Returns begin iterator for the grid's cubes.
Definition: Grid.hh:116
unsigned int PointIdx
The grid points can be referred to by PointIdx.
Definition: Grid.hh:72
CubeIterator(unsigned int _idx)
Definition: Grid.hh:85
Grid()
Default constructor.
Definition: Grid.hh:106
virtual ~Grid()
Destructor.
Definition: Grid.hh:108
CubeIterator & operator++()
Pre-increment.
Definition: Grid.hh:95
bool operator!=(const CubeIterator &_rhs) const
Comparison.
Definition: Grid.hh:93
bool operator==(const CubeIterator &_rhs) const
Comparison.
Definition: Grid.hh:91
CubeIdx & operator*()
Get cube index from iterator.
Definition: Grid.hh:87
A type for volume images, or 3D textures.
unsigned int CubeIdx
CubeIdx can be used to refer to cubes.
Definition: Grid.hh:69
CubeIdx * operator->()
Get cube index from iterator.
Definition: Grid.hh:89