Public Member Functions
ICENodeDef Class Reference

Detailed Description

ICENodeDef objects are used for describing a unique custom ICENode object. Instances of this object are used to register custom ICENode objects with PluginRegistrar::RegisterICENode.

See also:
ICENode, PluginRegistrar::RegisterICENode, cb_icenodes ICENode Callbacks
Since:
7.0

#include <xsi_icenodedef.h>

Inheritance diagram for ICENodeDef:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 ICENodeDef ()
 ~ICENodeDef ()
 ICENodeDef (const CRef &in_ref)
 ICENodeDef (const ICENodeDef &in_obj)
bool IsA (siClassID in_ClassID) const
siClassID GetClassID () const
ICENodeDefoperator= (const ICENodeDef &in_obj)
ICENodeDefoperator= (const CRef &in_ref)
CStatus PutThreadingModel (siICENodeThreadingModel in_nModel)
siICENodeThreadingModel GetThreadingModel () const
CStatus DefineCustomType (const CString &in_strCustomType, const CString &in_strDisplayName, const CString &in_strDescription, unsigned char in_red, unsigned char in_green, unsigned char in_blue)
CStatus AddPortGroup (ULONG in_uniqueGroupId, ULONG in_nMin=1, ULONG in_nMax=1, const CString in_strGroupName=CString())
CStatus AddInputPort (ULONG in_uniquePortId, ULONG in_uniqueGroupId, ULONG in_nDataType, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, const CValue &in_defaultVal=CValue(), ULONG in_typeMapId=UINT_MAX, ULONG in_structMapId=UINT_MAX, ULONG in_contextMapId=UINT_MAX)
CStatus AddInputPort (ULONG in_uniquePortId, ULONG in_uniqueGroupId, ULONG in_nDataType, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, const CValue &in_defaultVal, const CValue &in_minVal, const CValue &in_maxVal, ULONG in_typeMapId, ULONG in_structMapId, ULONG in_contextMapId)
CStatus AddInputPort (ULONG in_uniquePortId, ULONG in_uniqueGroupId, const CStringArray &in_strCustomDataTypes, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, ULONG in_typeMapId, ULONG in_structMapId, ULONG in_contextMapId)
CStatus AddOutputPort (ULONG in_uniquePortId, ULONG in_nDataType, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, ULONG in_typeMapId=UINT_MAX, ULONG in_structMapId=UINT_MAX, ULONG in_contextMapId=UINT_MAX)
CStatus AddOutputPort (ULONG in_uniquePortId, const CStringArray &in_strCustomDataTypes, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, ULONG in_typeMapId=UINT_MAX, ULONG in_structMapId=UINT_MAX, ULONG in_contextMapId=UINT_MAX)
CStatus AddOutputPort (ULONG in_uniquePortId, ULONG in_uniqueGroupId, ULONG in_nDataType, ULONG in_nStructType, ULONG in_nContextType, const CString &in_strName, const CString &in_strScriptName, ULONG in_typeMapId=UINT_MAX, ULONG in_structMapId=UINT_MAX, ULONG in_contextMapId=UINT_MAX)
CStatus PutColor (unsigned char in_red, unsigned char in_green, unsigned char in_blue)

Constructor & Destructor Documentation

Default constructor.

~ICENodeDef ( )

Default destructor.

ICENodeDef ( const CRef in_ref)

Constructor.

Parameters:
in_refconstant reference object.
ICENodeDef ( const ICENodeDef in_obj)

Copy constructor.

Parameters:
in_objconstant class object.

Member Function Documentation

bool IsA ( siClassID  in_ClassID) const [virtual]

Returns true if a given class type is compatible with this API class.

Parameters:
in_ClassIDclass type.
Returns:
true if the class is compatible, false otherwise.

Reimplemented from CBase.

siClassID GetClassID ( ) const [virtual]

Returns the type of the API class.

Returns:
The class type.

Implements CBase.

ICENodeDef& operator= ( const ICENodeDef in_obj)

Creates an object from another object.

Parameters:
in_objconstant class object.
Returns:
The new ICENodeDef object.
ICENodeDef& operator= ( const CRef in_ref)

Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.

Parameters:
in_refconstant class object.
Returns:
The new ICENodeDef object.
CStatus PutThreadingModel ( siICENodeThreadingModel  in_nModel)

Sets this ICENode threading model, possible values are: single-thread, multi-thread and multi-phase. By default, ICENode objects are evaluated in a multi-threading process where the data is processed by the custom node in several passes. Single thread processing on the other hand performs data processing in one single pass which allows the node to get all the input data in one single chunk. The multi-phase model allows for a more flexible processing model where specific ports can be pulled and other ignored during the evaluation phases.

Parameters:
in_nModelThreading model value.
Returns:
CStatus::OK Success.
CStatus::Fail Operation failed.
See also:
ICENodeDef::GetThreadingModel
siICENodeThreadingModel GetThreadingModel ( ) const

Returns the threading model for this ICENode.

Returns:
ICENode threading model.
See also:
ICENodeDef::PutThreadingModel
CStatus DefineCustomType ( const CString in_strCustomType,
const CString in_strDisplayName,
const CString in_strDescription,
unsigned char  in_red,
unsigned char  in_green,
unsigned char  in_blue 
)

Defines a custom data type to be used as a data type when defining a custom node port. Custom types are typically used in ICE for propagating user-defined (binary) data through the graph as a regular data type. A custom type is identified with a global identifier (string name), a fundamental data type (siICENodeDataCustomType) and a port connection handle color.

Parameters:
in_strCustomTypeThe custom type global string identifier. Softimage doesn't enforce any string format for defining the identifier, but it is recommended to use names that somewhat describe what the data type refers to. Naming your custom type appropriately is important because it is used throughout the system as a unique identifier to your type.
in_strDisplayNameThe name of the custom type to display in the ICE graph.
in_strDescriptionA short description of the custom type used for showing in the ICE graph.
in_redDefines the value of red for the UI port connection handle of this custom type.
in_greenDefines the value of green for the UI port connection handle of this custom type.
in_blueDefines the value of blue for the UI port connection handle of this custom type.
Returns:
CStatus::OK success.
CStatus::Fail Type couldn't be registered.
Since:
8.0 (2010)
CStatus AddPortGroup ( ULONG  in_uniqueGroupId,
ULONG  in_nMin = 1,
ULONG  in_nMax = 1,
const CString  in_strGroupName = CString() 
)

Adds a port group to this ICENode definition. Port groups must be defined with a unique identifier.

Note:
AddPortGroup is restricted to input port groups only. You can still use this API to define output port groups but you have to make sure the maximum number of connections (in_nMax) is set to UINT_MAX. If in_nMAx is not set properly, multiple output port connections will not be allowed.
Parameters:
in_uniqueGroupIdThe port group unique identifier.
in_nMinMinimum number of objects required for a connection. Cannot be used for output port groups.
in_nMaxMaximum number of objects allowed to be connected. Cannot be used for output port groups.
in_strGroupNamePort group name.
Returns:
The returned status code (CStatus::OK for success).
CStatus AddInputPort ( ULONG  in_uniquePortId,
ULONG  in_uniqueGroupId,
ULONG  in_nDataType,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
const CValue in_defaultVal = CValue(),
ULONG  in_typeMapId = UINT_MAX,
ULONG  in_structMapId = UINT_MAX,
ULONG  in_contextMapId = UINT_MAX 
)

Adds an input port to this ICENode definition using a unique identifier. This API can be used for port types other than siICENodeDataCustomType. The minimum and maximum UI range values for the new port is set to 1..10 by default (applicable to port types other than siICENodeDataCustomType, siICENodeDataGeometry and ::siICENodeDataShape).

Parameters:
in_uniquePortIdThe port unique identifier.
in_uniqueGroupIdThe port group unique identifier.
in_nDataTypeThe port data type (see siICENodeDataType).
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_defaultValThe port default value.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
CStatus AddInputPort ( ULONG  in_uniquePortId,
ULONG  in_uniqueGroupId,
ULONG  in_nDataType,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
const CValue in_defaultVal,
const CValue in_minVal,
const CValue in_maxVal,
ULONG  in_typeMapId,
ULONG  in_structMapId,
ULONG  in_contextMapId 
)

