Simbody
3.5
|
This ContactTracker handles contacts between two ContactGeometry::TriangleMesh surfaces. More...
Public Member Functions | |
TriangleMeshTriangleMesh () | |
bool | trackContact (const Contact &priorStatus, const Transform &X_GS1, const ContactGeometry &surface1, const Transform &X_GS2, const ContactGeometry &surface2, Real cutoff, Contact ¤tStatus) const override |
The ContactTrackerSubsystem will invoke this method for any pair of contact surfaces that is already being tracked, or for which the static broad phase analysis indicated that they might be in contact now. More... | |
Public Member Functions inherited from SimTK::ContactTracker | |
ContactTracker (ContactGeometryTypeId typeOfSurface1, ContactGeometryTypeId typeOfSurface2) | |
Base class constructor for use by the concrete classes. More... | |
const std::pair < ContactGeometryTypeId, ContactGeometryTypeId > & | getContactGeometryTypeIds () const |
Return the pair of contact geometry type ids handled by this tracker, in the order that they must be presented to the tracker's methods. More... | |
virtual | ~ContactTracker () |
Additional Inherited Members | |
Static Public Member Functions inherited from SimTK::ContactTracker | |
static bool | refineImplicitPair (const ContactGeometry &shapeA, Vec3 &pointP_A, const ContactGeometry &shapeB, Vec3 &pointQ_B, const Transform &X_AB, Real accuracyRequested, Real &accuracyAchieved, int &numIterations) |
Given two shapes for which implicit functions are known, and a rough-guess contact point for each shape (each measured and expressed in its own surface's frame), refine those contact points to obtain the nearest pair that satisfies contact conditions to a requested accuracy. More... | |
static Vec6 | findImplicitPairError (const ContactGeometry &shapeA, const Vec3 &pointP, const ContactGeometry &shapeB, const Vec3 &pointQ, const Transform &X_AB) |
Calculate the error function described in refineImplicitPair(). More... | |
static Mat66 | calcImplicitPairJacobian (const ContactGeometry &shapeA, const Vec3 &pointP, const ContactGeometry &shapeB, const Vec3 &pointQ, const Transform &X_AB, const Vec6 &err0) |
Calculate the partial derivatives of the findImplicitPairError() error function with respect to the locations of the two points in their own surface's frame. More... | |
static bool | estimateConvexImplicitPairContactUsingMPR (const ContactGeometry &shapeA, const ContactGeometry &shapeB, const Transform &X_AB, Vec3 &pointP_A, Vec3 &pointQ_B, UnitVec3 &dirInA, int &numIterations) |
Use Minkowski Portal Refinement (XenoCollide method by G. More... | |
This ContactTracker handles contacts between two ContactGeometry::TriangleMesh surfaces.
|
overridevirtual |
The ContactTrackerSubsystem will invoke this method for any pair of contact surfaces that is already being tracked, or for which the static broad phase analysis indicated that they might be in contact now.
Only position information is available. Note that the arguments and Contact object surfaces must be ordered by geometry type id as required by this tracker.
Implements SimTK::ContactTracker.