I3DShKeyFrame Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShKeyFrame:

IMCUnknown List of all members.

Public Member Functions

virtual int32 MCCOMAPI GetParamSize () const =0
virtual MCCOMErr MCCOMAPI GetParam (void *param, int32 type, boolean &changed) const =0
virtual MCCOMErr MCCOMAPI SetParam (const void *param, int32 type)=0
virtual int32 MCCOMAPI GetType () const =0
virtual void MCCOMAPI Clone (I3DShKeyFrame **) const =0
virtual MCCOMErr MCCOMAPI Read (TMCiostream &stream)=0
virtual MCCOMErr MCCOMAPI Write (TMCiostream &stream) const =0
virtual MCCOMErr MCCOMAPI Copy (const I3DShKeyFrame *from)=0
virtual MCCOMErr MCCOMAPI LinearInterpolate (const real &lamda, const I3DShKeyFrame *kf1, const I3DShKeyFrame *kf2)=0
virtual void MCCOMAPI ComputeOffset (I3DShKeyFrame **result, I3DShKeyFrame *keyFrame)=0
virtual MCCOMErr MCCOMAPI ApplyOffset (I3DShKeyFrame *keyFrame)=0
virtual void MCCOMAPI Subtract (I3DShKeyFrame *keyFrame1, I3DShKeyFrame *keyFrame2, real lambda)=0
virtual void MCCOMAPI SetLink (I3DShTweenerChainLink *inLink)=0
virtual I3DShTweenerChainLink
*MCCOMAPI 
GetLinkNoAddRef ()=0

Detailed Description

This is the interface to access key frames. Key frames store the value of a parameter for a given frame. The key frame does not store the time which is stored in the tweener chain link (see I3DShTweenerChainLink).

Each animated parameter (I3DShParamInfo) owns a time line (I3DShParamTimeLine) which is a linked list of Tweener Chain Links (I3DShTweenerChainLink), each of them pointing to a keyframe.

The default keyframe types are:

You can derive your own keyframe class from this interface and create your keyframe type that you can register with the application (see I3DShUtilities::RegisterNewKeyFrameType)


Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::ApplyOffset (  I3DShKeyFrame *  keyFrame  )  [pure virtual]
 

Adds a value to the current keyframe

Parameters:
keyFrame The keyframe that is added to this.

virtual void MCCOMAPI I3DShKeyFrame::Clone (  I3DShKeyFrame **   )  const [pure virtual]
 

Creates a copy of the keyframe

Parameters:
I3DShKeyFrame A pointer to the copy that is created.

virtual void MCCOMAPI I3DShKeyFrame::ComputeOffset (  I3DShKeyFrame **  result,
I3DShKeyFrame *  keyFrame
)  [pure virtual]
 

Computes the different between 2 keyframes.

Parameters:
result keyFrame - (*this)
keyFrame A keyframe.

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::Copy (  const I3DShKeyFrame *  from  )  [pure virtual]
 

Copy the value of another keyframe.

Parameters:
from A pointer to the keyframe whose value is copie

virtual I3DShTweenerChainLink* MCCOMAPI I3DShKeyFrame::GetLinkNoAddRef (   )  [pure virtual]
 

Returns a pointer to the tweener chain link that is pointing to this keyframe.

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::GetParam (  void *  param,
int32  type,
boolean &  changed
)  const [pure virtual]
 

Returns the value stored in the keyframe.

Parameters:
param A pointer to a buffer that can store the value.
type The type of the buffer (should be the same as the type of the keyframe usually although some limited conversions are possible).
changed Returns true if the value that is returned is different from the value that was originally pointed to by #param.

virtual int32 MCCOMAPI I3DShKeyFrame::GetParamSize (   )  const [pure virtual]
 

Returns the size (in bytes) necessary to store the parameter.

virtual int32 MCCOMAPI I3DShKeyFrame::GetType (   )  const [pure virtual]
 

Returns the type of the keyframe.

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::LinearInterpolate (  const real &  lamda,
const I3DShKeyFrame *  kf1,
const I3DShKeyFrame *  kf2
)  [pure virtual]
 

Performs a linear interpolation between two keyframes of the same type and stored the result in this keyframe.

Parameters:
lamda The parameter of the interpolation (usually between 0 and 1)
kf1 The keyframe that is selected when lamda is equal to 0
kf2 The keyframe that is selected when lamda is equal to 1

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::Read (  TMCiostream &  stream  )  [pure virtual]
 

Reads a keyframe value from a stream.

Parameters:
stream 

virtual void MCCOMAPI I3DShKeyFrame::SetLink (  I3DShTweenerChainLink *  inLink  )  [pure virtual]
 

Sets a pointer to the tweener chain link that is pointing to this keyframe.

Parameters:
inLink A pointer to the tweener chain link that is pointing to this keyframe.

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::SetParam (  const void *  param,
int32  type
)  [pure virtual]
 

Sets the value that is stored in the keyframe.

Parameters:
param A pointer to a buffer that stores the value.
type The type of the buffer (should be the same as the type of the keyframe usually although some limited conversions are possible).

virtual void MCCOMAPI I3DShKeyFrame::Subtract (  I3DShKeyFrame *  keyFrame1,
I3DShKeyFrame *  keyFrame2,
real  lambda
)  [pure virtual]
 

Subtract two keyframes and multiplies the result by a constant (res = (k1-k2) * lambda) The result is stored in (*this).

Parameters:
keyFrame1 First operand of the substraction
keyFrame2 Second operand of the substraction
lambda The scaling factor.

virtual MCCOMErr MCCOMAPI I3DShKeyFrame::Write (  TMCiostream &  stream  )  const [pure virtual]
 

Write a key frame value into a stream.

Parameters:
stream 


The documentation for this struct was generated from the following file:
Generated on Mon Mar 14 12:29:02 2005 for Carrara SDK Doc by  doxygen 1.3.9.1