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 _VARIANTPARAMETER_H 00013 #define _VARIANTPARAMETER_H 00014 00015 #include "Template.h" 00016 00017 class CSLXSICustomParamInfo; 00018 class CSLCOLLADAScene; 00019 00023 class XSIEXPORT CSLVariantParameter : public CSLAnimatableType 00024 { 00025 public: 00030 CSLVariantParameter 00031 ( 00032 CdotXSITemplate *in_pTemplate, 00033 SI_Int in_nValueIndex 00034 ); 00035 00037 virtual ~CSLVariantParameter(); 00038 00042 CSLAnimatableType::EElementType ValueType(); 00043 00044 00045 SI_TinyVariant* GetValue(); 00046 00050 SI_Void SetValue( SI_TinyVariant* in_pNewVal ); 00051 00055 virtual CSLVariantParameter::EElementType Type(){ return CSLVariantParameter::SI_VARIANT_TYPE; } 00056 00062 virtual CSLXSICustomParamInfo* CustomParamInfo(){ return (CSLXSICustomParamInfo *)NULL; } 00063 00067 virtual SI_Float GetFloatValue(); 00068 00072 virtual SI_Void SetFloatValue(SI_Float in_fValue); 00073 }; 00074 00075 00084 class XSIEXPORT CSLCustomParameter : 00085 public CSLVariantParameter 00086 { 00087 public: 00092 CSLCustomParameter 00093 ( 00094 CdotXSITemplate *in_pTemplate, 00095 SI_Int in_nValueIndex 00096 ); 00097 00099 virtual ~CSLCustomParameter(); 00100 00102 // Custom parameter information 00104 00108 CSLXSICustomParamInfo* CustomParamInfo(); 00109 00113 CSLXSICustomParamInfo* ConnectCustomParamInfo( CSLXSICustomParamInfo *in_pCustomParamInfo ); 00114 00115 private: 00116 CSLXSICustomParamInfo *m_pCustomParamInfo; 00117 }; 00118 00119 #endif