# I3DExConstraint Struct Reference
[External Interfaces]

Inheritance diagram for I3DExConstraint:

List of all members.

## Public Member Functions
virtual int16 MCCOMAPI | GetNbrFreedom () const =0
virtual MCCOMErr MCCOMAPI | IncrementFreedomValue (int16 index, real &increment)=0
virtual MCCOMErr MCCOMAPI | GetMotionLimit (int16 index, ELimitType &limit) const =0
virtual MCCOMErr MCCOMAPI | GetFreedomRange (int16 index, real &min, real &max) const =0
virtual MCCOMErr MCCOMAPI | GetFreedomValue (int16 index, real &outValue) const =0
virtual MCCOMErr MCCOMAPI | GetRotationsOrder (EEulerAnglesOrder &outOrder) const =0
| Returns the order used to apply the different rotations.
virtual MCCOMErr MCCOMAPI | GetGimbalToLocalRotation (TMatrix33 &outRotation) const =0
| Fix for the axis constraint that rotates its Gimbal coordinates.
virtual MCCOMErr MCCOMAPI | GetTransform (TTransform3D &transform) const =0
virtual MCCOMErr MCCOMAPI | GetTransformPartialDerivate (int16 index, TTransform3D &transform) const =0
virtual MCCOMErr MCCOMAPI | GetTransformSecondPartialDerivative (int16 index1, int16 index2, TTransform3D &transform) const =0
virtual MCCOMErr MCCOMAPI | SetTransform (TTransform3D &transform)=0

## Detailed Description

I3DExConstraint provides constraints between Tree Elements. A constraint, known as a link in RDS, defines motion links between Tree Elements. It allows you to define "mechanical" constrains (degrees of freedom) between one Tree Element and its father.

## Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetFreedomRange | ( | int16 | index,
|  | real & | min,
|  | real & | max |
| ) |  |  | const`[pure virtual]`

Returns the maximum range of increment and decrement for a given degree of freedom.

Parameters:

  | index | The index of the degree of freedom
  | min | The minimum value
  | max | The maximum value

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetFreedomValue | ( | int16 | index,
|  | real & | outValue |
| ) |  |  | const`[pure virtual]`

Get the current value of the given freedom

Parameters:

  | index | The degree of freedom

See also:
  EFreedomDegree

Parameters:

  | outValue | The value of the freedom

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetGimbalToLocalRotation | ( | TMatrix33 & | outRotation | ) | const`[pure virtual]`

Fix for the axis constraint that rotates its Gimbal coordinates.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetMotionLimit | ( | int16 | index,
|  | ELimitType & | limit |
| ) |  |  | const`[pure virtual]`

Returns the constraint for a given degree of freedom.

Implemented in TBasicConstraint.

virtual int16 MCCOMAPI I3DExConstraint::GetNbrFreedom | ( |  | ) | const`[pure virtual]`

Returns the number of degrees of freedom. Because the freedom value can be limited, you have to give the range of values. This range is defined as a range of increment/decrement around the value.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetRotationsOrder | ( | EEulerAnglesOrder & | outOrder | ) | const`[pure virtual]`

Returns the order used to apply the different rotations.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetTransform | ( | TTransform3D & | transform | ) | const`[pure virtual]`

Returns the rotation matrix and translation vector due to the freedom values.

Note:
  When the freedom values are initialized the function GetTransform must return the identity matrix for the rotation and a null vector for the translation.

Parameters:

  | transform | A reference to a transform.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetTransformPartialDerivate | ( | int16 | index,
|  | TTransform3D & | transform |
| ) |  |  | const`[pure virtual]`

To allow the inverse kinematics mechanism to work with a constraint, implement the GetTransfromPartialDerivate() function. A partial derivative transformation is a transformation where each element is derived by a freedom degree.

Parameters:

  | index | The degree of freedom used to derivate the transform.
  | transform | The partial derivative of the transform.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::GetTransformSecondPartialDerivative | ( | int16 | index1,
|  | int16 | index2,
|  | TTransform3D & | transform |
| ) |  |  | const`[pure virtual]`

Returns the second order partial derivative of the transform. A partial derivative transformation is a transformation where each element is derived by a freedom degree.

Parameters:

  | index1 | The first degree of freedom used to derivate the transform.
  | index2 | The second degree of freedom used to derivate the transform.
  | transform | The partial derivative of the transform.

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::IncrementFreedomValue | ( | int16 | index,
|  | real & | increment |
| ) |  |  | `[pure virtual]`

Modify the value of a degree of freedom by adding an increment

Parameters:

  | index | The degree of freedom

See also:
  EFreedomDegree

Parameters:

  | increment | The increment value

Implemented in TBasicConstraint.

virtual MCCOMErr MCCOMAPI I3DExConstraint::SetTransform | ( | TTransform3D & | transform | ) | `[pure virtual]`

Sets the transformation matrix.

Implemented in TBasicConstraint.

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

- I3dExConstraint.h