Public Types | Public Member Functions | Public Attributes

OpenTissue::mbd::ContactPoint< types > Class Template Reference

#include <mbd_contact_point.h>

List of all members.

Public Types

typedef types::math_policy math_policy
typedef math_policy::size_type size_type
typedef math_policy::real_type real_type
typedef math_policy::value_traits value_traits
typedef math_policy::vector3_type vector3_type
typedef math_policy::matrix3x3_type matrix3x3_type
typedef
math_policy::quaternion_type 
quaternion_type
typedef math_policy::vector_type vector_type
typedef math_policy::vector_range vector_range
typedef
math_policy::idx_vector_range 
idx_vector_range
typedef math_policy::matrix_range matrix_range
typedef types::body_type body_type
typedef types::material_type material_type

Public Member Functions

 ContactPoint ()
virtual ~ContactPoint ()
void set_use_friction (bool value)
void set_use_bounce (bool value)
void set_use_stabilization (bool value)
void init (body_type *bodyA, body_type *bodyB, vector3_type const &p, vector3_type const &n, real_type const &distance, material_type *material)
void evaluate ()
size_type get_number_of_jacobian_rows () const
void get_linear_jacobian_A (matrix_range &J) const
void get_linear_jacobian_B (matrix_range &J) const
void get_angular_jacobian_A (matrix_range &J) const
void get_angular_jacobian_B (matrix_range &J) const
void get_stabilization_term (vector_range &b_error) const
void get_low_limits (vector_range &lo) const
void get_high_limits (vector_range &hi) const
void get_dependency_indices (idx_vector_range &dep) const
void get_dependency_factors (vector_range &factors) const
void set_regularization (vector_range const &gamma)
void get_regularization (vector_range &gamma) const
void set_solution (vector_range const &solution)
void get_solution (vector_range &solution) const
void set_error_reduction_parameter (real_type const &erp)
real_type get_error_reduction_parameter () const

Public Attributes

bool m_use_stabilization
 Boolean value indicating whether stabilization should be ignored in the error terms.
bool m_use_friction
 Boolean value indicating whether firctional constaints should be ignored.
bool m_use_bounce
 Boolean value indicating whether newtons collision law should included in the error terms..
material_typem_material
 The material properties, such as coefficient of friction.
vector3_type m_n
 The contact normal in WCS. Always pointing from A towards B (i.e. from lower index to higher index).
vector3_type m_p
 The contact point in WCS.
real_type m_distance
 Separation (or penetration, if negative) distance.
vector3_type m_rA
 The vector from center of mass of body A to the point of contact (in WCS).
vector3_type m_rB
 The vector from center of mass of body B to the point of contact (in WCS).
real_type m_un
 The relative contact velocity in the normal direction.
size_type m_eta
 Number of friction direction used.
std::vector< vector3_typem_t
 Temporary Storage used for keeping the friction directions.
bool m_bodies_flipped
vector_type m_solution
 Local solution vector, ie. vector of lagrange multipliers.

template<typename types>
class OpenTissue::mbd::ContactPoint< types >


Member Typedef Documentation

template<typename types >
typedef types::body_type OpenTissue::mbd::ContactPoint< types >::body_type
template<typename types >
typedef math_policy::idx_vector_range OpenTissue::mbd::ContactPoint< types >::idx_vector_range
template<typename types >
typedef types::material_type OpenTissue::mbd::ContactPoint< types >::material_type
template<typename types >
typedef types::math_policy OpenTissue::mbd::ContactPoint< types >::math_policy
template<typename types >
typedef math_policy::matrix3x3_type OpenTissue::mbd::ContactPoint< types >::matrix3x3_type
template<typename types >
typedef math_policy::matrix_range OpenTissue::mbd::ContactPoint< types >::matrix_range
template<typename types >
typedef math_policy::quaternion_type OpenTissue::mbd::ContactPoint< types >::quaternion_type
template<typename types >
typedef math_policy::vector_range OpenTissue::mbd::ContactPoint< types >::vector_range

Constructor & Destructor Documentation

