# I3DShAnimationMethod Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShAnimationMethod:

List of all members.

## Public Member Functions
virtual MCCOMErr MCCOMAPI | SetTree (I3DShTreeElement *tree)=0
virtual boolean MCCOMAPI | GetTransform (TTreeTransform &transform)=0
virtual boolean MCCOMAPI | GetTransform (MicroTick time, TTreeTransform &transform)=0
virtual boolean MCCOMAPI | GetInitialTransform (TTreeTransform &transform)=0
virtual MCCOMErr MCCOMAPI | SetTransform (const TTreeTransform &transform)=0
virtual boolean MCCOMAPI | TransformIsLocal ()=0
virtual boolean MCCOMAPI | OffsetAnimation (const TTreeTransform &offset)=0
virtual MCCOMErr MCCOMAPI | GetAnimationKeyTimes (real inAccuracy, TMCArray< MicroTick > &outKeyTimes, boolean &outAutoGetKeyFrames, boolean &outAutoCurveAnalysis)=0
virtual boolean MCCOMAPI | NeedConvert ()=0
virtual MCCOMErr MCCOMAPI | BeginConvert (I3DShAnimationMethod *source)=0
virtual MCCOMErr MCCOMAPI | Convert (I3DShAnimationMethod *source, const TTreeTransform &transform)=0
virtual MCCOMErr MCCOMAPI | EndConvert (I3DShAnimationMethod *source)=0
virtual MCCOMErr MCCOMAPI | GetXTranslationAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetYTranslationAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetZTranslationAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetHotPointAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetUniformScalingAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetRotationAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetRotationAnimationTrack (I3DShParamTimeLine **xAnimationTrack, I3DShParamTimeLine **yAnimationTrack, I3DShParamTimeLine **zAnimationTrack, I3DShParamTimeLine **mirrorAnimationTrack, EEulerAnglesOrder &anglesOrder)=0
virtual MCCOMErr MCCOMAPI | GetXScalingAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetYScalingAnimationTrack (I3DShParamTimeLine **animationTrack)=0
virtual MCCOMErr MCCOMAPI | GetZScalingAnimationTrack (I3DShParamTimeLine **animationTrack)=0

## Detailed Description

An Animation Method defines the trajectory of an object. For instance, an object can be animation by interpolating between positions (key frames) or using a physical simulation...

There are two interfaces to access a component: The shell interface (ISh. or I3DSh.) and the external interface (IEx. or I3DEx.) . You can get one from the other using QueryInterface.

Whenever it is possible you should use the Shell interface 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:
  I3DExAnimationMethod

## Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::BeginConvert | ( | I3DShAnimationMethod * | source | ) | `[pure virtual]`

Starts the conversion from one animation method to another.

Note that this method is only called if the GetXTranslationAnimationTrack are not implemented.

Parameters:

  | source | The source animation method.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::Convert | ( | I3DShAnimationMethod * | source,
|  | const TTreeTransform & | transform |
| ) |  |  | `[pure virtual]`

Converts one position (transform) at the current time from one animation method to another. This method is called for each of the times returned by GetAnimationKeyTimes().

Parameters:

  | source | The source animation method.
  | transform | The transform at the current time from the source animation method.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::EndConvert | ( | I3DShAnimationMethod * | source | ) | `[pure virtual]`

Called at the end of the conversion from one animation method to another. See BeginConvert() and Convert() for details.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetAnimationKeyTimes | ( | real | inAccuracy,
|  | TMCArray< MicroTick > & | outKeyTimes,
|  | boolean & | outAutoGetKeyFrames,
|  | boolean & | outAutoCurveAnalysis |
| ) |  |  | `[pure virtual]`

Returns a set of key times that approximates the trajectory of the object with a given accuracy. This is used when converting an animation method to key frames.

Note that by setting outAutoCurveAnalysis or outAutoGetKeyFrames to true, you can tell the Shell to use a default implementation to evaluate the keyframes so that you do not have to provide an implementation of this method

