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

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.