coal  3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
coal::CollisionRequest Struct Reference

request to the collision algorithm More...

#include <coal/collision_data.h>

Inheritance diagram for coal::CollisionRequest:
Collaboration diagram for coal::CollisionRequest:

Public Member Functions

 CollisionRequest (const CollisionRequestFlag flag, size_t num_max_contacts_)
 Constructor from a flag and a maximal number of contacts. More...
 
 CollisionRequest ()
 Default constructor. More...
 
bool isSatisfied (const CollisionResult &result) const
 
bool operator== (const CollisionRequest &other) const
 whether two CollisionRequest are the same or not More...
 
- Public Member Functions inherited from coal::QueryRequest
 QueryRequest ()
 Default constructor. More...
 
 QueryRequest (const QueryRequest &other)=default
 Copy constructor. More...
 
QueryRequestoperator= (const QueryRequest &other)=default
 Copy assignment operator. More...
 
void updateGuess (const QueryResult &result) const
 Updates the guess for the internal GJK algorithm in order to warm-start it when reusing this collision request on the same collision pair. More...
 
bool operator== (const QueryRequest &other) const
 whether two QueryRequest are the same or not More...
 

Public Attributes

size_t num_max_contacts
 The maximum number of contacts that can be returned. More...
 
bool enable_contact
 whether the contact information (normal, penetration depth and contact position) will return. More...
 
bool enable_distance_lower_bound
 Whether a lower bound on distance is returned when objects are disjoint. More...
 
Scalar security_margin
 Distance below which objects are considered in collision. See Collision. More...
 
Scalar break_distance
 Distance below which bounding volumes are broken down. See Collision. More...
 
Scalar distance_upper_bound
 Distance above which GJK solver makes an early stopping. GJK stops searching for the closest points when it proves that the distance between two geometries is above this threshold. More...
 
- Public Attributes inherited from coal::QueryRequest
GJKInitialGuess gjk_initial_guess
 
bool enable_cached_gjk_guess
 whether enable gjk initial guess @Deprecated Use gjk_initial_guess instead More...
 
Vec3s cached_gjk_guess
 the gjk initial guess set by user More...
 
support_func_guess_t cached_support_func_guess
 the support function initial guess set by user More...
 
size_t gjk_max_iterations
 maximum iteration for the GJK algorithm More...
 
Scalar gjk_tolerance
 tolerance for the GJK algorithm. Note: This tolerance determines the precision on the estimated distance between two geometries which are not in collision. It is recommended to not set this tolerance to less than 1e-6. More...
 
GJKVariant gjk_variant
 whether to enable the Nesterov accleration of GJK More...
 
GJKConvergenceCriterion gjk_convergence_criterion
 convergence criterion used to stop GJK More...
 
GJKConvergenceCriterionType gjk_convergence_criterion_type
 convergence criterion used to stop GJK More...
 
size_t epa_max_iterations
 max number of iterations for EPA More...
 
Scalar epa_tolerance
 tolerance for EPA. Note: This tolerance determines the precision on the estimated distance between two geometries which are in collision. It is recommended to not set this tolerance to less than 1e-6. Also, setting EPA's tolerance to less than GJK's is not recommended. More...
 
bool enable_timings
 enable timings when performing collision/distance request More...
 
Scalar collision_distance_threshold
 threshold below which a collision is considered. More...
 

Detailed Description

request to the collision algorithm

Constructor & Destructor Documentation

◆ CollisionRequest() [1/2]

coal::CollisionRequest::CollisionRequest ( const CollisionRequestFlag  flag,
size_t  num_max_contacts_ 
)
inline

Constructor from a flag and a maximal number of contacts.

Parameters
[in]flagCollision request flag
[in]num_max_contactsMaximal number of allowed contacts

◆ CollisionRequest() [2/2]

coal::CollisionRequest::CollisionRequest ( )
inline

Default constructor.

Member Function Documentation

◆ isSatisfied()

bool coal::CollisionRequest::isSatisfied ( const CollisionResult result) const

◆ operator==()

bool coal::CollisionRequest::operator== ( const CollisionRequest other) const
inline

whether two CollisionRequest are the same or not

Member Data Documentation

◆ break_distance

Scalar coal::CollisionRequest::break_distance

Distance below which bounding volumes are broken down. See Collision.

◆ distance_upper_bound

Scalar coal::CollisionRequest::distance_upper_bound

Distance above which GJK solver makes an early stopping. GJK stops searching for the closest points when it proves that the distance between two geometries is above this threshold.

Remarks
Consequently, the closest points might be incorrect, but allows to save computational resources.

◆ enable_contact

bool coal::CollisionRequest::enable_contact

whether the contact information (normal, penetration depth and contact position) will return.

◆ enable_distance_lower_bound

bool coal::CollisionRequest::enable_distance_lower_bound

Whether a lower bound on distance is returned when objects are disjoint.

◆ num_max_contacts

size_t coal::CollisionRequest::num_max_contacts

The maximum number of contacts that can be returned.

◆ security_margin

Scalar coal::CollisionRequest::security_margin

Distance below which objects are considered in collision. See Collision.

Note
If set to -inf, the objects tested for collision are considered as collision free and no test is actually performed by functions coal::collide of class coal::ComputeCollision.

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