AnimatableType.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 __ANIMATABLETYPE_H__
00013 #define __ANIMATABLETYPE_H__
00014 
00015 #include <dotXSITemplate.h> // CDotXSITemplate
00016 #include <COLLADATemplate.h> // CCOLLADATemplate
00017 #include <dotXSIParam.h>    // CdotXSIParam
00018 
00019 class CSLCOLLADAScene;
00020 class CSLTemplate;
00021 
00023 // Actual definition of the CSLAnimatable class
00025 
00029 class XSIEXPORT CSLAnimatableType
00030 {
00031 public:
00032 
00036     enum EElementType
00037     {
00038         SI_BOOL_TYPE,       
00039         SI_BYTE_TYPE,       
00040         SI_UBYTE_TYPE,      
00041         SI_DOUBLE_TYPE,     
00042         SI_FLOAT_TYPE,      
00043         SI_INT_TYPE,        
00044         SI_LONG_TYPE,       
00045         SI_ULONG_TYPE,      
00046         SI_SHORT_TYPE,      
00047         SI_VARIANT_TYPE,    
00048         SI_ENUM_TYPE,       
00049         SI_STRING_ENUM_TYPE,
00050     };
00051 
00055     virtual EElementType Type() = 0;
00056 
00060     SI_Char* GetName();
00061 
00065     SI_Void SetName( const SI_Char* in_szName );
00066 
00070     virtual SI_Float GetFloatValue() = 0;
00071 
00075     virtual SI_Void SetFloatValue(SI_Float in_fValue) = 0;
00076 
00082     virtual SI_Error Connect ( CdotXSITemplate* in_pTemplate, SI_Int in_iIndex);
00083 
00094     virtual SI_Error ConnectSID (CSLTemplate *in_pTemplate, CCOLLADATemplate *in_pOwner, SI_Int in_nIndex, const char* in_szAddress, CSLCOLLADAScene* in_pScene, int in_CurveType, const char* in_XSIName );
00095 
00099     virtual CdotXSIParam*   ParameterReference();
00100 
00101 protected:
00102 
00105     CSLAnimatableType();
00106 
00109     ~CSLAnimatableType();
00110 
00111 private:
00112     // no copy constructor
00113     CSLAnimatableType(CSLAnimatableType&){};
00114     CdotXSIParam* m_pReference;
00115 };
00116 
00117 #endif //__ANIMATABLETYPE_H__