xsi_factory.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 __XSI_FACTORY_H__
    00018 #define __XSI_FACTORY_H__
    00019
    00020 #include "sicppsdk.h"
    00021 #include <xsi_siobject.h>
    00022 #include "xsi_status.h"
    00023 #include "xsi_value.h"
    00024
    00025 namespace XSI {
    00026
    00027 class CustomOperator;
    00028 class CString;
    00029
    00030 //*************************************************************************
    00060 //*************************************************************************
    00061 class SICPPSDKDECL Factory : public SIObject
    00062 {
    00063 public:
    00065     Factory();
    00066
    00068     ~Factory();
    00069
    00073     Factory(const CRef& in_ref);
    00074
    00078     Factory(const Factory& in_obj);
    00079
    00084     bool IsA( siClassID in_ClassID) const;
    00085
    00089     siClassID GetClassID() const;
    00090
    00096     Factory& operator=(const Factory& in_obj);
    00097
    00103     Factory& operator=(const CRef& in_ref);
    00104
    00115     CRef CreateObject( const CString& name, CStatus* pst = 0 );
    00116
    00123     CRef CreateObjectFromPreset( const CString& presetname, const CString& family = L"", CStatus* pst = 0 );
    00124
    00134     CRef CreateObjectFromFile( const CString& in_filename, CStatus* out_st = 0 );
    00135
    00145     CRef CreateScriptedOp( const CString& name=L"", const CString& code=L"", const CString& language=L"", CStatus* pst = 0 );
    00146
    00155     CRef CreateScriptedOpFromFile( const CString& name, const CString& filename, const CString& language = L"", CStatus* pst = 0 );
    00156
    00192     CRef CreateParamDef(
    00193         const CString& in_scriptname,
    00194         CValue::DataType in_type,
    00195         siParamClassification in_classification,
    00196         INT in_capabilities,
    00197         const CString& in_name,
    00198         const CString& in_description,
    00199         const CValue& in_default,
    00200         const CValue& in_min,
    00201         const CValue& in_max,
    00202         const CValue& in_suggestedmin,
    00203         const CValue& in_suggestedmax,
    00204         CStatus* pst = 0 );
    00205
    00239     CRef CreateParamDef(
    00240         const CString& in_scriptname,
    00241         CValue::DataType in_type,
    00242         INT in_capabilities,
    00243         const CString& in_name,
    00244         const CString& in_description,
    00245         const CValue& in_default,
    00246         const CValue& in_min,
    00247         const CValue& in_max,
    00248         const CValue& in_suggestedmin,
    00249         const CValue& in_suggestedmax,
    00250         CStatus* pst = 0 );
    00251
    00275     CRef CreateParamDef(
    00276         const CString& in_scriptname,
    00277         CValue::DataType in_type,
    00278         const CValue& in_default,
    00279         const CValue& in_min,
    00280         const CValue& in_max,
    00281         CStatus* pst = 0 );
    00282
    00302     CRef CreateParamDef(
    00303         const CString& in_scriptname,
    00304         CValue::DataType in_type,
    00305         const CValue& in_default,
    00306         CStatus* pst = 0 );
    00307
    00326     CRef CreateFCurveParamDef( const CString& in_scriptname, CStatus* pst = 0) ;
    00327
    00338     CRef CreateGridParamDef( const CString& in_scriptname, CStatus* pst = 0 ) ;
    00339
    00346     CRef CreateTimeTransport( CStatus* pst = 0 );
    00354     CRef CreateICENodeDef( const CString& in_name, const CString& in_description = CString(), CStatus* pst = 0 ) ;
    00355
    00373     CRef CreateShaderDef( const CString& in_parserName, const CString& in_className, ULONG in_major, ULONG in_minor );
    00374
    00380     CStatus RemoveShaderDef( const CRef& in_shaderdef );
    00381
    00382
    00387     CRef CreateShaderParamDefOptions();
    00388
    00389 private:
    00390
    00391     void* m_ptr;
    00392 };
    00393
    00394 };
    00395
    00396 #endif //__XSI_FACTORY_H__