Physsim::MirtichRestitutionModel Class Reference

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

#include <MirtichRestitutionModel.h>

Inheritance diagram for Physsim::MirtichRestitutionModel:

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

Public Member Functions

 MirtichRestitutionModel ()
 Constructs the Mirtich restitution model with the default integration step-size (.001).
 MirtichRestitutionModel (Real step_size)
 Constructs the Mirtich restitution model with the specified integration step-size.
virtual void load_state (BaseConstPtr object, bimap< BasePtr, BasePtr > *correspondence=NULL)
 Implements Base::load_state().
virtual 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 process_impacts (const std::list< ContactPtr > &contacts) const
 Processes a list of impact contacts.
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.
void set_step_size (Real step_size)
 Sets the integration step size used for Mirtich's method.
Real get_step_size () const
 Gets the integration step size used for Mirtich's method.

Detailed Description

Defines the Mirtich model for collision restitution.

The Mirtich model for collision restitution (using Stronge's hypothesis) states that the total work performed by during the restitution phase of a collision is less than or equal to -epsilon times the work performed during the compression phase. This model comes from Mirtich's thesis [Mirtich, 1996]. In contrast to the Newton model for collision restitution, Mirtich's model allows friction to be treated at a colliding contact without adding energy to the system.

Note that the MirtichRestitutionModel is currently broken. Some work is necessary to get it functioning again. I'm not sure that the work is warranted, given that the frictional Newton and Poisson methods seem to work well and are much, much faster.


Member Function Documentation

void MirtichRestitutionModel::process_impacts ( const std::list< ContactPtr > &  contacts  )  const [virtual]

Processes a list of impact contacts.

This processing is currently performed sequentially, one impact handled after another.

Implements Physsim::CollisionMethod.

virtual bool Physsim::MirtichRestitutionModel::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