/*********************************************************************************************
 *                                                                                           *
 *                                                                                           *
 *   Copyright 1989-2018 by AutoDesSys, Inc.                                                 *
 *                                                                                           *
 *   This software and its associated documentation contains proprietary,                    *
 *   confidential, and trade secret information of AutoDesSys Inc. and may not be            *
 *   disclosed, copied in any form, or used for any purpose except as specifically           *
 *   permitted in writing by AutoDesSys, Inc.                                                *
 *                                                                                           *
 *   AutoDesSys, Inc. grants permission to use the software to those who purchase            *
 *   a license.  Such a usage will be made according to the terms and conditions             *
 *   specified in the license agreement to which a licensee agrees before installing         *
 *   and commencing usage of the software.  The license agreement can be found               *
 *   on the envelop that contains the software CD.                                           *
 *                                                                                           *
 *   AutoDesSys, Inc. also grants permission to licensees to develop extensions to           *
 *   the software, which can be in the form of scripts or plugins.  The permission           *
 *   includes calling the API and call back functions provided by AutoDesSys, Inc.           *
 *   and accessing information relevant to these functions and the general workings          *
 *   of form.Z, but only up to the point to which AutoDesSys, Inc. has chosen to             *
 *   expose, through its form.Z SDK Manual.  All extensions developed by third               *
 *   parties will include a copy of this copyright note in an easily accessible place or     *
 *   a clear instruction to read this original note by AutoDesSys, Inc.                      *
 *                                                                                           *
 *   All the software distributed under a license, either for the purpose of using it or     *
 *   for the purpose of developing extensions, is distributed AS IS, WITHOUT                 *
 *   WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND                                    *
 *   AutoDesSys, Inc. HEREBY DISCLAIMS ALL SUCH WARRANTIES,                                  *
 *   INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF                                         *
 *   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.                                    *
 *                                                                                           *
 *   formZ, RenderZone, and RadioZity are registered trademarks of AutoDesSys, Inc.          *
 *                                                                                           *
 *   form.Z SDK, Version 8.6.3, Dec 03, 2018                                                 *
 *                                                                                           *
 *                                                                                           *
 *********************************************************************************************/



#ifndef __FORMZ_TYPE_API_
#define __FORMZ_TYPE_API_ 1

#include "fzrt_api_type.h"
#include "fzpl_plugin.h"
#include "fz_type_core_api.h"

