00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _CUSTOMPARAMINFO_H
00013 #define _CUSTOMPARAMINFO_H
00014
00015 #include "Template.h"
00016 #include "VariantParameter.h"
00017
00018 class CSLCustomPSet;
00019
00034 class XSIEXPORT CSLXSICustomParamInfo
00035 : public CSLTemplate
00036 {
00037 friend CSLXSICustomParamInfo* CSLCustomParameter::ConnectCustomParamInfo(CSLXSICustomParamInfo*);
00038 public:
00048 typedef enum
00049 {
00050 SI_ANIMATABLE = 1,
00051 SI_READ_ONLY = 2,
00052 SI_PERSISTABLE = 4,
00053 SI_NOT_INSPECTABLE = 8,
00054 SI_SILENT = 16,
00055 SI_NOT_PSET_PERSISTABLE = 128,
00056 SI_TEXTURABLE = 256,
00057 } ECapabilitiesFlag;
00058
00065 CSLXSICustomParamInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, CSLVariantParameter *in_pParameter = 0);
00066 virtual ~CSLXSICustomParamInfo();
00067
00068 SI_Error Synchronize();
00069
00073 ETemplateType Type(){ return XSI_CUSTOM_PARAM_INFO; }
00074
00080 SI_Error GetMinValue( SI_TinyVariant &out_Value );
00081
00085 CSLVariantProxy& GetMinValue();
00086
00092 SI_Error SetMinValue( const CSLVariantProxy &in_Value );
00093
00099 SI_Error SetMinValue( const SI_TinyVariant &in_Value );
00100
00106 SI_Error GetMaxValue( SI_TinyVariant &out_Value );
00107
00111 CSLVariantProxy& GetMaxValue();
00112
00118 SI_Error SetMaxValue( const CSLVariantProxy &in_Value );
00119
00125 SI_Error SetMaxValue( const SI_TinyVariant &in_Value );
00126
00143 SI_ULong GetCapabilities();
00144
00161 SI_Void SetCapabilities( SI_ULong in_ulValue );
00162
00163 private:
00164 void SetParameter( CSLVariantParameter *in_pParam ){ m_pParameter = in_pParam; }
00165 CSLVariantProxy m_MinValue;
00166 CSLVariantProxy m_MaxValue;
00167 CSLULongProxy m_Capabilities;
00168
00169 CSLVariantParameter *m_pParameter;
00170
00171 SI_Void *m_pReserved;
00172 };
00173
00174 #endif