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
ICENodeDef operator= (const ICENodeDef &in_obj)
ICENodeDef operator= (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_ref constant reference object.
ICENodeDef ( const ICENodeDef in_obj )

Copy constructor.

Parameters:
in_obj constant 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_ClassID class 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_obj constant 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_ref constant 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_nModel Threading 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_strCustomType The 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_strDisplayName The name of the custom type to display in the ICE graph.
in_strDescription A short description of the custom type used for showing in the ICE graph.
in_red Defines the value of red for the UI port connection handle of this custom type.
in_green Defines the value of green for the UI port connection handle of this custom type.
in_blue Defines 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_uniqueGroupId The port group unique identifier.
in_nMin Minimum number of objects required for a connection. Cannot be used for output port groups.
in_nMax Maximum number of objects allowed to be connected. Cannot be used for output port groups.
in_strGroupName Port 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_uniquePortId The port unique identifier.
in_uniqueGroupId The port group unique identifier.
in_nDataType The port data type (see siICENodeDataType).
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_defaultVal The port default value.
in_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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_uniquePortId The port unique identifier.
in_uniqueGroupId The port group unique identifier.
in_nDataType The port data type (see siICENodeDataType).
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_defaultVal The port default value.
in_minVal This 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_maxVal The 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_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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_uniquePortId The port unique identifier.
in_uniqueGroupId The port group unique identifier.
in_strCustomDataTypes Array of custom type global identifier(s) to use.
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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.

Parameters:
in_uniquePortId The port unique identifier.
in_nDataType The port data type (see siICENodeDataType).
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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_uniquePortId The port unique identifier.
in_strCustomDataTypes Array of custom type global identifier(s) to use.
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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_uniquePortId The port unique identifier.
in_uniqueGroupId The port group unique identifier.
in_nDataType The port data type (see siICENodeDataType).
in_nStructType The structure type of the port data (see siICENodeStructureType).
in_nContextType The context type of the port data (see siICENodeContextType).
in_strName The port name.
in_strScriptName The port scripting name.
in_typeMapId The type map id for this port.
in_structMapId The struct map id for this port.
in_contextMapId The 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_red Defines the value of red for the UI color of this ICENode.
in_green Defines the value of green for the UI color of this ICENode.
in_blue Defines 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: