COLLADAAction.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
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