HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
c-typedesc.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OIIO_TypeDesc
 

Enumerations

enum  OIIO_BASETYPE {
  OIIO_BASETYPE_UNKNOWN, OIIO_BASETYPE_NONE, OIIO_BASETYPE_UINT8, OIIO_BASETYPE_UCHAR = OIIO_BASETYPE_UINT8,
  OIIO_BASETYPE_INT8, OIIO_BASETYPE_CHAR = OIIO_BASETYPE_INT8, OIIO_BASETYPE_UINT16, OIIO_BASETYPE_USHORT = OIIO_BASETYPE_UINT16,
  OIIO_BASETYPE_INT16, OIIO_BASETYPE_SHORT = OIIO_BASETYPE_INT16, OIIO_BASETYPE_UINT32, OIIO_BASETYPE_UINT = OIIO_BASETYPE_UINT32,
  OIIO_BASETYPE_INT32, OIIO_BASETYPE_INT = OIIO_BASETYPE_INT32, OIIO_BASETYPE_UINT64, OIIO_BASETYPE_ULONGLONG = OIIO_BASETYPE_UINT64,
  OIIO_BASETYPE_INT64, OIIO_BASETYPE_LONGLONG = OIIO_BASETYPE_INT64, OIIO_BASETYPE_HALF, OIIO_BASETYPE_FLOAT,
  OIIO_BASETYPE_DOUBLE, OIIO_BASETYPE_STRING, OIIO_BASETYPE_PTR, OIIO_BASETYPE_LASTBASE
}
 
enum  OIIO_AGGREGATE {
  OIIO_AGGREGATE_SCALAR = 1, OIIO_AGGREGATE_VEC2 = 2, OIIO_AGGREGATE_VEC3 = 3, OIIO_AGGREGATE_VEC4 = 4,
  OIIO_AGGREGATE_MATRIX33 = 9, OIIO_AGGREGATE_MATRIX44 = 16
}
 
enum  OIIO_VECSEMANTICS {
  OIIO_VECSEMANTICS_NOXFORM = 0, OIIO_VECSEMANTICS_NOSEMANTICS = 0, OIIO_VECSEMANTICS_COLOR, OIIO_VECSEMANTICS_POINT,
  OIIO_VECSEMANTICS_VECTOR, OIIO_VECSEMANTICS_NORMAL, OIIO_VECSEMANTICS_TIMECODE, OIIO_VECSEMANTICS_KEYCODE,
  OIIO_VECSEMANTICS_RATIONAL
}
 

Functions

OIIOC_API OIIO_TypeDesc OIIO_TypeDesc_from_string (const char *typestring)
 

Variables

OIIOC_API OIIO_TypeDesc OIIO_TypeUnknown
 
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat
 
OIIOC_API OIIO_TypeDesc OIIO_TypeColor
 
OIIOC_API OIIO_TypeDesc OIIO_TypePoint
 
OIIOC_API OIIO_TypeDesc OIIO_TypeVector
 
OIIOC_API OIIO_TypeDesc OIIO_TypeNormal
 
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix33
 
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix44
 
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix
 
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat2
 
OIIOC_API OIIO_TypeDesc OIIO_TypeVector2
 
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat4
 
OIIOC_API OIIO_TypeDesc OIIO_TypeVector4
 
OIIOC_API OIIO_TypeDesc OIIO_TypeString
 
OIIOC_API OIIO_TypeDesc OIIO_TypeInt
 
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt
 
OIIOC_API OIIO_TypeDesc OIIO_TypeInt32
 
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt32
 
OIIOC_API OIIO_TypeDesc OIIO_TypeInt16
 
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt16
 
OIIOC_API OIIO_TypeDesc OIIO_TypeInt8
 
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt8
 
OIIOC_API OIIO_TypeDesc OIIO_TypeVector2i
 
OIIOC_API OIIO_TypeDesc OIIO_TypeHalf
 
OIIOC_API OIIO_TypeDesc OIIO_TypeTimecode
 
OIIOC_API OIIO_TypeDesc OIIO_TypeKeycode
 
OIIOC_API OIIO_TypeDesc OIIO_TypeRational
 
OIIOC_API OIIO_TypeDesc OIIO_TypePointer
 

Enumeration Type Documentation

OIIO_AGGREGATE describes whether our TypeDesc is a simple scalar of one of the OIIO_BASETYPE's, or one of several simple OIIO_AGGREGATEs.

Note that OIIO_AGGREGATEs and arrays are different. A TypeDesc(FLOAT,3) is an array of three floats, a TypeDesc(FLOAT,VEC3) is a single 3-component vector comprised of floats, and TypeDesc(FLOAT,3,VEC3) is an array of 3 vectors, each of which is comprised of 3 floats.

Enumerator
OIIO_AGGREGATE_SCALAR 

A single scalar value (such as a raw int or float in C). This is the default.

OIIO_AGGREGATE_VEC2 

2 values representing a 2D vector.

OIIO_AGGREGATE_VEC3 

3 values representing a 3D vector.

OIIO_AGGREGATE_VEC4 

4 values representing a 4D vector.

OIIO_AGGREGATE_MATRIX33 

9 values representing a 3x3 matrix.

OIIO_AGGREGATE_MATRIX44 

16 values representing a 4x4 matrix.

Definition at line 54 of file c-typedesc.h.

OIIO_BASETYPE is a simple enum describing the base data types that correspond (mostly) to the C/C++ built-in types.

Enumerator
OIIO_BASETYPE_UNKNOWN 

unknown type

OIIO_BASETYPE_NONE 

void/no type

OIIO_BASETYPE_UINT8 

8-bit unsigned int values ranging from 0..255, (C/C++ unsigned char).

OIIO_BASETYPE_UCHAR 
OIIO_BASETYPE_INT8 

8-bit int values ranging from -128..127, (C/C++ char).

OIIO_BASETYPE_CHAR 
OIIO_BASETYPE_UINT16 

16-bit int values ranging from 0..65535, (C/C++ unsigned short).

OIIO_BASETYPE_USHORT 
OIIO_BASETYPE_INT16 

16-bit int values ranging from -32768..32767, (C/C++ short).

OIIO_BASETYPE_SHORT 
OIIO_BASETYPE_UINT32 

32-bit unsigned int values (C/C++ unsigned int).

OIIO_BASETYPE_UINT 
OIIO_BASETYPE_INT32 

signed 32-bit int values (C/C++ int).

OIIO_BASETYPE_INT 
OIIO_BASETYPE_UINT64 

64-bit unsigned int values (C/C++ unsigned long long on most architectures).

OIIO_BASETYPE_ULONGLONG 
OIIO_BASETYPE_INT64 

signed 64-bit int values (C/C++ long long on most architectures).

OIIO_BASETYPE_LONGLONG 
OIIO_BASETYPE_HALF 

16-bit IEEE floating point values (OpenEXR half).

OIIO_BASETYPE_FLOAT 

32-bit IEEE floating point values, (C/C++ float).

OIIO_BASETYPE_DOUBLE 

64-bit IEEE floating point values, (C/C++ double).

OIIO_BASETYPE_STRING 

Character string.

OIIO_BASETYPE_PTR 

A pointer value.

OIIO_BASETYPE_LASTBASE 

Definition at line 14 of file c-typedesc.h.

OIIO_VECSEMANTICS gives hints about what the data represent (for example, if a spatial vector quantity should transform as a point, direction vector, or surface normal).

Enumerator
OIIO_VECSEMANTICS_NOXFORM 

No semantic hints.

OIIO_VECSEMANTICS_NOSEMANTICS 

No semantic hints.

OIIO_VECSEMANTICS_COLOR 

Color.

OIIO_VECSEMANTICS_POINT 

Point: a spatial location.

OIIO_VECSEMANTICS_VECTOR 

Vector: a spatial direction.

OIIO_VECSEMANTICS_NORMAL 

Normal: a surface normal.

OIIO_VECSEMANTICS_TIMECODE 

indicates an int[2] representing the standard 4-byte encoding of an SMPTE timecode.

OIIO_VECSEMANTICS_KEYCODE 

indicates an int[7] representing the standard 28-byte encoding of an SMPTE keycode.

OIIO_VECSEMANTICS_RATIONAL 

A VEC2 representing a rational number val[0] / val[1]

Definition at line 68 of file c-typedesc.h.

Function Documentation

OIIOC_API OIIO_TypeDesc OIIO_TypeDesc_from_string ( const char *  typestring)

Construct from a string (e.g., "float[3]"). If no valid type could be assembled, set basetype to OIIO_BASETYPE_UNKNOWN.

Examples: ``` TypeDesc_from_string("int") == OIIO_TypeInt // C++ int32_t TypeDesc_from_string("float") == OIIO_TypeFloat // C++ float TypeDesc_from_string("uint16") == OIIO_TYPEUInt16 // C++ uint16_t TypeDesc_from_string("float[4]") == FIXME: unimplemented! ```

Variable Documentation

OIIOC_API OIIO_TypeDesc OIIO_TypeColor
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat2
OIIOC_API OIIO_TypeDesc OIIO_TypeFloat4
OIIOC_API OIIO_TypeDesc OIIO_TypeHalf
OIIOC_API OIIO_TypeDesc OIIO_TypeInt
OIIOC_API OIIO_TypeDesc OIIO_TypeInt16
OIIOC_API OIIO_TypeDesc OIIO_TypeInt32
OIIOC_API OIIO_TypeDesc OIIO_TypeInt8
OIIOC_API OIIO_TypeDesc OIIO_TypeKeycode
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix33
OIIOC_API OIIO_TypeDesc OIIO_TypeMatrix44
OIIOC_API OIIO_TypeDesc OIIO_TypeNormal
OIIOC_API OIIO_TypeDesc OIIO_TypePoint
OIIOC_API OIIO_TypeDesc OIIO_TypePointer
OIIOC_API OIIO_TypeDesc OIIO_TypeRational
OIIOC_API OIIO_TypeDesc OIIO_TypeString
OIIOC_API OIIO_TypeDesc OIIO_TypeTimecode
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt16
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt32
OIIOC_API OIIO_TypeDesc OIIO_TypeUInt8
OIIOC_API OIIO_TypeDesc OIIO_TypeUnknown
OIIOC_API OIIO_TypeDesc OIIO_TypeVector
OIIOC_API OIIO_TypeDesc OIIO_TypeVector2
OIIOC_API OIIO_TypeDesc OIIO_TypeVector2i
OIIOC_API OIIO_TypeDesc OIIO_TypeVector4