00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _VARIANTPARAMETER_H 00015 #define _VARIANTPARAMETER_H 00016 00017 #include "Template.h" 00018 00019 class CSLXSICustomParamInfo; 00020 class CSLCOLLADAScene; 00021 00025 class XSIEXPORT CSLVariantParameter : public CSLAnimatableType 00026 { 00027 public: 00032 CSLVariantParameter 00033 ( 00034 CdotXSITemplate *in_pTemplate, 00035 SI_Int in_nValueIndex 00036 ); 00037 00039 virtual ~CSLVariantParameter(); 00040 00044 CSLAnimatableType::EElementType ValueType(); 00045 00046 00047 SI_TinyVariant* GetValue(); 00048 00052 SI_Void SetValue( SI_TinyVariant* in_pNewVal ); 00053 00057 virtual CSLVariantParameter::EElementType Type(){ return CSLVariantParameter::SI_VARIANT_TYPE; } 00058 00063 virtual CSLXSICustomParamInfo* CustomParamInfo(){ return (CSLXSICustomParamInfo *)NULL; } 00064 00068 virtual SI_Float GetFloatValue(); 00069 00073 virtual SI_Void SetFloatValue(SI_Float in_fValue); 00074 }; 00075 00076 00082 class XSIEXPORT CSLCustomParameter : 00083 public CSLVariantParameter 00084 { 00085 public: 00090 CSLCustomParameter 00091 ( 00092 CdotXSITemplate *in_pTemplate, 00093 SI_Int in_nValueIndex 00094 ); 00095 00097 virtual ~CSLCustomParameter(); 00098 00100 // Custom parameter information 00102 00106 CSLXSICustomParamInfo* CustomParamInfo(); 00107 00111 CSLXSICustomParamInfo* ConnectCustomParamInfo( CSLXSICustomParamInfo *in_pCustomParamInfo ); 00112 00113 private: 00114 CSLXSICustomParamInfo *m_pCustomParamInfo; 00115 }; 00116 00117 #endif