template<typename types >
OpenTissue::mbd::ContactPoint< types >::ContactPoint (  )  [inline]
template<typename types >
virtual OpenTissue::mbd::ContactPoint< types >::~ContactPoint (  )  [inline, virtual]

Member Function Documentation

template<typename types >
void OpenTissue::mbd::ContactPoint< types >::evaluate (  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_angular_jacobian_A ( matrix_range J  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_angular_jacobian_B ( matrix_range J  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_dependency_factors ( vector_range factors  )  const [inline]
See also:
ConstraintInterface.getDepencyFactors()
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_dependency_indices ( idx_vector_range dep  )  const [inline]
See also:
ConstraintInterface.getDependencyIndices()
template<typename types >
real_type OpenTissue::mbd::ContactPoint< types >::get_error_reduction_parameter (  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_high_limits ( vector_range hi  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_linear_jacobian_A ( matrix_range J  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_linear_jacobian_B ( matrix_range J  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_low_limits ( vector_range lo  )  const [inline]
template<typename types >
size_type OpenTissue::mbd::ContactPoint< types >::get_number_of_jacobian_rows (  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_regularization ( vector_range gamma  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_solution ( vector_range solution  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::get_stabilization_term ( vector_range b_error  )  const [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::init ( body_type bodyA,
body_type bodyB,
vector3_type const &  p,
vector3_type const &  n,
real_type const &  distance,
material_type material 
) [inline]

Initialization Routine.

Parameters:
bodyA A pointer to one of the bodies in contact.
bodyB A pointer to the other body in contact.
p The actual point of contact in WCS.
n A unit vector giving the value of the contact normal in WCS. The normal is assumed to be oriented from body A to body B.
distance The separation/penetration distance
material A pointer to the material properties of the contact point.
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_error_reduction_parameter ( real_type const &  erp  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_regularization ( vector_range const &  gamma  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_solution ( vector_range const &  solution  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_use_bounce ( bool  value  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_use_friction ( bool  value  )  [inline]
template<typename types >
void OpenTissue::mbd::ContactPoint< types >::set_use_stabilization ( bool  value  )  [inline]

Member Data Documentation

template<typename types >
bool OpenTissue::mbd::ContactPoint< types >::m_bodies_flipped

By definition a contact point alwyas set body A to have lowest index, however end user may have initialized the contact points with body A as highest index, if so this member is set to true.

Separation (or penetration, if negative) distance.

template<typename types >
size_type OpenTissue::mbd::ContactPoint< types >::m_eta

Number of friction direction used.

The material properties, such as coefficient of friction.

template<typename types >
vector3_type OpenTissue::mbd::ContactPoint< types >::m_n

The contact normal in WCS. Always pointing from A towards B (i.e. from lower index to higher index).

template<typename types >
vector3_type OpenTissue::mbd::ContactPoint< types >::m_p

The contact point in WCS.

template<typename types >
vector3_type OpenTissue::mbd::ContactPoint< types >::m_rA

The vector from center of mass of body A to the point of contact (in WCS).

template<typename types >
vector3_type OpenTissue::mbd::ContactPoint< types >::m_rB

The vector from center of mass of body B to the point of contact (in WCS).

Local solution vector, ie. vector of lagrange multipliers.

template<typename types >
std::vector<vector3_type> OpenTissue::mbd::ContactPoint< types >::m_t

Temporary Storage used for keeping the friction directions.

template<typename types >
real_type OpenTissue::mbd::ContactPoint< types >::m_un

The relative contact velocity in the normal direction.

template<typename types >
bool OpenTissue::mbd::ContactPoint< types >::m_use_bounce

Boolean value indicating whether newtons collision law should included in the error terms..

template<typename types >
bool OpenTissue::mbd::ContactPoint< types >::m_use_friction

Boolean value indicating whether firctional constaints should be ignored.

template<typename types >
bool OpenTissue::mbd::ContactPoint< types >::m_use_stabilization

Boolean value indicating whether stabilization should be ignored in the error terms.


The documentation for this class was generated from the following file: