00001
00002
00012
00013
00014 #ifndef __ANIMATABLETYPE_H__
00015 #define __ANIMATABLETYPE_H__
00016
00017 #include <dotXSITemplate.h>
00018 #include <COLLADATemplate.h>
00019 #include <dotXSIParam.h>
00020
00021 class CSLCOLLADAScene;
00022 class CSLTemplate;
00023
00025
00027
00032 class XSIEXPORT CSLAnimatableType
00033 {
00034 public:
00035
00038 enum EElementType
00039 {
00040 SI_BOOL_TYPE,
00041 SI_BYTE_TYPE,
00042 SI_UBYTE_TYPE,
00043 SI_DOUBLE_TYPE,
00044 SI_FLOAT_TYPE,
00045 SI_INT_TYPE,
00046 SI_LONG_TYPE,
00047 SI_ULONG_TYPE,
00048 SI_SHORT_TYPE,
00049 SI_VARIANT_TYPE,
00050 SI_ENUM_TYPE,
00051 SI_STRING_ENUM_TYPE,
00052 };
00053
00057 virtual EElementType Type() = 0;
00058
00062 SI_Char* GetName();
00063
00067 SI_Void SetName( const SI_Char* in_szName );
00068
00072 virtual SI_Float GetFloatValue() = 0;
00073
00077 virtual SI_Void SetFloatValue(SI_Float in_fValue) = 0;
00078
00084 virtual SI_Error Connect ( CdotXSITemplate* in_pTemplate, SI_Int in_iIndex);
00085
00096 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 );
00097
00101 virtual CdotXSIParam* ParameterReference();
00102
00103 protected:
00104
00107 CSLAnimatableType();
00108
00111 ~CSLAnimatableType();
00112
00113 private:
00114
00115 CSLAnimatableType(CSLAnimatableType&){};
00116 CdotXSIParam* m_pReference;
00117 };
00118
00119 #endif //__ANIMATABLETYPE_H__