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

Public Member Functions | |
| virtual void | process_impacts (const std::list< ContactPtr > &contacts) const |
| Processes a list of contacts. | |
| void | load_state (BaseConstPtr object, bimap< BasePtr, BasePtr > *correspondence) |
| Implements Base::load_state(). | |
| void | save_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) const |
| Implements Base::save_state(). | |
| virtual void | clone (BasePtr &cloned, bimap< BasePtr, BasePtr > *object_map=NULL) const |
| Implements Base::clone(). | |
| 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 bool | is_global_method () const |
| Indicates whether this is a global method. | |
The Newton model is defined as v = -e * v0, where v0 is the relative velocity of the two objects immediately before collision, e is the coefficient of restitution (ranging from 0..1, where 0 is plastic and 1 is elastic), and v is the relative velocity immediately after collision. As Mirtich notes in his seminal thesis [Mirtich, 1996], Newton's model works fine for frictionless collisions. When friction is involved, Stronge's hypothesis (investigated in [Mirtich, 1996]), may be more appropriate, as Newton's model can add energy to the collision. The implementation provided here treats friction in the style of Guendelman et al [2003].
| void NewtonRestitutionModel::process_impacts | ( | const std::list< ContactPtr > & | contacts | ) | const [virtual] |
Processes a list of contacts.
This processing is currently performed sequentially, one impact handled after another. However, the order that the impacts are handled will affect the veracity of the simulation.
Implements Physsim::CollisionMethod.
| virtual bool Physsim::NewtonRestitutionModel::is_global_method | ( | ) | const [inline, virtual] |
Indicates whether this is a global method.
Global methods determine all impulses at once, while local methods treat contacts sequentially. Global methods are called last in a hybrid framework to be able to account for all impulses, including those applied by local methods.
Implements Physsim::CollisionMethod.
1.5.1