PolyVox
0.3.0-dev
Open source voxel management library
|
#include <SimpleVolume.h>
Classes | |
class | Block |
class | Sampler |
Public Member Functions | |
SimpleVolume (const Region ®Valid, uint16_t uBlockSideLength=32) | |
Constructor for creating a fixed size volume. | |
~SimpleVolume () | |
Destructor. | |
VoxelType | getVoxel (int32_t uXPos, int32_t uYPos, int32_t uZPos) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxel (const Vector3DInt32 &v3dPos) const |
Gets a voxel at the position given by a 3D vector. | |
VoxelType | getVoxelAt (int32_t uXPos, int32_t uYPos, int32_t uZPos) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxelAt (const Vector3DInt32 &v3dPos) const |
Gets a voxel at the position given by a 3D vector. | |
VoxelType | getVoxelWithWrapping (int32_t uXPos, int32_t uYPos, int32_t uZPos, WrapMode eWrapMode=WrapModes::Border, VoxelType tBorder=VoxelType()) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxelWithWrapping (const Vector3DInt32 &v3dPos, WrapMode eWrapMode=WrapModes::Border, VoxelType tBorder=VoxelType()) const |
Gets a voxel at the position given by a 3D vector. | |
bool | setVoxelAt (int32_t uXPos, int32_t uYPos, int32_t uZPos, VoxelType tValue) |
Sets the voxel at the position given by x,y,z coordinates. | |
bool | setVoxelAt (const Vector3DInt32 &v3dPos, VoxelType tValue) |
Sets the voxel at the position given by a 3D vector. | |
uint32_t | calculateSizeInBytes (void) |
Calculates approximatly how many bytes of memory the volume is currently using. | |
Public Member Functions inherited from PolyVox::BaseVolume< VoxelType > | |
VoxelType | getBorderValue (void) const |
Gets the value used for voxels which are outside the volume. | |
const Region & | getEnclosingRegion (void) const |
Gets a Region representing the extents of the Volume. | |
int32_t | getWidth (void) const |
Gets the width of the volume in voxels. | |
int32_t | getHeight (void) const |
Gets the height of the volume in voxels. | |
int32_t | getDepth (void) const |
Gets the depth of the volume in voxels. | |
int32_t | getLongestSideLength (void) const |
Gets the length of the longest side in voxels. | |
int32_t | getShortestSideLength (void) const |
Gets the length of the shortest side in voxels. | |
float | getDiagonalLength (void) const |
Gets the length of the diagonal in voxels. | |
VoxelType | getVoxel (int32_t uXPos, int32_t uYPos, int32_t uZPos) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxel (const Vector3DInt32 &v3dPos) const |
Gets a voxel at the position given by a 3D vector. | |
VoxelType | getVoxelAt (int32_t uXPos, int32_t uYPos, int32_t uZPos) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxelAt (const Vector3DInt32 &v3dPos) const |
Gets a voxel at the position given by a 3D vector. | |
VoxelType | getVoxelWithWrapping (int32_t uXPos, int32_t uYPos, int32_t uZPos, WrapMode eWrapMode=WrapModes::Border, VoxelType tBorder=VoxelType()) const |
Gets a voxel at the position given by x,y,z coordinates. | |
VoxelType | getVoxelWithWrapping (const Vector3DInt32 &v3dPos, WrapMode eWrapMode=WrapModes::Border, VoxelType tBorder=VoxelType()) const |
Gets a voxel at the position given by a 3D vector. | |
void | setBorderValue (const VoxelType &tBorder) |
Sets the value used for voxels which are outside the volume. | |
bool | setVoxelAt (int32_t uXPos, int32_t uYPos, int32_t uZPos, VoxelType tValue) |
Sets the voxel at the position given by x,y,z coordinates. | |
bool | setVoxelAt (const Vector3DInt32 &v3dPos, VoxelType tValue) |
Sets the voxel at the position given by a 3D vector. | |
uint32_t | calculateSizeInBytes (void) |
Calculates approximatly how many bytes of memory the volume is currently using. | |
Protected Member Functions | |
SimpleVolume (const SimpleVolume &rhs) | |
Copy constructor. | |
SimpleVolume & | operator= (const SimpleVolume &rhs) |
Assignment operator. | |
Protected Member Functions inherited from PolyVox::BaseVolume< VoxelType > | |
BaseVolume (const Region ®Valid) | |
Constructor for creating a fixed size volume. | |
BaseVolume (const BaseVolume &rhs) | |
Copy constructor. | |
~BaseVolume () | |
Destructor. | |
BaseVolume & | operator= (const BaseVolume &rhs) |
Assignment operator. | |
Additional Inherited Members | |
Public Types inherited from PolyVox::BaseVolume< VoxelType > | |
typedef VoxelType | VoxelType |
Protected Attributes inherited from PolyVox::BaseVolume< VoxelType > | |
Region | m_regValidRegion |
int32_t | m_uLongestSideLength |
int32_t | m_uShortestSideLength |
float | m_fDiagonalLength |
VoxelType | m_tBorderValue |
Definition at line 43 of file SimpleVolume.h.
SimpleVolume< VoxelType >::SimpleVolume | ( | const Region & | regValid, |
uint16_t | uBlockSideLength = 32 |
||
) |
Constructor for creating a fixed size volume.
This constructor creates a volume with a fixed size which is specified as a parameter.
regValid | Specifies the minimum and maximum valid voxel positions. |
uBlockSideLength | The size of the block to use within the volume |
Definition at line 34 of file SimpleVolume.inl.
SimpleVolume< VoxelType >::~SimpleVolume | ( | ) |
|
protected |
Copy constructor.
This function should never be called.
Copying volumes by value would be expensive, and we want to prevent users from doing it by accident (such as when passing them as paramenters to functions). That said, there are times when you really do want to make a copy of a volume and in this case you should look at the Volumeresampler.
Definition at line 49 of file SimpleVolume.inl.
uint32_t SimpleVolume< VoxelType >::calculateSizeInBytes | ( | void | ) |
Calculates approximatly how many bytes of memory the volume is currently using.
Definition at line 331 of file SimpleVolume.inl.
VoxelType SimpleVolume< VoxelType >::getVoxel | ( | int32_t | uXPos, |
int32_t | uYPos, | ||
int32_t | uZPos | ||
) | const |
Gets a voxel at the position given by x,y,z
coordinates.
uXPos | The x position of the voxel |
uYPos | The y position of the voxel |
uZPos | The z position of the voxel |
Definition at line 83 of file SimpleVolume.inl.
Referenced by PolyVox::SimpleVolume< VoxelType >::Sampler::getSubSampledVoxel().
VoxelType SimpleVolume< VoxelType >::getVoxel | ( | const Vector3DInt32 & | v3dPos | ) | const |
Gets a voxel at the position given by a 3D vector.
v3dPos | The 3D position of the voxel |
Definition at line 105 of file SimpleVolume.inl.
VoxelType SimpleVolume< VoxelType >::getVoxelAt | ( | int32_t | uXPos, |
int32_t | uYPos, | ||
int32_t | uZPos | ||
) | const |
Gets a voxel at the position given by x,y,z
coordinates.
uXPos | The x position of the voxel |
uYPos | The y position of the voxel |
uZPos | The z position of the voxel |
Definition at line 117 of file SimpleVolume.inl.
Referenced by PolyVox::SimpleVolume< VoxelType >::Sampler::getVoxel(), and PolyVox::SimpleVolume< VoxelType >::Block::getVoxelAt().
VoxelType SimpleVolume< VoxelType >::getVoxelAt | ( | const Vector3DInt32 & | v3dPos | ) | const |
Gets a voxel at the position given by a 3D vector.
v3dPos | The 3D position of the voxel |
Definition at line 144 of file SimpleVolume.inl.
VoxelType SimpleVolume< VoxelType >::getVoxelWithWrapping | ( | int32_t | uXPos, |
int32_t | uYPos, | ||
int32_t | uZPos, | ||
WrapMode | eWrapMode = WrapModes::Border , |
||
VoxelType | tBorder = VoxelType() |
||
) | const |
Gets a voxel at the position given by x,y,z
coordinates.
uXPos | The x position of the voxel |
uYPos | The y position of the voxel |
uZPos | The z position of the voxel |
Definition at line 156 of file SimpleVolume.inl.
VoxelType SimpleVolume< VoxelType >::getVoxelWithWrapping | ( | const Vector3DInt32 & | v3dPos, |
WrapMode | eWrapMode = WrapModes::Border , |
||
VoxelType | tBorder = VoxelType() |
||
) | const |
Gets a voxel at the position given by a 3D vector.
v3dPos | The 3D position of the voxel |
Definition at line 200 of file SimpleVolume.inl.
|
protected |
Assignment operator.
This function should never be called.
Copying volumes by value would be expensive, and we want to prevent users from doing it by accident (such as when passing them as paramenters to functions). That said, there are times when you really do want to make a copy of a volume and in this case you should look at the Volumeresampler.
Definition at line 71 of file SimpleVolume.inl.
bool SimpleVolume< VoxelType >::setVoxelAt | ( | int32_t | uXPos, |
int32_t | uYPos, | ||
int32_t | uZPos, | ||
VoxelType | tValue | ||
) |
Sets the voxel at the position given by x,y,z
coordinates.
uXPos | the x position of the voxel |
uYPos | the y position of the voxel |
uZPos | the z position of the voxel |
tValue | the value to which the voxel will be set |
Definition at line 213 of file SimpleVolume.inl.
Referenced by PolyVox::SimpleVolume< VoxelType >::Block::setVoxelAt().
bool SimpleVolume< VoxelType >::setVoxelAt | ( | const Vector3DInt32 & | v3dPos, |
VoxelType | tValue | ||
) |
Sets the voxel at the position given by a 3D vector.
v3dPos | the 3D position of the voxel |
tValue | the value to which the voxel will be set |
Definition at line 239 of file SimpleVolume.inl.