00001
00002
00012
00013
00014 #ifndef _COLLADAACTION_H
00015 #define _COLLADAACTION_H
00016
00017 #include "Action.h"
00018 #include "ActionFCurve.h"
00019
00034 class XSIEXPORT CSLCOLLADAAction
00035 : public CSLAction
00036 {
00037 public:
00043 CSLCOLLADAAction(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00044
00047 virtual ~CSLCOLLADAAction();
00048
00052 virtual SI_Error Synchronize();
00053
00057 virtual SI_Error Fix();
00058
00062 virtual SI_Float GetEndTime();
00063
00067 virtual SI_Void SetEndTime( SI_Float in_fTime );
00068
00072 virtual SI_Float GetStartTime();
00073
00077 virtual SI_Void SetStartTime( SI_Float in_fTime );
00078
00082 virtual CSLActionFCurve* AddAnimation();
00083
00088 virtual CSLActionFCurve* AddAnimation( EFCurveInterpolationType in_InterpolationType );
00089
00090 private:
00091
00092 SI_Void *m_pReserved;
00093 CdotXSIParam *m_pStart;
00094 CdotXSIParam *m_pEnd;
00095
00096 };
00097
00098 #include "BaseFCurve.h"
00099
00106 class XSIEXPORT CSLCOLLADAActionFCurve
00107 : public CSLActionFCurve
00108 {
00109 public:
00110
00117 CSLCOLLADAActionFCurve(CSLScene* in_pScene,
00118 CSLModel *in_pModel,
00119 CdotXSITemplate* in_pTemplate,
00120 EFCurveInterpolationType in_InterpolationType);
00121
00124 virtual ~CSLCOLLADAActionFCurve();
00125
00129 virtual SI_Error Synchronize();
00130
00136 virtual SI_Error ConnectCOLLADAAnimation( CCOLLADATemplate* in_pChannel, const int in_offset = 0);
00137
00142 virtual CSLAnimatableType* ParameterReference();
00143
00144 private:
00145
00146 SI_Void GetFloatArrayFromCurve ( CSIBCArray<float>& inout_Array, int in_iElement );
00147 SI_Void AddSource ( CCOLLADATemplate* in_pAnimation,
00148 int in_iElement,
00149 SI_Char* in_szPrefix,
00150 SI_Char* in_szID,
00151 SI_Char* in_szOutput,
00152 CCOLLADATemplate* in_pSampler);
00153
00154 CSLAnimatableType *m_pParamReference;
00155 SI_Void *m_pReserved;
00156 };
00157
00158
00159 #endif _COLLADAACTION_H