Simbody  3.7
SimTK::BrokenContact Class Reference

This subclass of Contact represents a pair of contact surfaces that were in contact (meaning within cutoff range) but have now gone out of range. More...

+ Inheritance diagram for SimTK::BrokenContact:

Public Member Functions

 BrokenContact (ContactSurfaceIndex surf1, ContactSurfaceIndex surf2, const Transform &X_S1S2, Real separation)
 Create a BrokenContact object. More...
 
Real getSeparation () const
 Get the separation (> cutoff >= 0) between the two surfaces at the time we decided the contact had been broken. More...
 
- Public Member Functions inherited from SimTK::Contact
 Contact ()
 The default constructor creates an empty handle. More...
 
 Contact (const Contact &source)
 Copy constructor is shallow and reference-counted; this handle will point to the same object as does the source. More...
 
 ~Contact ()
 Destructor clears the handle, deleting the referenced object if this was the last reference. More...
 
Contactoperator= (const Contact &source)
 Copy assignment is shallow and reference-counted; this handle will point to the same object as does the source. More...
 
void clear ()
 Clear this handle, deleting the referenced object if this was the last reference. More...
 
bool isEmpty () const
 See if this handle is empty. More...
 
ContactId getContactId () const
 Get the persistent ContactId that has been assigned to this Contact object if there is one (otherwise this will be invalid – you can check with isValid(). More...
 
Condition getCondition () const
 Find out the current condition of this Contact object. More...
 
ContactSurfaceIndex getSurface1 () const
 Get the first surface involved in the contact, specified by its index within its contact set or ContactTrackerSubsystem. More...
 
ContactSurfaceIndex getSurface2 () const
 Get the second surface involved in the contact, specified by its index within its contact set or ContactTrackerSubsystem. More...
 
const TransformgetTransform () const
 Return the transform X_S1S2 giving the pose of surface 2's frame measured and expressed in surface 1's frame, recorded at the time this Contact object was calculated. More...
 
ContactsetContactId (ContactId id)
 Set the ContactId for this Contact object. More...
 
ContactsetCondition (Condition condition)
 Set the current Condition. More...
 
ContactsetSurfaces (ContactSurfaceIndex surf1, ContactSurfaceIndex surf2)
 Set the surfaces tracked by this Contact object. More...
 
ContactsetTransform (const Transform &X_S1S2)
 Set the surface-to-surface relative transform X_S1S2. More...
 
ContactTypeId getTypeId () const
 Return a unique small integer corresponding to the concrete type of Contact object being referenced by this handle. More...
 
const ContactImpl & getImpl () const
 
ContactImpl & updImpl ()
 

Static Public Member Functions

static bool isInstance (const Contact &contact)
 Determine whether a Contact object is a BrokenContact. More...
 
static ContactTypeId classTypeId ()
 Obtain the unique small-integer id for the BrokenContact class. More...
 
- Static Public Member Functions inherited from SimTK::Contact
static const char * nameOfCondition (Condition)
 Returns a human-readable name corresponding to the given Condition; useful for debugging. More...
 
static ContactId createNewContactId ()
 This creates a new ContactId starting from 1 and increasing for a very long time (to a billion or so) before repeating. More...
 

Additional Inherited Members

- Public Types inherited from SimTK::Contact
enum  Condition {
  Unknown,
  Untracked,
  Anticipated,
  NewContact,
  Ongoing,
  Broken
}
 The Contact::Condition tracks the status of a Contact through its lifetime. More...
 
- Protected Member Functions inherited from SimTK::Contact
 Contact (ContactImpl *impl)
 

Detailed Description

This subclass of Contact represents a pair of contact surfaces that were in contact (meaning within cutoff range) but have now gone out of range.

This is the last time we will use this ContactId. The only parameters here are the surfaces and the separation distance (> cutoff). If someone cares, the separation distance can be used to estimate the time at which contact was broken.

Constructor & Destructor Documentation

◆ BrokenContact()

SimTK::BrokenContact::BrokenContact ( ContactSurfaceIndex  surf1,
ContactSurfaceIndex  surf2,
const Transform X_S1S2,
Real  separation 
)

Create a BrokenContact object.

Parameters
surf1The index of the first surface involved in the contact.
surf2The index of the second surface involved in the contact.
X_S1S2The surface-to-surface relative transform.
separationThe minimum distance between the surfaces, with separation > cutoff >= 0 always.

Member Function Documentation

◆ getSeparation()

Real SimTK::BrokenContact::getSeparation ( ) const

Get the separation (> cutoff >= 0) between the two surfaces at the time we decided the contact had been broken.

Note that the sign convention is opposite from depth which is negative when separated.

◆ isInstance()

static bool SimTK::BrokenContact::isInstance ( const Contact contact)
static

Determine whether a Contact object is a BrokenContact.

◆ classTypeId()

static ContactTypeId SimTK::BrokenContact::classTypeId ( )
static

Obtain the unique small-integer id for the BrokenContact class.


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