|
AAO DRAMA/DRAMA2 C++ Interface
DRAMA C++11 and later interface
|
|
inline |
Create a new child of primitive items and access that array, multi-dimensional.
Accesses an array using an ArrayWriteHelper of the appropriate type.
This provides an easy way to create and access an array of primitive values.
This version creates a multi-dimensional array with up to 7 dimensions.
On return, "data[index]" can be used to access the array element at the specified index. See the SdsArrayAccessHelper class for more information. Note that Multidimensional arrays must be indexed by calculating the equivalent single dimensional index (otherwise the type definitions are too hard).
In this example, we instantiate value to provide access to a 2 dimensional array of float items/
sds::Id structure; ... sds::ArrayWriteHelper<float> values; std::vector<unsigned long> dims(2); dims[0] = 10; dims[1] = 5; id = structure.ArrayCreateAndAccess("itemName", dims, &values); unsigned long count = values.Size(); for (unsigned long i = 0; i < count ; ++i) values[i] = 10 + i;
| name | The name of the new SDS item. |
| dims | The dimensions are written to this array. This container will be cleared and then push_back() applied up to 7 times. |
| data | A pointer to an object which allows you to access the underlying SDS data. It must be an Instantiation of a the class ArrayWriteHelper appropriate for type T. |
| extra | The extra data, if any. Defaults to none. |
| T | The array access helper to use. |
| ContainerType | A container with clear() and push_back() methods. The push_back() method must accept unsigned long items. |
References drama::sds::ArrayAccessHelper< T >::Code(), CreateChildArray(), and drama::CreateRunDramaTask().