# ICENodeDef Class Reference

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. More...

`#include <xsi_icenodedef.h>`

Inheritance diagram for ICENodeDef:

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 | AddPortGroup (ULONG in_uniqueGroupId, ULONG in_nMin=1, ULONG in_nMax=1, const CString in_strPrompt=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=ULONG_MAX, ULONG in_structMapId=ULONG_MAX, ULONG in_contextMapId=ULONG_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=ULONG_MAX, ULONG in_structMapId=ULONG_MAX, ULONG in_contextMapId=ULONG_MAX)

## 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, ICENode Callbacks

Since:
  7.0

## Constructor & Destructor Documentation

ICENodeDef | ( |  | ) |

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 as single or multi threading. By default ICENode objects are evaluated in a multi-threading process where the evaluation is performed in several passes. Single thread processing on the other hand performs an evaluation in one single pass which allows the node to get all the input data in one single chunk.

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 AddPortGroup | ( | ULONG | in_uniqueGroupId,
|  | ULONG | in_nMin = `1`,
|  | ULONG | in_nMax = `1`,
|  | const CString | in_strPrompt = `CString()` |
| ) |  |  |

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

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_strPrompt | Prompt to display during picking session.

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 = `ULONG_MAX`,
|  | ULONG | in_structMapId = `ULONG_MAX`,
|  | ULONG | in_contextMapId = `ULONG_MAX` |
| ) |  |  |

Adds an input port to this ICENode definition. Ports must be defined with a unique identifier.

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 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 = `ULONG_MAX`,
|  | ULONG | in_structMapId = `ULONG_MAX`,
|  | ULONG | in_contextMapId = `ULONG_MAX` |
| ) |  |  |

Adds an output port to this ICENode definition. Ports must be defined with a unique identifier.

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).

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

- xsi_icenodedef.h