Request for a contact patch computation.
More...
#include <collision_data.h>
|
| | ContactPatchRequest (const CollisionRequest &collision_request, size_t num_samples_curved_shapes=ContactPatch::default_preallocated_size, CoalScalar patch_tolerance=1e-3) |
| | Construct a contact patch request from a collision request. More...
|
| |
| | ContactPatchRequest (size_t max_num_patch=1, size_t num_samples_curved_shapes=ContactPatch::default_preallocated_size, CoalScalar patch_tolerance=1e-3) |
| | Default constructor. More...
|
| |
| 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. More...
|
| |
| CoalScalar | 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. More...
|
| |
| bool | operator== (const ContactPatchRequest &other) const |
| | Whether two ContactPatchRequest are identical or not. More...
|
| |
| 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. More...
|
| |
| void | setPatchTolerance (const CoalScalar 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. More...
|
| |
|
| 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. More...
|
| |
| CoalScalar | 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. More...
|
| |
Request for a contact patch computation.
Definition at line 724 of file coal/collision_data.h.
◆ 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. |
Definition at line 761 of file coal/collision_data.h.
◆ ContactPatchRequest() [2/2]
◆ 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.
Definition at line 793 of file coal/collision_data.h.
◆ getPatchTolerance()
| CoalScalar 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.
Definition at line 810 of file coal/collision_data.h.
◆ 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.
Definition at line 781 of file coal/collision_data.h.
◆ setPatchTolerance()
| void coal::ContactPatchRequest::setPatchTolerance |
( |
const CoalScalar |
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.
Definition at line 798 of file coal/collision_data.h.
◆ 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.
Definition at line 733 of file coal/collision_data.h.
◆ m_patch_tolerance
| CoalScalar 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.
Definition at line 744 of file coal/collision_data.h.
◆ max_num_patch
| size_t coal::ContactPatchRequest::max_num_patch |
The documentation for this struct was generated from the following file: