Physsim::NewtonRestitutionModel Class Reference

Defines the Newton model for collision restitution. More...

#include <NewtonRestitutionModel.h>

Inheritance diagram for Physsim::NewtonRestitutionModel:

Physsim::CollisionMethod Physsim::Base List of all members.

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.

Detailed Description

Defines the Newton model for collision restitution.

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].


Member Function Documentation

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.


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