xsi_icenodedef.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 __XSIICENODEDEF_H__
00018 #define __XSIICENODEDEF_H__
00019 
00020 #include <xsi_base.h>
00021 #include <xsi_value.h>
00022 
00023 namespace XSI {
00024 
00025 //*****************************************************************************
00034 //*****************************************************************************
00035 
00036 class SICPPSDKDECL ICENodeDef : public CBase
00037 {
00038 public:
00039 
00041     ICENodeDef();
00042 
00044     ~ICENodeDef();
00045 
00049     ICENodeDef(const CRef& in_ref);
00050 
00054     ICENodeDef(const ICENodeDef& in_obj);
00055 
00060     bool IsA( siClassID in_ClassID) const;
00061 
00065     siClassID GetClassID() const;
00066 
00071     ICENodeDef& operator=(const ICENodeDef& in_obj);
00072 
00078     ICENodeDef& operator=(const CRef& in_ref);
00079 
00091     CStatus PutThreadingModel( siICENodeThreadingModel in_nModel );
00092 
00097     siICENodeThreadingModel GetThreadingModel( ) const;
00098 
00115     CStatus DefineCustomType(   const CString&  in_strCustomType,
00116                                 const CString&  in_strDisplayName,
00117                                 const CString&  in_strDescription,
00118                                 unsigned char   in_red,
00119                                 unsigned char   in_green,
00120                                 unsigned char   in_blue );
00121 
00134     CStatus AddPortGroup(   ULONG in_uniqueGroupId,
00135                             ULONG in_nMin=1,
00136                             ULONG in_nMax=1,
00137                             const CString in_strGroupName=CString() );
00138 
00156     CStatus AddInputPort(   ULONG in_uniquePortId,
00157                             ULONG in_uniqueGroupId,
00158                             ULONG in_nDataType,
00159                             ULONG in_nStructType,
00160                             ULONG in_nContextType,
00161                             const CString& in_strName,
00162                             const CString& in_strScriptName,
00163                             const CValue& in_defaultVal = CValue(),
00164                             ULONG in_typeMapId = UINT_MAX,
00165                             ULONG in_structMapId = UINT_MAX,
00166                             ULONG in_contextMapId = UINT_MAX );
00167 
00189     CStatus AddInputPort(   ULONG in_uniquePortId,
00190                             ULONG in_uniqueGroupId,
00191                             ULONG in_nDataType,
00192                             ULONG in_nStructType,
00193                             ULONG in_nContextType,
00194                             const CString& in_strName,
00195                             const CString& in_strScriptName,
00196                             const CValue& in_defaultVal,
00197                             const CValue& in_minVal,
00198                             const CValue& in_maxVal,
00199                             ULONG in_typeMapId,
00200                             ULONG in_structMapId,
00201                             ULONG in_contextMapId );
00202 
00217     CStatus AddInputPort(   ULONG               in_uniquePortId,
00218                             ULONG               in_uniqueGroupId,
00219                             const CStringArray& in_strCustomDataTypes,
00220                             ULONG               in_nStructType,
00221                             ULONG               in_nContextType,
00222                             const CString&      in_strName,
00223                             const CString&      in_strScriptName,
00224                             ULONG               in_typeMapId,
00225                             ULONG               in_structMapId,
00226                             ULONG               in_contextMapId );
00227 
00242     CStatus AddOutputPort(  ULONG in_uniquePortId,
00243                             ULONG in_nDataType,
00244                             ULONG in_nStructType,
00245                             ULONG in_nContextType,
00246                             const CString& in_strName,
00247                             const CString& in_strScriptName,
00248                             ULONG in_typeMapId = UINT_MAX,
00249                             ULONG in_structMapId = UINT_MAX,
00250                             ULONG in_contextMapId = UINT_MAX );
00251 
00265     CStatus AddOutputPort(  ULONG               in_uniquePortId,
00266                             const CStringArray& in_strCustomDataTypes,
00267                             ULONG               in_nStructType,
00268                             ULONG               in_nContextType,
00269                             const CString&      in_strName,
00270                             const CString&      in_strScriptName,
00271                             ULONG               in_typeMapId = UINT_MAX,
00272                             ULONG               in_structMapId = UINT_MAX,
00273                             ULONG               in_contextMapId = UINT_MAX );
00274 
00290     CStatus AddOutputPort(  ULONG in_uniquePortId,
00291                             ULONG in_uniqueGroupId,
00292                             ULONG in_nDataType,
00293                             ULONG in_nStructType,
00294                             ULONG in_nContextType,
00295                             const CString& in_strName,
00296                             const CString& in_strScriptName,
00297                             ULONG in_typeMapId = UINT_MAX,
00298                             ULONG in_structMapId = UINT_MAX,
00299                             ULONG in_contextMapId = UINT_MAX );
00300 
00310     CStatus PutColor( unsigned char in_red, unsigned char in_green, unsigned char in_blue );
00311 
00312     private:
00313     ICENodeDef * operator&() const;
00314     ICENodeDef * operator&();
00315 };
00316 
00317 };
00318 #endif // __XSIICENODEDEF_H__