00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __ANIMATABLETYPE_H__
00013 #define __ANIMATABLETYPE_H__
00014
00015 #include <dotXSITemplate.h>
00016 #include <COLLADATemplate.h>
00017 #include <dotXSIParam.h>
00018
00019 class CSLCOLLADAScene;
00020 class CSLTemplate;
00021
00023
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
00113 CSLAnimatableType(CSLAnimatableType&){};
00114 CdotXSIParam* m_pReference;
00115 };
00116
00117 #endif //__ANIMATABLETYPE_H__