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__