Open CASCADE Technology  6.9.0
Public Member Functions

Voxel_CollisionDetection Class Reference

Detects collisions between shapes. More...

#include <Voxel_CollisionDetection.hxx>

Public Member Functions

 Voxel_CollisionDetection ()
 An empty constructor. More...
 
 Voxel_CollisionDetection (const Standard_Real deflection, const Standard_Integer nbx, const Standard_Integer nby, const Standard_Integer nbz)
 A constructor. It defines deflection of triangulation for the shapes. As lower the deflection is, as proper the triangulation is generated. Also, it defines number of splits along X, Y and Z axes for generation of voxels. As greater the numbers are, as greater number of voxels is used for detection of collision. More...
 
Standard_Integer AddShape (const TopoDS_Shape &shape)
 Adds a shape. Returns an index of the shape. More...
 
Standard_Boolean ReplaceShape (const Standard_Integer ishape, const TopoDS_Shape &shape)
 Replaces a shape by another one. <ishape> is an index of the shape. This method is useful for moving shape, for example. More...
 
void SetDeflection (const Standard_Real deflection)
 Defines the deflection of triangulation of shapes. More...
 
void SetNbVoxels (const Standard_Integer nbx, const Standard_Integer nby, const Standard_Integer nbz)
 Defines the number of voxels along X, Y and Z axes. More...
 
void SetBoundaryBox (const Bnd_Box &box)
 Defines a user-defined boundary box for generation of voxels. If this method is not called, the algorithm calculates the boundary box itself. More...
 
void SetUsageOfVolume (const Standard_Boolean usage)
 Defines usage of volume of shapes in collision detection algorithm. Beware, usage of volume a little bit decreases the speed of algorithm. More...
 
void KeepCollisions (const Standard_Boolean keep)
 Doesn't clean the collision points on new call to the method Compute(). It allows to see the collisions for a moving shape. More...
 
Standard_Boolean Voxelize (const Standard_Integer ishape=-1)
 Prepares data for computation of collisions. It checks the inner parameters (number of voxels along X, Y and Z axes) and voxelizes the shapes. If the shape is not changed since the last call to this method, this method may be not called for this shape. <ishape> - is the index of the shape for processing by this method. If it is equal to -1, all shapes will be processed. More...
 
Standard_Boolean Compute ()
 Computes the collisions. This method may be called many times if, for example, the shapes are being moved. More...
 
Standard_Boolean HasCollisions () const
 Returns true if a collision is detected. More...
 
const Voxel_BoolDSGetCollisions () const
 Returns the collided voxels. More...
 
void Destroy ()
 A destructor. More...
 
 ~Voxel_CollisionDetection ()
 

Detailed Description

Detects collisions between shapes.

Constructor & Destructor Documentation

Voxel_CollisionDetection::Voxel_CollisionDetection ( )

An empty constructor.

Voxel_CollisionDetection::Voxel_CollisionDetection ( const Standard_Real  deflection,
const Standard_Integer  nbx,
const Standard_Integer  nby,
const Standard_Integer  nbz 
)

A constructor. It defines deflection of triangulation for the shapes. As lower the deflection is, as proper the triangulation is generated. Also, it defines number of splits along X, Y and Z axes for generation of voxels. As greater the numbers are, as greater number of voxels is used for detection of collision.

Voxel_CollisionDetection::~Voxel_CollisionDetection ( )
inline

Member Function Documentation

Standard_Integer Voxel_CollisionDetection::AddShape ( const TopoDS_Shape shape)

Adds a shape. Returns an index of the shape.

Standard_Boolean Voxel_CollisionDetection::Compute ( )

Computes the collisions. This method may be called many times if, for example, the shapes are being moved.

void Voxel_CollisionDetection::Destroy ( )

A destructor.

const Voxel_BoolDS& Voxel_CollisionDetection::GetCollisions ( ) const

Returns the collided voxels.

Standard_Boolean Voxel_CollisionDetection::HasCollisions ( ) const

Returns true if a collision is detected.

void Voxel_CollisionDetection::KeepCollisions ( const Standard_Boolean  keep)

Doesn't clean the collision points on new call to the method Compute(). It allows to see the collisions for a moving shape.

Standard_Boolean Voxel_CollisionDetection::ReplaceShape ( const Standard_Integer  ishape,
const TopoDS_Shape shape 
)

Replaces a shape by another one. <ishape> is an index of the shape. This method is useful for moving shape, for example.

void Voxel_CollisionDetection::SetBoundaryBox ( const Bnd_Box box)

Defines a user-defined boundary box for generation of voxels. If this method is not called, the algorithm calculates the boundary box itself.

void Voxel_CollisionDetection::SetDeflection ( const Standard_Real  deflection)

Defines the deflection of triangulation of shapes.

void Voxel_CollisionDetection::SetNbVoxels ( const Standard_Integer  nbx,
const Standard_Integer  nby,
const Standard_Integer  nbz 
)

Defines the number of voxels along X, Y and Z axes.

void Voxel_CollisionDetection::SetUsageOfVolume ( const Standard_Boolean  usage)

Defines usage of volume of shapes in collision detection algorithm. Beware, usage of volume a little bit decreases the speed of algorithm.

Standard_Boolean Voxel_CollisionDetection::Voxelize ( const Standard_Integer  ishape = -1)

Prepares data for computation of collisions. It checks the inner parameters (number of voxels along X, Y and Z axes) and voxelizes the shapes. If the shape is not changed since the last call to this method, this method may be not called for this shape. <ishape> - is the index of the shape for processing by this method. If it is equal to -1, all shapes will be processed.


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