#ifdef __cplusplus
extern "C" {
#endif


/****************************************************************

	Data Type


	Description
		This section provides functions to deal with the variant data type.  The variant data type 
		is useful for passing values of different data types through the same function 
		prototype.  A program must use the proper functions to store and retrieve the properly 
		typed data for the variant data type (fz_type_td).  Type lists are generic, variable 
		length arrays that can store and retrieve any type of homogeneous data.
 ****************************************************************/


/****************************************************************

	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.

	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 b
		FZ_TYPE_MAX
			The end of this enum.  Used for range checking.

	Availability	5.0.0.0

 ****************************************************************/
typedef enum fz_type_enum
{	FZ_TYPE_NONE=0,
	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
} fz_type_enum;

#define FZ_TYPE_LONG FZ_TYPE_INT
#define FZ_TYPE_ULONG FZ_TYPE_UINT
#define FZ_TYPE_LONG_PTR FZ_TYPE_INT_PTR
#define FZ_TYPE_ULONG_PTR FZ_TYPE_UINT_PTR
/****************************************************************

	fz_context_enum


	Description
		Some formZ entities may not render with the parameters assigned to them.  There 
		may be some parameters of another entity which may override its parameters.  For 
		example, an object's color may be overridden by the layer color, or a lights color 
		may be overridden by the light group color. 
		This enum allows selection of which parameter value to get.

	Members
		FZ_CONTEXT_NATURAL
			The parameter assigned to the entity.
		FZ_CONTEXT_DISPLAY
			The parameter used to display to the entity.
		FZ_CONTEXT_ANIM
			The parameter assigned to the animation of the entity. (TODO: Are we really ready to expose this?)
		FZ_CONTEXT_MAX
			The end of this enum.  Used for range checking.

	Availability	5.0.0.0

 ****************************************************************/
typedef enum fz_context_enum
{	FZ_CONTEXT_NATURAL=0,
	FZ_CONTEXT_DISPLAY,
	FZ_CONTEXT_ANIM,

	FZ_CONTEXT_MAX
} fz_context_enum;


/****************************************************************

	fz_type_td


	Description
		This is the variant data type.

	Members
		prvt_data[328]
			Storage for the data.

	Availability	5.0.0.0

 ****************************************************************/
typedef union fz_type_td
{
	char	prvt_data[328];
								
								

} fz_type_td;

/****************************************************************

	fz_type_ptr


	Description
		This is a pointer to fz_type_td.

	Availability	6.0.0.0

 ****************************************************************/
typedef fz_type_td	*fz_type_ptr;

/****************************************************************

	fz_rgb_uchar_td


	Description
		This specifies an rgb color.  The range of values for each color component is 0 - 255. 
		Each color component is one byte (Three bytes total for this type).

	Members
		red
			The red color component.
		green
			The green color component.
		blue
			The blue color component.

	Availability	5.0.0.0


	See Also
		fz_rgb_float_td, fz_rgb_ushort_td

 ****************************************************************/
typedef struct fz_rgb_uchar_td
{	unsigned char			red;
	unsigned char			green;
	unsigned char			blue;
} fz_rgb_uchar_td;

/****************************************************************

	fz_rgb_ushort_td


	Description
		This specifies an rgb color.  The range of values for each color component is 0 - 65535. 
		Each color component is two bytes (Six bytes total for this type).

	Members
		red
			The red color component.
		green
			The green color component.
		blue
			The blue color component.

	Availability	5.0.0.0


	See Also
		fz_rgb_float_td, fz_rgb_uchar_td

 ****************************************************************/
typedef struct fz_rgb_ushort_td
{	unsigned short			red;
	unsigned short			green;
	unsigned short			blue;
} fz_rgb_ushort_td;

/****************************************************************

	fz_rgb_float_td


	Description
		This specifies an rgb color.  The range of values for each color component is 0.0 - 1.0. 
		Each color component is four bytes (12 bytes total for this type) and is stored 
		as a single precision floating point value.

	Members
		red
			The red color component.
		green
			The green color component.
		blue
			The blue color component.

	Availability	5.0.0.0


	See Also
		fz_rgb_ushort_td, fz_rgb_uchar_td

 ****************************************************************/
typedef struct fz_rgb_float_td
{	float			red;
	float			green;
	float			blue;
} fz_rgb_float_td;

/****************************************************************

	fz_rgba_float_td


	Description
		This specifies an rgb color + alpha.  The range of values for each color component is 0.0 - 1.0. 
		Each color component is four bytes (12 bytes total for this type) and is stored 
		as a single precision floating point value.

	Members
		r
			The red color component.
		g
			The green color component.
		b
			The blue color component.
		a
			The alpha color component.

	Availability	7.0.0.0


	See Also
		fz_rgb_float_td

 ****************************************************************/
typedef struct fz_rgba_float_td
{	float			r;
	float			g;
	float			b;
	float			a;
} fz_rgba_float_td;

/****************************************************************

	fz_4char_td


	Description
		A four byte string No string termination.  It is known to be four bytes. 
		It is used primarily for Macintosh stuff like file creator and file type.

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_unsigned_int fz_4char_td;

#define FZ_TYPE_STRING_MAX_CHAR		256
/****************************************************************

	fz_string_td


	Description
		A variable length string with a maximum length of 256 bytes. 
		Terminated with a NULL character ('\0').

	Availability	5.0.0.0

 ****************************************************************/
typedef char fz_string_td[FZ_TYPE_STRING_MAX_CHAR];


	


/****************************************************************

	fz_type_set_boolean



	Parameters
		bval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_boolean, fz_type_set_boolean_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_boolean_func)(
			fzrt_boolean	*bval,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_boolean



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		char					Non-zero value -> TRUE; 0 -> FALSE. 
		unsigned char			Non-zero value -> TRUE; 0 -> FALSE. 
		short					Non-zero value -> TRUE; 0 -> FALSE. 
		unsigned short			Non-zero value -> TRUE; 0 -> FALSE. 
		fzrt_int					Non-zero value -> TRUE; 0 -> FALSE. 
		fzrt_unsigned_int			Non-zero value -> TRUE; 0 -> FALSE. 
		float					Non-zero value -> TRUE; 0.0 -> FALSE. 
		double					Non-zero value -> TRUE; 0.0 -> FALSE.

	Parameters
		type  [Input]
			A pointer to a variant
		bval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_boolean, fz_type_get_boolean_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_boolean_func)(
			fz_type_ptr		type,
			fzrt_boolean	*bval
			);

/****************************************************************

	fz_type_set_char



	Parameters
		cval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_char, fz_type_set_char_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_char_func)(
			char		*cval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_char



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		unsigned char			bits copied, value > 127 wrap to range of -128 to 0. 
		short					value clamped to range of -128 to 127. 
		unsigned short			value clamped to range of 0 to 127. 
		fzrt_int					value clamped to range of -128 to 127. 
		fzrt_unsigned_int			value clamped to range of 0 to 127. 
		float					value converted to integer then clamped to range of -128 to 127. 
		double					value converted to integer then clamped to range of -128 to 127.

	Parameters
		type  [Input]
			A pointer to a variant
		cval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_char, fz_type_get_char_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_char_func)(
			fz_type_ptr	type,
			char		*cval
			);

/****************************************************************

	fz_type_set_uchar



	Parameters
		ucval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uchar, fz_type_set_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uchar_func)(
			unsigned char	*ucval,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uchar



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		char					bits copied, value < 0 wrap to range of 128 to 255. 
		short					value clamped to range of 0 to 255. 
		unsigned short			value clamped to range of 0 to 255. 
		fzrt_int					value clamped to range of 0 to 255. 
		fzrt_unsigned_int			value clamped to range of 0 to 255. 
		float					value converted to integer then clamped to range of 0 to 255. 
		double					value converted to integer then clamped to range of 0 to 255.

	Parameters
		type  [Input]
			A pointer to a variant
		ucval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uchar, fz_type_get_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uchar_func)(
			fz_type_ptr		type,
			unsigned char	*ucval
			);

/****************************************************************

	fz_type_set_short



	Parameters
		sval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_short, fz_type_set_short_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_short_func)(
			short		*sval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_short



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		char					value copied, no data lost. 
		unsigned char			value copied, no data lost. 
		unsigned short			bits copied, value > 32767 wrap to range of -32768 to 0. 
		fzrt_int					value clamped to range of -32768 to 32767. 
		fzrt_unsigned_int			value clamped to range of 0 to 32767. 
		float					value converted to integer then clamped to range of -32768 to 32767. 
		double					value converted to integer then clamped to range of -32768 to 32767.

	Parameters
		type  [Input]
			A pointer to a variant
		sval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_short, fz_type_get_short_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_short_func)(
			fz_type_ptr	type,
			short		*sval
			);

/****************************************************************

	fz_type_set_ushort



	Parameters
		usval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_ushort, fz_type_set_ushort_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_ushort_func)(
			unsigned short	*usval,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_ushort



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		char					value clamped to range of 0 to 127. 
		unsigned char			value copied, no data lost. 
		short					bits copied, value < 0 wrap to range of 32768 to 65535. 
		fzrt_int					value clamped to range of 0 to 65535. 
		fzrt_unsigned_int			value clamped to range of 0 to 65535. 
		float					value converted to integer then clamped to range of 0 to 65535. 
		double					value converted to integer then clamped to range of 0 to 65535.

	Parameters
		type  [Input]
			A pointer to a variant
		usval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_ushort, fz_type_get_ushort_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_ushort_func)(
			fz_type_ptr		type,
			unsigned short	*usval
			);

/****************************************************************

	fz_type_set_int



	Parameters
		lval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_int, fz_type_set_int_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_int_func)(
			fzrt_int		*lval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_int



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		char					value copied, no data lost. 
		unsigned char			value copied, no data lost. 
		short					value copied, no data lost. 
		unsigned short			value copied, no data lost. 
		fzrt_unsigned_int			bits copied, value > (2^31)-1 wrap to range of 2^31 to (2^32)-1. 
		float					value converted to integer then clamped to range of -(2^31) to (2^31)-1. 
		double					value converted to integer then clamped to range of -(2^31) to (2^31)-1.

	Parameters
		type  [Input]
			A pointer to a variant
		lval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_int, fz_type_get_int_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_int_func)(
			fz_type_ptr	type,
			fzrt_int		*lval
			);

/****************************************************************

	fz_type_set_uint



	Parameters
		lval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uint, fz_type_set_uint_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uint_func)(
			fzrt_unsigned_int	*lval,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uint



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1; FALSE -> 0. 
		char					value clamped to range of 0 to 127. 
		unsigned char			value copied, no data lost. 
		short					value clamped to range of 0 to 32767. 
		unsigned short			value copied, no data lost. 
		fzrt_int					bits copied, value < 0 wrap to range of -(2^31) to 0. 
		float					value converted to integer then clamped to range of 0 to (2^32)-1. 
		double					value converted to integer then clamped to range of 0 to (2^32)-1.

	Parameters
		type  [Input]
			A pointer to a variant
		lval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uint, fz_type_get_uint_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uint_func)(
			fz_type_ptr		type,
			fzrt_unsigned_int	*lval
			);

/****************************************************************

	fz_type_set_float



	Parameters
		fval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_float, fz_type_set_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_float_func)(
			float		*fval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_float



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1.0; FALSE -> 0.0. 
		char					value copied, no data lost. 
		unsigned char			value copied, no data lost. 
		short					value copied, no data lost. 
		unsigned short			value copied, no data lost. 
		fzrt_int					value copied, no data lost. 
		fzrt_unsigned_int			value copied, no data lost. 
		double					value copied, loss of precision. Value clamped to range of FLT_MIN to FLT_MAX.

	Parameters
		type  [Input]
			A pointer to a variant
		fval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_float, fz_type_get_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_float_func)(
			fz_type_ptr	type,
			float		*fval
			);

/****************************************************************

	fz_type_set_double



	Parameters
		dval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_double, fz_type_set_double_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_double_func)(
			double		*dval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_double



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fzrt_boolean			TRUE -> 1.0; FALSE -> 0.0. 
		char					value copied, no data lost. 
		unsigned char			value copied, no data lost. 
		short					value copied, no data lost. 
		unsigned short			value copied, no data lost. 
		fzrt_int					value copied, no data lost. 
		fzrt_unsigned_int			value copied, no data lost. 
		float					value copied, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		dval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_double, fz_type_get_double_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_double_func)(
			fz_type_ptr	type,
			double		*dval
			);

/****************************************************************

	fz_type_set_xy



	Parameters
		xyval  [Input]
			A pointer to the coordinate to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy, fz_type_set_xy_ptr, 
		fz_type_set_xy_float, fz_type_set_xy_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_func)(
			fz_xy_td		*xyval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyz_td					x & y values copied, z lost. 
		fz_xyzw_td					x & y values copied, z & w lost. 
		fz_xy_float_td				x & y values copied, no data lost. 
		fz_xyz_float_td			x & y values copied, z lost.

	Parameters
		type  [Input]
			A pointer to a variant
		xyval  [Result]
			A pointer to a coordinate to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy, fz_type_get_xy_ptr, 
		fz_type_get_xy_float, fz_type_get_xy_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_func)(
			fz_type_ptr	type,
			fz_xy_td		*xyval
			);

/****************************************************************

	fz_type_set_xyz



	Parameters
		xyz  [Input]
			A pointer to the coordinate to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz, fz_type_set_xyz_ptr, 
		fz_type_set_xyz_float, fz_type_set_xyz_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_func)(
			fz_xyz_td		*xyz,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyz



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xy_td					x & y values copied, z set to 0.0, no data lost. 
		fz_xyzw_td					x, y & z values copied, w lost. 
		fz_xy_float_td				x & y values copied, z set to 0.0, no data lost. 
		fz_xyz_float_td			x, y & z values copied, no data lost. 
		fz_rgb_uchar_td			red value divided by 255.0 and copied to x, 
		green value divided by 255.0 and copied to y, 
		blue value divided by 255.0 and copied to z, no data lost. 
		fz_rgb_ushort_td		red value divided by 65535.0 and copied to x, 
		green value divided by 65535.0 and copied to y, 
		blue value divided by 65535.0 and copied to z, no data lost. 
		fz_rgb_float_td			red value copied to x, 
		green value copied to y, 
		blue value copied to z, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		xyz  [Result]
			A pointer to a coordinate to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz, fz_type_get_xyz_ptr, 
		fz_type_get_xyz_float, fz_type_get_xyz_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_func)(
			fz_type_ptr	type,
			fz_xyz_td		*xyz
			);

/****************************************************************

	fz_type_set_xyzw



	Parameters
		xyzw  [Input]
			A pointer to the coordinate to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyzw, fz_type_set_xyzw_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyzw_func)(
			fz_xyzw_td		*xyzw,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyzw



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xy_td					x & y values copied, z set to 0.0, w set to 1.0, no data lost. 
		fz_xyz_td					x, y & z values copied, w set to 1.0, no data lost. 
		fz_xy_float_td				x & y values copied, z set to 0.0, w set to 1.0, no data lost. 
		fz_xyz_float_td			x, y & z values copied, w set to 1.0, no data lost. 
		fz_rgb_uchar_td			red value divided by 255.0 and copied to x, 
		green value divided by 255.0 and copied to y, 
		blue value divided by 255.0 and copied to z, w set to 1.0, no data lost. 
		fz_rgb_ushort_td			red value divided by 65535.0 and copied to x, 
		green value divided by 65535.0 and copied to y, 
		blue value divided by 65535.0 and copied to z, w set to 1.0, no data lost. 
		fz_rgb_float_td			red value copied to x, 
		green value copied to y, 
		blue value copied to z, w set to 1.0, no data lost. 
		fz_plane_equ_td					a value copied to x, 
		b value copied to y, 
		c value copied to z, 
		d value copied to w, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		xyzw  [Result]
			A pointer to a coordinate to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyzw, fz_type_get_xyzw_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyzw_func)(
			fz_type_ptr	type,
			fz_xyzw_td		*xyzw
			);

/****************************************************************

	fz_type_set_xy_mm



	Parameters
		xymm  [Input]
			A pointer to the min/max pair to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy_mm, fz_type_set_xy_mm_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_mm_func)(
			fz_xy_mm_td	*xymm,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy_mm



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyz_mm_td				x min & max copied to x min & max, 
		y min & max copied to y min & max, 
		z min & max lost.

	Parameters
		type  [Input]
			A pointer to a variant
		xymm  [Result]
			A pointer to a min/max pair to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy_mm, fz_type_get_xy_mm_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_mm_func)(
			fz_type_ptr	type,
			fz_xy_mm_td	*xymm
			);

/****************************************************************

	fz_type_set_xyz_mm



	Parameters
		xyzmm  [Input]
			A pointer to the min/max pair to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz_mm, fz_type_set_xyz_mm_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_mm_func)(
			fz_xyz_mm_td	*xyzmm,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyz_mm



	Parameters
		type  [Input]
			A pointer to a variant
		xyzmm  [Result]
			A pointer to a min/max pair to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz_mm, fz_type_get_xyz_mm_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_mm_func)(
			fz_type_ptr	type,
			fz_xyz_mm_td	*xyzmm
			);

/****************************************************************

	fz_type_set_xy_float



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xy_mm_td				x min & max copied to x min & max, 
		y min & max copied to y min & max, 
		z min & max set to 0.0, no data lost.

	Parameters
		fxy  [Input]
			A pointer to the coordinate to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy_float, fz_type_set_xy_float_ptr, 
		fz_type_set_xy, fz_type_set_xy_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_float_func)(
			fz_xy_float_td	*fxy,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy_float



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xy_td					x & y values copied, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xyz_td					x & y values copied, z lost, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xyzw_td					x & y values copied, z & w lost, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xyz_float_td			x & y values copied, z lost.

	Parameters
		type  [Input]
			A pointer to a variant
		fxy  [Result]
			A pointer to a coordinate to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy_float, fz_type_get_xy_float_ptr, 
		fz_type_get_xy, fz_type_get_xy_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_float_func)(
			fz_type_ptr	type,
			fz_xy_float_td	*fxy
			);

/****************************************************************

	fz_type_set_xyz_float



	Parameters
		fxyz  [Input]
			A pointer to the coordinate to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz_float, fz_type_set_xyz_float_ptr, 
		fz_type_set_xyz, fz_type_set_xyz_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_float_func)(
			fz_xyz_float_td	*fxyz,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_xyz_float



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xy_td					x & y values copied, z set to 0.0, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xyz_td					x & y values copied, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xyzw_td					x & y values copied, w lost, loss of precision. Values clamped to range of FLT_MIN to FLT_MAX. 
		fz_xy_float_td				x & y values copied, z set to 0.0, no data lost. 
		fz_rgb_uchar_td			red value divided by 255.0 and copied to x, 
		green value divided by 255.0 and copied to y, 
		blue value divided by 255.0 and copied to z, no data lost. 
		fz_rgb_ushort_td			red value divided by 65535.0 and copied to x, 
		green value divided by 65535.0 and copied to y, 
		blue value divided by 65535.0 and copied to z, no data lost. 
		fz_rgb_float_td			red value copied to x, 
		green value copied to y, 
		blue value copied to z, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		fxyz  [Result]
			A pointer to a coordinate to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz_float, fz_type_get_xyz_float_ptr, 
		fz_type_get_xyz, fz_type_get_xyz_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_float_func)(
			fz_type_ptr		type,
			fz_xyz_float_td	*fxyz
			);

/****************************************************************

	fz_type_set_equ



	Parameters
		equc  [Input]
			A pointer to the plane equation to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_equ, fz_type_set_equ_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_equ_func)(
			fz_plane_equ_td		*equc,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_equ



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyzw_td					x value copied to a, 
		y value copied to b, 
		z value copied to c, 
		w value copied to d, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		equc  [Result]
			A pointer to a plane equation to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_equ, fz_type_get_equ_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_equ_func)(
			fz_type_ptr	type,
			fz_plane_equ_td		*equc
			);


/****************************************************************

	fz_type_set_rgb_uchar



	Parameters
		ucrgb  [Input]
			A pointer to the color to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_uchar, fz_type_set_rgb_uchar_ptr, 
		fz_type_set_rgb_float, fz_type_set_rgb_ushort

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_uchar_func)(
			fz_rgb_uchar_td	*ucrgb,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_uchar



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyz_td					x value multiplied by 255.0 and copied to red, 
		y value multiplied by 255.0 and copied to green, 
		z value multiplied by 255.0 and copied to blue, loss of precision. Values clamped to range of 0 to 255. 
		fz_xyzw_td					x value multiplied by 255.0 and copied to red, 
		y value multiplied by 255.0 and copied to green, 
		z value multiplied by 255.0 and copied to blue, w lost, loss of precision. Values clamped to range of 0 to 255. 
		fz_xyz_float_td			x value multiplied by 255.0 and copied to red, 
		y value multiplied by 255.0 and copied to green, 
		z value multiplied by 255.0 and copied to blue, loss of precision. Values clamped to range of 0 to 255. 
		fz_rgb_ushort_td			values scaled from 0 to 65535 to 0 to 255, loss of precision. 
		fz_rgb_float_td			values multiplied by 255 and converted to integer, loss of precision.

	Parameters
		type  [Input]
			A pointer to a variant
		ucrgb  [Result]
			A pointer to a color to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_uchar, fz_type_get_rgb_uchar_ptr, 
		fz_type_get_rgb_float, fz_type_get_rgb_ushort

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_uchar_func)(
			fz_type_ptr		type,
			fz_rgb_uchar_td	*ucrgb
			);

/****************************************************************

	fz_type_set_rgb_ushort



	Parameters
		usrgb  [Input]
			A pointer to the color to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_ushort, fz_type_set_rgb_ushort_ptr, 
		fz_type_set_rgb_float, fz_type_set_rgb_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_ushort_func)(
			fz_rgb_ushort_td	*usrgb,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_ushort



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyz_td					x value multiplied by 65535.0 and copied to red, 
		y value multiplied by 65535.0 and copied to green, 
		z value multiplied by 65535.0 and copied to blue, loss of precision. Values clamped to range of 0 to 65535. 
		fz_xyzw_td					x value multiplied by 65535.0 and copied to red, 
		y value multiplied by 65535.0 and copied to green, 
		z value multiplied by 65535.0 and copied to blue, w lost, loss of precision. Values clamped to range of 0 to 65535. 
		fz_xyz_float_td			x value multiplied by 65535.0 and copied to red, 
		y value multiplied by 65535.0 and copied to green, 
		z value multiplied by 65535.0 and copied to blue, loss of precision. Values clamped to range of 0 to 65535. 
		fz_rgb_uchar_td			values scaled from 0 to 255 to 0 to 65535, no data lost. 
		fz_rgb_float_td			values multiplied by 65535 and converted to integer, loss of precision.

	Parameters
		type  [Input]
			A pointer to a variant
		usrgb  [Result]
			A pointer to a color to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_ushort, fz_type_get_rgb_ushort_ptr, 
		fz_type_get_rgb_float, fz_type_get_rgb_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_ushort_func)(
			fz_type_ptr		type,
			fz_rgb_ushort_td	*usrgb
			);

/****************************************************************

	fz_type_set_rgb_float



	Parameters
		frgb  [Input]
			A pointer to the color to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_float, fz_type_set_rgb_float_ptr, 
		fz_type_set_rgb_ushort, fz_type_set_rgb_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_float_func)(
			fz_rgb_float_td	*frgb,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_float



	Description
		This function performs the following data type conversions: 
		Variant Type			Conversion 
		fz_xyz_td					x value copied to red, 
		y value copied to green, 
		z value copied to blue, no data lost. 
		fz_xyzw_td					x value copied to red, 
		y value copied to green, 
		z value copied to blue, w lost. 
		fz_xyz_float_td			x value copied to red, 
		y value copied to green, 
		z value copied to blue, no data lost. 
		fz_rgb_uchar_td			values divided by 255.0, no data lost. 
		fz_rgb_ushort_td			values divided by 65535.0, no data lost.

	Parameters
		type  [Input]
			A pointer to a variant
		frgb  [Result]
			A pointer to a color to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_float, fz_type_get_rgb_float_ptr, 
		fz_type_get_rgb_ushort, fz_type_get_rgb_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_float_func)(
			fz_type_ptr		type,
			fz_rgb_float_td	*frgb
			);

/****************************************************************

	fz_type_set_uuid



	Parameters
		uuid  [Input]
			The uuid to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uuid, fz_type_set_uuid_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uuid_func)(
			fzrt_UUID_td	uuid,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uuid



	Parameters
		type  [Input]
			A pointer to a variant
		uuid  [Result]
			A pointer to a uuid to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uuid, fz_type_get_uuid_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uuid_func)(
			fz_type_ptr		type,
			fzrt_UUID_td	uuid
			);

/****************************************************************

	fz_type_set_string



	Parameters
		str  [Input]
			A pointer to the beginning of the string to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_string, fz_type_set_string_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_string_func)(
			char		*str,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_string



	Parameters
		type  [Input]
			A pointer to a variant
		str  [Result]
			A pointer to beginning of a string to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_string, fz_type_get_string_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_string_func)(
			fz_type_ptr	type,
			char		*str
			);

/****************************************************************

	fz_type_set_4char



	Parameters
		fchar  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_4char, fz_type_set_4char_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_4char_func)(
			fz_4char_td		*fchar,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_4char



	Parameters
		type  [Input]
			A pointer to a variant
		fchar  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_4char, fz_type_get_4char_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_4char_func)(
			fz_type_ptr		type,
			fz_4char_td		*fchar
			);

/****************************************************************

	fz_type_set_point



	Parameters
		pt  [Input]
			A pointer to the point to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_point, fz_type_set_point_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_point_func)(
			fzrt_point	*pt,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_point



	Parameters
		type  [Input]
			A pointer to a variant
		pt  [Result]
			A pointer to a point to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_point, fz_type_get_point_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_point_func)(
			fz_type_ptr	type,
			fzrt_point	*pt
			);

/****************************************************************

	fz_type_set_rect



	Parameters
		rect  [Input]
			A pointer to the rectangle to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rect, fz_type_set_rect_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rect_func)(
			fzrt_rect	*rect,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_rect



	Parameters
		type  [Input]
			A pointer to a variant
		rect  [Result]
			A pointer to a rectangle to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rect, fz_type_get_rect_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rect_func)(
			fz_type_ptr	type,
			fzrt_rect	*rect
			);


/****************************************************************

	fz_type_set_ptr



	Parameters
		ptr  [Input]
			A pointer to the pointer to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_ptr, fz_type_set_ptr_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_ptr_func)(
			void		**ptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ptr  [Result]
			A pointer to a pointer to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_ptr, fz_type_get_ptr_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_ptr_func)(
			fz_type_ptr	type,
			void		**ptr
			);

/****************************************************************

	fz_type_set_mat3x3



	Parameters
		mat  [Input]
			A pointer to the matrix to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_mat3x3, fz_type_set_mat3x3_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_mat3x3_func)(
			fz_mat3x3_td	*mat,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_mat3x3



	Parameters
		type  [Input]
			A pointer to a variant
		mat  [Result]
			A pointer to a matrix to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_mat3x3, fz_type_get_mat3x3_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_mat3x3_func)(
			fz_type_ptr		type,
			fz_mat3x3_td	*mat
			);

/****************************************************************

	fz_type_set_mat4x4



	Parameters
		mat  [Input]
			A pointer to the matrix to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_mat4x4, fz_type_set_mat4x4_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_mat4x4_func)(
			fz_mat4x4_td	*mat,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_mat4x4



	Parameters
		type  [Input]
			A pointer to a variant
		mat  [Result]
			A pointer to a matrix to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_mat4x4, fz_type_get_mat4x4_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_mat4x4_func)(
			fz_type_ptr		type,
			fz_mat4x4_td	*mat
			);

/****************************************************************

	fz_type_set_boolean_ptr



	Description
		TODO 
		Type conversions.

	Parameters
		bptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_boolean_ptr, fz_type_set_boolean

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_boolean_ptr_func)(
			fzrt_boolean	**bptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_boolean_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		bptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_boolean_ptr, fz_type_get_boolean

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_boolean_ptr_func)(
			fz_type_ptr		type,
			fzrt_boolean	**bptr
			);

/****************************************************************

	fz_type_set_char_ptr



	Parameters
		cptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_char_ptr, fz_type_set_char

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_char_ptr_func)(
			char		**cptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_char_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		cptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_char_ptr, fz_type_get_char

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_char_ptr_func)(
			fz_type_ptr	type,
			char		**cptr
			);

/****************************************************************

	fz_type_set_uchar_ptr



	Parameters
		ucptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uchar_ptr, fz_type_set_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uchar_ptr_func)(
			unsigned char	**ucptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uchar_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ucptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uchar_ptr, fz_type_get_uchar

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uchar_ptr_func)(
			fz_type_ptr		type,
			unsigned char	**ucptr
			);

/****************************************************************

	fz_type_set_short_ptr



	Parameters
		sptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_short_ptr, fz_type_set_short

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_short_ptr_func)(
			short		**sptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_short_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		sptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_short_ptr, fz_type_get_short

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_short_ptr_func)(
			fz_type_ptr	type,
			short		**sptr
			);

/****************************************************************

	fz_type_set_ushort_ptr



	Parameters
		usptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_ushort_ptr, fz_type_set_ushort

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_ushort_ptr_func)(
			unsigned short	**usptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_ushort_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		usptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_ushort_ptr, fz_type_get_ushort

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_ushort_ptr_func)(
			fz_type_ptr		type,
			unsigned short	**usptr
			);

/****************************************************************

	fz_type_set_int_ptr



	Parameters
		lptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_int_ptr, fz_type_set_int

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_int_ptr_func)(
			fzrt_int		**lptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_int_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		lptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_int_ptr, fz_type_get_int

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_int_ptr_func)(
			fz_type_ptr	type,
			fzrt_int		**lptr
			);

/****************************************************************

	fz_type_set_uint_ptr



	Parameters
		ulptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uint_ptr, fz_type_set_uint

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uint_ptr_func)(
			fzrt_unsigned_int	**ulptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uint_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ulptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uint_ptr, fz_type_get_uint

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uint_ptr_func)(
			fz_type_ptr		type,
			fzrt_unsigned_int	**ulptr
			);

/****************************************************************

	fz_type_set_float_ptr



	Parameters
		fptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_float_ptr, fz_type_set_float

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_float_ptr_func)(
			float		**fptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_float_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		fptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_float_ptr, fz_type_get_float

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_float_ptr_func)(
			fz_type_ptr	type,
			float		**fptr
			);

/****************************************************************

	fz_type_set_double_ptr



	Parameters
		dptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_double_ptr, fz_type_set_double

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_double_ptr_func)(
			double		**dptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_double_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		dptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_double_ptr, fz_type_get_double

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_double_ptr_func)(
			fz_type_ptr	type,
			double		**dptr
			);

/****************************************************************

	fz_type_set_xy_ptr



	Parameters
		xyptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy_ptr, fz_type_set_xy, 
		fz_type_set_xy_float, fz_type_set_xy_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_ptr_func)(
			fz_xy_td		**xyptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		xyptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy_ptr, fz_type_get_xy, 
		fz_type_get_xy_float, fz_type_get_xy_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_ptr_func)(
			fz_type_ptr	type,
			fz_xy_td		**xyptr
			);

/****************************************************************

	fz_type_set_xyz_ptr



	Parameters
		xyzptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz_ptr, fz_type_set_xyz, 
		fz_type_set_xyz_float, fz_type_set_xyz_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_ptr_func)(
			fz_xyz_td		**xyzptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyz_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		xyzptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz_ptr, fz_type_get_xyz, 
		fz_type_get_xyz_float, fz_type_get_xyz_float_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_ptr_func)(
			fz_type_ptr	type,
			fz_xyz_td		**xyzptr
			);

/****************************************************************

	fz_type_set_xyzw_ptr



	Parameters
		xyzwptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyzw_ptr, fz_type_set_xyzw

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyzw_ptr_func)(
			fz_xyzw_td		**xyzwptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyzw_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		xyzwptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyzw_ptr, fz_type_get_xyzw

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyzw_ptr_func)(
			fz_type_ptr	type,
			fz_xyzw_td		**xyzwptr
			);

/****************************************************************

	fz_type_set_xy_mm_ptr



	Parameters
		xymmptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy_mm_ptr, fz_type_set_xy_mm

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_mm_ptr_func)(
			fz_xy_mm_td	**xymmptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy_mm_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		xymmptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy_mm_ptr, fz_type_get_xy_mm

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_mm_ptr_func)(
			fz_type_ptr	type,
			fz_xy_mm_td	**xymmptr
			);

/****************************************************************

	fz_type_set_xyz_mm_ptr



	Parameters
		xyzmmptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz_mm_ptr, fz_type_set_xyz_mm

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_mm_ptr_func)(
			fz_xyz_mm_td	**xyzmmptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xyz_mm_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		xyzmmptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz_mm_ptr, fz_type_get_xyz_mm

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_mm_ptr_func)(
			fz_type_ptr	type,
			fz_xyz_mm_td	**xyzmmptr
			);

/****************************************************************

	fz_type_set_xy_float_ptr



	Parameters
		fxyptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xy_float_ptr, fz_type_set_xy_float, 
		fz_type_set_xy_ptr, fz_type_set_xy

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xy_float_ptr_func)(
			fz_xy_float_td	**fxyptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_xy_float_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		fxyptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xy_float_ptr, fz_type_get_xy_float, 
		fz_type_get_xy_ptr, fz_type_get_xy

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xy_float_ptr_func)(
			fz_type_ptr	type,
			fz_xy_float_td	**fxyptr
			);

/****************************************************************

	fz_type_set_xyz_float_ptr



	Parameters
		fxyzptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_xyz_float_ptr, fz_type_set_xyz_float, 
		fz_type_set_xyz_ptr, fz_type_set_xyz

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_xyz_float_ptr_func)(
			fz_xyz_float_td	**fxyzptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_xyz_float_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		fxyzptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_xyz_float_ptr, fz_type_get_xyz_float, 
		fz_type_get_xyz_ptr, fz_type_get_xyz

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_xyz_float_ptr_func)(
			fz_type_ptr		type,
			fz_xyz_float_td	**fxyzptr
			);

/****************************************************************

	fz_type_set_equ_ptr



	Parameters
		equptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_equ_ptr, fz_type_set_equ

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_equ_ptr_func)(
			fz_plane_equ_td		**equptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_equ_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		equptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_equ_ptr, fz_type_get_equ

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_equ_ptr_func)(
			fz_type_ptr	type,
			fz_plane_equ_td		**equptr
			);

/****************************************************************

	fz_type_set_rgb_uchar_ptr



	Parameters
		ucrgbptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_uchar_ptr, fz_type_set_rgb_uchar, 
		fz_type_set_rgb_float_ptr, fz_type_set_rgb_ushort_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_uchar_ptr_func)(
			fz_rgb_uchar_td	**ucrgbptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_uchar_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ucrgbptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_uchar_ptr, fz_type_get_rgb_uchar, 
		fz_type_get_rgb_float_ptr, fz_type_get_rgb_ushort_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_uchar_ptr_func)(
			fz_type_ptr		type,
			fz_rgb_uchar_td	**ucrgbptr
			);

/****************************************************************

	fz_type_set_rgb_ushort_ptr



	Parameters
		usrgbptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_ushort_ptr, fz_type_set_rgb_ushort, 
		fz_type_set_rgb_float_ptr, fz_type_set_rgb_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_ushort_ptr_func)(
			fz_rgb_ushort_td	**usrgbptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_ushort_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		usrgbptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_ushort_ptr, fz_type_get_rgb_ushort 
		fz_type_get_rgb_float_ptr, fz_type_get_rgb_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_ushort_ptr_func)(
			fz_type_ptr		type,
			fz_rgb_ushort_td	**usrgbptr
			);

/****************************************************************

	fz_type_set_rgb_float_ptr



	Parameters
		frgbptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rgb_float_ptr, fz_type_set_rgb_float 
		fz_type_set_rgb_ushort_ptr, fz_type_set_rgb_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rgb_float_ptr_func)(
			fz_rgb_float_td	**frgbptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_rgb_float_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		frgbptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rgb_float_ptr, fz_type_get_rgb_float 
		fz_type_get_rgb_ushort_ptr, fz_type_get_rgb_uchar_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rgb_float_ptr_func)(
			fz_type_ptr		type,
			fz_rgb_float_td	**frgbptr
			);

/****************************************************************

	fz_type_set_uuid_ptr



	Parameters
		uuidptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_uuid_ptr, fz_type_set_uuid

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_uuid_ptr_func)(
			fzrt_UUID_td	**uuidptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_uuid_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		uuidptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_uuid_ptr, fz_type_get_uuid

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_uuid_ptr_func)(
			fz_type_ptr		type,
			fzrt_UUID_td	**uuidptr
			);

/****************************************************************

	fz_type_set_string_ptr



	Parameters
		strptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_string_ptr, fz_type_set_string

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_string_ptr_func)(
			fz_string_td	**strptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_string_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		strptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_string_ptr, fz_type_get_string

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_string_ptr_func)(
			fz_type_ptr		type,
			fz_string_td	**strptr
			);

/****************************************************************

	fz_type_set_4char_ptr



	Parameters
		fcharptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_4char_ptr, fz_type_set_4char

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_4char_ptr_func)(
			fz_4char_td		**fcharptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_4char_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		fcharptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_4char_ptr, fz_type_get_4char

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_4char_ptr_func)(
			fz_type_ptr		type,
			fz_4char_td		**fcharptr
			);

/****************************************************************

	fz_type_set_point_ptr



	Parameters
		ptptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_point_ptr, fz_type_set_point

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_point_ptr_func)(
			fzrt_point	**ptptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_point_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ptptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_point_ptr, fz_type_get_point

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_point_ptr_func)(
			fz_type_ptr	type,
			fzrt_point	**ptptr
			);

/****************************************************************

	fz_type_set_rect_ptr



	Parameters
		rectptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_rect_ptr, fz_type_set_rect

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_rect_ptr_func)(
			fzrt_rect	**rectptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_rect_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		rectptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_rect_ptr, fz_type_get_rect

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_rect_ptr_func)(
			fz_type_ptr	type,
			fzrt_rect	**rectptr
			);

/****************************************************************

	fz_type_set_mat3x3_ptr



	Parameters
		matptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_mat3x3_ptr, fz_type_set_mat3x3

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_mat3x3_ptr_func)(
			fz_mat3x3_td	**matptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_mat3x3_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		matptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_mat3x3_ptr, fz_type_get_mat3x3

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_mat3x3_ptr_func)(
			fz_type_ptr		type,
			fz_mat3x3_td	**matptr
			);

/****************************************************************

	fz_type_set_mat4x4_ptr



	Parameters
		matptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_mat4x4_ptr, fz_type_set_mat4x4

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_mat4x4_ptr_func)(
			fz_mat4x4_td	**matptr,
			fz_type_ptr		type
			);

/****************************************************************

	fz_type_get_mat4x4_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		matptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_mat4x4_ptr, fz_type_get_mat4x4

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_mat4x4_ptr_func)(
			fz_type_ptr		type,
			fz_mat4x4_td	**matptr
			);

/****************************************************************

	fz_type_set_ptr_ptr



	Parameters
		ptrptr  [Input]
			A pointer to the array to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_ptr_ptr, fz_type_set_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_ptr_ptr_func)(
			void		**ptrptr,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_ptr_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		ptrptr  [Result]
			A pointer to an array to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_ptr_ptr, fz_type_get_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_ptr_ptr_func)(
			fz_type_ptr	type,
			void		**ptrptr
			);


/****************************************************************

	fz_type_set_enum



	Parameters
		lval  [Input]
			A pointer to the value to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_enum

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_enum_func)(
			fzrt_int		*lval,
			fz_type_ptr	type
			);

/****************************************************************

	fz_type_get_enum



	Parameters
		type  [Input]
			A pointer to a variant
		lval  [Result]
			A pointer to a value to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_enum

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_enum_func)(
			fz_type_ptr	type,
			fzrt_int		*lval
			);



/****************************************************************

	fz_type_set_map_plane



	Parameters
		mplane  [Input]
			A pointer to the map plane to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_map_plane

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_map_plane_func)(
			fz_map_plane_td	*mplane,
			fz_type_ptr			type
			);

/****************************************************************

	fz_type_get_map_plane



	Parameters
		type  [Input]
			A pointer to a variant
		mplane  [Result]
			A pointer to a map plane to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_map_plane

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_map_plane_func)(
			fz_type_ptr			type,
			fz_map_plane_td	*mplane
			);
/****************************************************************

	fz_type_set_map_plane_ptr



	Parameters
		map_planes  [Input]
			A pointer to an array of map planes.
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_map_plane_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_map_plane_ptr_func)(
			fz_map_plane_td	**map_planes,
			fz_type_ptr			type
			);

/****************************************************************

	fz_type_get_map_plane_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		map_planes  [Result]
			A pointer to an array of map planes.

	Availability	5.0.0.0


	See Also
		fz_type_set_map_plane_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_map_plane_ptr_func)(
			fz_type_ptr			type,
			fz_map_plane_td	**map_planes
			);



/****************************************************************

	fz_type_set_tag



	Parameters
		tag  [Input]
			A pointer to the tag to set
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_tag

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_tag_func)(
			fz_tag_td			*tag,
			fz_type_ptr			type
			);

/****************************************************************

	fz_type_get_tag



	Parameters
		type  [Input]
			A pointer to a variant
		tag  [Result]
			A pointer to a tag to be filled. Must be allocated by the caller.

	Availability	5.0.0.0


	See Also
		fz_type_set_tag

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_tag_func)(
			fz_type_ptr			type,
			fz_tag_td			*tag
			);
/****************************************************************

	fz_type_set_tag_ptr



	Parameters
		tags  [Input]
			A pointer to an array of tags.
		type  [Result]
			A pointer to a variant

	Availability	5.0.0.0


	See Also
		fz_type_get_tag_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_set_tag_ptr_func)(
			fz_tag_td			**tags,
			fz_type_ptr			type
			);

/****************************************************************

	fz_type_get_tag_ptr



	Parameters
		type  [Input]
			A pointer to a variant
		tags  [Result]
			A pointer to an array of tags.

	Availability	5.0.0.0


	See Also
		fz_type_set_tag_ptr

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_get_tag_ptr_func)(
			fz_type_ptr			type,
			fz_tag_td			**tags
			);




/****************************************************************

	fz_type_list_ptr


	Description
		Data structure to contain variable length arrays of data type fz_type_enum.

	Availability	5.0.0.0

 ****************************************************************/
typedef struct fz_type_list_td *fz_type_list_ptr;

/****************************************************************

	fz_type_list_init



	Description
		Allocates and initializes the list

	Parameters
		type  [Input]
			type of items
		list  [Result]
			type list

	Availability	5.0.0.0


	See Also
		fz_type_list_finit,fz_type_list_count, 
		fz_type_list_get_item,fz_type_list_add_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_init_func)(
	fz_type_enum 		type,
	fz_type_list_ptr 	*list
	);


/****************************************************************

	fz_type_init



	Description
		Allocates and initializes a fz_type_td structure

	Parameters
		type  [Result]
			type

	Availability	6.0.0.0


	See Also
		fz_type_finit

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_init_func)(
	fz_type_ptr 		*type
	);
	
/****************************************************************

	fz_type_finit



	Description
		Deallocates a fz_type_td structure. The type argument is returned as NULL.

	Parameters
		type  [Result]
			type

	Availability	6.0.0.0


	See Also
		fz_type_finit

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_finit_func)(
	fz_type_ptr 		*type
	);

/****************************************************************

	fz_type_list_finit



	Description
		Frees the list

	Parameters
		list  [Result]
			type list

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_count, 
		fz_type_list_get_item,fz_type_list_add_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_finit_func)(
	fz_type_list_ptr 	*list
	);

/****************************************************************

	fz_type_list_clear



	Description
		Clears the list

	Parameters
		list  [Input]
			type list

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count,fz_type_list_pre_allocate 
		fz_type_list_get_item,fz_type_list_add_item,fz_type_list_delete_item,

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_clear_func)(
	fz_type_list_ptr 	list
	);

/****************************************************************

	fz_type_list_pre_allocate



	Description
		Preallocates the list

	Parameters
		list  [Input]
			type list
		n  [Input]
			number of items

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count,fz_type_list_clear, 
		fz_type_list_get_item,fz_type_list_add_item,fz_type_list_delete_item,

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_pre_allocate_func)(
	fz_type_list_ptr 	list,
	fzrt_int 				n
	);

/****************************************************************

	fz_type_list_add_item



	Description
		Adds an item to the list

	Parameters
		list  [Input]
			type list
		data  [Input]
			item to be added

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count, 
		fz_type_list_get_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear,fz_type_list_insert_item

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_add_item_func)(
	fz_type_list_ptr 	list,
	fz_type_ptr 			data
	);

											
/****************************************************************

	fz_type_list_insert_item



	Description
		Inserts an item in the list at the given index, before the item that 
		existed there so that the item has the same index after insertion as 
		the indx parameter passed in.

	Parameters
		list  [Input]
			type list
		indx  [Input]
			index where item will be inserted
		data  [Input]
			item to be added

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count, 
		fz_type_list_get_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_insert_item_func)(
	fz_type_list_ptr 	list,
	fzrt_int				indx,
	fz_type_ptr 			data
	);
										

/****************************************************************

	fz_type_io



	Description
		Reads an fz_type_td from or writes a fz_type_td to file. Pointer 
		types, such as FZ_TYPE_INT_PTR, are not supported for io.

	Parameters
		iost  [Input]
			The IO stream.
		data  [Input]
			fz_type_td to be read/written

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_io_func)(
	fz_iost_ptr			iost,
	fz_type_ptr 			data
	);

/****************************************************************

	fz_type_list_count



	Description
		Gets total number of items in the list

	Parameters
		list  [Input]
			type list
		n  [Result]
			number of items

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit, 
		fz_type_list_get_item,fz_type_list_add_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_count_func)(
	fz_type_list_ptr 	list,
	fzrt_int 				*n
	);

/****************************************************************

	fz_type_list_get_item



	Description
		Gets an item from the list

	Parameters
		list  [Input]
			type list
		n  [Input]
			index
		data  [Result]
			nth item

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count, 
		fz_type_list_add_item,fz_type_list_delete_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_get_item_func)(
	fz_type_list_ptr	list,
	fzrt_int 				n,
	fz_type_ptr 			data
	);

/****************************************************************

	fz_type_list_delete_item



	Description
		Deletes an item from the list

	Parameters
		list  [Input]
			type list
		n  [Input]
			item to be removed

	Availability	5.0.0.0


	See Also
		fz_type_list_init,fz_type_list_finit,fz_type_list_count, 
		fz_type_list_get_item,fz_type_list_add_item, 
		fz_type_list_pre_allocate,fz_type_list_clear

 ****************************************************************/
typedef fzrt_error_td  (*fz_type_list_delete_item_func)(
	fz_type_list_ptr 	list,
	fzrt_int 				n
	);


/****************************************************************

	fz_tag_new



	Description
		Creates a new tag. The value of the tag is guaranteed to be unique from all other 
		tags ever created.

	Availability	5.0.0.0

 ****************************************************************/
typedef fz_tag_td  (*fz_tag_new_func) (
	void
	);

/****************************************************************

	fz_tag_are_equal



	Description
		Checks whether two tags have the same value. Returns TRUE, if that's the case and 
		FALSE otherwise.

	Parameters
		tag1  [Input]
			first tag to check
		tag2  [Input]
			second tag to check

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_boolean  (*fz_tag_are_equal_func) (
	fz_tag_td		*tag1,
	fz_tag_td		*tag2
	);
	
	
/****************************************************************

	fz_tag_is_NULL



	Description
		Checks whether a tag has the NULL value. A NULL tag usually indicates, that the tag 
		has no value. A NULL tag should never be associated with a valid entity. If it is, then 
		the entity is most likely not legal or has been deleted.

	Parameters
		tag  [Input]
			tag to check

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_boolean  (*fz_tag_is_NULL_func) (
	fz_tag_td		*tag
	);
	
/****************************************************************

	fz_tag_set_NULL



	Description
		Sets a tag to the NULL value.

	Parameters
		tag  [Input]
			tag to set to NULL

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_error_td  (*fz_tag_set_NULL_func) (
	fz_tag_td		*tag
	);

/****************************************************************

	fz_tag_copy



	Description
		Copies the value of one tag to another tag

	Parameters
		src_tag  [Input]
			tag to copy the value from
		dst_tag  [Input]
			tag to copy the value to

	Availability	5.0.0.0

 ****************************************************************/
typedef fzrt_error_td  (*fz_tag_copy_func) (
	fz_tag_td		*src_tag,
	fz_tag_td		*dst_tag
	);


/****************************************************************

	fz_type_fset


	FZ_TYPE_FSET_TYPE
		formZ variant data type function set UUID.

	FZ_TYPE_FSET_NAME
		formZ variant data type function set name.

	FZ_TYPE_FSET_VERSION
		formZ variant data type function set version.

	Description
		formZ Variant Data Type Function Set

	Availability	5.0.0.0

 ****************************************************************/


#define FZ_TYPE_FSET_TYPE		"\x1a\x7f\x19\x6c\xd2\x3a\x4f\xd1\xbc\xee\xc5\x9e\x1a\x8f\xe2\x6a"
#define FZ_TYPE_FSET_NAME		"formZ data type functions"
#define FZ_TYPE_FSET_VERSION	FZPL_VERS_MAKE(6,0,0,0)

typedef struct fz_type_fset
{
	fzpl_fset_prvt_data_td				prvt_data;

	fz_type_set_boolean_func			fz_type_set_boolean;
	fz_type_get_boolean_func			fz_type_get_boolean;
	fz_type_set_char_func				fz_type_set_char;
	fz_type_get_char_func				fz_type_get_char;
	fz_type_set_uchar_func				fz_type_set_uchar;
	fz_type_get_uchar_func				fz_type_get_uchar;
	fz_type_set_short_func				fz_type_set_short;
	fz_type_get_short_func				fz_type_get_short;
	fz_type_set_ushort_func				fz_type_set_ushort;
	fz_type_get_ushort_func				fz_type_get_ushort;
	fz_type_set_int_func				fz_type_set_int;
	fz_type_get_int_func				fz_type_get_int;
	fz_type_set_uint_func				fz_type_set_uint;
	fz_type_get_uint_func				fz_type_get_uint;
	fz_type_set_float_func				fz_type_set_float;
	fz_type_get_float_func				fz_type_get_float;
	fz_type_set_double_func				fz_type_set_double;
	fz_type_get_double_func				fz_type_get_double;
	fz_type_set_xy_func					fz_type_set_xy;
	fz_type_get_xy_func					fz_type_get_xy;
	fz_type_set_xyz_func				fz_type_set_xyz;
	fz_type_get_xyz_func				fz_type_get_xyz;
	fz_type_set_xyzw_func				fz_type_set_xyzw;
	fz_type_get_xyzw_func				fz_type_get_xyzw;
	fz_type_set_xy_mm_func				fz_type_set_xy_mm;
	fz_type_get_xy_mm_func				fz_type_get_xy_mm;
	fz_type_set_xyz_mm_func				fz_type_set_xyz_mm;
	fz_type_get_xyz_mm_func				fz_type_get_xyz_mm;
	fz_type_set_xy_float_func			fz_type_set_xy_float;
	fz_type_get_xy_float_func			fz_type_get_xy_float;
	fz_type_set_xyz_float_func			fz_type_set_xyz_float;
	fz_type_get_xyz_float_func			fz_type_get_xyz_float;
	fz_type_set_equ_func				fz_type_set_equ;
	fz_type_get_equ_func				fz_type_get_equ;
	fz_type_set_rgb_uchar_func			fz_type_set_rgb_uchar;
	fz_type_get_rgb_uchar_func			fz_type_get_rgb_uchar;
	fz_type_set_rgb_ushort_func			fz_type_set_rgb_ushort;
	fz_type_get_rgb_ushort_func			fz_type_get_rgb_ushort;
	fz_type_set_rgb_float_func			fz_type_set_rgb_float;
	fz_type_get_rgb_float_func			fz_type_get_rgb_float;
	fz_type_set_uuid_func				fz_type_set_uuid;
	fz_type_get_uuid_func				fz_type_get_uuid;
	fz_type_set_string_func				fz_type_set_string;
	fz_type_get_string_func				fz_type_get_string;
	fz_type_set_4char_func	 			fz_type_set_4char;
	fz_type_get_4char_func	  		 	fz_type_get_4char;
	fz_type_set_point_func				fz_type_set_point;
	fz_type_get_point_func				fz_type_get_point;
	fz_type_set_rect_func				fz_type_set_rect;
	fz_type_get_rect_func				fz_type_get_rect;
	fz_type_set_ptr_func				fz_type_set_ptr;
	fz_type_get_ptr_func				fz_type_get_ptr;

			
	fz_type_set_mat3x3_func				fz_type_set_mat3x3;
	fz_type_get_mat3x3_func				fz_type_get_mat3x3;
	fz_type_set_mat4x4_func				fz_type_set_mat4x4;
	fz_type_get_mat4x4_func				fz_type_get_mat4x4;

	fz_type_set_boolean_ptr_func		fz_type_set_boolean_ptr;
	fz_type_get_boolean_ptr_func		fz_type_get_boolean_ptr;
	fz_type_set_char_ptr_func	 	 	fz_type_set_char_ptr;
	fz_type_get_char_ptr_func	 	 	fz_type_get_char_ptr;
	fz_type_set_uchar_ptr_func	  	 	fz_type_set_uchar_ptr;
	fz_type_get_uchar_ptr_func	  	 	fz_type_get_uchar_ptr;
	fz_type_set_short_ptr_func	  	 	fz_type_set_short_ptr;
	fz_type_get_short_ptr_func	  		fz_type_get_short_ptr;
	fz_type_set_ushort_ptr_func	  		fz_type_set_ushort_ptr;
	fz_type_get_ushort_ptr_func	 		fz_type_get_ushort_ptr;
	fz_type_set_int_ptr_func	 		fz_type_set_int_ptr;
	fz_type_get_int_ptr_func	 		fz_type_get_int_ptr;
	fz_type_set_uint_ptr_func	 		fz_type_set_uint_ptr;
	fz_type_get_uint_ptr_func	 	 	fz_type_get_uint_ptr;
	fz_type_set_float_ptr_func	 	 	fz_type_set_float_ptr;
	fz_type_get_float_ptr_func	  	 	fz_type_get_float_ptr;
	fz_type_set_double_ptr_func	  	 	fz_type_set_double_ptr;
	fz_type_get_double_ptr_func	  	 	fz_type_get_double_ptr;
	fz_type_set_xy_ptr_func	 	  		fz_type_set_xy_ptr;
	fz_type_get_xy_ptr_func	 	  		fz_type_get_xy_ptr;
	fz_type_set_xyz_ptr_func	 		fz_type_set_xyz_ptr;
	fz_type_get_xyz_ptr_func	 		fz_type_get_xyz_ptr;
	fz_type_set_xyzw_ptr_func	 		fz_type_set_xyzw_ptr;
	fz_type_get_xyzw_ptr_func	 		fz_type_get_xyzw_ptr;
	fz_type_set_xy_mm_ptr_func	 	 	fz_type_set_xy_mm_ptr;
	fz_type_get_xy_mm_ptr_func	 	 	fz_type_get_xy_mm_ptr;
	fz_type_set_xyz_mm_ptr_func	 	 	fz_type_set_xyz_mm_ptr;
	fz_type_get_xyz_mm_ptr_func	 	 	fz_type_get_xyz_mm_ptr;
	fz_type_set_xy_float_ptr_func	 	fz_type_set_xy_float_ptr;
	fz_type_get_xy_float_ptr_func		fz_type_get_xy_float_ptr;
	fz_type_set_xyz_float_ptr_func		fz_type_set_xyz_float_ptr;
	fz_type_get_xyz_float_ptr_func		fz_type_get_xyz_float_ptr;
	fz_type_set_equ_ptr_func	 		fz_type_set_equ_ptr;
	fz_type_get_equ_ptr_func	 		fz_type_get_equ_ptr;
	fz_type_set_rgb_uchar_ptr_func	 	fz_type_set_rgb_uchar_ptr;
	fz_type_get_rgb_uchar_ptr_func	 	fz_type_get_rgb_uchar_ptr;
	fz_type_set_rgb_ushort_ptr_func	 	fz_type_set_rgb_ushort_ptr;
	fz_type_get_rgb_ushort_ptr_func	 	fz_type_get_rgb_ushort_ptr;
	fz_type_set_rgb_float_ptr_func	 	fz_type_set_rgb_float_ptr;
	fz_type_get_rgb_float_ptr_func		fz_type_get_rgb_float_ptr;
	fz_type_set_uuid_ptr_func	 		fz_type_set_uuid_ptr;
	fz_type_get_uuid_ptr_func	 		fz_type_get_uuid_ptr;
	fz_type_set_string_ptr_func	 		fz_type_set_string_ptr;
	fz_type_get_string_ptr_func	  	 	fz_type_get_string_ptr;
	fz_type_set_4char_ptr_func	 		fz_type_set_4char_ptr;
	fz_type_get_4char_ptr_func	  	 	fz_type_get_4char_ptr;
	fz_type_set_point_ptr_func	  	 	fz_type_set_point_ptr;
	fz_type_get_point_ptr_func	  	 	fz_type_get_point_ptr;
	fz_type_set_rect_ptr_func	  	 	fz_type_set_rect_ptr;
	fz_type_get_rect_ptr_func	  	 	fz_type_get_rect_ptr;
	fz_type_set_mat3x3_ptr_func	 		fz_type_set_mat3x3_ptr;
	fz_type_get_mat3x3_ptr_func	 		fz_type_get_mat3x3_ptr;
	fz_type_set_mat4x4_ptr_func	 		fz_type_set_mat4x4_ptr;
	fz_type_get_mat4x4_ptr_func	 		fz_type_get_mat4x4_ptr;
	fz_type_set_ptr_ptr_func	 		fz_type_set_ptr_ptr;
	fz_type_get_ptr_ptr_func	 		fz_type_get_ptr_ptr;
			

	fz_type_set_enum_func				fz_type_set_enum;
	fz_type_get_enum_func				fz_type_get_enum;
	
	fz_type_set_map_plane_func			fz_type_set_map_plane;
	fz_type_get_map_plane_func			fz_type_get_map_plane;
	fz_type_set_map_plane_ptr_func		fz_type_set_map_plane_ptr;
	fz_type_get_map_plane_ptr_func		fz_type_get_map_plane_ptr;

	
	fz_type_list_init_func				fz_type_list_init;
	fz_type_list_finit_func				fz_type_list_finit;
	fz_type_list_clear_func				fz_type_list_clear;
	fz_type_list_pre_allocate_func		fz_type_list_pre_allocate;
	fz_type_list_add_item_func			fz_type_list_add_item;
	fz_type_list_count_func				fz_type_list_count;
	fz_type_list_get_item_func			fz_type_list_get_item;
	fz_type_list_delete_item_func		fz_type_list_delete_item;
	fz_type_list_insert_item_func		fz_type_list_insert_item;
	
	
	fz_type_io_func					fz_type_io;
		
	fz_type_set_tag_func				fz_type_set_tag;
	fz_type_get_tag_func				fz_type_get_tag;
	fz_type_set_tag_ptr_func			fz_type_set_tag_ptr;
	fz_type_get_tag_ptr_func			fz_type_get_tag_ptr;
	
	fz_tag_new_func						fz_tag_new;
	fz_tag_are_equal_func				fz_tag_are_equal;
	fz_tag_is_NULL_func					fz_tag_is_NULL;
	fz_tag_set_NULL_func				fz_tag_set_NULL;
	fz_tag_copy_func					fz_tag_copy;
	
	
	fz_type_init_func				fz_type_init;
	fz_type_finit_func				fz_type_finit;

}  fz_type_fset;


#define fz_type_get_Rect fz_type_get_rect
#define fz_type_set_Rect fz_type_set_rect
#define fz_type_get_Point fz_type_get_point
#define fz_type_set_Point fz_type_set_point

#define fz_type_get_long fz_type_get_int
#define fz_type_get_ulong fz_type_get_uint
#define fz_type_get_long_ptr fz_type_get_int_ptr
#define fz_type_get_ulong_ptr fz_type_get_uint_ptr
#define fz_type_set_long fz_type_set_int
#define fz_type_set_ulong fz_type_set_uint
#define fz_type_set_long_ptr fz_type_set_int_ptr
#define fz_type_set_ulong_ptr fz_type_set_uint_ptr

	
#ifdef __cplusplus
}
#endif


#endif
