C4 Engine
C4 Engine API Documentation

class DataStructure

Defined in:  TSOpenDDL.h
The DataStructure class template represents each of the specific built-in primitive data structure in an OpenDDL file.
Definition

template <class type> class DataStructure final : public PrimitiveStructure

Member Functions
DataStructure::GetDataElementCount Returns the total number of data elements stored in a data structure.
DataStructure::GetDataElement Returns a single data element stored in a data structure.
DataStructure::GetArrayDataElement Returns a pointer to a subarray stored in a data structure.
DataStructure::GetArrayStateElement Returns the state associated with a single subarray in a data structure.
Template Parameters
type An object type representing the specific type of data contained in the structure.
Constructor

DataStructure();

Description
A specialization of the DataStructure class template represents each of the built-in primitive data structures in an Open Data Description Language (OpenDDL) file. The type template parameter can only be one of the following types.
BoolDataType A boolean type that can have the value true or false.
Int8DataType An 8-bit signed integer that can have values in the range [−27, 27 &mins; 1].
Int16DataType A 16-bit signed integer that can have values in the range [−215, 215 &mins; 1].
Int32DataType A 32-bit signed integer that can have values in the range [−231, 231 &mins; 1].
Int64DataType A 64-bit signed integer that can have values in the range [−263, 263 &mins; 1].
UInt8DataType An 8-bit unsigned integer that can have values in the range [0, 28 - 1].
UInt16DataType A 16-bit unsigned integer that can have values in the range [0, 216 - 1].
UInt32DataType A 32-bit unsigned integer that can have values in the range [0, 232 - 1].
UInt64DataType A 64-bit unsigned integer that can have values in the range [0, 264 - 1].
HalfDataType A 16-bit floating-point type conforming to the standard S1E5M10 format.
FloatDataType A 32-bit floating-point type conforming to the standard S1E8M23 format.
DoubleDataType A 64-bit floating-point type conforming to the standard S1E11M52 format.
StringDataType A double-quoted character string with contents encoded in UTF-8.
RefDataType A sequence of structure names, or the keyword null.
TypeDataType A type whose values are identifiers naming types in the first column of this table.
Base64Type A raw binary data type with contents encoded as base64.
The raw data belonging to a data structure is stored as a linear array in memory, regardless of whether subarrays are specified. The total number of data elements present can be retrieved with the DataStructure::GetDataElementCount function, and the data for each element can be retrieved with the DataStructure::GetDataElement function. If subarrays are in use, then the elements belonging to each subarray are stored contiguously, and each subarray is then stored contiguously with the one preceding it. The DataStructure::GetArrayDataElement function can be used to retrieve a pointer to the beginning of a specific subarray.
Base Classes
PrimitiveStructure Each data structure specialization is a specific type of PrimitiveStructure object.