Open CASCADE Technology 7.8.2.dev
|
Tool object for building 3D distance field from the set of BVH triangulations. Distance field is a scalar field that measures the distance from a given point to some object, including optional information about the inside and outside of the structure. Distance fields are used as alternative surface representations (like polygons or NURBS). More...
#include <BVH_DistanceField.hxx>
Public Types | |
typedef BVH::VectorType< T, N >::Type | BVH_VecNt |
Public Member Functions | |
BVH_DistanceField (const Standard_Integer theMaximumSize, const Standard_Boolean theComputeSign) | |
Creates empty 3D distance field. | |
virtual | ~BVH_DistanceField () |
Releases resources of 3D distance field. | |
Standard_Boolean | Build (BVH_Geometry< T, N > &theGeometry) |
Builds 3D distance field from BVH geometry. | |
Standard_Boolean | IsParallel () const |
Returns parallel flag. | |
void | SetParallel (const Standard_Boolean isParallel) |
Set parallel flag contolling possibility of parallel execution. | |
const T * | PackedData () const |
Returns packed voxel data. | |
T & | Voxel (const Standard_Integer theX, const Standard_Integer theY, const Standard_Integer theZ) |
Returns distance value for the given voxel. | |
T | Voxel (const Standard_Integer theX, const Standard_Integer theY, const Standard_Integer theZ) const |
Returns distance value for the given voxel. | |
Standard_Integer | DimensionX () const |
Returns size of voxel grid in X dimension. | |
Standard_Integer | DimensionY () const |
Returns size of voxel grid in Y dimension. | |
Standard_Integer | DimensionZ () const |
Returns size of voxel grid in Z dimension. | |
const BVH_VecNt & | VoxelSize () const |
Returns size of single voxel. | |
const BVH_VecNt & | CornerMin () const |
Returns minimum corner of voxel grid. | |
const BVH_VecNt & | CornerMax () const |
Returns maximum corner of voxel grid. | |
Protected Member Functions | |
void | BuildSlices (BVH_Geometry< T, N > &theGeometry, const Standard_Integer theStartZ, const Standard_Integer theFinalZ) |
Performs building of distance field for the given Z slices. | |
Protected Attributes | |
T * | myVoxelData |
Array of voxels. | |
BVH_VecNt | myVoxelSize |
Size of single voxel. | |
BVH_VecNt | myCornerMin |
Minimum corner of voxel grid. | |
BVH_VecNt | myCornerMax |
Maximum corner of voxel grid. | |
Standard_Integer | myDimensionX |
Size of voxel grid in X dimension. | |
Standard_Integer | myDimensionY |
Size of voxel grid in Y dimension. | |
Standard_Integer | myDimensionZ |
Size of voxel grid in Z dimension. | |
Standard_Integer | myMaximumSize |
Size of voxel grid in maximum dimension. | |
Standard_Boolean | myComputeSign |
Enables/disables signing of distance field. | |
Standard_Boolean | myIsParallel |
Tool object for building 3D distance field from the set of BVH triangulations. Distance field is a scalar field that measures the distance from a given point to some object, including optional information about the inside and outside of the structure. Distance fields are used as alternative surface representations (like polygons or NURBS).
BVH::VectorType<T,N>::Type BVH_DistanceField< T, N >::BVH_VecNt |
BVH_DistanceField< T, N >::BVH_DistanceField | ( | const Standard_Integer | theMaximumSize, |
const Standard_Boolean | theComputeSign ) |
Creates empty 3D distance field.
|
virtual |
Releases resources of 3D distance field.
Standard_Boolean BVH_DistanceField< T, N >::Build | ( | BVH_Geometry< T, N > & | theGeometry | ) |
Builds 3D distance field from BVH geometry.
|
protected |
Performs building of distance field for the given Z slices.
|
inline |
Returns maximum corner of voxel grid.
|
inline |
Returns minimum corner of voxel grid.
|
inline |
Returns size of voxel grid in X dimension.
|
inline |
Returns size of voxel grid in Y dimension.
|
inline |
Returns size of voxel grid in Z dimension.
|
inline |
Returns parallel flag.
|
inline |
Returns packed voxel data.
|
inline |
Set parallel flag contolling possibility of parallel execution.
|
inline |
Returns distance value for the given voxel.
|
inline |
Returns distance value for the given voxel.
|
inline |
Returns size of single voxel.
|
protected |
Enables/disables signing of distance field.
|
protected |
Maximum corner of voxel grid.
|
protected |
Minimum corner of voxel grid.
|
protected |
Size of voxel grid in X dimension.
|
protected |
Size of voxel grid in Y dimension.
|
protected |
Size of voxel grid in Z dimension.
|
protected |
|
protected |
Size of voxel grid in maximum dimension.
|
protected |
Array of voxels.
|
protected |
Size of single voxel.