CustomParamInfo.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
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