#include <mbd_angular_joint_limit.h>
Public Types | |
typedef mbd_types::math_policy::real_type | real_type |
typedef mbd_types::math_policy::size_type | size_type |
typedef mbd_types::math_policy::value_traits | value_traits |
typedef mbd_types::math_policy::vector3_type | vector3_type |
typedef mbd_types::math_policy::vector_range | vector_range |
typedef mbd_types::math_policy::idx_vector_range | idx_vector_range |
typedef mbd_types::math_policy::matrix_range | matrix_range |
Public Member Functions | |
void | set_min_limit (real_type const &theta_min) |
real_type | get_min_limit () const |
void | set_max_limit (real_type const &theta_max) |
real_type | get_max_limit () const |
AngularJointLimit () | |
virtual | ~AngularJointLimit () |
void | evaluate (vector3_type const &s_wcs, real_type const &angle) |
size_type | get_number_of_jacobian_rows () const |
void | get_linear_jacobian_A (matrix_range &J, size_type const &offset) const |
void | get_linear_jacobian_B (matrix_range &J, size_type const &offset) const |
void | get_angular_jacobian_A (matrix_range &J, size_type const &offset) const |
void | get_angular_jacobian_B (matrix_range &J, size_type const &offset) const |
void | get_stabilization_term (vector_range &b_error, size_type const &offset) const |
void | get_low_limits (vector_range &lo, size_type const &offset) const |
void | get_high_limits (vector_range &hi, size_type const &offset) const |
void | get_dependency_indices (idx_vector_range &dep, size_type const &offset) const |
void | get_dependency_factors (vector_range &factors, size_type const &offset) const |
void | set_regularization (vector_range const &gamma, size_type const &offset) |
void | get_regularization (vector_range &gamma, size_type const &offset) const |
void | set_solution (vector_range const &solution, size_type const &offset) |
void | get_solution (vector_range &solution, size_type const &offset) const |
Protected Attributes | |
real_type | m_theta_min |
Minimum displacement along joint axe away from calibration position ( theta_min <= theta_calibration=0 <= theta_max). | |
real_type | m_theta_max |
Maximum displacement along joint axe away from calibration position ( theta_min <= theta_calibration=0 <= theta_max). | |
real_type | m_theta_cur |
The current displacement along the joint axe away from calibration position. | |
real_type | m_theta_error |
The current displacement error along the joint axe. That is if slider have moved beyond it limits. | |
vector3_type | m_s_wcs |
The joint axe in WCS. | |
bool | m_low_active |
Boolean flag indicating whetever the minimum limit is active or not. | |
size_type | m_rows |
Number of jacobian rows. | |
real_type | m_gamma |
Constraint force mixing. | |
real_type | m_solution |
Solution. |
typedef mbd_types::math_policy::idx_vector_range OpenTissue::mbd::AngularJointLimit< mbd_types >::idx_vector_range |
Reimplemented from OpenTissue::mbd::SubConstraintInterface< mbd_types >.
typedef mbd_types::math_policy::matrix_range OpenTissue::mbd::AngularJointLimit< mbd_types >::matrix_range |
Reimplemented from OpenTissue::mbd::SubConstraintInterface< mbd_types >.
typedef mbd_types::math_policy::real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::real_type |
Reimplemented from OpenTissue::mbd::SubConstraintInterface< mbd_types >.
typedef mbd_types::math_policy::size_type OpenTissue::mbd::AngularJointLimit< mbd_types >::size_type |
Reimplemented from OpenTissue::mbd::SubConstraintInterface< mbd_types >.
typedef mbd_types::math_policy::value_traits OpenTissue::mbd::AngularJointLimit< mbd_types >::value_traits |
Reimplemented from OpenTissue::mbd::CoreConstraintInterface< mbd_types >.
typedef mbd_types::math_policy::vector3_type OpenTissue::mbd::AngularJointLimit< mbd_types >::vector3_type |
typedef mbd_types::math_policy::vector_range OpenTissue::mbd::AngularJointLimit< mbd_types >::vector_range |
Reimplemented from OpenTissue::mbd::SubConstraintInterface< mbd_types >.
OpenTissue::mbd::AngularJointLimit< mbd_types >::AngularJointLimit | ( | ) | [inline] |
virtual OpenTissue::mbd::AngularJointLimit< mbd_types >::~AngularJointLimit | ( | ) | [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::evaluate | ( | vector3_type const & | s_wcs, | |
real_type const & | angle | |||
) | [inline] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_angular_jacobian_A | ( | matrix_range & | J, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_angular_jacobian_B | ( | matrix_range & | J, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_dependency_factors | ( | vector_range & | factors, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_dependency_indices | ( | idx_vector_range & | dep, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_high_limits | ( | vector_range & | hi, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_linear_jacobian_A | ( | matrix_range & | J, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_linear_jacobian_B | ( | matrix_range & | J, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_low_limits | ( | vector_range & | lo, | |
size_type const & | offset | |||
) | const [inline, virtual] |
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::get_max_limit | ( | ) | const [inline] |
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::get_min_limit | ( | ) | const [inline] |
size_type OpenTissue::mbd::AngularJointLimit< mbd_types >::get_number_of_jacobian_rows | ( | ) | const [inline, virtual] |
Return Number of Jacobian Rows. The number of jacobian rows corresponds to the number of jacobian variables.
Implements OpenTissue::mbd::CoreConstraintInterface< mbd_types >.
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_regularization | ( | vector_range & | gamma, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_solution | ( | vector_range & | solution, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_stabilization_term | ( | vector_range & | b_error, | |
size_type const & | offset | |||
) | const [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_max_limit | ( | real_type const & | theta_max | ) | [inline] |
Set Maximum Limit.
theta_max The new maximum limit (must be in range [0..pi] or infinity if unbounded).
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_min_limit | ( | real_type const & | theta_min | ) | [inline] |
Set Minimum Limit.
theta_min The new minimum limit (must be in range [-pi..0] or -infinity if unbounded).
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_regularization | ( | vector_range const & | gamma, | |
size_type const & | offset | |||
) | [inline, virtual] |
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_solution | ( | vector_range const & | solution, | |
size_type const & | offset | |||
) | [inline, virtual] |
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_gamma [protected] |
Constraint force mixing.
bool OpenTissue::mbd::AngularJointLimit< mbd_types >::m_low_active [protected] |
Boolean flag indicating whetever the minimum limit is active or not.
size_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_rows [protected] |
Number of jacobian rows.
vector3_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_s_wcs [protected] |
The joint axe in WCS.
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_solution [protected] |
Solution.
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_theta_cur [protected] |
The current displacement along the joint axe away from calibration position.
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_theta_error [protected] |
The current displacement error along the joint axe. That is if slider have moved beyond it limits.
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_theta_max [protected] |
Maximum displacement along joint axe away from calibration position ( theta_min <= theta_calibration=0 <= theta_max).
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_theta_min [protected] |
Minimum displacement along joint axe away from calibration position ( theta_min <= theta_calibration=0 <= theta_max).