hpp-fcl  3.0.0
HPP fork of FCL -- The Flexible Collision Library
collision_data.h File Reference
#include <vector>
#include <array>
#include <set>
#include <limits>
#include <numeric>
#include "hpp/fcl/collision_object.h"
#include "hpp/fcl/config.hh"
#include "hpp/fcl/data_types.h"
#include "hpp/fcl/timings.h"
#include "hpp/fcl/narrowphase/narrowphase_defaults.h"
#include "hpp/fcl/logging.h"
Include dependency graph for collision_data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hpp::fcl::Contact
 Contact information returned by collision. More...
 
struct  hpp::fcl::QueryRequest
 base class for all query requests More...
 
struct  hpp::fcl::QueryResult
 base class for all query results More...
 
struct  hpp::fcl::CollisionRequest
 request to the collision algorithm More...
 
struct  hpp::fcl::CollisionResult
 collision result More...
 
struct  hpp::fcl::ContactPatch
 This structure allows to encode contact patches. A contact patch is defined by a set of points belonging to a subset of a plane passing by p and supported by n, where n = Contact::normal and p = Contact::pos. If we denote by P this plane and by S1 and S2 the first and second shape of a collision pair, a contact patch is represented as a polytope which vertices all belong to P & S1 & S2, where & denotes the set-intersection. Since a contact patch is a subset of a plane supported by n, it has a preferred direction. In HPP-FCL, the Contact::normal points from S1 to S2. In the same way, a contact patch points by default from S1 to S2. More...
 
struct  hpp::fcl::ContactPatchRequest
 Request for a contact patch computation. More...
 
struct  hpp::fcl::ContactPatchResult
 Result for a contact patch computation. More...
 
struct  hpp::fcl::DistanceRequest
 request to the distance computation More...
 
struct  hpp::fcl::DistanceResult
 distance result More...
 

Namespaces

 hpp
 Main namespace.
 
 hpp::fcl
 
 hpp::fcl::internal
 

Typedefs

using hpp::fcl::SupportSet = ContactPatch
 Structure used for internal computations. A support set and a contact patch can be represented by the same structure. In fact, a contact patch is the intersection of two support sets, one with PatchDirection::DEFAULT and one with PatchDirection::INVERTED. More...
 

Enumerations

enum  hpp::fcl::CollisionRequestFlag { hpp::fcl::CONTACT = 0x00001 , hpp::fcl::DISTANCE_LOWER_BOUND = 0x00002 , hpp::fcl::NO_REQUEST = 0x01000 }
 flag declaration for specifying required params in CollisionResult More...
 

Functions

void hpp::fcl::constructContactPatchFrameFromContact (const Contact &contact, ContactPatch &contact_patch)
 Construct a frame from a Contact's position and normal. Because both Contact's position and normal are expressed in the world frame, this frame is also expressed w.r.t the world frame. The origin of the frame is contact.pos and the z-axis of the frame is contact.normal. More...
 
void hpp::fcl::internal::updateDistanceLowerBoundFromBV (const CollisionRequest &, CollisionResult &res, const FCL_REAL sqrDistLowerBound)
 
void hpp::fcl::internal::updateDistanceLowerBoundFromLeaf (const CollisionRequest &, CollisionResult &res, const FCL_REAL &distance, const Vec3f &p0, const Vec3f &p1, const Vec3f &normal)
 
CollisionRequestFlag hpp::fcl::operator~ (CollisionRequestFlag a)
 
CollisionRequestFlag hpp::fcl::operator| (CollisionRequestFlag a, CollisionRequestFlag b)
 
CollisionRequestFlag hpp::fcl::operator& (CollisionRequestFlag a, CollisionRequestFlag b)
 
CollisionRequestFlag hpp::fcl::operator^ (CollisionRequestFlag a, CollisionRequestFlag b)
 
CollisionRequestFlag & hpp::fcl::operator|= (CollisionRequestFlag &a, CollisionRequestFlag b)
 
CollisionRequestFlag & hpp::fcl::operator&= (CollisionRequestFlag &a, CollisionRequestFlag b)
 
CollisionRequestFlag & hpp::fcl::operator^= (CollisionRequestFlag &a, CollisionRequestFlag b)