Public Types | Public Member Functions | Protected Attributes

OpenTissue::mbd::AngularJointLimit< mbd_types > Class Template Reference

#include <mbd_angular_joint_limit.h>

Inheritance diagram for OpenTissue::mbd::AngularJointLimit< mbd_types >:
OpenTissue::mbd::SubConstraintInterface< mbd_types > OpenTissue::mbd::CoreConstraintInterface< mbd_types >

List of all members.

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.

template<typename mbd_types>
class OpenTissue::mbd::AngularJointLimit< mbd_types >


Member Typedef Documentation

template<typename mbd_types >
typedef mbd_types::math_policy::idx_vector_range OpenTissue::mbd::AngularJointLimit< mbd_types >::idx_vector_range
template<typename mbd_types >
typedef mbd_types::math_policy::matrix_range OpenTissue::mbd::AngularJointLimit< mbd_types >::matrix_range
template<typename mbd_types >
typedef mbd_types::math_policy::vector3_type OpenTissue::mbd::AngularJointLimit< mbd_types >::vector3_type
template<typename mbd_types >
typedef mbd_types::math_policy::vector_range OpenTissue::mbd::AngularJointLimit< mbd_types >::vector_range

Constructor & Destructor Documentation

template<typename mbd_types >
OpenTissue::mbd::AngularJointLimit< mbd_types >::AngularJointLimit (  )  [inline]
template<typename mbd_types >
virtual OpenTissue::mbd::AngularJointLimit< mbd_types >::~AngularJointLimit (  )  [inline, virtual]

Member Function Documentation

template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::evaluate ( vector3_type const &  s_wcs,
real_type const &  angle 
) [inline]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_angular_jacobian_A ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_angular_jacobian_B ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_dependency_factors ( vector_range factors,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_dependency_indices ( idx_vector_range dep,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_high_limits ( vector_range hi,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_linear_jacobian_A ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_linear_jacobian_B ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_low_limits ( vector_range lo,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::get_max_limit (  )  const [inline]
template<typename mbd_types >
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::get_min_limit (  )  const [inline]
template<typename mbd_types >
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.

Returns:
Jacobian rows.

Implements OpenTissue::mbd::CoreConstraintInterface< mbd_types >.

template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_regularization ( vector_range gamma,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_solution ( vector_range solution,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::get_stabilization_term ( vector_range b_error,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
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).

template<typename mbd_types >
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).

template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_regularization ( vector_range const &  gamma,
size_type const &  offset 
) [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::AngularJointLimit< mbd_types >::set_solution ( vector_range const &  solution,
size_type const &  offset 
) [inline, virtual]

Member Data Documentation

template<typename mbd_types >
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_gamma [protected]

Constraint force mixing.

template<typename mbd_types >
bool OpenTissue::mbd::AngularJointLimit< mbd_types >::m_low_active [protected]

Boolean flag indicating whetever the minimum limit is active or not.

template<typename mbd_types >
size_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_rows [protected]

Number of jacobian rows.

template<typename mbd_types >
vector3_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_s_wcs [protected]

The joint axe in WCS.

template<typename mbd_types >
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_solution [protected]

Solution.

template<typename mbd_types >
real_type OpenTissue::mbd::AngularJointLimit< mbd_types >::m_theta_cur [protected]

The current displacement along the joint axe away from calibration position.

template<typename mbd_types >
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.

template<typename mbd_types >
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).

template<typename mbd_types >
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).


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