00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _COLLADAACTION_H
00013 #define _COLLADAACTION_H
00014
00015 #include "Action.h"
00016 #include "ActionFCurve.h"
00017
00030 class XSIEXPORT CSLCOLLADAAction
00031 : public CSLAction
00032 {
00033 public:
00039 CSLCOLLADAAction(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00040
00043 virtual ~CSLCOLLADAAction();
00044
00048 virtual SI_Error Synchronize();
00049
00053 virtual SI_Error Fix();
00054
00058 virtual SI_Float GetEndTime();
00059
00063 virtual SI_Void SetEndTime( SI_Float in_fTime );
00064
00068 virtual SI_Float GetStartTime();
00069
00073 virtual SI_Void SetStartTime( SI_Float in_fTime );
00074
00078 virtual CSLActionFCurve* AddAnimation();
00079
00084 virtual CSLActionFCurve* AddAnimation( EFCurveInterpolationType in_InterpolationType );
00085
00086 private:
00087
00088 SI_Void *m_pReserved;
00089 CdotXSIParam *m_pStart;
00090 CdotXSIParam *m_pEnd;
00091
00092 };
00093
00094 #include "BaseFCurve.h"
00095
00100 class XSIEXPORT CSLCOLLADAActionFCurve
00101 : public CSLActionFCurve
00102 {
00103 public:
00104
00112 CSLCOLLADAActionFCurve(CSLScene* in_pScene,
00113 CSLModel *in_pModel,
00114 CdotXSITemplate* in_pTemplate,
00115 EFCurveInterpolationType in_InterpolationType);
00116
00119 virtual ~CSLCOLLADAActionFCurve();
00120
00124 virtual SI_Error Synchronize();
00125
00130 virtual SI_Error ConnectCOLLADAAnimation( CCOLLADATemplate* in_pChannel, const int in_offset = 0);
00131
00136 virtual CSLAnimatableType* ParameterReference();
00137
00138 private:
00139
00140 SI_Void GetFloatArrayFromCurve ( CSIBCArray<float>& inout_Array, int in_iElement );
00141 SI_Void AddSource ( CCOLLADATemplate* in_pAnimation,
00142 int in_iElement,
00143 SI_Char* in_szPrefix,
00144 SI_Char* in_szID,
00145 SI_Char* in_szOutput,
00146 CCOLLADATemplate* in_pSampler);
00147
00148 CSLAnimatableType *m_pParamReference;
00149 SI_Void *m_pReserved;
00150 };
00151
00152
00153 #endif _COLLADAACTION_H