|
Simbody
3.4 (development)
|
OBSOLETE -- use CircularPointContact or EllipticalPointContact. More...
#include <Contact.h>
Inheritance diagram for SimTK::PointContact:Public Member Functions | |
| PointContact (ContactSurfaceIndex surf1, ContactSurfaceIndex surf2, Vec3 &location, Vec3 &normal, Real radius1, Real radius2, Real depth) | |
| Create a PointContact object representing a general (elliptical) contact. | |
| PointContact (ContactSurfaceIndex surf1, ContactSurfaceIndex surf2, Vec3 &location, Vec3 &normal, Real radius, Real depth) | |
| Create a PointContact object representing a circularly symmetric contact. | |
| Vec3 | getLocation () const |
| The location where the two surfaces touch, specified in the ground frame. | |
| Vec3 | getNormal () const |
| Get the surface normal at the contact location. | |
| Real | getRadiusOfCurvature1 () const |
| Get the first principal relative radius of curvature of the contact surface. | |
| Real | getRadiusOfCurvature2 () const |
| Get the second principal relative radius of curvature of the contact surface. | |
| Real | getEffectiveRadiusOfCurvature () const |
| Get the effective relative radius of curvature of the contact surface. | |
| Real | getDepth () const |
| Get the penetration depth. | |
Static Public Member Functions | |
| static bool | isInstance (const Contact &contact) |
| Determine whether a Contact object is a PointContact. | |
| static ContactTypeId | classTypeId () |
| Obtain the unique small-integer id for the PointContact class. | |
OBSOLETE -- use CircularPointContact or EllipticalPointContact.
This subclass of Contact represents a symmetric contact centered at a single point, such as between two spheres or a sphere and a half space. It characterizes the contact by the center location and radius of the contact patch, the normal vector, and the penetration depth.
| SimTK::PointContact::PointContact | ( | ContactSurfaceIndex | surf1, |
| ContactSurfaceIndex | surf2, | ||
| Vec3 & | location, | ||
| Vec3 & | normal, | ||
| Real | radius1, | ||
| Real | radius2, | ||
| Real | depth | ||
| ) |
Create a PointContact object representing a general (elliptical) contact.
| surf1 | the index of the first surface involved in the contact, specified by its index within its contact set |
| surf2 | the index of the second surface involved in the contact, specified by its index within its contact set |
| location | the location where the two surfaces touch, specified in the ground frame |
| normal | the surface normal at the contact location. This is specified in the ground frame, and points outward from surface1 towards surface2 |
| radius1 | the first principal relative radius of curvature of the contact surface |
| radius2 | the second principal relative radius of curvature of the contact surface |
| depth | the penetration depth |
| SimTK::PointContact::PointContact | ( | ContactSurfaceIndex | surf1, |
| ContactSurfaceIndex | surf2, | ||
| Vec3 & | location, | ||
| Vec3 & | normal, | ||
| Real | radius, | ||
| Real | depth | ||
| ) |
Create a PointContact object representing a circularly symmetric contact.
| surf1 | the index of the first surface involved in the contact, specified by its index within its contact set |
| surf2 | the index of the second surface involved in the contact, specified by its index within its contact set |
| location | the location where the two surfaces touch, specified in the ground frame |
| normal | the surface normal at the contact location. This is specified in the ground frame, and points outward from surface1 towards surface2 |
| radius | the relative radius of curvature of the contact surface |
| depth | the penetration depth |
| Vec3 SimTK::PointContact::getLocation | ( | ) | const |
The location where the two surfaces touch, specified in the ground frame.
More precisely, the contact region is represented as a circular patch centered at this point and perpendicular to the normal vector.
| Vec3 SimTK::PointContact::getNormal | ( | ) | const |
Get the surface normal at the contact location.
This is specified in the ground frame, and points outward from surface1 towards surface2.
| Real SimTK::PointContact::getRadiusOfCurvature1 | ( | ) | const |
Get the first principal relative radius of curvature of the contact surface.
| Real SimTK::PointContact::getRadiusOfCurvature2 | ( | ) | const |
Get the second principal relative radius of curvature of the contact surface.
| Real SimTK::PointContact::getEffectiveRadiusOfCurvature | ( | ) | const |
Get the effective relative radius of curvature of the contact surface.
This is equal to sqrt(R1*R2), where R1 and R2 are the principal relative radii of curvature.
| Real SimTK::PointContact::getDepth | ( | ) | const |
Get the penetration depth.
This is defined as the minimum distance you would need to translate one surface along the normal vector to make the surfaces no longer overlap.
| static bool SimTK::PointContact::isInstance | ( | const Contact & | contact | ) | [static] |
Determine whether a Contact object is a PointContact.
| static ContactTypeId SimTK::PointContact::classTypeId | ( | ) | [static] |
Obtain the unique small-integer id for the PointContact class.