coal
3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
|
Classes | |
struct | coal::BVNodeBase |
BVNodeBase encodes the tree structure for BVH. More... | |
struct | coal::BVNode< BV > |
A class describing a bounding volume node. It includes the tree structure providing in BVNodeBase and also the geometry data provided in BV template parameter. More... | |
class | coal::BVFitter< BV > |
The class for the default algorithm fitting a bounding volume to a set of points. More... | |
class | coal::BVSplitter< BV > |
A class describing the split rule that splits each BV node. More... | |
class | coal::BVHModelBase |
A base class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as a degraded version of mesh) More... | |
class | coal::BVHModel< BV > |
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as a degraded version of mesh) More... | |
class | coal::CollisionGeometry |
The geometry for the object for collision or distance computation. More... | |
class | coal::CollisionObject |
the object for collision or distance computation, contains the geometry and the transform information More... | |
Typedefs | |
typedef BVNodeBase | coal::BVNode< BV >::Base |
Functions | |
coal::BVNodeBase::BVNodeBase () | |
Default constructor. More... | |
bool | coal::BVNodeBase::operator== (const BVNodeBase &other) const |
Equality operator. More... | |
bool | coal::BVNodeBase::operator!= (const BVNodeBase &other) const |
Difference operator. More... | |
bool | coal::BVNodeBase::isLeaf () const |
Whether current node is a leaf node (i.e. contains a primitive index. More... | |
int | coal::BVNodeBase::primitiveId () const |
Return the primitive index. The index is referred to the original data (i.e. vertices or tri_indices) in BVHModel. More... | |
int | coal::BVNodeBase::leftChild () const |
Return the index of the first child. The index is referred to the bounding volume array (i.e. bvs) in BVHModel. More... | |
int | coal::BVNodeBase::rightChild () const |
Return the index of the second child. The index is referred to the bounding volume array (i.e. bvs) in BVHModel. More... | |
bool | coal::BVNode< BV >::operator== (const BVNode &other) const |
Equality operator. More... | |
bool | coal::BVNode< BV >::operator!= (const BVNode &other) const |
Difference operator. More... | |
bool | coal::BVNode< BV >::overlap (const BVNode &other) const |
Check whether two BVNode collide. More... | |
bool | coal::BVNode< BV >::overlap (const BVNode &other, const CollisionRequest &request, Scalar &sqrDistLowerBound) const |
Check whether two BVNode collide. More... | |
Scalar | coal::BVNode< BV >::distance (const BVNode &other, Vec3s *P1=NULL, Vec3s *P2=NULL) const |
Compute the distance between two BVNode. P1 and P2, if not NULL and the underlying BV supports distance, return the nearest points. More... | |
Vec3s | coal::BVNode< BV >::getCenter () const |
Access to the center of the BV. More... | |
const Matrix3s & | coal::BVNode< BV >::getOrientation () const |
Access to the orientation of the BV. More... | |
coal::CollisionGeometry::CollisionGeometry () | |
coal::CollisionGeometry::CollisionGeometry (const CollisionGeometry &other)=default | |
Copy constructor. More... | |
virtual | coal::CollisionGeometry::~CollisionGeometry () |
virtual CollisionGeometry * | coal::CollisionGeometry::clone () const =0 |
Clone *this into a new CollisionGeometry. More... | |
bool | coal::CollisionGeometry::operator== (const CollisionGeometry &other) const |
Equality operator. More... | |
bool | coal::CollisionGeometry::operator!= (const CollisionGeometry &other) const |
Difference operator. More... | |
virtual OBJECT_TYPE | coal::CollisionGeometry::getObjectType () const |
get the type of the object More... | |
virtual NODE_TYPE | coal::CollisionGeometry::getNodeType () const |
get the node type More... | |
virtual void | coal::CollisionGeometry::computeLocalAABB ()=0 |
compute the AABB for object in local coordinate More... | |
void * | coal::CollisionGeometry::getUserData () const |
get user data in geometry More... | |
void | coal::CollisionGeometry::setUserData (void *data) |
set user data in geometry More... | |
bool | coal::CollisionGeometry::isOccupied () const |
whether the object is completely occupied More... | |
bool | coal::CollisionGeometry::isFree () const |
whether the object is completely free More... | |
bool | coal::CollisionGeometry::isUncertain () const |
whether the object has some uncertainty More... | |
virtual Vec3s | coal::CollisionGeometry::computeCOM () const |
compute center of mass More... | |
virtual Matrix3s | coal::CollisionGeometry::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
virtual Scalar | coal::CollisionGeometry::computeVolume () const |
compute the volume More... | |
virtual Matrix3s | coal::CollisionGeometry::computeMomentofInertiaRelatedToCOM () const |
compute the inertia matrix, related to the com More... | |
coal::CollisionObject::CollisionObject (const shared_ptr< CollisionGeometry > &cgeom_, bool compute_local_aabb=true) | |
coal::CollisionObject::CollisionObject (const shared_ptr< CollisionGeometry > &cgeom_, const Transform3s &tf, bool compute_local_aabb=true) | |
coal::CollisionObject::CollisionObject (const shared_ptr< CollisionGeometry > &cgeom_, const Matrix3s &R, const Vec3s &T, bool compute_local_aabb=true) | |
bool | coal::CollisionObject::operator== (const CollisionObject &other) const |
bool | coal::CollisionObject::operator!= (const CollisionObject &other) const |
coal::CollisionObject::~CollisionObject () | |
OBJECT_TYPE | coal::CollisionObject::getObjectType () const |
get the type of the object More... | |
NODE_TYPE | coal::CollisionObject::getNodeType () const |
get the node type More... | |
const AABB & | coal::CollisionObject::getAABB () const |
get the AABB in world space More... | |
AABB & | coal::CollisionObject::getAABB () |
get the AABB in world space More... | |
void | coal::CollisionObject::computeAABB () |
compute the AABB in world space More... | |
void * | coal::CollisionObject::getUserData () const |
get user data in object More... | |
void | coal::CollisionObject::setUserData (void *data) |
set user data in object More... | |
const Vec3s & | coal::CollisionObject::getTranslation () const |
get translation of the object More... | |
const Matrix3s & | coal::CollisionObject::getRotation () const |
get matrix rotation of the object More... | |
const Transform3s & | coal::CollisionObject::getTransform () const |
get object's transform More... | |
void | coal::CollisionObject::setRotation (const Matrix3s &R) |
set object's rotation matrix More... | |
void | coal::CollisionObject::setTranslation (const Vec3s &T) |
set object's translation More... | |
void | coal::CollisionObject::setTransform (const Matrix3s &R, const Vec3s &T) |
set object's transform More... | |
void | coal::CollisionObject::setTransform (const Transform3s &tf) |
set object's transform More... | |
bool | coal::CollisionObject::isIdentityTransform () const |
whether the object is in local coordinate More... | |
void | coal::CollisionObject::setIdentityTransform () |
set the object in local coordinate More... | |
const shared_ptr< const CollisionGeometry > | coal::CollisionObject::collisionGeometry () const |
get shared pointer to collision geometry of the object instance More... | |
const shared_ptr< CollisionGeometry > & | coal::CollisionObject::collisionGeometry () |
get shared pointer to collision geometry of the object instance More... | |
const CollisionGeometry * | coal::CollisionObject::collisionGeometryPtr () const |
get raw pointer to collision geometry of the object instance More... | |
CollisionGeometry * | coal::CollisionObject::collisionGeometryPtr () |
get raw pointer to collision geometry of the object instance More... | |
void | coal::CollisionObject::setCollisionGeometry (const shared_ptr< CollisionGeometry > &collision_geometry, bool compute_local_aabb=true) |
Associate a new CollisionGeometry. More... | |
void | coal::CollisionObject::init (bool compute_local_aabb=true) |
Variables | |
int | coal::BVNodeBase::first_child |
An index for first child node or primitive If the value is positive, it is the index of the first child bv node If the value is negative, it is -(primitive index + 1) Zero is not used. More... | |
unsigned int | coal::BVNodeBase::first_primitive |
The start id the primitive belonging to the current node. The index is referred to the primitive_indices in BVHModel and from that we can obtain the primitive's index in original data indirectly. More... | |
unsigned int | coal::BVNodeBase::num_primitives |
The number of primitives belonging to the current node. More... | |
BV | coal::BVNode< BV >::bv |
bounding volume storing the geometry More... | |
Vec3s | coal::CollisionGeometry::aabb_center |
AABB center in local coordinate. More... | |
Scalar | coal::CollisionGeometry::aabb_radius |
AABB radius. More... | |
AABB | coal::CollisionGeometry::aabb_local |
AABB in local coordinate, used for tight AABB when only translation transform. More... | |
void * | coal::CollisionGeometry::user_data |
pointer to user defined data specific to this object More... | |
Scalar | coal::CollisionGeometry::cost_density |
collision cost for unit volume More... | |
Scalar | coal::CollisionGeometry::threshold_occupied |
threshold for occupied ( >= is occupied) More... | |
Scalar | coal::CollisionGeometry::threshold_free |
threshold for free (<= is free) More... | |
shared_ptr< CollisionGeometry > | coal::CollisionObject::cgeom |
Transform3s | coal::CollisionObject::t |
AABB | coal::CollisionObject::aabb |
AABB in global coordinate. More... | |
void * | coal::CollisionObject::user_data |
pointer to user defined data specific to this object More... | |
Classes which are used to build a BVHModel (Bounding Volume Hierarchy)
typedef BVNodeBase coal::BVNode< BV >::Base |
|
inline |
Default constructor.
|
pure virtual |
Clone *this into a new CollisionGeometry.
Implemented in coal::Plane, coal::Halfspace, coal::ConvexBase, coal::Cylinder, coal::Cone, coal::Capsule, coal::Ellipsoid, coal::Sphere, coal::Box, coal::TriangleP, coal::Convex< PolygonT >, coal::OcTree, coal::HeightField< BV >, and coal::BVHModel< BV >.
|
inline |
|
inline |
get shared pointer to collision geometry of the object instance
|
inline |
get shared pointer to collision geometry of the object instance
|
default |
Copy constructor.
|
inline |
get raw pointer to collision geometry of the object instance
|
inline |
get raw pointer to collision geometry of the object instance
|
inline |
|
inline |
|
inline |
|
inline |
compute the AABB in world space
|
inlinevirtual |
compute center of mass
Reimplemented in coal::Cone, coal::Convex< PolygonT >, coal::HeightField< BV >, and coal::BVHModelBase.
|
pure virtual |
compute the AABB for object in local coordinate
Implemented in coal::Plane, coal::Halfspace, coal::ConvexBase, coal::Cylinder, coal::Cone, coal::Capsule, coal::Ellipsoid, coal::Sphere, coal::Box, coal::TriangleP, coal::OcTree, coal::HeightField< BV >, and coal::BVHModelBase.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented in coal::Cylinder, coal::Cone, coal::Capsule, coal::Ellipsoid, coal::Sphere, coal::Box, coal::Convex< PolygonT >, coal::HeightField< BV >, and coal::BVHModelBase.
|
inlinevirtual |
compute the inertia matrix, related to the com
|
inlinevirtual |
compute the volume
Reimplemented in coal::Cylinder, coal::Cone, coal::Capsule, coal::Ellipsoid, coal::Sphere, coal::Box, coal::Convex< PolygonT >, coal::HeightField< BV >, and coal::BVHModelBase.
|
inline |
Compute the distance between two BVNode. P1 and P2, if not NULL and the underlying BV supports distance, return the nearest points.
|
inline |
Access to the center of the BV.
|
inlinevirtual |
get the node type
Reimplemented in coal::Plane, coal::Halfspace, coal::ConvexBase, coal::Cylinder, coal::Cone, coal::Capsule, coal::Ellipsoid, coal::Sphere, coal::Box, coal::TriangleP, coal::OcTree, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::HeightField< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, coal::BVHModel< BV >, and coal::BVHModel< BV >.
|
inline |
get the node type
|
inlinevirtual |
get the type of the object
Reimplemented in coal::ShapeBase, coal::OcTree, coal::HeightField< BV >, and coal::BVHModelBase.
|
inline |
get the type of the object
|
inline |
Access to the orientation of the BV.
|
inline |
get matrix rotation of the object
|
inline |
get object's transform
|
inline |
get translation of the object
|
inline |
get user data in geometry
|
inline |
get user data in object
|
inlineprotected |
|
inline |
whether the object is completely free
|
inline |
whether the object is in local coordinate
|
inline |
Whether current node is a leaf node (i.e. contains a primitive index.
|
inline |
whether the object is completely occupied
bool coal::CollisionGeometry::isUncertain | ( | ) | const |
whether the object has some uncertainty
|
inline |
Return the index of the first child. The index is referred to the bounding volume array (i.e. bvs) in BVHModel.
|
inline |
Difference operator.
|
inline |
Difference operator.
|
inline |
Difference operator.
|
inline |
|
inline |
Equality operator.
|
inline |
Equality operator.
|
inline |
Equality operator.
|
inline |
|
inline |
Check whether two BVNode collide.
|
inline |
Check whether two BVNode collide.
|
inline |
Return the primitive index. The index is referred to the original data (i.e. vertices or tri_indices) in BVHModel.
|
inline |
Return the index of the second child. The index is referred to the bounding volume array (i.e. bvs) in BVHModel.
|
inline |
Associate a new CollisionGeometry.
[in] | collision_geometry | The new CollisionGeometry |
[in] | compute_local_aabb | Whether the local aabb of the input new has to be computed. |
|
inline |
set the object in local coordinate
|
inline |
set object's rotation matrix
set object's transform
|
inline |
set object's transform
|
inline |
set object's translation
|
inline |
set user data in geometry
|
inline |
set user data in object
|
inlinevirtual |
|
inline |
AABB coal::CollisionGeometry::aabb_local |
BV coal::BVNode< BV >::bv |
bounding volume storing the geometry
|
protected |
Scalar coal::CollisionGeometry::cost_density |
collision cost for unit volume
int coal::BVNodeBase::first_child |
An index for first child node or primitive If the value is positive, it is the index of the first child bv node If the value is negative, it is -(primitive index + 1) Zero is not used.
unsigned int coal::BVNodeBase::first_primitive |
The start id the primitive belonging to the current node. The index is referred to the primitive_indices in BVHModel and from that we can obtain the primitive's index in original data indirectly.
unsigned int coal::BVNodeBase::num_primitives |
The number of primitives belonging to the current node.
|
protected |
Scalar coal::CollisionGeometry::threshold_free |
threshold for free (<= is free)
Scalar coal::CollisionGeometry::threshold_occupied |
threshold for occupied ( >= is occupied)
void* coal::CollisionGeometry::user_data |
pointer to user defined data specific to this object
|
protected |
pointer to user defined data specific to this object