Request for a contact patch computation.
More...
#include <coal/collision_data.h>
|
| | ContactPatchRequest (size_t max_num_patch=1, size_t num_samples_curved_shapes=ContactPatch::default_preallocated_size, Scalar patch_tolerance=Scalar(1e-3)) |
| | Default constructor.
|
| |
| | ContactPatchRequest (const CollisionRequest &collision_request, size_t num_samples_curved_shapes=ContactPatch::default_preallocated_size, Scalar patch_tolerance=Scalar(1e-3)) |
| | Construct a contact patch request from a collision request.
|
| |
| void | setNumSamplesCurvedShapes (const size_t num_samples_curved_shapes) |
| | Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
|
| |
| size_t | getNumSamplesCurvedShapes () const |
| | Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
|
| |
| void | setPatchTolerance (const Scalar patch_tolerance) |
| | Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
|
| |
| Scalar | getPatchTolerance () const |
| | Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
|
| |
| bool | operator== (const ContactPatchRequest &other) const |
| | Whether two ContactPatchRequest are identical or not.
|
| |
|
| size_t | max_num_patch |
| | Maximum number of contact patches that will be computed.
|
| |
|
| size_t | m_num_samples_curved_shapes |
| | Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
|
| |
| Scalar | m_patch_tolerance |
| | Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
|
| |
Request for a contact patch computation.
◆ ContactPatchRequest() [1/2]
Default constructor.
- Parameters
-
| max_num_patch | maximum number of contact patches per collision pair. |
| max_sub_patch_size | maximum size of each sub contact patch. Each contact patch contains an internal representation for an inscribed sub contact patch. This allows physics simulation to always work with a predetermined maximum size for each contact patch. A sub contact patch is simply a subset of the vertices of a contact patch. |
| num_samples_curved_shapes | for shapes like cones and cylinders, which have smooth basis (circles in this case), we need to sample a certain amount of point of this basis. |
| patch_tolerance | the tolerance below which a point of a shape is considered to belong to the support set of this shape in the direction of the normal. Said otherwise, patch_tolerance determines the "thickness" of the separating plane between shapes of a collision pair. |
◆ ContactPatchRequest() [2/2]
Construct a contact patch request from a collision request.
◆ getNumSamplesCurvedShapes()
| size_t coal::ContactPatchRequest::getNumSamplesCurvedShapes |
( |
| ) |
const |
|
inline |
Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
◆ getPatchTolerance()
| Scalar coal::ContactPatchRequest::getPatchTolerance |
( |
| ) |
const |
|
inline |
Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
- Note
- Needs to be positive.
◆ operator==()
◆ setNumSamplesCurvedShapes()
| void coal::ContactPatchRequest::setNumSamplesCurvedShapes |
( |
const size_t |
num_samples_curved_shapes | ) |
|
|
inline |
Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
◆ setPatchTolerance()
| void coal::ContactPatchRequest::setPatchTolerance |
( |
const Scalar |
patch_tolerance | ) |
|
|
inline |
Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
- Note
- Needs to be positive.
◆ m_num_samples_curved_shapes
| size_t coal::ContactPatchRequest::m_num_samples_curved_shapes |
|
protected |
Maximum samples to compute the support sets of curved shapes, i.e. when the normal is perpendicular to the base of a cylinder. For now, only relevant for Cone and Cylinder. In the future this might be extended to Sphere and Ellipsoid.
◆ m_patch_tolerance
| Scalar coal::ContactPatchRequest::m_patch_tolerance |
|
protected |
Tolerance below which points are added to a contact patch. In details, given two shapes S1 and S2, a contact patch is the triple intersection between the separating plane (P) (passing by Contact::pos and supported by Contact::normal), S1 and S2; i.e. a contact patch is P & S1 & S2 if we denote & the set intersection operator. If a point p1 of S1 is at a distance below patch_tolerance from the separating plane, it is taken into account in the computation of the contact patch. Otherwise, it is not used for the computation.
- Note
- Needs to be positive.
◆ max_num_patch
| size_t coal::ContactPatchRequest::max_num_patch |
Maximum number of contact patches that will be computed.
The documentation for this struct was generated from the following file: