This reference page is linked to from the following overview
topics: Port
Data Access.
 
#include <xsi_dataarray.h>
Class Description
template<class T>
class XSI::CDataArray< T >
This template class encapsulates the 1D data arrays passed to
custom node plug-ins during a graph evaluation. The underlying data
arrays are zero-based, the following types are available:
CDataArray objects are created based on the current evaluation
context and a specific port type (input ports only). Data are
usually indexed with a 
CIndexSet which contains the array index set for the whole
evaluation graph.
- Note:
- If the class type doesn't match the port data type being
evaluated, an error occurs at run-time and a class instance is
created with an empty array.
- Example:
- Since:
- 7.0
- See also:
- 
CDataArray2D, 
CIndexSet, 
ICENodeDef, Type
Definitions for CDataArray
 
Inherits CBaseDataArray.
List of all
members.
Member Typedef Documentation
TData is the underlying data type of a 
CDataArray instance. Possible values are:
 
 
Constructor & Destructor Documentation
Constructor for data types bound to input ports.
- Parameters:
- 
| in_ctxt | ICENode
evaluation context. |  
| in_nInputPortID | Input port identifier. |  
| in_nInstanceIndex | The group instance of the port. |  
 
 
 
Constructor for data types bound to output ports.
- Parameters:
- 
| in_ctxt | ICENode
evaluation context. |  
 
 
 
Member Function Documentation
| SICPPSDK_INLINE const T & operator[] | ( | ULONG | in_nIndex | ) | const | 
 
Accessor to the encapsulated array. This operator is called when
reading the data so the return value is read-only.
- Parameters:
- 
| in_nIndex | Index in the array. The index must be smaller than the number
of elements in the array, otherwise the results are
unpredicted. |  
 
- Returns:
- A read-only reference to the indexed item.
 
 
| SICPPSDK_INLINE T & operator[] | ( | ULONG | in_nIndex | ) |  | 
 
Accessor to elements at a given index.
- Parameters:
- 
| in_nIndex | Index in this zero based array. The index must be smaller than
the number of elements in the array, otherwise the results are
unpredicted. |  
 
- Returns:
- A reference to the indexed item.
- Note:
- 
CDataArray< bool >::operator [] cannot be used for
setting an array element, you must use 
CDataArray< bool >::Set instead.
 
 
| SICPPSDK_INLINE CStatus CopyFrom | ( | ULONG | in_nInputPortID, | 
|  |  | ULONG | in_nInstanceIndex = 0 | 
|  | ) |  |  | 
 
Copy the data from a given input port to this object buffer
without allocating memory. This is typically used for passing data
by reference from input to output ports, similar to what the
built-in 'pass through' node is doing.
- Parameters:
- 
| in_nInputPortID | Input port identifier. |  
| in_nInstanceIndex | The group instance of the port. |  
 
- Returns:
- 
CStatus::OK Success
- 
CStatus::InvalidArgument Fails if in_nInputPortID is not an
input port identifier or in_nInstanceIndex is invalid.
- 
CStatus::AccessDenied This array is not an output type or
wasn't created properly.
- Example:
 
 
| SICPPSDK_INLINE ULONG GetCount | ( | void |  | ) | const | 
 
Returns the number of elements in the array.
- Returns:
- Number of elements.
 
 
| SICPPSDK_INLINE bool IsConstant | ( |  | ) | const | 
 
Returns true if the array is constant or false otherwise. A
constant array has only one value.
- Returns:
- True if constant, false otherwise.
 
 
The documentation for this class was generated from the following
file: