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

This subclass of Contact is used when one or both of the ContactGeometry objects is a TriangleMesh. More...

+ Inheritance diagram for SimTK::TriangleMeshContact:

Public Member Functions

 TriangleMeshContact (ContactSurfaceIndex surf1, ContactSurfaceIndex surf2, const Transform &X_S1S2, const std::set< int > &faces1, const std::set< int > &faces2)
 Create a TriangleMeshContact object. More...
 
const std::set< int > & getSurface1Faces () const
 Get the indices of all faces of surface1 that are partly or completely inside surface2. More...
 
const std::set< int > & getSurface2Faces () const
 Get the indices of all faces of surface2 that are partly or completely inside surface1. 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 TriangleMeshContact. More...
 
static const TriangleMeshContactgetAs (const Contact &contact)
 Recast a triangle mesh given as a generic Contact object to a const reference to a concrete TriangleMeshContact object. More...
 
static TriangleMeshContactupdAs (Contact &contact)
 Recast a triangle mesh given as a generic Contact object to a writable reference to a concrete TriangleMeshContact object. More...
 
static ContactTypeId classTypeId ()
 Obtain the unique small-integer id for the TriangleMeshContact 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 is used when one or both of the ContactGeometry objects is a TriangleMesh.

It stores a list of every face on each object that is partly or completely inside the other one.

Constructor & Destructor Documentation

SimTK::TriangleMeshContact::TriangleMeshContact ( ContactSurfaceIndex  surf1,
ContactSurfaceIndex  surf2,
const Transform X_S1S2,
const std::set< int > &  faces1,
const std::set< int > &  faces2 
)

Create a TriangleMeshContact object.

Parameters
surf1the index of the first surface involved in the contact, specified by its index within its contact set
surf2the index of the second surface involved in the contact, specified by its index within its contact set
X_S1S2the transform giving surf2's frame measured and expressed in surf1's frame
faces1the indices of all faces in the first surface which are inside the second one
faces2the indices of all faces in the second surface which are inside the first one

Member Function Documentation

const std::set<int>& SimTK::TriangleMeshContact::getSurface1Faces ( ) const

Get the indices of all faces of surface1 that are partly or completely inside surface2.

If surface1 is not a TriangleMesh, this will return an empty set.

const std::set<int>& SimTK::TriangleMeshContact::getSurface2Faces ( ) const

Get the indices of all faces of surface2 that are partly or completely inside surface1.

If surface2 is not a TriangleMesh, this will return an empty set.

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

Determine whether a Contact object is a TriangleMeshContact.

static const TriangleMeshContact& SimTK::TriangleMeshContact::getAs ( const Contact contact)
inlinestatic

Recast a triangle mesh given as a generic Contact object to a const reference to a concrete TriangleMeshContact object.

static TriangleMeshContact& SimTK::TriangleMeshContact::updAs ( Contact contact)
inlinestatic

Recast a triangle mesh given as a generic Contact object to a writable reference to a concrete TriangleMeshContact object.

static ContactTypeId SimTK::TriangleMeshContact::classTypeId ( )
static

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


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