Open CASCADE Technology: Voxel_OctBoolDS Class Reference

Open CASCADE Technology 6.8.0

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions
Voxel_OctBoolDS Class Reference

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. More...

`#include <Voxel_OctBoolDS.hxx>`

Inheritance diagram for Voxel_OctBoolDS:
[legend]

## Public Member Functions
| Voxel_OctBoolDS ()
| An empty constructor. More...
| 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. More...
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. More...
void | Destroy ()
| A destructor of the voxel model. More...
| ~Voxel_OctBoolDS ()
void | SetZero ()
| The method sets all values equal to 0 (false) and releases the memory. More...
void | OptimizeMemory ()
| The method searches voxels with equal-value of sub-voxels and removes them (remaining the value for the voxel). More...
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). More...
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. More...
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. More...
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. More...
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. More...
Public Member Functions inherited from Voxel_DS
| Voxel_DS ()
| An empty constructor. More...
| Voxel_DS (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. More...
Standard_Real | GetX () const
Standard_Real | GetY () const
Standard_Real | GetZ () const
Standard_Real | GetXLen () const
Standard_Real | GetYLen () const
Standard_Real | GetZLen () const
Standard_Integer | GetNbX () const
Standard_Integer | GetNbY () const
Standard_Integer | GetNbZ () const
void | GetCenter (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz, Standard_Real &xc, Standard_Real &yc, Standard_Real &zc) const
| Returns the center point of a voxel with co-ordinates (ix, iy, iz). More...
void | GetOrigin (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz, Standard_Real &x0, Standard_Real &y0, Standard_Real &z0) const
| Returns the origin point of a voxel with co-ordinates (ix, iy, iz). More...
Standard_Boolean | GetVoxel (const Standard_Real x, const Standard_Real y, const Standard_Real z, Standard_Integer &ix, Standard_Integer &iy, Standard_Integer &iz) const
| Finds a voxel corresponding to a 3D point. Returns true if it is found. More...
Standard_Boolean | GetVoxelX (const Standard_Real x, Standard_Integer &ix) const
| Returns x-index of a voxel corresponding to x-coordinate. More...
Standard_Boolean | GetVoxelY (const Standard_Real y, Standard_Integer &iy) const
| Returns y-index of a voxel corresponding to y-coordinate. More...
Standard_Boolean | GetVoxelZ (const Standard_Real z, Standard_Integer &iz) const
| Returns z-index of a voxel corresponding to z-coordinate. More...

## Additional Inherited Members
Protected Attributes inherited from Voxel_DS
Standard_Address | myData
Standard_Real | myX
Standard_Real | myY
Standard_Real | myZ
Standard_Real | myXLen
Standard_Real | myYLen
Standard_Real | myZLen
Standard_Integer | myNbX
Standard_Integer | myNbY
Standard_Integer | myNbZ
Standard_Integer | myNbXY
Standard_Real | myDX
Standard_Real | myDY
Standard_Real | myDZ
Standard_Real | myHalfDX
Standard_Real | myHalfDY
Standard_Real | myHalfDZ

## Detailed Description

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.

## Constructor & Destructor Documentation

Voxel_OctBoolDS::Voxel_OctBoolDS | ( |  | ) |

An empty constructor.

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
| ) |  |

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.

Voxel_OctBoolDS::~Voxel_OctBoolDS | ( |  | ) |
| inline

## Member Function Documentation

void Voxel_OctBoolDS::Destroy | ( |  | ) |

A destructor of the voxel model.

Standard_Boolean Voxel_OctBoolDS::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 Voxel_OctBoolDS::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.

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

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.

Reimplemented from Voxel_DS.

Standard_Boolean Voxel_OctBoolDS::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.

void Voxel_OctBoolDS::OptimizeMemory | ( |  | ) |

The method searches voxels with equal-value of sub-voxels and removes them (remaining the value for the voxel).

void Voxel_OctBoolDS::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 Voxel_OctBoolDS::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.

void Voxel_OctBoolDS::SetZero | ( |  | ) |

The method sets all values equal to 0 (false) and releases the memory.

The documentation for this class was generated from the following file:

- Voxel_OctBoolDS.hxx