00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CUSTOMPARAMINFO_H
00025 #define _CUSTOMPARAMINFO_H
00026
00027 #include "Template.h"
00028 #include "VariantParameter.h"
00029
00030 class CSLCustomPSet;
00031
00033
00045 class XSIEXPORT CSLXSICustomParamInfo
00046 : public CSLTemplate
00047 {
00048 friend CSLXSICustomParamInfo* CSLCustomParameter::ConnectCustomParamInfo(CSLXSICustomParamInfo*);
00049 public:
00059 typedef enum
00060 {
00061 SI_ANIMATABLE = 1,
00062 SI_READ_ONLY = 2,
00063 SI_PERSISTABLE = 4,
00064 SI_NOT_INSPECTABLE = 8,
00065 SI_SILENT = 16,
00066 SI_NOT_PSET_PERSISTABLE = 128,
00067 SI_TEXTURABLE = 256,
00068 } ECapabilitiesFlag;
00069
00076 CSLXSICustomParamInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate, CSLVariantParameter *in_pParameter = 0);
00077 virtual ~CSLXSICustomParamInfo();
00078
00079 SI_Error Synchronize();
00080
00084 ETemplateType Type(){ return XSI_CUSTOM_PARAM_INFO; }
00085
00091 SI_Error GetMinValue( SI_TinyVariant &out_Value );
00092
00096 CSLVariantProxy& GetMinValue();
00097
00103 SI_Error SetMinValue( const CSLVariantProxy &in_Value );
00104
00110 SI_Error SetMinValue( const SI_TinyVariant &in_Value );
00111
00117 SI_Error GetMaxValue( SI_TinyVariant &out_Value );
00118
00122 CSLVariantProxy& GetMaxValue();
00123
00129 SI_Error SetMaxValue( const CSLVariantProxy &in_Value );
00130
00136 SI_Error SetMaxValue( const SI_TinyVariant &in_Value );
00137
00154 SI_ULong GetCapabilities();
00155
00172 SI_Void SetCapabilities( SI_ULong in_ulValue );
00173
00174 private:
00175 void SetParameter( CSLVariantParameter *in_pParam ){ m_pParameter = in_pParam; }
00176 CSLVariantProxy m_MinValue;
00177 CSLVariantProxy m_MaxValue;
00178 CSLULongProxy m_Capabilities;
00179
00180 CSLVariantParameter *m_pParameter;
00181
00182 SI_Void *m_pReserved;
00183 };
00184
00185 #endif