Public Types | Public Member Functions | Protected Attributes

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

#include <mbd_linear_joint_limit.h>

Inheritance diagram for OpenTissue::mbd::LinearJointLimit< 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::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
typedef
mbd_types::math_policy::value_traits 
value_traits

Public Member Functions

void set_min_limit (real_type const &d_min)
real_type get_min_limit () const
void set_max_limit (real_type const &d_max)
real_type get_max_limit () const
 LinearJointLimit ()
virtual ~LinearJointLimit ()
void evaluate (real_type const &offset, vector3_type const &s_wcs, vector3_type const &r_A, vector3_type const &r_B)
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_d_min
 Minimum displacement along joint axe away from calibration position ( d_min <= d_calibration=0 <= d_max).
real_type m_d_max
 Maximum displacement along joint axe away from calibration position ( d_min <= d_calibration=0 <= d_max).
real_type m_d_cur
 The current displacement along the joint axe away from calibration position.
real_type m_d_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.
vector3_type m_c
 body_type center displacement, ie. c = r_B - r_A
vector3_type m_half_cXs
 0.5*c X s_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::LinearJointLimit< mbd_types >


Member Typedef Documentation

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::evaluate ( real_type const &  offset,
vector3_type const &  s_wcs,
vector3_type const &  r_A,
vector3_type const &  r_B 
) [inline]

Evaluate limit constraint.

Parameters:
offset joint_type offset (i.e. linear displacement from initial pose).
s_wcs joint_type axis in world coordinate system.
r_A Center of mass position of body A in world coordinate system.
r_B Center of mass position of body B in world coordinate system.
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_angular_jacobian_A ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_angular_jacobian_B ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_dependency_factors ( vector_range factors,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_dependency_indices ( idx_vector_range dep,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_high_limits ( vector_range hi,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_linear_jacobian_A ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_linear_jacobian_B ( matrix_range J,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_low_limits ( vector_range lo,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
real_type OpenTissue::mbd::LinearJointLimit< mbd_types >::get_max_limit (  )  const [inline]

Get Maximum Limit.

Returns:
The current maximum limit.
template<typename mbd_types >
real_type OpenTissue::mbd::LinearJointLimit< mbd_types >::get_min_limit (  )  const [inline]

Get Minimum Limit.

Returns:
The current minimum limit.
template<typename mbd_types >
size_type OpenTissue::mbd::LinearJointLimit< 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::LinearJointLimit< mbd_types >::get_regularization ( vector_range gamma,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_solution ( vector_range solution,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::get_stabilization_term ( vector_range b_error,
size_type const &  offset 
) const [inline, virtual]
template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::set_max_limit ( real_type const &  d_max  )  [inline]

Set Maximum Limit.

d_max The new maximum limit (must be non-negative).

template<typename mbd_types >
void OpenTissue::mbd::LinearJointLimit< mbd_types >::set_min_limit ( real_type const &  d_min  )  [inline]

Set Minimum Limit.

d_min The new minimum limit (must be non-positive).

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

Member Data Documentation

template<typename mbd_types >
vector3_type OpenTissue::mbd::LinearJointLimit< mbd_types >::m_c [protected]

body_type center displacement, ie. c = r_B - r_A

template<typename mbd_types >
real_type OpenTissue::mbd::LinearJointLimit< mbd_types >::m_d_cur [protected]

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

template<typename mbd_types >
real_type OpenTissue::mbd::LinearJointLimit< mbd_types >::m_d_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::LinearJointLimit< mbd_types >::m_d_max [protected]

Maximum displacement along joint axe away from calibration position ( d_min <= d_calibration=0 <= d_max).

template<typename mbd_types >
real_type OpenTissue::mbd::LinearJointLimit< mbd_types >::m_d_min [protected]

Minimum displacement along joint axe away from calibration position ( d_min <= d_calibration=0 <= d_max).

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

Constraint force mixing.

template<typename mbd_types >
vector3_type OpenTissue::mbd::LinearJointLimit< mbd_types >::m_half_cXs [protected]

0.5*c X s_wcs

template<typename mbd_types >
bool OpenTissue::mbd::LinearJointLimit< 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::LinearJointLimit< mbd_types >::m_rows [protected]

Number of jacobian rows.

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

The joint axe in WCS.

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

Solution.


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