xsi_customproperty.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSICUSTOMPROPERTY_H__
00018 #define __XSICUSTOMPROPERTY_H__
00019 
00020 #include <xsi_property.h>
00021 #include <xsi_status.h>
00022 
00023 namespace XSI {
00024 
00025 class ProxyParameter ;
00026 
00027 //*****************************************************************************
00062 //*****************************************************************************
00063 
00064 class SICPPSDKDECL CustomProperty : public Property
00065 {
00066 public:
00068     CustomProperty();
00069 
00071     ~CustomProperty();
00072 
00076     CustomProperty(const CRef& in_ref);
00077 
00081     CustomProperty(const CustomProperty& in_obj);
00082 
00087     bool IsA( siClassID in_ClassID) const;
00088 
00092     siClassID GetClassID() const;
00093 
00099     CustomProperty& operator=(const CustomProperty& in_obj);
00100 
00106     CustomProperty& operator=(const CRef& in_ref);
00107 
00142     CStatus AddParameter(
00143         const CString& in_scriptname,
00144         CValue::DataType in_type,
00145         siParamClassification in_classification,
00146         INT in_capabilities,
00147         const CString& in_name,
00148         const CString& in_description,
00149         const CValue& in_default,
00150         const CValue& in_min,
00151         const CValue& in_max,
00152         const CValue& in_suggestedmin,
00153         const CValue& in_suggestedmax,
00154         Parameter&  io_parameter );
00155 
00188     CStatus AddParameter(
00189         const CString& in_scriptname,
00190         CValue::DataType in_type,
00191         INT in_capabilities,
00192         const CString& in_name,
00193         const CString& in_description,
00194         const CValue& in_default,
00195         const CValue& in_min,
00196         const CValue& in_max,
00197         const CValue& in_suggestedmin,
00198         const CValue& in_suggestedmax,
00199         Parameter&  io_parameter );
00200 
00231     CStatus AddParameter(
00232         const CString& in_scriptname,
00233         CValue::DataType in_type,
00234         INT in_capabilities,
00235         const CString& in_name,
00236         const CString& in_description,
00237         const CValue& in_default,
00238         Parameter&  io_parameter );
00239 
00256     Parameter AddFCurveParameter( const CString& in_scriptname ) ;
00257 
00267     Parameter AddGridParameter( const CString& in_scriptname ) ;
00268 
00276     CStatus RemoveParameter( const Parameter& in_param );
00277 
00300     CStatus GetBinaryData( unsigned char *& io_buffer, UINT& io_size ) const;
00301 
00309     CStatus FreeBinaryData( unsigned char *& io_buffer ) const ;
00310 
00311 
00336     CStatus PutBinaryData( const unsigned char * in_buffer, UINT in_size );
00337 
00347     ProxyParameter AddProxyParameter(
00348                     Parameter in_ParamToProxy,
00349                     const CString& in_ProxyScriptName = CString(),
00350                     const CString& in_ProxyName = CString() ) ;
00351 
00362     Parameter AddParameterFromDef( const CRef& in_paramdef ) ;
00363 
00364     private:
00365     CustomProperty * operator&() const;
00366     CustomProperty * operator&();
00367 };
00368 
00369 };
00370 
00371 #endif // __XSICUSTOMPROPERTY_H__