Detailed 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
#include <xsi_dataarray.h>
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:
-
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: