Classes | Functions

OpenTissue::mbd::collision_laws Namespace Reference

Classes

class  ChatterjeeRuinaCollisionLawPolicy
class  FrictionalNewtonCollisionLawPolicy
class  NewtonCollisionLawPolicy

Functions

template<typename contact_type >
contact_type::vector3_type compute_chatterjee_ruina_impulse (contact_type const *contact)
template<typename contact_type >
contact_type::vector3_type compute_frictional_newton_impulse (contact_type const *contact)
template<typename contact_type >
contact_type::vector3_type compute_newton_impulse (contact_type const *contact)

Function Documentation

template<typename contact_type >
contact_type::vector3_type OpenTissue::mbd::collision_laws::compute_chatterjee_ruina_impulse ( contact_type const *  contact  ) 

Non-increasing Energy Collision Law. This is an algebraic collision law presented in:

"A new algebraic rigid body collision law based on impulse space considerations" by Chatterjee and Ruina. Journal of Applied Mechanics, Vol 65, #4, 939-951, Dec 1998.

Can be downloaded from: http://www.tam.cornell.edu/~ruina/hplab/collision_papers.html

Parameters:
contact A pointer to a contact point, where the collision impulse should be applied.
Returns:
The collision impulse that should be applied to object B, object A should be applied by an equal and opposite impulse.
template<typename contact_type >
contact_type::vector3_type OpenTissue::mbd::collision_laws::compute_frictional_newton_impulse ( contact_type const *  contact  ) 

Newton Impact with Friction.

The implementation herein is similar to the algebraic collision law desribed in:

"Nonconvex Rigid Bodies with Stacking" by Guendelman, Bridson, and Fedkiw, SIGGRAPH 2003, ACM TOG 22, 871-878 (2003).

Parameters:
contact A pointer to a contact point, where the collision impulse should be applied.
Returns:
The collision impulse that should be applied to object B, object A should be applied by an equal and opposite impulse.
template<typename contact_type >
contact_type::vector3_type OpenTissue::mbd::collision_laws::compute_newton_impulse ( contact_type const *  contact  ) 

Newton's Collision Law. This collision law, uses the idea of relating the contact normal velocities before and after collision with a coefficient of restitution.

It contains no friction, only normal impulses are computed.

Parameters:
contact A pointer to a contact point, where the collision impulse should be applied.
Returns:
The collision impulse that should be applied to object B, object A should be applied by an equal and opposite impulse.