#include <LCPRestingContact.h>
Inheritance diagram for Physsim::LCPRestingContact:

Public Member Functions | |
| LCPRestingContact () | |
| Constructs an LCP resting contact method with number of samples to 10. | |
| virtual void | clone (BasePtr &cloned, bimap< BasePtr, BasePtr > *obj_map=NULL) const |
| Clones this object. | |
| virtual bool | is_struct_identical (BaseConstPtr object) const |
| Verifies that the structure of the two objects is identical. | |
| virtual void | load_state (BaseConstPtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) |
| Loads the state of this object. | |
| virtual void | save_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) const |
| Saves the state of this object. | |
| virtual void | load_from_xml (XMLTreeConstPtr node, std::map< std::string, BasePtr > &id_map) |
| Implements Base::load_from_xml(). | |
| virtual void | save_to_xml (XMLTreePtr node, std::list< BaseConstPtr > &shared_objects) const |
| Implements Base::save_to_xml(). | |
| virtual void | process_resting_contacts (const std::list< ContactPtr > &contacts) |
| virtual bool | is_global_method () const |
| Indicates that this is a global method. | |
Linear complementarity problems take the form w = Ax + b with <w, x> = 0 (<> is inner product); this last nonlinear constraint is called the complementarity constraint. LCPs can be solved in polynomial (cubic) time when A is symmetric and positive-semi definite. When A is not both, the a LCP can be solved using quadratic programming.
The LCP solver employed is the Projected-Gauss Seidel method, which has attained great popularity in the rigid body simulation community for its rapid convergence and numerical stability.
| void LCPRestingContact::load_state | ( | BaseConstPtr | object, | |
| bimap< BasePtr, BasePtr > * | correspondence = NULL | |||
| ) | [virtual] |
Loads the state of this object.
The underlying penalty resting contact method must have identical structure.
Reimplemented from Physsim::Base.
| void LCPRestingContact::save_state | ( | BasePtr | object, | |
| bimap< BasePtr, BasePtr > * | correspondence = NULL | |||
| ) | const [virtual] |
Saves the state of this object.
The underlying penalty resting contact method must have identical structure.
Reimplemented from Physsim::Base.
| void LCPRestingContact::process_resting_contacts | ( | const std::list< ContactPtr > & | contacts | ) | [virtual] |
| contacts | a set of connected contacts that have been determined to be resting (i.e., the relative normal velocity between the two bodies is less than zero and greater than some tolerance -epsilon. |
Implements Physsim::RestingContactMethod.
1.5.1