00001
00002
00012
00013
00014 #ifndef _CUSTOMPARAMINFO_H
00015 #define _CUSTOMPARAMINFO_H
00016
00017 #include "Template.h"
00018 #include "VariantParameter.h"
00019
00020 class CSLCustomPSet;
00021
00038 class XSIEXPORT CSLXSICustomParamInfo
00039 : public CSLTemplate
00040 {
00041 friend CSLXSICustomParamInfo* CSLCustomParameter::ConnectCustomParamInfo(CSLXSICustomParamInfo*);
00042 public:
00052 typedef enum
00053 {
00054 SI_ANIMATABLE = 1,
00055 SI_READ_ONLY = 2,
00056 SI_PERSISTABLE = 4,
00057 SI_NOT_INSPECTABLE = 8,
00058 SI_SILENT = 16,
00059 SI_NOT_PSET_PERSISTABLE = 128,
00060 SI_TEXTURABLE = 256,
00061 } ECapabilitiesFlag;
00062
00069 CSLXSICustomParamInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, CSLVariantParameter *in_pParameter = 0);
00070 virtual ~CSLXSICustomParamInfo();
00071
00072 SI_Error Synchronize();
00073
00077 ETemplateType Type(){ return XSI_CUSTOM_PARAM_INFO; }
00078
00084 SI_Error GetMinValue( SI_TinyVariant &out_Value );
00085
00089 CSLVariantProxy& GetMinValue();
00090
00096 SI_Error SetMinValue( const CSLVariantProxy &in_Value );
00097
00103 SI_Error SetMinValue( const SI_TinyVariant &in_Value );
00104
00110 SI_Error GetMaxValue( SI_TinyVariant &out_Value );
00111
00115 CSLVariantProxy& GetMaxValue();
00116
00122 SI_Error SetMaxValue( const CSLVariantProxy &in_Value );
00123
00129 SI_Error SetMaxValue( const SI_TinyVariant &in_Value );
00130
00147 SI_ULong GetCapabilities();
00148
00165 SI_Void SetCapabilities( SI_ULong in_ulValue );
00166
00167 private:
00168 void SetParameter( CSLVariantParameter *in_pParam ){ m_pParameter = in_pParam; }
00169 CSLVariantProxy m_MinValue;
00170 CSLVariantProxy m_MaxValue;
00171 CSLULongProxy m_Capabilities;
00172
00173 CSLVariantParameter *m_pParameter;
00174
00175 SI_Void *m_pReserved;
00176 };
00177
00178 #endif