Simbody  3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
SimTK::ContactTracker::TriangleMeshTriangleMesh Class Reference

This ContactTracker handles contacts between two ContactGeometry::TriangleMesh surfaces. More...

+ Inheritance diagram for SimTK::ContactTracker::TriangleMeshTriangleMesh:

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 &currentStatus) 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...
 

Detailed Description

This ContactTracker handles contacts between two ContactGeometry::TriangleMesh surfaces.

Constructor & Destructor Documentation

Member Function Documentation

bool SimTK::ContactTracker::TriangleMeshTriangleMesh::trackContact ( const Contact priorStatus,
const Transform X_GS1,
const ContactGeometry surface1,
const Transform X_GS2,
const ContactGeometry surface2,
Real  cutoff,
Contact currentStatus 
) const
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.


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