Adds an input port to this ICENode definition using a unique identifier. This method is used for port types other than siICENodeDataCustomType and allows the minimum and maximum UI range values to be specified (applicable to port types other than siICENodeDataCustomType, siICENodeDataGeometry and ::siICENodeDataShape).

Parameters:
in_uniquePortIdThe port unique identifier.
in_uniqueGroupIdThe port group unique identifier.
in_nDataTypeThe port data type (see siICENodeDataType).
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_defaultValThe port default value.
in_minValThis port minimum value for configuring the range of the UI control. The minimum value defaults to 1 if in_minVal is not specified (i.e. empty).
in_maxValThe port maximum value for configuring the range of the UI control. If in_maxVal is not specified (i.e. empty), the maximum value defaults to 10 or twice the default value if it exceeds 10.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
CStatus AddInputPort ( ULONG  in_uniquePortId,
ULONG  in_uniqueGroupId,
const CStringArray in_strCustomDataTypes,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
ULONG  in_typeMapId,
ULONG  in_structMapId,
ULONG  in_contextMapId 
)

Adds an input port of type siICENodeDataCustomType to this ICENode definition.

Parameters:
in_uniquePortIdThe port unique identifier.
in_uniqueGroupIdThe port group unique identifier.
in_strCustomDataTypesArray of custom type global identifier(s) to use.
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
Since:
8.0 (2010)
CStatus AddOutputPort ( ULONG  in_uniquePortId,
ULONG  in_nDataType,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
ULONG  in_typeMapId = UINT_MAX,
ULONG  in_structMapId = UINT_MAX,
ULONG  in_contextMapId = UINT_MAX 
)

Adds an output port to this ICENode definition. Note that siICENodeDataGeometry is not a supported output port type. If an output port shares the same type map constraint as an input port, set both port types to siICENodeOutputDataAny. Otherwise the type map will not be successful.

Parameters:
in_uniquePortIdThe port unique identifier.
in_nDataTypeThe port data type (see siICENodeDataType).
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
CStatus AddOutputPort ( ULONG  in_uniquePortId,
const CStringArray in_strCustomDataTypes,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
ULONG  in_typeMapId = UINT_MAX,
ULONG  in_structMapId = UINT_MAX,
ULONG  in_contextMapId = UINT_MAX 
)

Adds an output port of type siICENodeDataCustomType to this ICENode definition.

Parameters:
in_uniquePortIdThe port unique identifier.
in_strCustomDataTypesArray of custom type global identifier(s) to use.
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
Since:
8.0 (2010)
CStatus AddOutputPort ( ULONG  in_uniquePortId,
ULONG  in_uniqueGroupId,
ULONG  in_nDataType,
ULONG  in_nStructType,
ULONG  in_nContextType,
const CString in_strName,
const CString in_strScriptName,
ULONG  in_typeMapId = UINT_MAX,
ULONG  in_structMapId = UINT_MAX,
ULONG  in_contextMapId = UINT_MAX 
)
Deprecated:
8.0 (2010). This API doesn't support multiple connections and should not be used, use the other API signature instead which takes no group identifier and supports multiple connections.
Parameters:
in_uniquePortIdThe port unique identifier.
in_uniqueGroupIdThe port group unique identifier.
in_nDataTypeThe port data type (see siICENodeDataType).
in_nStructTypeThe structure type of the port data (see siICENodeStructureType).
in_nContextTypeThe context type of the port data (see siICENodeContextType).
in_strNameThe port name.
in_strScriptNameThe port scripting name.
in_typeMapIdThe type map id for this port.
in_structMapIdThe struct map id for this port.
in_contextMapIdThe context map id for this port.
Returns:
The returned status code (CStatus::OK for success).
CStatus PutColor ( unsigned char  in_red,
unsigned char  in_green,
unsigned char  in_blue 
)

Sets the UI color of the ICENode that is being defined by this ICENodeDef object.

Parameters:
in_redDefines the value of red for the UI color of this ICENode.
in_greenDefines the value of green for the UI color of this ICENode.
in_blueDefines the value of blue for the UI color of this ICENode.
Returns:
CStatus::OK success.
CStatus::Fail failure.
Since:
8.0 (2010)

The documentation for this class was generated from the following file: