Detailed Description
ICENodeContext is used for accessing/handling custom node graph
data. Instances of this object can pass information to the C++ API
callbacks that implement the custom node plug-in item.
- See also:
- ICENode,
PluginRegistrar::RegisterICENode, cb_icenodes ICENode
Callbacks
- Since:
- 7.0
#include <xsi_icenodecontext.h>
List of all
members.
Constructor & Destructor Documentation
Constructor.
- Parameters:
-
in_ref |
constant reference object. |
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:
-
- Returns:
- true if the class is compatible, false otherwise.
Reimplemented from Context.
Returns the type of the API class.
- Returns:
- The class type.
Reimplemented from Context.
Creates an object from another object.
- Parameters:
-
in_obj |
constant class object. |
- Returns:
- The new
ICENodeContext object.
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
ICENodeContext object.
Reimplemented from Context.
CStatus GetGroupInstanceCount |
( |
ULONG |
in_grpUniqID, |
|
|
ULONG & |
out_inst_count |
|
) |
|
const |
Returns the number of instances for a given group.
- Parameters:
-
in_grpUniqID |
Group index to query |
- Return values:
-
out_inst_count |
Number of instances |
- Returns:
-
CStatus::OK success
ULONG GetEvaluationThreadCount |
( |
|
) |
const |
Returns the number of threads used during the
cb_ICENode_Evaluate Evaluate callback.
- Returns:
- Thread count.
ULONG GetCurrentThreadIndex |
( |
|
) |
const |
Returns the current evaluation thread index. If called from
cb_ICENode_Evaluate Evaluate , the index ranges between 0 and
GetEvaluationThreadCount()-1. Returns 0 if called from either
the cb_ICENode_BeginEvaluate BeginEvaluate or
cb_ICENode_EndEvaluate EndEvaluate callback.
- Returns:
- ULONG Thread index.
ULONG GetNumberOfElementsToProcess |
( |
|
) |
const |
CStatus
PutNumberOfElementsToProcess |
( |
ULONG |
in_nElements |
) |
|
Returns the resolved port types for the specified
ICENodePort.
- Parameters:
-
in_nPortID |
Index of the port to query |
- Return values:
-
- Returns:
-
CStatus::OK success
Returns the resolved port types for the specified
ICENodePort. The method also returns the resolved custom data
type identifier if the port type is set with
siICENodeDataCustomType, otherwise the string returned is
empty.
- Parameters:
-
in_nPortID |
Index of the port to query |
- Return values:
-
- Returns:
-
CStatus::OK success
ULONG GetEvaluatedOutputPortID |
( |
|
) |
const |
Returns the unique identifier of the output port being
evaluated.
- Returns:
-
CStatus::OK success
Returns the evaluation time. For a custom ICENode,
the evaluation time is not necessarily the same as the current
scene time or that it is evaluated just once per frame.
- Returns:
- CTime
Evaluation time
ULONG GetEvaluationPhaseIndex |
( |
|
) |
const |
Sets the current evaluation phase as the last phase to process.
This tells Softimage to pull the input port(s) data for the final
processing phase. This method is enabled only when the node
threading model is set to
siICENodeMultiEvaluationPhase.
- Returns:
-
CStatus::OK Operation succeeded.
- See also:
-
ICENodeContext::GetEvaluationPhaseIndex,
ICENodeContext::AddEvaluationPhaseInputPorts
- Since:
- 8.0 (2010)
Adds an input port to evaluate for the current evaluation phase.
This method must be used in the context of a custom node with
multi-evaluation processing and from the
cb_ICENode_SubmitEvaluationPhaseInfo SubmitEvaluationPhaseInfo
callback. The method is enabled only when the node threading model
is set to
siICENodeMultiEvaluationPhase.
AddEvaluationPhaseInputPort takes a port identifier, as
specified with ICENodeDef::AddInputPort,
and an optional array of port instance numbers. By default, all
port instances are evaluated, but you can specify the port instance
number(s) corrsponding to which port(s) you want to be evaluated in
the in_portInstances
array. You can call
AddEvaluationPhaseInputPort multiple times to specify multiple
ports to evaluate. Ports are evaluated in the same order in which
they are specified.
Here are some important rules to follow when specifying the
input ports to pull:
- Except for singleton contexts, ports with similar context types
should be prepared together in the same phase for better
performance.
- Unless input port contexts are specified as singletons, ports
specified during the last phase must match the context of the
output port(s).
- Parameters:
-
in_portid |
A unique identifier describing the input port. |
in_portInstances |
A CLongArray
containing the instance(s) of the port(s) to evaluate. |
- Returns:
-
CStatus::OK Operation succeeded.
-
CStatus::InvalidArgument Input port or instances are
invalid.
- See also:
-
ICENodeContext::GetEvaluationPhaseIndex,
ICENodeContext::SetLastEvaluationPhase, ICENodeDef::AddInputPort
- Since:
- 8.0 (2010)
CStatus SetAsElementDataVarying |
( |
|
) |
|
In ICE, the data flowing in an
ICETree is constant by default. For instance, the
element data of a particle cloud do not vary at each evaluation
when it's constant. In this case, the data array of an input port
will always be set with one single value. SetAsElementDataVarying
can be used to force the element data to vary independently of the
input data state.
A typical use of SetAsElementDataVarying is when a custom node
needs to output data randomly regardless of the input data state.
The CustomICENodes/netview_CustomICENodes GridWalker example uses
constants for all inputs and calling SetAsElementDataVarying will
allow the GridWalker
node to set the data for all
particle elements.
- Note:
- Calling this method could lead to performance issues when it is
not strictly required.
- Returns:
-
CStatus::OK Operation succeeded.
- Since:
- 8.0 (2010)
Forces the node to evaluate frame by frame regardless of the
overall graph state. You can use this function instead of
connecting the CurrentFrameNode as input to the custom node.
- Returns:
-
CStatus::OK Operation succeeded.
- Since:
- 8.0 (2010)
The documentation for this class was generated from the following
file: