I3DShConstraint Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShConstraint:
IMCUnknown

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 GetTransformPartialDerivate (int16 index, TTransform3D &transform) const =0
virtual MCCOMErr MCCOMAPI GetTransformSecondPartialDerivative (int16 index1, int16 index2, TTransform3D &transform) 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 boolean MCCOMAPI CanUseGimbalRotation () const =0
 Returns tue if the gimbal mode is allowed for the constraint.
virtual MCCOMErr MCCOMAPI GetTransform (TTransform3D &transform) const =0
virtual MCCOMErr MCCOMAPI SetTransform (TTransform3D &transform)=0
virtual boolean MCCOMAPI IsNewConstraint () const =0
 Returns true is the external constraint is an I3DExNewConstraint.

Detailed Description

Constraints provide 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.

There are two interfaces to access a constraint: The shell interface (I3DShConstraint) and the external interface (I3DExConstraint) . You can get one from the other using QueryInterface.

You should use the Shell interface (I3DShConstraint) to access the component because the Shell will make sure that the parameter map of the external component is valid. This is especially important if the component is animated. For more information on components see the Overview of the SDK.

See also:
I3DExConstraint

Member Function Documentation

virtual boolean MCCOMAPI I3DShConstraint::CanUseGimbalRotation (  )  const [pure virtual]

Returns tue if the gimbal mode is allowed for the constraint.

virtual MCCOMErr MCCOMAPI I3DShConstraint::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
virtual MCCOMErr MCCOMAPI I3DShConstraint::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
virtual MCCOMErr MCCOMAPI I3DShConstraint::GetGimbalToLocalRotation ( TMatrix33 outRotation  )  const [pure virtual]

Fix for the axis constraint that rotates its Gimbal coordinates.

virtual MCCOMErr MCCOMAPI I3DShConstraint::GetMotionLimit ( int16  index,
ELimitType limit 
) const [pure virtual]

Returns the constraint for a given degree of freedom.

Parameters:
index 
limit 
virtual int16 MCCOMAPI I3DShConstraint::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.

virtual MCCOMErr MCCOMAPI I3DShConstraint::GetRotationsOrder ( EEulerAnglesOrder outOrder  )  const [pure virtual]

Returns the order used to apply the different rotations.

virtual MCCOMErr MCCOMAPI I3DShConstraint::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.
virtual MCCOMErr MCCOMAPI I3DShConstraint::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.
virtual MCCOMErr MCCOMAPI I3DShConstraint::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.
virtual MCCOMErr MCCOMAPI I3DShConstraint::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
virtual boolean MCCOMAPI I3DShConstraint::IsNewConstraint (  )  const [pure virtual]

Returns true is the external constraint is an I3DExNewConstraint.

virtual MCCOMErr MCCOMAPI I3DShConstraint::SetTransform ( TTransform3D transform  )  [pure virtual]

Sets the transformation matrix.

Parameters:
transform 

The documentation for this struct was generated from the following file:
Generated on Mon Apr 26 22:47:40 2010 for Carrara SDK Doc by  doxygen 1.6.3