Open CASCADE Technology
6.5.4
|
A 3D voxel model keeping a boolean flag (1 or 0)
value for each voxel, and having an opportunity to split each voxel
into 8 sub-voxels.
#include <Voxel_OctBoolDS.hxx>
Public Member Functions | |
DEFINE_STANDARD_ALLOC | Voxel_OctBoolDS () |
An empty constructor. | |
Voxel_OctBoolDS (const Standard_Real x, const Standard_Real y, const Standard_Real z, const Standard_Real x_len, const Standard_Real y_len, const Standard_Real z_len, const Standard_Integer nb_x, const Standard_Integer nb_y, const Standard_Integer nb_z) | |
A constructor initializing the voxel model. (x, y, z) - the start point of the box. (x_len, y_len, z_len) - lengths in x, y and z directions along axes of a co-ordinate system. (nb_x, nb_y, nb_z) - number of splits (voxels) along x, y and z directions. | |
virtual void | Init (const Standard_Real x, const Standard_Real y, const Standard_Real z, const Standard_Real x_len, const Standard_Real y_len, const Standard_Real z_len, const Standard_Integer nb_x, const Standard_Integer nb_y, const Standard_Integer nb_z) |
Initialization of the voxel model. (x, y, z) - the start point of the box. (x_len, y_len, z_len) - lengths in x, y and z directions along axes of a co-ordinate system. (nb_x, nb_y, nb_z) - number of splits (voxels) along x, y and z directions. | |
void | Destroy () |
A destructor of the voxel model. | |
~Voxel_OctBoolDS () | |
void | SetZero () |
The method sets all values equal to 0 (false) and releases the memory. | |
void | OptimizeMemory () |
The method searches voxels with equal-value of sub-voxels and removes them (remaining the value for the voxel). | |
void | Set (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz, const Standard_Boolean data) |
Defines a value for voxel with co-ordinates (ix, iy, iz). If the voxel is split into 8 sub-voxels, the split disappears. Initial state of the model is so that all voxels have value 0 (false), and this data doesn't occupy memory. Memory for data is allocating during setting non-zero values (true). | |
void | Set (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz, const Standard_Integer ioct, const Standard_Boolean data) |
Defines a value for a sub-voxel of a voxel with co-ordinates (ix, iy, iz). If the voxel is not split into 8 sub-voxels yet, this method splits the voxel. Range of sub-voxels is 0 - 7. | |
Standard_Boolean | Get (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz) const |
Returns the value of voxel with co-ordinates (ix, iy, iz). Warning!: the returned value may not coincide with the value of its 8 sub-voxels. Use the method ::IsSplit() to check whether a voxel has sub-voxels. | |
Standard_Boolean | Get (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz, const Standard_Integer ioct) const |
Returns the value of a sub-voxel of a voxel with co-ordinates (ix, iy, iz). If the voxel is not split, it returns the value of the voxel. Range of sub-voxels is 0 - 7. | |
Standard_Boolean | IsSplit (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz) const |
Returns true if the voxel is split into 8 sub-voxels. |
Voxel_OctBoolDS::Voxel_OctBoolDS | ( | const Standard_Real | x, |
const Standard_Real | y, | ||
const Standard_Real | z, | ||
const Standard_Real | x_len, | ||
const Standard_Real | y_len, | ||
const Standard_Real | z_len, | ||
const Standard_Integer | nb_x, | ||
const Standard_Integer | nb_y, | ||
const Standard_Integer | nb_z | ||
) |
Voxel_OctBoolDS::~Voxel_OctBoolDS | ( | ) | [inline] |
Standard_Boolean Voxel_OctBoolDS::Get | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz | ||
) | const |
Standard_Boolean Voxel_OctBoolDS::Get | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz, | ||
const Standard_Integer | ioct | ||
) | const |
virtual void Voxel_OctBoolDS::Init | ( | const Standard_Real | x, |
const Standard_Real | y, | ||
const Standard_Real | z, | ||
const Standard_Real | x_len, | ||
const Standard_Real | y_len, | ||
const Standard_Real | z_len, | ||
const Standard_Integer | nb_x, | ||
const Standard_Integer | nb_y, | ||
const Standard_Integer | nb_z | ||
) | [virtual] |
Reimplemented from Voxel_DS.
Standard_Boolean Voxel_OctBoolDS::IsSplit | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz | ||
) | const |
void Voxel_OctBoolDS::Set | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz, | ||
const Standard_Boolean | data | ||
) |
void Voxel_OctBoolDS::Set | ( | const Standard_Integer | ix, |
const Standard_Integer | iy, | ||
const Standard_Integer | iz, | ||
const Standard_Integer | ioct, | ||
const Standard_Boolean | data | ||
) |