Physsim::RestingContactMethod Class Reference

Defines an abstract method for handling resting (i.e., non-impacting contact). More...

#include <RestingContactMethod.h>

Inheritance diagram for Physsim::RestingContactMethod:

Physsim::Base Physsim::LCPRestingContact Physsim::PenaltyRestingContact List of all members.

Public Member Functions

virtual bool is_global_method () const=0
 Indicates whether this is a global method.
virtual void process_resting_contacts (const std::list< ContactPtr > &contacts)=0
 Processes a set of resting contacts.

Static Public Member Functions

static void determine_A_b (const std::vector< MeasureData > &ms, MatrixNN &A, VectorN &b)
 Determines matrices A and b for computing normal forces w/LCP method.
static void measure_point_accels (const std::vector< MeasureData > &points, VectorN &result)
 Measures point accelerations at points.
static void measure_point_accels (const std::vector< MeasureData > &points, VectorN &result, RigidBodyPtr rb1, RigidBodyPtr rb2)
 Measures point accelerations at points.
static void measure_sep_accels (const std::vector< MeasureData > &points, VectorN &result)
 Measures separation accelerations at points.
static void measure_sep_accels (const std::vector< MeasureData > &points, VectorN &result, RigidBodyPtr rb1, RigidBodyPtr rb2)
 Measures separation accelerations at points.

Detailed Description

Defines an abstract method for handling resting (i.e., non-impacting contact).


Member Function Documentation

void RestingContactMethod::determine_A_b ( const std::vector< MeasureData > &  ms,
MatrixNN A,
VectorN b 
) [static]

Determines matrices A and b for computing normal forces w/LCP method.

Todo:
remove cloning -- shouldn't be necessary
Parameters:
contacts a list of connected contacts

virtual bool Physsim::RestingContactMethod::is_global_method (  )  const [pure virtual]

Indicates whether this is a global method.

Global methods (e.g., LCP-based methods) determine all resting contact forces at once, while local methods determine contact forces one point at a time. Global methods are called last in a hybrid framework to be able to account for all forces, including those applied by local methods.

Implemented in Physsim::LCPRestingContact, and Physsim::PenaltyRestingContact.

virtual void Physsim::RestingContactMethod::process_resting_contacts ( const std::list< ContactPtr > &  contacts  )  [pure virtual]

Processes a set of resting contacts.

This method must compute and apply forces to all bodies in resting contact, either sequentially or simultaneously.

Parameters:
contacts a set of contacts, each of which has been determined to be in resting contact
a pointer to the contact simulator
Note:
implementing classes must provide this method

Implemented in Physsim::LCPRestingContact, and Physsim::PenaltyRestingContact.


The documentation for this class was generated from the following files:
Generated on Wed Oct 24 14:54:23 2007 for Physsim by  doxygen 1.5.1