formZ SDK | 5.0 API Reference | System | Data Type

# fz_type_enum

Description

formZ variant data type. A variant data type allows data of different types to be passed to a function. It is essentially a tagged union of all the data types it supports. This type is used mainly for setting and getting parameters of formZ entities (lights, objects, surface styles, etc.) The variant type set and get functions perform runtime type checking and where possible, type conversion. The fz_type_ get and set functions follow the same form:
They all return an error code.
Data is copied from the first parameter to the second parameter.
All data is passed to the functions by pointer.
Data type conversions happen in the get functions (if you set a value, someone else will get it). Each get function describes the type conversions it supports. If no type conversions are listed, none are supported. No data type conversions occur on arrays of data.

enum fz_type_enum {

FZ_TYPE_NONE,

FZ_TYPE_BOOL,

FZ_TYPE_CHAR,

FZ_TYPE_UCHAR,

FZ_TYPE_SHORT,

FZ_TYPE_USHORT,

FZ_TYPE_INT,

FZ_TYPE_UINT,

FZ_TYPE_FLOAT,

FZ_TYPE_DOUBLE,

FZ_TYPE_XY,

FZ_TYPE_XYZ,

FZ_TYPE_XYZW,

FZ_TYPE_XY_MM,

FZ_TYPE_XYZ_MM,

FZ_TYPE_XY_FLOAT,

FZ_TYPE_XYZ_FLOAT,

FZ_TYPE_EQU,

FZ_TYPE_MAT4X4,

FZ_TYPE_RGB_UCHAR,

FZ_TYPE_RGB_USHORT,

FZ_TYPE_RGB_FLOAT,

FZ_TYPE_UUID,

FZ_TYPE_4CHAR,

FZ_TYPE_STRING,

FZ_TYPE_POINT,

FZ_TYPE_RECT,

FZ_TYPE_PTR,

FZ_TYPE_MAT3X3,

FZ_TYPE_BOOL_PTR,

FZ_TYPE_CHAR_PTR,

FZ_TYPE_UCHAR_PTR,

FZ_TYPE_SHORT_PTR,

FZ_TYPE_USHORT_PTR,

FZ_TYPE_INT_PTR,

FZ_TYPE_UINT_PTR,

FZ_TYPE_FLOAT_PTR,

FZ_TYPE_DOUBLE_PTR,

FZ_TYPE_XY_PTR,

FZ_TYPE_XYZ_PTR,

FZ_TYPE_XYZW_PTR,

FZ_TYPE_XY_MM_PTR,

FZ_TYPE_XYZ_MM_PTR,

FZ_TYPE_XY_FLOAT_PTR,

FZ_TYPE_XYZ_FLOAT_PTR,

FZ_TYPE_EQU_PTR,

FZ_TYPE_MAT4X4_PTR,

FZ_TYPE_RGB_UCHAR_PTR,

FZ_TYPE_RGB_USHORT_PTR,

FZ_TYPE_RGB_FLOAT_PTR,

FZ_TYPE_UUID_PTR,

FZ_TYPE_4CHAR_PTR,

FZ_TYPE_STRING_PTR,

FZ_TYPE_POINT_PTR,

FZ_TYPE_RECT_PTR,

FZ_TYPE_PTR_PTR,

FZ_TYPE_MAT3X3_PTR,

FZ_TYPE_ENUM,

FZ_TYPE_ENUM_PTR,

FZ_TYPE_MAP_PLANE,

FZ_TYPE_MAP_PLANE_PTR,

FZ_TYPE_TAG,

FZ_TYPE_TAG_PTR,

FZ_TYPE_MAX };

Members

FZ_TYPE_NONE

