C++ API
hpp-fcl
Introduction
hpp-fcl is a modified version the FCL libraries.
It is a library for collision detection and distance computation between various types of geometric shapes reprensented either by
basic shapes (hpp::fcl::ShapeBase) like box, sphere, cylinders, …
or by bounding volume hierarchies of various types (hpp::fcl::BVHModel)
hpp::fcl::collide(const CollisionObject*, const CollisionObject*, const CollisionRequest&, CollisionResult&)
hpp::fcl::distance(const CollisionObject*, const CollisionObject*, const DistanceRequest&, DistanceResult&)
Collision
detection and distance lower bound
Collision queries can return a distance lower bound between the two objects, which is computationally cheaper than computing the real distance. The following figure shows the returned result in CollisionResult::distance_lower_bound and DistanceResult::min_distance, with respect to the objects real distance.
The two parameters refer to CollisionRequest::security_margin and CollisionRequest::break_distance.
Note
In the green hatched area, the distance lower bound is not known. It is only guaranted that it will be inferior to distance - security_margin and superior to break_distance.
Note
If CollisionRequest::security_margin is set to -inf, no collision test is performed by function hpp::fcl::collide or class hpp::fcl::ComputeCollision and the objects are considered as not colliding.