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

The contact patch matrix stores the functions for contact patches computation between different types of objects and provides a uniform call interface. More...

#include <coal/contact_patch_func_matrix.h>

Collaboration diagram for coal::ContactPatchFunctionMatrix:

Public Types

typedef void(* ContactPatchFunc) (const CollisionGeometry *o1, const Transform3s &tf1, const CollisionGeometry *o2, const Transform3s &tf2, const CollisionResult &collision_result, const ContactPatchSolver *csolver, const ContactPatchRequest &request, ContactPatchResult &result)
 the uniform call interface for computing contact patches: we need know More...
 

Public Member Functions

 ContactPatchFunctionMatrix ()
 

Public Attributes

ContactPatchFunc contact_patch_matrix [NODE_COUNT][NODE_COUNT]
 Each item in the contact patch matrix is a function to handle contact patch computation between objects of type1 and type2. More...
 

Detailed Description

The contact patch matrix stores the functions for contact patches computation between different types of objects and provides a uniform call interface.

Member Typedef Documentation

◆ ContactPatchFunc

typedef void(* coal::ContactPatchFunctionMatrix::ContactPatchFunc) (const CollisionGeometry *o1, const Transform3s &tf1, const CollisionGeometry *o2, const Transform3s &tf2, const CollisionResult &collision_result, const ContactPatchSolver *csolver, const ContactPatchRequest &request, ContactPatchResult &result)

the uniform call interface for computing contact patches: we need know

  1. two objects o1 and o2 and their configuration in world coordinate tf1 and tf2;
  2. the collision result that generated contact patches candidates (coal::Contact), from which contact patches will be expanded;
  3. the solver for computation of contact patches;
  4. the request setting for contact patches (e.g. maximum amount of patches, patch tolerance etc.)
  5. the structure to return contact patches (coal::ContactPatchResult).

Note: we pass a GJKSolver, because it allows to reuse internal computation that was made during the narrow phase. It also allows to experiment with different ways to compute contact patches. We could, for example, perturb tf1 and tf2 and make multiple calls to the GJKSolver (although this is not the approach done by default).

Constructor & Destructor Documentation

◆ ContactPatchFunctionMatrix()

coal::ContactPatchFunctionMatrix::ContactPatchFunctionMatrix ( )

Member Data Documentation

◆ contact_patch_matrix

ContactPatchFunc coal::ContactPatchFunctionMatrix::contact_patch_matrix[NODE_COUNT][NODE_COUNT]

Each item in the contact patch matrix is a function to handle contact patch computation between objects of type1 and type2.


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