No type (TODO: DAVE, what's this for?)

FZ_TYPE_BOOL

Boolean type ( fzrt_boolean)

FZ_TYPE_CHAR

Single byte signed integer type (char)

FZ_TYPE_UCHAR

Single byte unsigned integer type (unsigned char)

FZ_TYPE_SHORT

Two byte signed integer type (short)

FZ_TYPE_USHORT

Two byte unsigned integer type (unsigned short)

FZ_TYPE_INT

Four byte signed integer type (fzrt_int)

FZ_TYPE_UINT

Four byte unsigned integer type (fzrt_unsigned_int)

FZ_TYPE_FLOAT

Single precision floating point type (float)

FZ_TYPE_DOUBLE

Double precision floating point type (double)

FZ_TYPE_XY

Double precision floating point 2D x,y coordinate type ( fz_xy_td)

FZ_TYPE_XYZ

Double precision floating point 3D x,y,z coordinate type ( fz_xyz_td)

FZ_TYPE_XYZW

Double precision floating point 4D x,y,z,w coordinate type ( fz_xyzw_td)

FZ_TYPE_XY_MM

Double precision floating point 2D x,y minimum/maximum pair type ( fz_xy_mm_td)

FZ_TYPE_XYZ_MM

Double precision floating point 3D x,y,z minimum/maximum pair type ( fz_xyz_mm_td)

FZ_TYPE_XY_FLOAT

Single precision floating point 2D x,y coordinate type ( fz_xy_float_td) (TODO: Do we want to expose this?)

FZ_TYPE_XYZ_FLOAT

Single precision floating point 3D x,y,z coordinate type ( fz_xyz_float_td) (TODO: Do we want to expose this?)

FZ_TYPE_EQU

Double precision floating point plane equation type ( fz_plane_equ_td)

FZ_TYPE_MAT4X4

Double precision floating point 4x4 matrix ( fz_mat4x4_td)

FZ_TYPE_RGB_UCHAR

Single byte unsigned integer r,g,b color ( fz_rgb_uchar_td)

FZ_TYPE_RGB_USHORT

Two byte unsigned integer r,g,b color ( fz_rgb_ushort_td)

FZ_TYPE_RGB_FLOAT

Single precision floating point r,g,b color ( fz_rgb_float_td)

FZ_TYPE_UUID

UUID ( fzrt_UUID_td)

FZ_TYPE_4CHAR

Four byte string ( fz_4char_td)

FZ_TYPE_STRING

String ( fz_string_td)

FZ_TYPE_POINT

Integer 2D point type ( fzrt_point)

FZ_TYPE_RECT

Integer 2D rectangle type ( fzrt_rect)

FZ_TYPE_PTR

Generic pointer (void *) (TODO: Do we want to expose this?)

FZ_TYPE_MAT3X3

Double precision floating point 3x3 matrix ( fz_mat3x3_td)

FZ_TYPE_BOOL_PTR

Pointer to a Boolean type ( fzrt_boolean *)

FZ_TYPE_CHAR_PTR

Pointer to a Single byte signed integer type (char *)

FZ_TYPE_UCHAR_PTR

Pointer to a Single byte unsigned integer type (unsigned char *)

FZ_TYPE_SHORT_PTR

Pointer to a Two byte signed integer type (short *)

FZ_TYPE_USHORT_PTR

Pointer to a Two byte unsigned integer type (unsigned short *)

FZ_TYPE_INT_PTR

Pointer to a Four byte signed integer type (fzrt_int *)

FZ_TYPE_UINT_PTR

Pointer to a Four byte unsigned integer type (fzrt_unsigned_int *)

FZ_TYPE_FLOAT_PTR

Pointer to a Single precision floating point type (float *)

FZ_TYPE_DOUBLE_PTR

Pointer to a Double precision floating point type (double *)

FZ_TYPE_XY_PTR

Pointer to a Double precision floating point 2D x,y coordinate type ( fz_xy_td *)

FZ_TYPE_XYZ_PTR

Pointer to a Double precision floating point 3D x,y,z coordinate type ( fz_xyz_td *)

FZ_TYPE_XYZW_PTR

Pointer to a Double precision floating point 4D x,y,z,w coordinate type ( fz_xyzw_td *)

FZ_TYPE_XY_MM_PTR

Pointer to a Double precision floating point 2D x,y coordinate minimum/maximum pair type ( fz_xy_mm_td *)

FZ_TYPE_XYZ_MM_PTR

Pointer to a Double precision floating point 3D x,y,z coordinate minimum/maximum pair type ( fz_xyz_mm_td *)

FZ_TYPE_XY_FLOAT_PTR

Pointer to a Single precision floating point 2D x,y coordinate type ( fz_xy_float_td *) (TODO: Do we want to expose this?)

FZ_TYPE_XYZ_FLOAT_PTR

Pointer to a Single precision floating point 3D x,y,z coordinate type ( fz_xyz_float_td *) (TODO: Do we want to expose this?)

FZ_TYPE_EQU_PTR

Pointer to a Double precision floating point plane equation type ( fz_plane_equ_td *)

FZ_TYPE_MAT4X4_PTR

Pointer to a Double precision floating point 4x4 matrix ( fz_mat4x4_td *)

FZ_TYPE_RGB_UCHAR_PTR

Pointer to a Single byte unsigned integer r,g,b color ( fz_rgb_uchar_td *)

FZ_TYPE_RGB_USHORT_PTR

Pointer to a Two byte unsigned integer r,g,b color ( fz_rgb_ushort_td *)

FZ_TYPE_RGB_FLOAT_PTR

Pointer to a Single precision floating point r,g,b color ( fz_rgb_float_td*)

FZ_TYPE_UUID_PTR

Pointer to a UUID ( fzrt_UUID_td *)

FZ_TYPE_4CHAR_PTR

Pointer to a Four byte string ( fz_4char_td *)

FZ_TYPE_STRING_PTR

Pointer to a String ( fz_string_td *)

FZ_TYPE_POINT_PTR

Pointer to a Four byte signed integer 2D point type ( fzrt_point *)

FZ_TYPE_RECT_PTR

Pointer to a Four byte signed integer 2D rectangle type ( fzrt_rect *)

FZ_TYPE_PTR_PTR

Generic pointer to a pointer (void **) (TODO: Do we want to expose this?)

FZ_TYPE_MAT3X3_PTR

Pointer to a Double precision floating point 3x3 matrix ( fz_mat3x3_td)

FZ_TYPE_ENUM

Enumerated type (using 4 byte integer storage)

FZ_TYPE_ENUM_PTR

Pointer to an Enumerated type

FZ_TYPE_MAP_PLANE

3D Mapping plane ( fz_map_plane_td)

FZ_TYPE_MAP_PLANE_PTR

Pointer to a 3D Mapping plane ( fz_map_plane_td)

FZ_TYPE_TAG

tag, which uniquely identifies an entity, such as a surface style or light

FZ_TYPE_TAG_PTR

Pointer to a tag

FZ_TYPE_MAX

The end of this enum. Used for range checking.

Availability

5.0.0.0

Defined in

fz_type_api.h