COLLADAFCurve.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 _COLLADAFCURVE_H
00013 #define _COLLADAFCURVE_H
00014 
00015 #include "FCurve.h"
00016 #include "SL_Enum.h"
00017 
00018 #define ELEM_TIME       0
00019 #define ELEM_VALUE      1
00020 #define ELEM_IN_TAN     2
00021 #define ELEM_OUT_TAN    3
00022 #define ELEM_INTERP     4
00023 
00024 
00026 class XSIEXPORT CSLCOLLADAFCurve
00027     : public CSLFCurve
00028 {
00029 public:
00039     CSLCOLLADAFCurve
00040     (
00041         CSLScene* in_pScene,
00042         CSLModel *in_pModel,
00043         CdotXSITemplate* in_pTemplate, 
00044         EFCurveType in_Type,
00045         EFCurveInterpolationType in_InterpolationType
00046     );
00047 
00050     virtual ~CSLCOLLADAFCurve();
00051 
00056     virtual SI_Error Synchronize();
00057 
00062     virtual SI_Error ConnectCOLLADAAnimation( CCOLLADATemplate* in_pChannel, const int in_offset = 0);
00063 
00064 private:
00065 
00066     SI_Void     GetFloatArrayFromCurve ( CSIBCArray<float>& inout_Array, int in_iElement );
00067     SI_Void     AddSource ( CCOLLADATemplate* in_pAnimation, 
00068                             int in_iElement, 
00069                             SI_Char* in_szPrefix, 
00070                             SI_Char* in_szID, 
00071                             SI_Char* in_szOutput,
00072                             CCOLLADATemplate* in_pSampler);
00073     
00074 };
00075 
00076 #endif