3#include <iolink/IOLinkAPI.h>
4#include <iolink/Vector.h>
88 UINT8 = 0x0000000000010108,
89 UINT16 = 0x0000000000010110,
90 UINT32 = 0x0000000000010120,
91 UINT64 = 0x0000000000010140,
92 INT8 = 0x0000000000020108,
93 INT16 = 0x0000000000020110,
94 INT32 = 0x0000000000020120,
95 INT64 = 0x0000000000020140,
96 FLOAT = 0x0000000000030120,
97 DOUBLE = 0x0000000000030140,
218 bool isNumeric() const;
223 bool isScalar() const;
228 bool isVector() const;
241 uint64_t
id() const noexcept;
246 inline
size_t bitDepth() const noexcept {
return m_bitDepth; }
274 inline size_t bitCount()
const {
return m_bitDepth * m_dimension; }
283 size_t byteCount()
const {
return (m_bitDepth * m_dimension - 1) / 8 + 1; }
290 bool operator==(
DataType other)
const;
291 bool operator!=(
DataType other)
const;
301operator<<(std::ostream& os,
const DataType datatype)
Stores information about a data type.
Definition: DataType.h:162
static DataType extractScalarType(DataType dtype)
Return scalar type in case of multi dimensionnal DataType.
static Vector2d standardRange(DataType dtype)
Return conventional range for given DataType.
PrimitiveTypeId primitiveType() const noexcept
Return the primitive type of the current type.
Definition: DataType.h:262
size_t byteCount() const
Get the number of bits required to store the type.
Definition: DataType.h:283
DataType() noexcept
Default constructor, creating an opaque type.
std::string toString() const
Return a readable version of the DataType.
size_t elementCount() const noexcept
Return the number of sub-values included in this type.
Definition: DataType.h:255
DataTypeInterpretation interpretation() const noexcept
The DataType interpretation.
Definition: DataType.h:269
size_t bitCount() const
Get the number of bits required to store the type.
Definition: DataType.h:274
An arithmetic vector.
Definition: Vector.h:37
All IOLink symbols are enclosed in this namespace.
Definition: ArrayX.h:8
DataTypeId
A collection of built-in data types.
Definition: DataType.h:86
@ SYM_MATRIX3_FLOAT
A single precision floating point 3x3 symmetric Matrix.
@ MATRIX3_FLOAT
A single precision floating point 3x3 Matrix.
@ MATRIX3_DOUBLE
A double precision floating point 3x3 Matrix.
@ UINT32
32 bits unsigned integer
@ VEC4_UINT16
A vector of 4 elements that are 16 bits unsigned integer.
@ MATRIX4_FLOAT
A single precision floating point 4x4 Matrix.
@ VEC4_INT32
A vector of 4 elements that are 32 bits signed integer.
@ SYM_MATRIX2_DOUBLE
A double precision floating point 2x2 symmetric Matrix.
@ VEC4_FLOAT
A vector of 4 elements that are single precision floating point.
@ VEC3_INT32
A vector of 3 elements that are 32 bits signed integer.
@ MATRIX4_DOUBLE
A double precision floating point 4x4 Matrix.
@ UINT16
16 bits unsigned integer
@ INT64
64 bits signed integer
@ MATRIX2_FLOAT
A single precision floating point 2x2 Matrix.
@ INT16
16 bits signed integer
@ VEC3_UINT32
A vector of 3 elements that are 32 bits unsigned integer.
@ INT32
32 bits signed integer
@ SYM_MATRIX2_FLOAT
A single precision floating point 2x2 symmetric Matrix.
@ VEC3_FLOAT
A vector of 3 elements that are single precision floating point.
@ VEC3_UINT64
A vector of 3 elements that are 64 bits unsigned integer.
@ VEC4_UINT8
A vector of 4 elements that are 8 bits unsigned integer.
@ UINT64
64 bits unsigned integer
@ VEC4_INT16
A vector of 4 elements that are 16 bits signed integer.
@ VEC4_DOUBLE
A vector of 4 elements that are double precision floating point.
@ VEC2_INT64
A vector of 2 elements that are 64 bits signed integer.
@ VEC4_INT8
A vector of 4 elements that are 8 bits signed integer.
@ UTF16_STRING
Unicode string encoded in UTF-16.
@ UTF8_STRING
Unicode string encoded in UTF-8.
@ VEC2_UINT64
A vector of 2 elements that are 64 bits unsigned integer.
@ VEC2_UINT32
A vector of 2 elements that are 32 bits unsigned integer.
@ VEC2_INT32
A vector of 2 elements that are 32 bits signed integer.
@ VEC4_INT64
A vector of 4 elements that are 64 bits signed integer.
@ COMPLEX_DOUBLE
A double precision floating point complex number.
@ VEC3_UINT16
A vector of 3 elements that are 16 bits unsigned integer.
@ MATRIX2_DOUBLE
A double precision floating point 2x2 Matrix.
@ UTF32_STRING
Unicode string encoded in UTF-32.
@ VEC2_FLOAT
A vector of 2 elements that are single precision floating point.
@ VEC2_DOUBLE
A vector of 2 elements that are double precision floating point.
@ VEC3_UINT8
A vector of 2 elements that are 8 bits unsigned integer.
@ VEC4_UINT64
A vector of 4 elements that are 64 bits unsigned integer.
@ VEC3_DOUBLE
A vector of 3 elements that are double precision floating point.
@ VEC3_INT16
A vector of 3 elements that are 16 bits signed integer.
@ VEC2_UINT16
A vector of 2 elements that are 16 bits unsigned integer.
@ FLOAT
Single precision floating point.
@ COMPLEX_FLOAT
A single precision floating point complex number.
@ VEC3_INT8
A vector of 3 elements that are 8 bits signed integer.
@ VEC2_UINT8
A vector of 2 elements that are 8 bits unsigned integer.
@ UINT8
8 bits unsigned integer
@ INT8
8 bits signed integer
@ VEC2_INT16
A vector of 2 elements that are 16 bits signed integer.
@ VEC2_INT8
A vector of 2 elements that are 8 bits signed integer.
@ SYM_MATRIX3_DOUBLE
A double precision floating point 3x3 symmetric Matrix.
@ VEC3_INT64
A vector of 3 elements that are 64 bits signed integer.
@ VEC4_UINT32
A vector of 4 elements that are 32 bits unsigned integer.
@ DOUBLE
Double precision floating point.
DataTypeInterpretation
An enumeration to describe how the data should be interpreted.
Definition: DataType.h:41
@ SYMMETRIC_MATRIX
A symmetric matrix.
@ RAW
No particular interpretation, classic vectors and scalars.
@ COMPLEX
A complex number.
@ SQUARE_MATRIX
A square matrix.
PrimitiveTypeId
Enum to describe the primitive family of a data type.
Definition: DataType.h:20
@ UNICODE_STRING
A text string, using the Unicode coding system.
@ UNSIGNED_INTEGER
A classic integer number.
@ FLOATING_POINT
A floating point number, encoded according to IEEE 754.
@ UNKNOWN
An opaque type, that the no one knows about.
@ SIGNED_INTEGER
An integer number, using the two complement for negative numbers.