#include <xsi_dataarray2D.h>
Public Types |
|
| typedef T | TData |
| TData is the underlying data type of a CDataArray2D instance. Possible values are:. |
|
Public Member Functions |
|
| SICPPSDK_INLINE | CDataArray2D (ICENodeContext &in_ctxt, ULONG in_nInputPortID, ULONG in_nInstanceIndex=0) |
| SICPPSDK_INLINE | CDataArray2D (ICENodeContext &in_ctxt) |
| SICPPSDK_INLINE | CDataArray2D () |
| SICPPSDK_INLINE | ~CDataArray2D () |
| SICPPSDK_INLINE CStatus | CopyFrom (ULONG in_nInputPortID, ULONG in_nInstanceIndex=0) |
| SICPPSDK_INLINE Accessor | operator[] (ULONG in_nArrayIndex) const |
| SICPPSDK_INLINE Accessor | Resize (ULONG in_nArrayIndex, ULONG in_nSize) |
| SICPPSDK_INLINE ULONG | GetCount () const |
| SICPPSDK_INLINE bool | IsConstant () const |
Classes |
|
| class | Accessor |
| A class for accessing the sub-array data of CDataArray2D objects. More... |
|
using namespace XSI; XSIPLUGINCALLBACK CStatus Custom2DArray_Evaluate( ICENodeContext& in_ctxt ) { // The current output port being evaluated... ULONG out_portID = in_ctxt.GetEvaluatedOutputPortID( ); switch( out_portID ) { case ID_OutPort: { // Here's how we access the input data buffers for each port CDataArray2DVector3f InPortData( in_ctxt, ID_InPort ); // Declare the output port array ... CDataArray2DVector3f outData( in_ctxt ); // We need a CIndexSet to iterate over the data CIndexSet indexSet( in_ctxt ); for(CIndexSet::Iterator it = indexSet.Begin(); it.HasNext(); it.Next()) { // Creates an Accessor object to iterate over the 2D array data CDataArray2DVector3f::Accessor floatArray = InPortData[it]; // Output arrays must always be initialized first CDataArray2DVector3f::Accessor outAccessor = outData.Resize( it, floatArray.GetCount( ) ); for (ULONG i=0; i<floatArray.GetCount( ); i++) { outAccessor[i].Scale( floatArray[i].GetX(), floatArray[i] ); } } } break; }; return CStatus::OK; }
| T TData |
TData is the underlying data type of a CDataArray2D instance. Possible values are:.
| SICPPSDK_INLINE CDataArray2D | ( | ICENodeContext & | in_ctxt, | |
| ULONG | in_nInputPortID, | |||
| ULONG | in_nInstanceIndex = 0 |
|||
| ) |
Constructor for data types bound to input ports.
| in_ctxt | ICENode evaluation context. | |
| in_nInputPortID | Input port identifier. | |
| in_nInstanceIndex | The group instance of the port. |
| SICPPSDK_INLINE CDataArray2D | ( | ICENodeContext & | in_ctxt | ) |
Constructor for data types bound to output ports.
| in_ctxt | ICENode evaluation context. |
| SICPPSDK_INLINE CDataArray2D | ( | ) |
Default constructor.
| SICPPSDK_INLINE ~CDataArray2D | ( | ) |
Destructor.
| 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.
| in_nInputPortID | Input port identifier. | |
| in_nInstanceIndex | The group instance of the port. |
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.
// Copy data from the ID_IN_2DPoints port to the current output port XSI::CDataArray2DVector3f outData( in_ctxt ); outData.CopyFrom( ID_IN_2DPoints );
| SICPPSDK_INLINE CDataArray2D< T >::Accessor operator[] | ( | ULONG | in_nArrayIndex | ) | const |
Returns an accessor at a given index. This operator is called when reading the data so the return value is read-only.
| in_nArrayIndex | Index in the array. The index must be smaller than the number of elements in the array, otherwise the results are unpredicted. |
| SICPPSDK_INLINE CDataArray2D< T >::Accessor Resize | ( | ULONG | in_nArrayIndex, | |
| ULONG | in_nSize | |||
| ) |
Changes the size of the sub-array at a given position and returns an accessor pointing to the resized sub-array.
| in_nArrayIndex | Index in the array. The index must be smaller than the number of elements in the array, otherwise the results are unpredicted. | |
| in_nSize | The new size. |
| SICPPSDK_INLINE ULONG GetCount | ( | ) | const |
Returns the number of elements in the array.
| SICPPSDK_INLINE bool IsConstant | ( | ) | const |
Returns true if the array is constant or false otherwise. A constant array has only one value.