#include <mbd_contact_point.h>
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_type * | m_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_type > | m_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. |
typedef types::body_type OpenTissue::mbd::ContactPoint< types >::body_type |
typedef math_policy::idx_vector_range OpenTissue::mbd::ContactPoint< types >::idx_vector_range |
typedef types::material_type OpenTissue::mbd::ContactPoint< types >::material_type |
typedef types::math_policy OpenTissue::mbd::ContactPoint< types >::math_policy |
typedef math_policy::matrix3x3_type OpenTissue::mbd::ContactPoint< types >::matrix3x3_type |
typedef math_policy::matrix_range OpenTissue::mbd::ContactPoint< types >::matrix_range |
typedef math_policy::quaternion_type OpenTissue::mbd::ContactPoint< types >::quaternion_type |
typedef math_policy::real_type OpenTissue::mbd::ContactPoint< types >::real_type |
typedef math_policy::size_type OpenTissue::mbd::ContactPoint< types >::size_type |
typedef math_policy::value_traits OpenTissue::mbd::ContactPoint< types >::value_traits |
typedef math_policy::vector3_type OpenTissue::mbd::ContactPoint< types >::vector3_type |
typedef math_policy::vector_range OpenTissue::mbd::ContactPoint< types >::vector_range |
typedef math_policy::vector_type OpenTissue::mbd::ContactPoint< types >::vector_type |
OpenTissue::mbd::ContactPoint< types >::ContactPoint | ( | ) | [inline] |
virtual OpenTissue::mbd::ContactPoint< types >::~ContactPoint | ( | ) | [inline, virtual] |
void OpenTissue::mbd::ContactPoint< types >::evaluate | ( | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_angular_jacobian_A | ( | matrix_range & | J | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_angular_jacobian_B | ( | matrix_range & | J | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_dependency_factors | ( | vector_range & | factors | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_dependency_indices | ( | idx_vector_range & | dep | ) | const [inline] |
real_type OpenTissue::mbd::ContactPoint< types >::get_error_reduction_parameter | ( | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_high_limits | ( | vector_range & | hi | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_linear_jacobian_A | ( | matrix_range & | J | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_linear_jacobian_B | ( | matrix_range & | J | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_low_limits | ( | vector_range & | lo | ) | const [inline] |
size_type OpenTissue::mbd::ContactPoint< types >::get_number_of_jacobian_rows | ( | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_regularization | ( | vector_range & | gamma | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_solution | ( | vector_range & | solution | ) | const [inline] |
void OpenTissue::mbd::ContactPoint< types >::get_stabilization_term | ( | vector_range & | b_error | ) | const [inline] |
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.
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. |
void OpenTissue::mbd::ContactPoint< types >::set_error_reduction_parameter | ( | real_type const & | erp | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::set_regularization | ( | vector_range const & | gamma | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::set_solution | ( | vector_range const & | solution | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::set_use_bounce | ( | bool | value | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::set_use_friction | ( | bool | value | ) | [inline] |
void OpenTissue::mbd::ContactPoint< types >::set_use_stabilization | ( | bool | value | ) | [inline] |
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.
real_type OpenTissue::mbd::ContactPoint< types >::m_distance |
Separation (or penetration, if negative) distance.
size_type OpenTissue::mbd::ContactPoint< types >::m_eta |
Number of friction direction used.
material_type* OpenTissue::mbd::ContactPoint< types >::m_material |
The material properties, such as coefficient of friction.
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).
vector3_type OpenTissue::mbd::ContactPoint< types >::m_p |
The contact point in WCS.
vector3_type OpenTissue::mbd::ContactPoint< types >::m_rA |
The vector from center of mass of body A to the point of contact (in WCS).
vector3_type OpenTissue::mbd::ContactPoint< types >::m_rB |
The vector from center of mass of body B to the point of contact (in WCS).
vector_type OpenTissue::mbd::ContactPoint< types >::m_solution |
Local solution vector, ie. vector of lagrange multipliers.
std::vector<vector3_type> OpenTissue::mbd::ContactPoint< types >::m_t |
Temporary Storage used for keeping the friction directions.
real_type OpenTissue::mbd::ContactPoint< types >::m_un |
The relative contact velocity in the normal direction.
bool OpenTissue::mbd::ContactPoint< types >::m_use_bounce |
Boolean value indicating whether newtons collision law should included in the error terms..
bool OpenTissue::mbd::ContactPoint< types >::m_use_friction |
Boolean value indicating whether firctional constaints should be ignored.
bool OpenTissue::mbd::ContactPoint< types >::m_use_stabilization |
Boolean value indicating whether stabilization should be ignored in the error terms.