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 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
virtual boolean MCCOMAPI IsTransformResetRequired ()=0
virtual MCCOMErr MCCOMAPI ResetConstraint ()=0

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 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::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::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::IsTransformResetRequired (   )  [pure virtual]
 

Call this after an event in the constraint chooser a reset is required when the constraint has changed in nature or in axis that is when the transform will no longer match the default is return true if you did not handle the change

virtual MCCOMErr MCCOMAPI I3DShConstraint::ResetConstraint (   )  [pure virtual]
 

Resets the constraint. (called when IsTransformResetRequired() returns True).

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 Mar 14 12:29:01 2005 for Carrara SDK Doc by  doxygen 1.3.9.1