1 #ifndef SimTK_SIMMATH_CONTACT_TRACKER_SUBSYSTEM_H_
2 #define SimTK_SIMMATH_CONTACT_TRACKER_SUBSYSTEM_H_
76 : m_surfaceTypes(typeOfSurface1, typeOfSurface2)
82 const std::pair<ContactGeometryTypeId,ContactGeometryTypeId>&
92 virtual bool trackContact
99 Contact& currentStatus)
const = 0;
107 virtual bool predictContact
114 Real intervalOfInterest,
115 Contact& predictedStatus)
const = 0;
122 virtual bool initializeContact
128 Real intervalOfInterest,
129 Contact& contactStatus)
const = 0;
157 static bool refineImplicitPair
160 const Transform& X_AB, Real accuracyRequested,
161 Real& accuracyAchieved,
int& numIterations);
164 static Vec6 findImplicitPairError
173 static Mat66 calcImplicitPairJacobian
188 static bool estimateConvexImplicitPairContactUsingMPR
199 std::pair<ContactGeometryTypeId,ContactGeometryTypeId> m_surfaceTypes;
218 virtual bool trackContact
227 virtual bool predictContact
234 Real intervalOfInterest,
235 Contact& predictedStatus)
const;
237 virtual bool initializeContact
243 Real intervalOfInterest,
263 virtual bool trackContact
272 virtual bool predictContact
279 Real intervalOfInterest,
280 Contact& predictedStatus)
const;
282 virtual bool initializeContact
288 Real intervalOfInterest,
308 virtual bool trackContact
317 virtual bool predictContact
324 Real intervalOfInterest,
325 Contact& predictedStatus)
const;
327 virtual bool initializeContact
333 Real intervalOfInterest,
353 virtual bool trackContact
362 virtual bool predictContact
369 Real intervalOfInterest,
370 Contact& predictedStatus)
const;
372 virtual bool initializeContact
378 Real intervalOfInterest,
385 Real hsFaceHeight_M, std::set<int>& insideFaces)
const;
387 std::set<int>& insideFaces)
const;
406 virtual bool trackContact
415 virtual bool predictContact
422 Real intervalOfInterest,
423 Contact& predictedStatus)
const;
425 virtual bool initializeContact
431 Real intervalOfInterest,
438 const Vec3& center_M, Real radius2,
439 std::set<int>& insideFaces)
const ;
458 virtual bool trackContact
467 virtual bool predictContact
474 Real intervalOfInterest,
475 Contact& predictedStatus)
const;
477 virtual bool initializeContact
483 Real intervalOfInterest,
487 void findIntersectingFaces
494 std::set<int>& insideFaces1,
495 std::set<int>& insideFaces2)
const;
500 std::set<int>& insideFaces)
const;
503 std::set<int>& triangles,
523 virtual bool trackContact
532 virtual bool predictContact
539 Real intervalOfInterest,
540 Contact& predictedStatus)
const;
542 virtual bool initializeContact
548 Real intervalOfInterest,
571 virtual bool trackContact
580 virtual bool predictContact
587 Real intervalOfInterest,
588 Contact& predictedStatus)
const;
590 virtual bool initializeContact
596 Real intervalOfInterest,
602 #endif // SimTK_SIMMATH_CONTACT_TRACKER_SUBSYSTEM_H_
This class represents a rectangular box with arbitrary position and orientation.
Definition: OrientedBoundingBox.h:42
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix.
This is the header file that every Simmath compilation unit should include first. ...
This class represents a small matrix whose size is known at compile time, containing elements of any ...
Definition: Mat.h:51
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64