/usr/include/oce/Voxel_CollisionDetection.hxx is in liboce-visualization-dev 0.17.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | // This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to
// this header file considered to be the "object code" form of the original source.
#ifndef _Voxel_CollisionDetection_HeaderFile
#define _Voxel_CollisionDetection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>
#include <TopTools_ListOfShape.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Address.hxx>
#include <Voxel_BoolDS.hxx>
class TopoDS_Shape;
class Bnd_Box;
class Voxel_BoolDS;
//! Detects collisions between shapes.
class Voxel_CollisionDetection
{
public:
DEFINE_STANDARD_ALLOC
//! An empty constructor.
Standard_EXPORT Voxel_CollisionDetection();
//! 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.
Standard_EXPORT Voxel_CollisionDetection(const Standard_Real deflection, const Standard_Integer nbx, const Standard_Integer nby, const Standard_Integer nbz);
//! Adds a shape.
//! Returns an index of the shape.
Standard_EXPORT Standard_Integer AddShape (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.
Standard_EXPORT Standard_Boolean ReplaceShape (const Standard_Integer ishape, const TopoDS_Shape& shape) ;
//! Defines the deflection of triangulation of shapes.
Standard_EXPORT void SetDeflection (const Standard_Real deflection) ;
//! Defines the number of voxels along X, Y and Z axes.
Standard_EXPORT void SetNbVoxels (const Standard_Integer nbx, const Standard_Integer nby, const Standard_Integer nbz) ;
//! Defines a user-defined boundary box for generation of voxels.
//! If this method is not called, the algorithm calculates the boundary box itself.
Standard_EXPORT void SetBoundaryBox (const Bnd_Box& box) ;
//! Defines usage of volume of shapes in collision detection algorithm.
//! Beware, usage of volume a little bit decreases the speed of algorithm.
Standard_EXPORT void SetUsageOfVolume (const Standard_Boolean usage) ;
//! Doesn't clean the collision points on new call to the method Compute().
//! It allows to see the collisions for a moving shape.
Standard_EXPORT void KeepCollisions (const Standard_Boolean keep) ;
//! 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.
Standard_EXPORT Standard_Boolean Voxelize (const Standard_Integer ishape = -1) ;
//! Computes the collisions.
//! This method may be called many times if, for example, the shapes are being moved.
Standard_EXPORT Standard_Boolean Compute() ;
//! Returns true if a collision is detected.
Standard_EXPORT Standard_Boolean HasCollisions() const;
//! Returns the collided voxels.
Standard_EXPORT const Voxel_BoolDS& GetCollisions() const;
//! A destructor.
Standard_EXPORT void Destroy() ;
~Voxel_CollisionDetection()
{
Destroy();
}
protected:
private:
//! An internal method for cleaning the intermediate data.
Standard_EXPORT void Clear() ;
//! An internal method, which checks correspondance
//! of voxels to the parameters defined by user.
Standard_EXPORT Standard_Boolean CheckVoxels (const Voxel_BoolDS& voxels) const;
TopTools_ListOfShape myShapes;
Standard_Real myDeflection;
Standard_Integer myNbX;
Standard_Integer myNbY;
Standard_Integer myNbZ;
Standard_Boolean myUsageOfVolume;
Standard_Boolean myKeepCollisions;
Standard_Real myX;
Standard_Real myY;
Standard_Real myZ;
Standard_Real myXLen;
Standard_Real myYLen;
Standard_Real myZLen;
Standard_Address myVoxels;
Voxel_BoolDS myCollisions;
Standard_Boolean myHasCollisions;
};
#endif // _Voxel_CollisionDetection_HeaderFile
|