# COLLADAAction.h

    00001 //***************************************************************************************
    00002 //
    00003 // File supervisor: Crosswalk team
    00004 //
    00005 // Copyright 2008 Autodesk, Inc.  All rights reserved.
    00006 // Use of this software is subject to the terms of the Autodesk license agreement
    00007 // provided at the time of installation or download, or which otherwise accompanies
    00008 // this software in either electronic or hard copy form.
    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