Parameters:

  | inAccuracy | The accuray of the conversion (0 is the lowest accuracy, 1 means 100%)
  | outKeyTimes | The returned sampling times.
  | outAutoGetKeyFrames | Returns true if the keyframes of the animation method should be used instead.
  | outAutoCurveAnalysis | Retursn true if a default curve analysis method should be used instead.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetHotPointAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the hot point. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual boolean MCCOMAPI I3DShAnimationMethod::GetInitialTransform | ( | TTreeTransform & | transform | ) | `[pure virtual]`

Returns the initial transform of the object (transform at time 0).

Parameters:

  | transform | A reference to the transform where the result should be stored.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetRotationAnimationTrack | ( | I3DShParamTimeLine ** | xAnimationTrack,
|  | I3DShParamTimeLine ** | yAnimationTrack,
|  | I3DShParamTimeLine ** | zAnimationTrack,
|  | I3DShParamTimeLine ** | mirrorAnimationTrack,
|  | EEulerAnglesOrder & | anglesOrder |
| ) |  |  | `[pure virtual]`

Returns the time line corresponding to the animation of the rotation (as Euler angles). This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetRotationAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the rotation. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual boolean MCCOMAPI I3DShAnimationMethod::GetTransform | ( | MicroTick | time,
|  | TTreeTransform & | transform |
| ) |  |  | `[pure virtual]`

Evaluates the transform of the object at the given time.

Parameters:

  | time | The time where you want to evaluate the tree transform.
  | transform | A reference to the transform where the result should be stored.

virtual boolean MCCOMAPI I3DShAnimationMethod::GetTransform | ( | TTreeTransform & | transform | ) | `[pure virtual]`

Returns the current transform of the object.

Parameters:

  | transform | A reference to the transform where the result should be stored.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetUniformScalingAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the uniform scaling. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetXScalingAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the X parameter of the scaling. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetXTranslationAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the X parameter of position. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetYScalingAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the Y parameter of the scaling. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetYTranslationAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the Y parameter of position. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetZScalingAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the Z parameter of the scaling. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::GetZTranslationAnimationTrack | ( | I3DShParamTimeLine ** | animationTrack | ) | `[pure virtual]`

Returns the time line corresponding to the animation of the Z parameter of position. This is used to make exact conversions between animation methods when it is possible. When it is not implemented then the animation method is sampled. (See GetAnimationKeyTimes() and BeginConvert())

Parameters:

  | animationTrack | A pointer to the time line that is returned.

virtual boolean MCCOMAPI I3DShAnimationMethod::NeedConvert | ( |  | ) | `[pure virtual]`

Returns true if needs to force a convertion.

virtual boolean MCCOMAPI I3DShAnimationMethod::OffsetAnimation | ( | const TTreeTransform & | offset | ) | `[pure virtual]`

Offset the transform of the whole animation

Parameters:

  | offset | the offset to add

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::SetTransform | ( | const TTreeTransform & | transform | ) | `[pure virtual]`

Sets transform of the object at the current time.

Parameters:

  | transform | The transform of the object.

virtual MCCOMErr MCCOMAPI I3DShAnimationMethod::SetTree | ( | I3DShTreeElement * | tree | ) | `[pure virtual]`

Sets the Tree Element whose position is controled by this animation method.

Parameters:

  | tree | The tree that is controlled by this animation method.

virtual boolean MCCOMAPI I3DShAnimationMethod::TransformIsLocal | ( |  | ) | `[pure virtual]`

Returns true if the animation method defines the local transform of the object (meaning that the transform should be multiplied by the parent global transform to obtain the global transform of the object).

By default transforms are local but it can be useful to have an object hierarchy in which the last object's position is defined in global coordinates (eg motion path)

Returns:
  true if the transform is local

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

- I3dShAnimationMethod.h