COLLADAAction.h

00001 //***************************************************************************************
00002 //
00003 // File supervisor: Softimage 3D Games & 3D Bridge team
00004 //
00005 // (c) Copyright 2001-2002 Avid Technology, Inc. . All rights reserved.
00006 //
00007 //***************************************************************************************
00008 
00009 /****************************************************************************************
00010 THIS CODE IS PUBLISHED AS A SAMPLE ONLY AND IS PROVIDED "AS IS".
00011 IN NO EVENT SHALL SOFTIMAGE, AVID TECHNOLOGY, INC. AND/OR THEIR RESPECTIVE
00012 SUPPLIERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
00013 DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00014 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
00015 CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE .
00016 
00017 COPYRIGHT NOTICE. Copyright © 1999-2002 Avid Technology Inc. . All rights reserved. 
00018 
00019 SOFTIMAGE is a registered trademark of Avid Technology Inc. or its subsidiaries 
00020 or divisions. Windows NT is a registered trademark of Microsoft Corp. All other
00021 trademarks contained herein are the property of their respective owners. 
00022 ****************************************************************************************/
00023 
00024 #ifndef _COLLADAACTION_H
00025 #define _COLLADAACTION_H
00026 
00027 #include "Action.h"
00028 #include "ActionFCurve.h"
00029 
00042 class XSIEXPORT CSLCOLLADAAction
00043     : public CSLAction
00044 {
00045 public:
00051     CSLCOLLADAAction(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00052 
00055     virtual ~CSLCOLLADAAction();
00056 
00060     virtual SI_Error Synchronize();
00061 
00065     virtual SI_Error Fix();
00066 
00070     virtual SI_Float GetEndTime();
00071 
00075     virtual SI_Void SetEndTime( SI_Float in_fTime );
00076 
00080     virtual SI_Float GetStartTime();
00081 
00085     virtual SI_Void SetStartTime( SI_Float in_fTime );
00086 
00090     virtual CSLActionFCurve* AddAnimation();
00091 
00096     virtual CSLActionFCurve* AddAnimation( EFCurveInterpolationType in_InterpolationType );
00097 
00098 private:
00099     
00100     SI_Void *m_pReserved;
00101     CdotXSIParam *m_pStart;
00102     CdotXSIParam *m_pEnd;
00103 
00104 };
00105 
00106 #include "BaseFCurve.h"
00107 
00112 class XSIEXPORT CSLCOLLADAActionFCurve
00113     : public CSLActionFCurve
00114 {
00115 public:
00116 
00124     CSLCOLLADAActionFCurve(CSLScene* in_pScene,
00125                          CSLModel *in_pModel,
00126                          CdotXSITemplate* in_pTemplate,
00127                          EFCurveInterpolationType in_InterpolationType);
00128 
00131     virtual ~CSLCOLLADAActionFCurve();
00132 
00136     virtual SI_Error Synchronize();
00137   
00142     virtual SI_Error ConnectCOLLADAAnimation( CCOLLADATemplate* in_pChannel, const int in_offset = 0);
00143 
00148     virtual CSLAnimatableType* ParameterReference();
00149 
00150 private:
00151 
00152     SI_Void     GetFloatArrayFromCurve ( CSIBCArray<float>& inout_Array, int in_iElement );
00153     SI_Void     AddSource ( CCOLLADATemplate* in_pAnimation, 
00154                             int in_iElement, 
00155                             SI_Char* in_szPrefix, 
00156                             SI_Char* in_szID, 
00157                             SI_Char* in_szOutput,
00158                             CCOLLADATemplate* in_pSampler);
00159     
00160     CSLAnimatableType *m_pParamReference;
00161     SI_Void *m_pReserved;
00162 };
00163 
00164 
00165 #endif _COLLADAACTION_H