1 #ifndef CTL_SPARSEVOXELVOLUME_H 2 #define CTL_SPARSEVOXELVOLUME_H 8 typedef unsigned int uint;
12 template <
typename>
class Range;
25 typedef std::vector<SingleVoxel>::iterator iterator;
26 typedef std::vector<SingleVoxel>::const_iterator const_iterator;
27 typedef std::reverse_iterator<iterator> reverse_iterator;
28 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
37 const_iterator begin()
const;
38 const_iterator end()
const;
39 const_iterator cbegin()
const;
40 const_iterator cend()
const;
41 reverse_iterator rbegin();
42 reverse_iterator rend();
43 const_reverse_iterator rbegin()
const;
44 const_reverse_iterator rend()
const;
45 const_reverse_iterator crbegin()
const;
46 const_reverse_iterator crend()
const;
49 void addVoxel(
float x,
float y,
float z,
float val);
50 std::array<Range<float>, 3> boundingBox()
const;
51 const std::vector<SingleVoxel>& data()
const;
52 std::vector<SingleVoxel>& data();
53 uint nbVoxels()
const;
54 void removeVoxel(
uint i);
55 float sparsityLevel()
const;
56 float sparsityLevel(
const Dimensions& referenceDimension)
const;
59 const VoxelSize& voxelSize()
const;
66 const Offset& offset = { 0.0f, 0.0f, 0.0f })
const;
69 std::vector<SingleVoxel> _data;
77 : _x(x), _y(y), _z(z), _value(val)
80 float x()
const {
return _x; }
81 float y()
const {
return _y; }
82 float z()
const {
return _z; }
83 float value()
const {
return _value; }
84 float& value() {
return _value; }
86 operator float&() {
return _value; }
87 operator const float&()
const {
return _value; }
98 #endif // CTL_SPARSEVOXELVOLUME_H The VoxelVolume class provides a simple container for storage of voxelized 3D volume data.
Definition: ctsystemview.h:14
Definition: sparsevoxelvolume.h:14
unsigned int uint
Qt style alias for unsigned int.
Definition: modulelayout.h:6
Definition: sparsevoxelvolume.h:73
The Range class holds start and end point of a value range (or interval) and provides a few convenien...
Definition: sparsevoxelvolume.h:12