|
IOLink
IOL_v1.6.1_release
|
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,
195 explicit DataType(uint64_t value) noexcept;
218 bool isNumeric()
const;
223 bool isScalar()
const;
228 bool isVector()
const;
235 bool isConvertibleTo(
DataType other)
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; }
288 std::string toString()
const;
290 bool operator==(
DataType other)
const;
291 bool operator!=(
DataType other)
const;
301 operator<<(std::ostream& os,
const DataType datatype)
303 os << datatype.toString().c_str();
@ VEC2_FLOAT
A vector of 2 elements that are single precision floating point.
@ VEC2_UINT32
A vector of 2 elements that are 32 bits unsigned integer.
@ SYM_MATRIX3_FLOAT
A single precision floating point 3x3 symmetric Matrix.
@ VEC3_UINT64
A vector of 3 elements that are 64 bits unsigned integer.
@ VEC4_FLOAT
A vector of 4 elements that are single precision floating point.
Stores information about a data type.
Definition: DataType.h:161
@ VEC2_INT16
A vector of 2 elements that are 16 bits signed integer.
size_t bitDepth() const noexcept
Return the bit depth of this type.
Definition: DataType.h:246
@ VEC2_DOUBLE
A vector of 2 elements that are double precision floating point.
@ MATRIX3_DOUBLE
A double precision floating point 3x3 Matrix.
@ RAW
No particular interpretation, classic vectors and scalars.
All IOLink symbols are enclosed in this namespace.
Definition: ArrayX.h:7
@ VEC4_UINT64
A vector of 4 elements that are 64 bits unsigned integer.
@ VEC4_UINT32
A vector of 4 elements that are 32 bits unsigned integer.
@ UINT32
32 bits unsigned integer
@ VEC2_UINT64
A vector of 2 elements that are 64 bits unsigned integer.
@ VEC4_INT64
A vector of 4 elements that are 64 bits signed integer.
size_t bitCount() const
Get the number of bits required to store the type.
Definition: DataType.h:274
@ INT32
32 bits signed integer
@ DOUBLE
Double precision floating point.
@ UTF8_STRING
Unicode string encoded in UTF-8.
DataTypeInterpretation interpretation() const noexcept
The DataType interpretation.
Definition: DataType.h:269
size_t byteCount() const
Get the number of bits required to store the type.
Definition: DataType.h:283
@ SYMMETRIC_MATRIX
A symmetric matrix.
@ VEC4_INT16
A vector of 4 elements that are 16 bits signed integer.
@ VEC3_INT8
A vector of 3 elements that are 8 bits signed integer.
@ VEC3_DOUBLE
A vector of 3 elements that are double precision floating point.
@ MATRIX4_FLOAT
A single precision floating point 4x4 Matrix.
@ VEC2_UINT16
A vector of 2 elements that are 16 bits unsigned integer.
@ COMPLEX_DOUBLE
A double precision floating point complex number.
PrimitiveTypeId
Enum to describe the primitive family of a data type.
Definition: DataType.h:19
PrimitiveTypeId primitiveType() const noexcept
Return the primitive type of the current type.
Definition: DataType.h:262
@ UINT8
8 bits unsigned integer
@ VEC4_INT32
A vector of 4 elements that are 32 bits signed integer.
@ VEC4_DOUBLE
A vector of 4 elements that are double precision floating point.
@ VEC4_UINT8
A vector of 4 elements that are 8 bits unsigned integer.
@ MATRIX4_DOUBLE
A double precision floating point 4x4 Matrix.
@ SYM_MATRIX2_DOUBLE
A double precision floating point 2x2 symmetric Matrix.
@ INT64
64 bits signed integer
size_t elementCount() const noexcept
Return the number of sub-values included in this type.
Definition: DataType.h:255
@ VEC3_FLOAT
A vector of 3 elements that are single precision floating point.
@ VEC3_UINT16
A vector of 3 elements that are 16 bits unsigned integer.
@ SYM_MATRIX2_FLOAT
A single precision floating point 2x2 symmetric Matrix.
@ VEC3_INT64
A vector of 3 elements that are 64 bits signed integer.
@ VEC2_INT32
A vector of 2 elements that are 32 bits signed integer.
@ VEC3_INT32
A vector of 3 elements that are 32 bits signed integer.
@ INT16
16 bits signed integer
@ VEC3_UINT32
A vector of 3 elements that are 32 bits unsigned integer.
@ UINT64
64 bits unsigned integer
@ VEC3_INT16
A vector of 3 elements that are 16 bits signed integer.
@ MATRIX2_DOUBLE
A double precision floating point 2x2 Matrix.
@ VEC4_INT8
A vector of 4 elements that are 8 bits signed integer.
@ VEC4_UINT16
A vector of 4 elements that are 16 bits unsigned integer.
@ FLOATING_POINT
A floating point number, encoded according to IEEE 754.
@ UTF32_STRING
Unicode string encoded in UTF-32.
@ UTF16_STRING
Unicode string encoded in UTF-16.
@ VEC2_UINT8
A vector of 2 elements that are 8 bits unsigned integer.
@ SIGNED_INTEGER
An integer number, using the two complement for negative numbers.
@ FLOAT
Single precision floating point.
@ INT8
8 bits signed integer
@ VEC2_INT64
A vector of 2 elements that are 64 bits signed integer.
@ UNKNOWN
An opaque type, that the no one knows about.
DataTypeInterpretation
An enumeration to describe how the data should be interpreted.
Definition: DataType.h:40
@ MATRIX3_FLOAT
A single precision floating point 3x3 Matrix.
@ SYM_MATRIX3_DOUBLE
A double precision floating point 3x3 symmetric Matrix.
@ MATRIX2_FLOAT
A single precision floating point 2x2 Matrix.
An arithmetic vector.
Definition: Vector.h:36
@ COMPLEX
A complex number.
@ UINT16
16 bits unsigned integer
@ VEC3_UINT8
A vector of 2 elements that are 8 bits unsigned integer.
@ UNICODE_STRING
A text string, using the Unicode coding system.
@ SQUARE_MATRIX
A square matrix.
@ VEC2_INT8
A vector of 2 elements that are 8 bits signed integer.
@ UNSIGNED_INTEGER
A classic integer number.
@ COMPLEX_FLOAT
A single precision floating point complex number.
DataTypeId
A collection of built-in data types.
Definition: DataType.h:85