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

	formZ by autodessys, Inc.
	Copyright c 1994 autodessys, Inc.  All rights reserved.
	
	
	File :	fz_ffmt_api.h
	
	By :	David E. Kropp
	
	Created on :  		16 September 1994
	Last Updated on :  	16 September 1994
	
	Description :	
					
***************************************************************************/

#ifndef __FORMZ_FFMT_API_H
#define __FORMZ_FFMT_API_H 1


#include "fzrt_api.h"			/* TAH 10/24/03 */

//#include "fz_imag_api.h"
#include "fz_api.h"			/* TAH 10/17/03 */
#include "fz_objt_api.h"
#include "fz_iost_api.h"		/* TAH 09/30/03 */

#include "fzpl_plugin.h"

#include "fz_ffmt_type_api.h"
#include "fz_expt_vect_api.h"
#include "fz_symb_api.h"

#ifdef  __cplusplus
extern "C" {
#endif /* __cplusplus */


					



/* @doc EXTERNAL FZ_FFMT */
/********************************************************************************************************

	@module File Translator Manager

	@desc	File format functions.  File translators provide the means to import data into formZ and
			export data out of formZ to different file formats.  A translator can implement either a
			format import capability, export capability, or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt

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

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

	@module File Translator Callbacks

	@desc	File translator plugin callback functions.  File translators provide the means to import data into formZ and
			export data out of formZ.  A translator can implement either a
			format import capability, export capability or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt_cbak

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

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

	@module Structured File Translator

	@desc	Structured file translator plugin functions.  
			Structured file translators provide a means to import data into formZ and
			export data out of formZ.  A translator can implement either a
			format import capability, export capability or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt_str

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

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

	@module Structured File Translator Callbacks

	@desc	Structured file translator plugin callback functions.  
			Structured file translators provide a means to import data into formZ and
			export data out of formZ.  A translator can implement either a
			format import capability, export capability or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt_cbak_str

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

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

	@module Image File Translator Options

	@desc	Image file translator options plugin functions.  
			These are functions used to set and get image import and export options.

	@toc	ffmt_io

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

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

	@module Image File Translator Options Callbacks

	@desc	Image file translator options plugin callback functions.  
			These are functions used by formZ applications to set and get image import and export options.

	@toc	ffmt_cbak_io

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

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

	@module Image Vector File Translator

	@desc	Image vector file translator plugin functions.  
			Image vector file translators provide a means to import vector images into formZ and
			export vector images out of formZ.  A translator can implement either a
			format import capability, export capability or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt_iv

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

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

	@module Image Vector File Translator Callbacks

	@desc	Image vector file translator plugin callback functions.  
			Image vector file translators provide a means to import vector images into formZ and
			export vector images out of formZ.  A translator can implement either a
			format import capability, export capability or both.
			
			There are two types of translators, data (for geometry and associated data) and
			image (2d vector or bitmap data).

	@toc	ffmt_cbak_iv

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

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

	@module Image Bitmap File Translator

	@desc	Image bitmap file translator plugin functions.  
			Image bitmap file translators provide a means to import bitmap images into formZ and
			export bitmap images out of formZ.  A translator can implement either a
			format import capability, export capability or both.

	@toc	ffmt_ib

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

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

	@module Image Bitmap File Translator Callbacks

	@desc	Image bitmap file translator plugin callback functions.  
			Image bitmap file translators provide a means to import bitmap images into formZ and
			export bitmap images out of formZ.  A translator can implement either a
			format import capability, export capability or both.

	@toc	ffmt_cbak_ib

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

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

	@module Data Model File Translator

	@desc	Data model file translator plugin functions.  
			Data model file translators provide a means to import model data into formZ and
			export model data out of formZ.  A translator can implement either a
			format import capability, export capability or both.

	@toc	ffmt_dm

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

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

	@module Data Model File Translator Callbacks

	@desc	Data model file translator plugin callback functions.  
			Data model file translators provide a means to import model data into formZ and
			export model data out of formZ.  A translator can implement either a
			format import capability, export capability or both.

	@toc	ffmt_cbak_dm

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

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

	@module Unstructured File Translator Callbacks

	@desc	Unstructured file translator plugin callback functions.  
			Unstructured file translators  provide a means to import data into formZ and
			export data out of formZ.  A translator can implement either a
			format import capability, export capability or both.

			At this time, only model data can be imported or exported using an unstructured
			file translator.

	@toc	ffmt_cbak_unstr

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

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

	@module Unstructured File Translator

	@desc	Unstructured file translator plugin functions.  
			Unstructured file translators  provide a means to import data into formZ and
			export data out of formZ.  A translator can implement either a
			format import capability, export capability or both.

			At this time, only model data can be imported or exported using an unstructured
			file translator.

	@toc	ffmt_unstr

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


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

	@def
	
	@desc	Error Context for general file translator errors.
			
	@avail	5.0.0.0

	@toc	fz_iost

*********************************************************************************************************/
#define	FZ_FFMT_CONTEXT_ID 		10

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

	@enum
	
	@desc		General file translator errors.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_errors_enum
{
	FZ_FFMT_UNEXPECTED_EOF_ERROR		= 1,		/* @emem Unexpected or premature end of file detected. */
	FZ_FFMT_UNSUPPORTED_PRIM_ERROR		= 2,		/* @emem Unsupported object type. */
	FZ_FFMT_UNSUPPORTED_PARM_ERROR		= 3,		/* @emem Unsupported parameter. */
	FZ_FFMT_TEMP_FILE_LOAD_ERROR		= 4,		/* @emem Temporary file load failed.
													   @pavail 6.0.0.0 */
	FZ_FFMT_OBJ_NO_TXTR_ERROR			= 5,		/* @emem Object not textured.
													   @pavail 6.0.0.0 */
	FZ_FFMT_OBJ_NO_TXTR_UV_ERROR		= 5,		/* @emem Object is not mapped with uv coordinates.
													   @pavail 6.0.0.0 */
	
	FZ_FFMT_ERRORS_MAX
}  fz_ffmt_errors_enum;

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

	@enum
	
	@desc		Translator and file format attribute flags.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_format_attr_flags_enum
{
	FZ_FFMT_FORMAT_ATTR_DRAFTENABLED_BIT			= 0,		/* @emem This file format translator can open a file for drafting */
	FZ_FFMT_FORMAT_ATTR_VIEWABLE_BIT				= 1,		/* @emem A file format, other than 2d_bitmap, that can be seen in the viewer dialog */
	FZ_FFMT_FORMAT_ATTR_CANBETEXT_BIT				= 2,		/* @emem The format can have an ASCII representation */
	FZ_FFMT_FORMAT_ATTR_NEEDS_DEPTH_BIT				= 16,		/* @emem This bitmap format requires depth info for export */
	FZ_FFMT_FORMAT_ATTR_NEEDS_SURF_BIT				= 17,		/* @emem This bitmap format requires surface style info for export */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_PROCTXTR_BIT		= 18,		/* @emem This model file format translator can read/write procedural textures */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_HIERGRUP_BIT		= 19,		/* @emem This file format translator supports hierarchical grouping of objects */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_TXTRCTRL_BIT		= 20,		/* @emem This file format translator supports parametric texture mapping (cubic, cylindrical, etc.) */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_NURBS_BIT			= 21,		/* @emem This file format translator supports nurbs objects */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_MIXED_TOPO_BIT		= 22,		/* @emem This file format translator supports mixed topology objects (i.e. joined lines and volumes) 
																   @pavail 5.0.4.0 */
	FZ_FFMT_FORMAT_ATTR_SUPPORTS_SINGL_VOLM_BIT		= 23		/* @emem This file format translator only supports objects with a single volume.  This flag tells formZ
																		 that objects containing multiple volumes must be split into multiple objects
																   @pavail 5.0.4.0 */
}  fz_ffmt_format_attr_flags_enum;


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

	@enum
	
	@desc		Facetted object export method.  This corresponds to the
				Export Method - Plain Objects - Facetted menu on the Modeling Export
				Options dialog.  This determines how facetted data will be
				organized in a file.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_fact_meth_enum
{
 	FZ_FFMT_DATA_MODEL_WRITE_FACT_AS_OBJECT=0,		/* @emem Export as complete objects. */
	FZ_FFMT_DATA_MODEL_WRIT_FACT_AS_FACES,			/* @emem Export as individual faces. */
	FZ_FFMT_DATA_MODEL_WRIT_FACT_AS_POLYLINES,		/* @emem Export as a set of connected line segments. */
	FZ_FFMT_DATA_MODEL_WRIT_FACT_AS_LINES,			/* @emem Export as individual line segments. */
	FZ_FFMT_DATA_MODEL_WRIT_FACT_AS_POINTS,			/* @emem Export as individual points. */
	FZ_FFMT_DATA_MODEL_WRITE_FACT_AS_TRIMMED_SURF,	/* @emem Export each face as a trimmed nurbs surface. */

	FZ_FFMT_DATA_MODEL_WRIT_FACT_MAX
} fz_ffmt_data_model_write_fact_meth_enum;

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

	@enum
	
	@desc		Smooth data export method.  This corresponds to the
				Export Method - Plain Objects - Smooth menu on the Modeling Export
				Options dialog.  This determines how smooth (ACIS) data will be
				exported.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_smod_meth_enum
{
 	FZ_FFMT_DATA_MODEL_WRITE_SMOD_AS_FACT=0,			/* @emem Export as facetted objects. */
	FZ_FFMT_DATA_MODEL_WRITE_SMOD_AS_SOLID,				/* @emem Export as smooth objects. */
	FZ_FFMT_DATA_MODEL_WRITE_SMOD_AS_TRIMMED,			/* @emem Export as trimmed surfaces. formZ will create objects with one trimmed face each. */
	FZ_FFMT_DATA_MODEL_WRITE_SMOD_AS_TRIMMED_SELF,		/* @emem Export as trimmed surfaces. The translator will extract the trimmed faces itself. */

	FZ_FFMT_DATA_MODEL_WRITE_SMOD_MAX
} fz_ffmt_data_model_write_smod_meth_enum;

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

	@enum
	
	@desc		Smooth data to facetted options.  Options for converting smooth
				objects to facetted objects.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_fact_gen_enum
{
 	FZ_FFMT_DATA_MODEL_WRITE_FACT_GEN_DISPRES_USE_OBJT=0,			/* @emem Use each object's display resolution attributes to generate facets. */
	FZ_FFMT_DATA_MODEL_WRITE_FACT_GEN_DISPRES_OVERRIDE,				/* @emem Use custom display resolution to generate facets for all objects. */

	FZ_FFMT_DATA_MODEL_WRITE__FACT_GEN_MAX
} fz_ffmt_data_model_write_fact_gen_enum;

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

	@enum
	
	@desc		Controlled objects data export method.  This corresponds to the
				Controlled Objects menu on the Modeling Export Options dialog.
				This determines how controlled objects will be exported.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_cntl_meth_enum
{
 	FZ_FFMT_DATA_MODEL_WRITE_CNTL_AS_PLAIN=0,		/* @emem Export as plain objects. */
	FZ_FFMT_DATA_MODEL_WRITE_CNTL_AS_CNTL,			/* @emem Export as controlled objects. */

	FZ_FFMT_DATA_MODEL_WRITE_CNTL_MAX
} fz_ffmt_data_model_write_cntl_meth_enum;

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

	@enum
	
	@desc		Symbol data import method.  This corresponds to the
				radio buttons on the Symbol Import Options dialog.  This determines
				how symbols will be handled when they are imported.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_read_symb_meth_enum
{
	FZ_FFMT_DATA_READ_SYMB_METH_EXPLODE = 1,		/* @emem Explode symbols.  Do not add the symbol definitions to a library. */
	FZ_FFMT_DATA_READ_SYMB_METH_APPEND,				/* @emem Add symbol definitions to an existing symbol library. */
	FZ_FFMT_DATA_READ_SYMB_METH_NEWLIB				/* @emem Add symbol definitions to a new symbol library. */
} fz_ffmt_data_read_symb_meth_enum;


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

	@enum
	
	@desc		Symbol data import flags.  This corresponds to the check boxes
				under Explode Symbols on the Symbol Import Options dialog.  This 
				further defines how symbols will be handled when they are imported.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_read_symb_flags_enum
{
	FZ_FFMT_DATA_READ_SYMB_EXPLODEDREFDEFS_BIT		= 0,	/* @emem Import and explode referenced symbol definitions. */
	FZ_FFMT_DATA_READ_SYMB_EXPLODEDNONREFDEFS_BIT	= 1,	/* @emem Import and explode symbol definitions which are not referenced */
	FZ_FFMT_DATA_READ_SYMB_EXPLODEDGHOSTDEFS_BIT	= 2,	/* @emem Ghost Objects Derived From Definitions */
	FZ_FFMT_DATA_READ_SYMB_EXPLODEDGRUPDEFS_BIT		= 3		/* @emem Group Objects Derived From Definitions */
}  fz_ffmt_data_read_symb_flags_enum;

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

	@enum
	
	@desc		Specifies the location of texture maps.  This corresponds to the 
				radio buttons in the Imported File Texture Maps section of the
				Texture Map Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_tmap_loc_enum
{
	FZ_FFMT_DATA_MODEL_READ_TMAP_LOC_WITHAPPLICATION = 1,	/* @emem The source texture files are located in the application's (formZ's) folder. */
	FZ_FFMT_DATA_MODEL_READ_TMAP_LOC_WITHFILE,				/* @emem The source texture files are located in the model file's folder. */
	FZ_FFMT_DATA_MODEL_READ_TMAP_LOC_USERLOCATION			/* @emem The source texture files are located in a folder selected by the user. */
}  fz_ffmt_data_model_read_tmap_loc_enum;


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

	@enum
	
	@desc		Specifies the file format conversion method for texture maps.
				This corresponds to the radio buttons in the Project Texture Maps
				section of the Texture Map Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_tmap_convert_enum
{
	FZ_FFMT_DATA_MODEL_READ_TMAP_CONVERT_USE_ORIGINAL = 0,			/* @emem Use the source texture file.  Do not perform any format conversion. */
	FZ_FFMT_DATA_MODEL_READ_TMAP_CONVERT_COPY,						/* @emem Copy the source texture file from the source folder to the destination folder.  Do not perform any format conversion. */
	FZ_FFMT_DATA_MODEL_READ_TMAP_CONVERT_CONVERT						/* @emem Convert the source texture file to a format specified by the user and place the converted file in the destination folder. */
}  fz_ffmt_data_model_read_tmap_convert_enum;

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

	@enum
	
	@desc		Specifies what to do if a source texture map file can not be found.
				This corresponds to the radio buttons in the If Source Texture Not Found
				section of the Texture Map Import Options dialog.  When importing a file
				formZ will search the paths specified in the File Search Paths portion of
				the preferences dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_tmap_src_find_enum
{
	FZ_FFMT_DATA_MODEL_READ_TMAP_SRC_FIND_ASK = 0,		/* @emem Pop up a dialog asking the user to locate the texture map file. */
	FZ_FFMT_DATA_MODEL_READ_TMAP_SRC_FIND_USEDEFAULT		/* @emem Use the formZ default texture. */
}  fz_ffmt_data_model_read_tmap_src_find_enum;

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

	@enum
	
	@desc		Specifies various data model import option flags.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_opts_flags_enum
{
//	FZ_FFMT_DATA_MODEL_READ_OPTS_IMPORT_BIT				= 0,	/* emem When this bit is set, add imported data to an existing project. */
	FZ_FFMT_DATA_MODEL_READ_OPTS_ENGLISHUNIT_BIT			= 1,	/* @emem Import to English project */
	FZ_FFMT_DATA_MODEL_READ_OPTS_MERGESOLIDS_BIT			= 2,	/* @emem Merge solids */
	FZ_FFMT_DATA_MODEL_READ_OPTS_MERGESAMECOLOR_BIT		= 3,	/* @emem Merge surfaces of the same color */
	FZ_FFMT_DATA_MODEL_READ_OPTS_MERGESAMELAYER_BIT		= 4,	/* @emem Merge surfaces on the same layer */
	FZ_FFMT_DATA_MODEL_READ_OPTS_REMOVECOPLANAR_BIT		= 5,	/* @emem Remove coplanar faces */
//	FZ_FFMT_DATA_MODEL_READ_OPTS_CONSSURFSOLIDS_BIT		= 6,	/* CONSTRUCT SURFACE SOLIDS */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PRESERVECONTROLS_BIT	= 7,	/* @emem Preserve C-Mesh controls */
	FZ_FFMT_DATA_MODEL_READ_OPTS_OBJECTTEXT_BIT			= 8,	/* @emem Create object text */
	FZ_FFMT_DATA_MODEL_READ_OPTS_TEXTUREMAPS_BIT			= 9,	/* @emem Import texture maps */
//	FZ_FFMT_DATA_MODEL_READ_OPTS_LOG_BIT					= 10,	/* LOGED IMPORT */
//	FZ_FFMT_DATA_MODEL_READ_OPTS_EXTLOG_BIT				= 11,	/* EXTENDED LOG FILE */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PRESERVENURBS_BIT		= 12,	/* @emem 0=preserve C-Meshes/1=preserve Nurbs */	/* VAS 01/05/98 */
	FZ_FFMT_DATA_MODEL_READ_OPTS_FFMTUNITSENGLISH_BIT	= 13,	/* @emem If Forced=1: Metric=0/English=1 */
	FZ_FFMT_DATA_MODEL_READ_OPTS_SEP_OBJS_BY_VOLM_BIT	= 14,	/* @emem Some file formats can have several volumes represented as one object.
																		formZ normally represents each volume as an object.  If this flag
																		is set, formZ will separate each volume into a single object
																		at the end of the import. */
	FZ_FFMT_DATA_MODEL_READ_OPTS_SKIP_POINTS_BIT		= 15,	/* @emem Skip import of point objects. */
	FZ_FFMT_DATA_MODEL_READ_OPTS_SKIP_TEXT_BIT			= 16,	/* @emem Skip import of text objects. */
	FZ_FFMT_DATA_MODEL_READ_OPTS_MAKE_REF_OBJ_BIT		= 17,	/* @emem Merge all imported objects into a single reference object. */
	FZ_FFMT_DATA_MODEL_READ_OPTS_REF_PER_LAYER_BIT		= 18	/* @emem Make one reference object for each layer. */
}  fz_ffmt_data_model_read_opts_flags_enum;


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

	@enum
	
	@desc		Specifies base unit of project created from importing a file.  This corresponds to
				the formZ Units menu on the Modeling Import Options dialog and the Drafting
				Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_formz_units_enum
{
	FZ_FFMT_DATA_FROMZ_UNITS_INCHES = 0,		/* @emem formZ project base unit are in Inches. */
	FZ_FFMT_DATA_FROMZ_UNITS_FEET,				/* @emem formZ project base unit are in Feet. */
	FZ_FFMT_DATA_FROMZ_UNITS_MM=3,				/* @emem formZ project base unit are in Millimeters. */
	FZ_FFMT_DATA_FROMZ_UNITS_CM,				/* @emem formZ project base unit are in Centimeters. */
	FZ_FFMT_DATA_FROMZ_UNITS_DM,				/* @emem formZ project base unit are in Decimeters. */
	FZ_FFMT_DATA_FROMZ_UNITS_M					/* @emem formZ project base unit are in Meters. */
}  fz_ffmt_data_formz_units_enum;

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

	@enum
	
	@desc		Specifies units of data in a file.    This corresponds to
				the format Units menu on the Modeling Import Options dialog and the Drafting
				Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_file_units_enum
{
	FZ_FFMT_DATA_FILE_UNITS_FILE = 0,		/* @emem The file's units are specified in the file. */
	FZ_FFMT_DATA_FILE_UNITS_ASINFMZ,		/* @emem The file's units are the same as the project's base unit. */
	FZ_FFMT_DATA_FILE_UNITS_INCHES=3,		/* @emem The file's units are Inches. */
	FZ_FFMT_DATA_FILE_UNITS_FEET,			/* @emem The file's units are Feet. */
	FZ_FFMT_DATA_FILE_UNITS_MM=6,			/* @emem The file's units are Millimeters. */
	FZ_FFMT_DATA_FILE_UNITS_CM,				/* @emem The file's units are Centimeters. */
	FZ_FFMT_DATA_FILE_UNITS_DM,				/* @emem The file's units are Decimeters. */
	FZ_FFMT_DATA_FILE_UNITS_M				/* @emem The file's units are Meters. */
}  fz_ffmt_data_file_units_enum;

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

	@enum
	
	@desc		Specifies units for file export.  All positional data will
				be scaled by the conversion factor from formZ's project working
				units to the units specified.

	@avail		6.1.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_write_units_enum
{
	FZ_FFMT_DATA_WRITE_UNITS_FZPROJ = 0,		/* @emem Export using formZ project working units. */
	FZ_FFMT_DATA_WRITE_UNITS_INCHES,			/* @emem Export units are Inches. */
	FZ_FFMT_DATA_WRITE_UNITS_FEET,				/* @emem Export units are Feet. */
	FZ_FFMT_DATA_WRITE_UNITS_MM=4,				/* @emem Export units are Millimeters. */
	FZ_FFMT_DATA_WRITE_UNITS_CM,				/* @emem Export units are Centimeters. */
	FZ_FFMT_DATA_WRITE_UNITS_DM,				/* @emem Export units are Decimeters. */
	FZ_FFMT_DATA_WRITE_UNITS_M					/* @emem Export units are Meters. */
}  fz_ffmt_data_write_units_enum;


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

	@enum
	
	@desc		Specifies whether data is read into a model project or a draft project.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_read_meth_enum
{
	FZ_FFMT_DATA_READ_METH_ASMODEL = 0,		/* @emem import data into a model project. */
	FZ_FFMT_DATA_READ_METH_ASDRAFT			/* @emem import data into a draft project. */
}  fz_ffmt_data_read_meth_enum;

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

	@enum
	
	@desc		Specifies the import grouping method.  Some file formats store model
				data hierarchically.  The data can be imported without preserving the
				hierarchy or representing the hierarchy as groups or layers in formZ.
				This corresponds to the Import Grouping menu in the Import As Modeling
				Objects section of the Modeling Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_grup_meth_enum
{
	FZ_FFMT_DATA_MODEL_READ_GRUP_METH_NOGROUPS = 1,		/* @emem Don't create groups on import. */
	FZ_FFMT_DATA_MODEL_READ_GRUP_METH_ASGROUPS,			/* @emem Preserve the hierarchy as groups. */
	FZ_FFMT_DATA_MODEL_READ_GRUP_METH_ASLAYERS			/* @emem Preserve the hierarchy as layers. */
}  fz_ffmt_data_model_read_grup_meth_enum;

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

	@enum
	
	@desc		Specifies the import color method.  This corresponds to the 
				Color menu of the Attributes section of the Modeling Import
				Options dialog.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_read_color_meth_enum
{
	FZ_FFMT_READ_COLOR_METH_CURRENTCOLOR = 1,	/* @emem Assign all objects' colors to the currently selected color.
														This option is only valid when Add to Project on the Import
														dialog is selected. */
	FZ_FFMT_READ_COLOR_METH_FILECOLOR			/* @emem Assign object's colors to colors specified in the file. */
}  fz_ffmt_read_color_meth_enum;

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

	@enum
	
	@desc		Specifies various data model export option flags.  These flags correspond to various
				check boxes and radio buttons on the Modeling Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_opts_flags_enum
{
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_BINARY_BIT				= 0,		/* @emem If TRUE, write as a binary file. Otherwise, write as an ascii text file. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_GROUPSASFILES_BIT			= 5,		/* @emem If TRUE, write each export group to a separate file.  Otherwise, write all groups to one file. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_VISIBLELAYERSONLY_BIT		= 6,		/* @emem If TRUE, only export visible layers.  Otherwise, export all layers. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_DOUBLEREPRESENTATION_BIT	= 7,		/* @emem Set to TRUE by the translator if it needs to export both decomposed and undecomposed versions of geometry. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_REMOVEHOLES_BIT			= 8,		/* @emem If TRUE, Additional segments will be added to faces to connect holes to the face edges.  Thus, the
																					exported faces will not have any holes. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_SUBDIVIDECONCAVEFACES_BIT	= 9,		/* @emem If TRUE, Any concave faces will be split until no concave faces remain. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_TRIANGULATEFACES_BIT		= 10,		/* @emem If TRUE, Faces will be triangulated as specified by the decomposition options. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_QUADULATEFACES_BIT			= 11,		/* @emem Set to TRUE by the translator if the file format requires that all faces have 4 or fewer vertices. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PRESERVEFACERMTL_BIT		= 12,		/* @emem If TRUE and a face has a surface style different from the object's surface style, the face will keep its surface style.
																					Otherwise, the face is assigned the object's surface style. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_INCLUDENORMALS_BIT			= 13,		/* @emem If TRUE, normals are computed for each face and vertex. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_FIXSMOOTHSHADING_BIT		= 14,		/* @emem If TRUE, normals of vertices shared by faces are averaged to the same direction as fzrt_int as the angle between
																					the two face normals is greater than that specified by the angle option.  Otherwise, the vertex normals are
																					assigned to the face normals. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_TEXTUREMAPS_BIT			= 15,		/* @emem If TRUE, texture maps are exported and vertex uv coordinates are computed. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PRERENDEREDMAPS_BIT		= 17,		/* @emem If TRUE, procedural textures are rendered to bitmap images for each face. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PRESERVESMOD_ALL_BIT		= 19,		/* @emem Set to TRUE by the translator if it needs to export facetted data as ACIS (smooth) entities. */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_CONVT_TXTR_UY_2_FLAT_BIT	= 20,		/* @emem Set to TRUE by the translator if it is not able to export texture uv coordinate mappings.  This tells formZ to convert uv mappings to flat mappings when exporting rendered textures.
																 		   @pavail 6.0.0.0 */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PICKED_ONLY_BIT			= 21,		/* @emem If TRUE, Export picked objects only.  Otherwise, export all objects.
																 		   @pavail 6.0.0.0 */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_HIQUALSMOOTH_BIT			= 31,		/* @emem If TRUE, normals of vertices shared by faces are averaged to the same direction as fzrt_int as the angle between
																		 the two face normals is greater than that specified by the angle option.  Otherwise, the vertex normals are
																		 assigned to the face normals. */
}  fz_ffmt_data_model_write_opts_flags_enum;

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

	@enum
	
	@desc		Specifies text file line termination characters.  Different platforms
				store text files in slightly different ways.  The biggest difference is
				the code used to signify the end of a line.  This specifies which
				platform's line termination to use when writing ascii text files.
				This corresponds to the Platform menu on the Modeling Export Options
				and the image Export Options dialogs.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_write_nl_meth_enum
{
	FZ_FFMT_WRITE_NL_METH_CR = 1,		/* @emem Use Macintosh line termination ('\r' = 0xd) */
	FZ_FFMT_WRITE_NL_METH_CRLF,			/* @emem Use Windows line termination ('\r\n' = 0xda) */
	FZ_FFMT_WRITE_NL_METH_LF			/* @emem Use Unix line termination ('\n' = 0xa) */
}  fz_ffmt_write_nl_meth_enum;	


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

	@enum
	
	@desc		Specifies the export grouping method.  Some file formats store model
				data hierarchically.  A file's hierarchy can be generated from formZ's
				hierarchy.  This corresponds to the Grouping Method menu on the
				Modeling Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_grup_meth_enum
{
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_NOGROUPING = 1,	/* @emem Create no hierarchy in the exported file. */
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYOBJECT,			/* @emem Create a separate entry in the file's hierarchy for each object. */
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYCOLOR,			/* @emem Create an entry in the file's hierarchy for each color and group objects by their color. */
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYLAYER,			/* @emem Create an entry in the file's hierarchy for each layer and group objects by their layer. */
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPFLAT,		/* @emem Create an entry in the file's hierarchy for each group and group objects by their formZ group.
																 This method ignores any nesting of groups. */
	FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPHIER		/* @emem Create an entry in the file's hierarchy for each group and group objects by their formZ group.
																 This method does not ignore nesting of groups. */
}  fz_ffmt_data_model_write_grup_meth_enum;


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

	@enum
	
	@desc		Specifies how symbols should be exported.  This corresponds to the 
				radio buttons on the Symbol Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_write_symb_meth_enum
{
	FZ_FFMT_DATA_WRITE_SYMB_METH_SYMEXPLODE = 1,	/* @emem Explode all symbols prior to exporting. */
	FZ_FFMT_DATA_WRITE_SYMB_METH_SYMREFERENCED,		/* @emem Do not explode symbols, but write only referenced symbol definitions. */
	FZ_FFMT_DATA_WRITE_SYMB_METH_SYMALL				/* @emem Do not explode symbols.  Write all symbol definitions. */
}  fz_ffmt_data_write_symb_meth_enum;

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

	@enum
	
	@desc		Transform Options flags.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_tform_opts_flags_enum
{
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_FLIPX_BIT				= 0,	/* @emem x axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_SWAPYZ_BIT				= 1,	/* @emem yz axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_FLIPY_BIT				= 2,	/* @emem y axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_SWAPXZ_BIT				= 3,	/* @emem xz axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_FLIPZ_BIT				= 4,	/* @emem z axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_SWAPXY_BIT				= 5,	/* @emem xy axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_SCALE_BIT				= 6,	/* @emem use scaling parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ROTATE_BIT				= 7,	/* @emem use rotation parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_TRANSLATE_BIT			= 8,	/* @emem use translation parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_SCALELOCK_BIT			= 9,	/* @emem allow only uniform scaling. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_NORMALSOUTWARD_BIT		= 11,	/* @emem inverse normals. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_INVERSEFACES_BIT		= 13	/* @emem inverse face direction. */
}  fz_ffmt_data_model_tform_opts_flags_enum;

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

	@enum
	
	@desc		Transform Options enable flags.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_tform_iface_opts_flags_enum
{
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLEFLIPX_BIT			= 0,	/* @emem enable x axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLESWAPYZ_BIT			= 1,	/* @emem enable yz axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLEFLIPY_BIT			= 2,	/* @emem enable y axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLESWAPXZ_BIT			= 3,	/* @emem enable xz axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLEFLIPZ_BIT			= 4,	/* @emem enable z axis is flipped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLESWAPXY_BIT			= 5,	/* @emem enable xy axes are swapped. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLESCALE_BIT			= 6,	/* @emem enable use scaling parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLEROTATE_BIT			= 7,	/* @emem enable use rotation parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLETRANSLATE_BIT		= 8,	/* @emem enable use translation parameters. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLESCALELOCK_BIT		= 9,	/* @emem enable allow only uniform scaling. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLENORMALSOUTWARD_BIT	= 10,	/* @emem enable inverse normals. */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_ENABLEINVERSEFACES_BIT		= 12	/* @emem enable inverse face direction. */
}  fz_ffmt_data_model_tform_iface_opts_flags_enum;

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

	@enum
	
	@desc		Transform direction.  formZ stores one transform instance for import
				and export.  The import transform is simply the inverse of the export
				transform.  This specifies whether the transform is defines as an import
				transform or an export transform.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_tform_dir_enum
{
	FZ_FFMT_DATA_MODEL_TFORM_DIR_ISEXPORT = 1,		/* @emem Transform is defined for export. */
	FZ_FFMT_DATA_MODEL_TFORM_DIR_ISIMPORT			/* @emem Transform is defined for import. */
}  fz_ffmt_data_model_tform_dir_enum;

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

	@enum
	
	@desc		Enable flags for the translator's "Options..." button.  This is the button on the
				Import/Export standard file open dialog.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_opts_init_flags_enum
{
	FZ_FFMT_OPTS_INIT_HAS_READ_OPTS_BIT			= 0,	/* @emem Enable the "Options..." button for Import. */
	FZ_FFMT_OPTS_INIT_HAS_WRITE_OPTS_BIT		= 8		/* @emem Enable the "Options..." button for Export. */
}  fz_ffmt_opts_init_flags_enum;

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

	@enum
	
	@desc		Specifies whether an image is read into a model project or a draft project.
				If read into a draft project, specifies whether the image is read as a draft
				image or as draft elements (for vector images only).

	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_read_meth_enum
{
	FZ_FFMT_IMAGE_READ_METH_ASMODEL = 1,		/* @emem Import to a modeling project */
	FZ_FFMT_IMAGE_READ_METH_ASDRAFTELEMS,	/* @emem Import to drafting as elements */
	FZ_FFMT_IMAGE_READ_METH_ASDRAFTBITMAP	/* @emem Import to drafting as one single bitmap */
} fz_ffmt_image_read_meth_enum;

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

	@enum
	
	@desc		Draft image import flags.  These flags correspond to the check boxes on
				the Image As Draft Image section of the image Import Options dialog.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_image_read_opts_flags_enum
{
	FZ_FFMT_IMAGE_READ_OPTS_ORIGINALSIZE_BIT	= 2,	/* @emem Keep Original Size. */
	FZ_FFMT_IMAGE_READ_OPTS_ORIGPROPORTIONS_BIT	= 3,	/* @emem Keep Proportional. */
	FZ_FFMT_IMAGE_READ_OPTS_STOREINPROJECT_BIT	= 4		/* @emem Store Image In Project. */
}  fz_ffmt_image_read_opts_flags_enum;

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

	@enum
	
	@desc		Image export option flags.  This corresponds to the check boxes
				on the image Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_write_opts_flags_enum
{
	FZ_FFMT_IMAGE_WRITE_OPTS_BINARY_BIT			= 0,	/* @emem If TRUE, write the file as a binary file; otherwise, write the file as an ascii text file. */
	FZ_FFMT_IMAGE_WRITE_OPTS_PREVIEW_BIT			= 1,	/* @emem Include a preview image in the file. "Include Preview" */
	FZ_FFMT_IMAGE_WRITE_OPTS_BACKGROUND_BIT		= 2,	/* @emem For vector images, write a background element. "Include Background" */
	FZ_FFMT_IMAGE_WRITE_OPTS_TEXTASPATHS_BIT		= 3		/* @emem For vector images, write text as vector paths.
																		This allows text to be exported with the correct geometry
																		without relying on the presence of a specific font. "Drafting Text As Paths" */
}  fz_ffmt_image_write_opts_flags_enum;

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

	@enum
	
	@desc		Image file export method (vector or bitmap).  This corresponds to the 
				Export As Image Map and Export as Vector/Polygons radio buttons on the
				image Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_write_meth_enum {
	FZ_FFMT_IMAGE_WRITE_METH_ASVECTOR = 1,	/* @emem Export as vector */
	FZ_FFMT_IMAGE_WRITE_METH_ASBITMAP		/* @emem Export as bitmap */
} fz_ffmt_image_write_meth_enum;

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

	@enum
	
	@desc		Modeling export to image line weights.  This corresponds to the
				Line Weight menu in the Image Options section of the image
				Export Options dialog.  This corresponds to the Line Weight
				menu on the image Export Options dialog.

	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_vect_modl_line_weight_enum {
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_HAIRLINE = 1,		/* @emem Hair Line */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_HALFPOINT,			/* @emem 0.5 Point */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_1POINT,				/* @emem 1 Point */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_1HALFPOINTS,			/* @emem 1.5 Points */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_2POINTS,				/* @emem 2 Points */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_3POINTS,				/* @emem 3 Points */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_4POINTS,				/* @emem 4 Points */
	FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_5POINTS				/* @emem 5 Points */
} fz_ffmt_image_vect_modl_line_weight_enum;


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

	@enum
	
	@desc		Export options dialog item enable flags.  These flags control the enable
				states of items in the Modeling Export Options and the Draft Export Options 
				dialog common sections.  These flags should not be confused with the values
				of the items.  They only control the enable state of the items.

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_iface_opts_flags_enum
{
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEUNITS_BIT					= 0,		/* @emem Enable the Units menu. 
																						@pavail 6.1.0.0 */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEFILETYPE_BIT				= 1,		/* @emem Enable the File Type menu. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLELINETERMINATION_BIT		= 4,		/* @emem Enable the Platform menu. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_GROUPINGMETHOD_BIT				= 5,		/* @emem Enable the Grouping Method menu. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLESEPARATEFILES_BIT			= 6,		/* @emem Enable the Separate Files check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLESYMBOLOPTS_BIT			= 11,		/* @emem Enable the Symbol Options... button. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLETRANSFORM_BIT				= 12,		/* @emem Enable the Transform... button. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEVISIBLELAYERS_BIT			= 13,		/* @emem Enable the Visible Layers Only check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLECONNECTHOLES_BIT			= 14,		/* @emem Enable the Connect Holes To Face Edges check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLESUBDIVIDECONCAVES_BIT		= 15,		/* @emem Enable the Subdivide Concave Faced check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLETRIANGULATE_BIT			= 16,		/* @emem Enable the Triangulate Faced check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEPRESERVEFACECOLORS_BIT	= 17,		/* @emem Enable the Preserve Face Colors check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEINCLUDENORMALS_BIT		= 18,		/* @emem Enable the Include Normals check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEFIXSMOOTHSHADING_BIT		= 19,		/* @emem Enable the Fix Smooth Shading check box. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEANGLE_BIT					= 20,		/* @emem Enable the Angle text edit. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLETEXTUREMAPS_BIT			= 22,		/* @emem Enable the Textures menu and Options... button. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLETRIANGWHICH_BIT			= 23,		/* @emem Enable the Non Planar Faces Only and the Triangulate All Faces radio buttons on the Triangulate Options dialog. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLETRIANGSTRICT_BIT			= 24,		/* @emem Enable the Strict Planarity Test check box on the Triangulate Options dialog. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEPICKEDONLY_BIT			= 25,		/* @emem Enable the Picked Objects Only check box.  This is enabled by default. */
	FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEHIQUALSMOOTH_BIT			= 26,		/* @emem Enable the High Quality Smooth Shading check box. */
}  fz_ffmt_data_model_write_iface_opts_flags_enum;


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

	@enum
	
	@desc		Export Units menu item enable flags.  These flags are used when a file
				format contains the units of the data.  Typically the units specification
				within a file will be a limited set of units.  These flags are used to
				tell formZ which of formZ's supported units are supported by the file
				format.  By default, all items of a menu are enabled.  These flags only
				need to be set when the FZ_FFMT_DATA_MODEL_WRITE_IFACE_OPTS_ENABLEUNITS_BIT
				is set and a subset of formZ's supported units are supported by the file
				format.  These flags are set by calling fz_ffmt_data_model_write_opts_units_menu_set_enable_flags;
				typically from the translator's fz_ffmt_cbak_data_model_write_opts_flags callback
				function.  This menu should not be enabled if the translator implements the
				fz_ffmt_cbak_data_model_write_units_conv callback function.  If this function
				is implemented, it is up to the translator to handle its own units selection.

	@avail		6.1.0.0
	
	@see		<auto>

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_iface_units_menu_enable_flags_enum
{
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEFZPROJ_BIT		= 0,		/* @emem Enable the Inches Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEINCHES_BIT		= 1,		/* @emem Enable the Inches Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEFFEET_BIT		= 2,		/* @emem Enable the Feet Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEMM_BIT			= 3,		/* @emem Enable the Millimeters Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLECM_BIT			= 4,		/* @emem Enable the Centimeters Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEDM_BIT			= 5,		/* @emem Enable the Decimeters Units menu item. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEM_BIT			= 6,		/* @emem Enable the Meters Units menu item. */
}  fz_ffmt_iface_units_menu_enable_flags_enum;

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

	@enum
	
	@desc		Import options dialog item enable flags.  These flags control the enable
				states of items on the Modeling Import Options common section.  These flags
				should not be confused with the values of the items.  They only controls the
				enable state of the items.

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_iface_opts_flags_enum
{
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLETFORM_BIT					= 0,		/* @emem Enable the Transformation... button. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEFORMZUNITS_BIT				= 1,		/* @emem Enable the formZ Units menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLETEXTOPTS_BIT				= 2,		/* @emem Enable the Text Options... button. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEFFMTUNITS_BIT				= 3,		/* @emem Enable the Format Units menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLESYMBOPTS_BIT				= 4,		/* @emem Enable the Symbol Options... button. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEIMPORTGROUPING_BIT			= 6,		/* @emem Enable the Import Grouping menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_INENABLECMESHESCCURVES_BIT		= 8,		/* @emem Enable the Smooth Objects menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEOBJECTTEXT_BIT				= 9,		/* @emem Enable the Create Object Text From Text Entities check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEDISPRES_BIT				= 10,		/* @emem Enable the Display Resolution... button. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLECONSTRUCT3DSOLIDS_BIT		= 11,		/* @emem Enable the Construct 3D Solids check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLESAMECOLOR_BIT				= 12,		/* @emem Enable the Same Color Surfaces check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLESAMELAYER_BIT				= 13,		/* @emem Enable the Same Layer Surfaces check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEJOINCOPLANAR_BIT			= 14,		/* @emem Enable the Join Adjacent Coplanar Faced check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLECOLOR_BIT					= 17,		/* @emem Enable the Color menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEIMPORTTEXTUREMAPS_BIT		= 18,		/* @emem Enable the Import Texture Maps check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLETEXTUREOPTS_BIT			= 19,		/* @emem Enable the Texture Options... button. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_READ_SUPPORTSFROMFILE_BIT		= 26,		/* @emem Enable the From File menu item on the Format Units menu. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEPRESERVENURBS_BIT			= 27,		/* @emem Enable the Preserve Nurbz check box. */
	FZ_FFMT_DATA_MODEL_READ_IFACE_OPTS_ENABLEPARAMETRIC_BIT				= 28		/* @emem Enable the ametric check box. */
}  fz_ffmt_data_model_read_iface_opts_flags_enum;

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

	@enum
	
	@desc		Image import options dialog item enable flags.  These flags control the enable
				states of items in the image Import Options dialog common sections.  These flags
				should not be confused with the values of the items.  They only controls the enable
				state of the items.

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_read_iface_opts_flags_enum
{
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEIMPORTASMODELING_BIT			= 0,		/* @emem Enable the Import Model radio button on the Standard File Open dialog. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEIMPORTASDRAFTELEMENTS_BIT	= 1,		/* @emem Enable the Import As Drafting Elements section of the draft Import Options dialog. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEIMPORTASDRAFTBITMAP_BIT		= 2,		/* @emem Enable the Import As Drafting Image section of the draft Import Options dialog. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEMODELSCALEFACTOR_BIT			= 3,		/* @emem Enable the Scale Factor X and Y text edits for Import As Modeling. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEMODELCOLOR_BIT				= 5,		/* @emem Enable the Color menu for Import As Modeling. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEDRAFTSCALEFACTOR_BIT			= 6,		/* @emem Enable the Scale Factor X and Y text edits for Import As Drafting Elements. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEPLOTSCALEFACTOR_BIT			= 7,		/* @emem Enable the Plot Scale text edit for Import As Drafting Elements. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEDRAFTCOLOR_BIT				= 9,		/* @emem Enable the Color menu for Import As Drafting Elements. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEORIGINALSIZE_BIT				= 10,		/* @emem Enable the Keep Original Size check box and the Image Size Width and Height text edits for Import As Drafting Image. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLEPROPORTIONS_BIT				= 11,		/* @emem Enable the Keep Proportional check box Import As Drafting Image. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLESTOREINPROJECT_BIT			= 12,		/* @emem Enable the Store Image In Project check box for Import As Drafting Image. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_DISPRES_CURV_BIT					= 13,		/* @emem Enable the Display Resolution... button for Import As Modeling. */
	FZ_FFMT_IMAGE_READ_IFACE_OPTS_ENABLETEXTOPTS_BIT				= 14		/* @emem Enable the Text Options... button.
															  					   @pavail 5.5.0.0 */
}  fz_ffmt_image_read_iface_opts_flags_enum;

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

	@enum
	
	@desc		Image export options dialog item enable flags.  These flags control the enable
				states of items in the image Export Options dialog common sections.  These flags
				should not be confused with the values of the items.  They only controls the enable
				state of the items.

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_io

*************************************************************************/
typedef enum fz_ffmt_image_write_iface_opts_flags_enum
{
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLEPREVIEW_BIT				= 0,		/* @emem The Include Preview check box. */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLEBACKGROUND_BIT			= 1,		/* @emem The Include Background check box. */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLEPLATFORM_BIT			= 3,		/* @emem The Platform menu. */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLEASBITMAP_BIT			= 4,		/* @emem The Export As Image Map radio button. */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLEASVECTOR_BIT			= 5,		/* @emem The Export As Vector/Polygons radio button */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLETEXTASPATHS_BIT			= 6,		/* @emem The Drafting Text As Paths check box. */
	FZ_FFMT_IMAGE_WRITE_IFACE_OPTS_ENABLELINEWEIGHT_BIT			= 8			/* @emem The Line Weight Menu. */
}  fz_ffmt_image_write_iface_opts_flags_enum;


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

	@fsfunc_t

	@desc		Sets a file's Macintosh signature.
				This function sets the Macintosh file type and creator to
				the file type and creator set by fz_ffmt_cbak_ftype.  On Windows,
				This function does nothing, however it should still be called
				so the translator will work on both platforms.
							
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_set_attributes_func)(
			fz_ffmt_ref_td		ffmt_id,		/* @parm <in> | The file format reference id. */
			short				is_text,		/* @parm <in> | If this is TRUE, the file type will be set to TEXT. This will override
																	The file type set in fz_ffmt_cbak_ftype. If FALSE, the file type will be set
																	to the type set in fz_ffmt_cbak_ftype. */
			fzrt_floc_ptr		floc			/* @parm <in> | The file. */
			);

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

	@fsfunc_t
	
	@desc		Deletes a file from a folder.
			
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.
 

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_remove_func)(
			fzrt_floc_ptr		floc			/* @parm <in> | The file to delete. */
			);


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

	@fsfunc_t

	@desc		Removes a file extension from a file name for file formats recognized by formZ.
				Deletes the file extension from the end of a file name only if the extension 
				matches a file type set by fz_ffmt_cbak_info.  This is done by
				finding the last occurrence of '.' in the string, comparing the
				text following the '.' with known file extensions and if a match is
				found, setting the '.' character to '\0'.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_remove_extension_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | A file format reference to which to compare the extension.
																		If this is set to FZ_FFMT_NONE, the file extension will be
																		compared with all known file extensions.
																		Otherwise, the file extension will only be compared to
																		the file extension associated with the file format reference. */
			char			*fname				/* @parm <in_out> | The file name from which to remove the extension. */
			);

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

	@fsfunc_t
	
	@desc		Creates a file.
	
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_create_func)(
			fzrt_floc_ptr		floc,		/* @parm <in> | The file to create. */
			fzrt_int				ftype,		/* @parm <in> | the Macintosh file type of the file. */
			fzrt_int				creator		/* @parm <in> | the Macintosh file creator of the file. */
			);

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

	@fsfunc_t

	@desc		Removes the file extension from a file name.
				Deletes the file extension from the end of a file name.  This is done by
				finding the last occurrence of '.' in the string and setting that character to '\0'.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_remove_ext_func)(
			char	*fname				/* @parm <in_out> | The file name to remove the extension from. */
			);

/************************************************************************
	@fsfunc_t

	@desc		Create a unique file name.
				Given a folder (floc) a base name and an extension, this function produces a unique filename.
				It replaces illegal file name characters (such as ':', '/', and '\' on Windows) with '_'.
				It then searches the folder for a file with the same name.  if one is found, a unique number is
				appended to the base name before the file extension is added.
	
	@return		FZRT_NOERR on success.  Or:<nl>
				INTERNAL_ERR - The resulting file name exceeds 31 characters.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_make_unique_name_func)(
			fzrt_floc_ptr		floc,			/* @parm <in> | the folder to search for a duplicate file name. */
			char				*base_name,		/* @parm <in> | a file name without a file extension. */
			char				*ext,			/* @parm <in> | the file extension. */
			char				*file_name		/* @parm <out> | the created unique file name. */
			);

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

	@fsfunc_t
	
	@desc		Gets the new line string appropriate for the given platform.
	
	@return		FZRT_NOERR on success.  Or:
				INTERNAL_ERR - The resulting file name exceeds 32 characters.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_lterm_term_get_str_func)(
			fz_ffmt_write_nl_meth_enum		nl_meth,				/* @parm <in> | the platform.  Typically, new line method obtained from the translator write options is used:<nl>
																			fz_ffmt_model_write_opts_parm_get with FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_NL_METHOD. */
			char							*nl_str					/* @parm <out> | the new line string. */
			);



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

	@fsfunc_t
	
	@desc		Gets the scale factor to convert from the file's units to 
				the project's units.
				Internally, formZ stores all positional data in units of inches
				for English projects and in units of cm for metric projects.  This
				function returns a scale factor which converts the file's units to
				one of formZ's 2 internal units.  The scale factor returned is based
				on the "formZ Units" and "Format Units" options the user has selected.
				These options are contained in the flags parameter.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_read_get_units_scale_func)(
			double							toinches,		/* @parm  <in> | A scale factor to convert from the files units to inches. */
			fzrt_int							flags,			/* @parm  <in> | The units flags.  Usually obtained from the read options flags;
																			 fz_ffmt_model_read_opts_parm_get with FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_FLAGS
															   @rflag  fz_ffmt_data_model_read_opts_flags_enum */
			fz_ffmt_data_formz_units_enum	formz_units,	/* @parm  <in> | The units selection from the formZ Units menu on the Modeling or Drafting Import Options dialog. */
			fz_ffmt_data_file_units_enum	file_units,		/* @parm  <in> | The units selection from the Format Units menu on the Modeling or Drafting Import Options dialog. */
			double							*scale			/* @parm <out> | The scale factor. */
			);


/* TODO: Can we get this out of the api ??? */
/* Function must remain exposed, but will NOT be documented so that it will be "hidden" from future use. RWB 07/07/05 */
typedef fzrt_error_td  (FZRT_SPEC *adjust_import_scale_func)(
			fzrt_int		windex,
			fz_ffmt_ref_td ffmt_id,						/* TAH 01/23/04 */
			fzrt_int		ffmt_opts_flags,
			fz_xyz_td		*scale
			);

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

	@fsfunc_t
	
	@desc		Gets the file extension associated with a file format reference id.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_get_extension_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in>  | The file format reference id. */
			char			*extstr,			/* @parm <out> | A string to fill. Must be allocated by the caller. */
			fzrt_int			max_len				/* @parm <in>  | The maximum number of bytes to place into extstr. */
			);


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

	@fsfunc_t
	
	@desc		Gets a translator's reference id from its plugin runtime id.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_get_ref_id_func)(
			const fzrt_int			fzpl_id,		/* @parm <in>  | the translator plugin's runtime id. */
			fz_ffmt_ref_td		*ref_id			/* @parm <out> | The file format reference id. This will be set to -1 in the case of an error. */
			);

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

	@fsfunc_t

	@desc		Converts a string into a legal file name.
				Modifies a string by replacing all non-alpha numeric characters with '_'.
				Also converts all characters to lower case.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_make_identifier_func)(
			char	*name64					/* @parm <in_out> | the string to modify.  This string must be less that 64 bytes fzrt_int. */
			);


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

	@prmenum
	
	@desc		Symbol import options parameter ids.
				Parameter identifiers for symbol import options.  Used for the
				"which" argument of fz_ffmt_data_symb_opts_parm_get and fz_ffmt_data_symb_opts_parm_set.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_symb_opts_parm_get, fz_ffmt_data_symb_opts_parm_set

	@toc		ffmt_str

*************************************************************************/
typedef enum fz_ffmt_data_symb_opts_parm_enum
{	FZ_FFMT_DATA_SYMB_OPTS_PARM_NONE = 0,
	FZ_FFMT_DATA_SYMB_OPTS_PARM_FLAGS,				/* @emem Symbol data import options Flags.
													   @ptype fzrt_int 
													   @rflag fz_ffmt_data_read_symb_flags_enum */
	FZ_FFMT_DATA_SYMB_OPTS_PARM_SYMB_METHOD,			/* @emem Symbol data import method
													   @ptype fz_ffmt_data_read_symb_meth_enum */
	FZ_FFMT_DATA_SYMB_OPTS_PARM_LIB_ID,				/* @emem The id of the library in which to place imported symbols.
													   @ptype short */
	FZ_FFMT_DATA_SYMB_OPTS_PARM_LIB_NAME,			/* @emem The name of the library in which to place imported symbols.  Maximum length of 64 bytes.
													   @ptype char* */
	
	FFMT_DRMSO_PARM_MAX
}  fz_ffmt_data_symb_opts_parm_enum;

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

	@fsfunc_t
	
	@desc		Gets the value of a symbol import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_symb_opts_parm_enum, fz_ffmt_data_symb_opts_parm_set

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_symb_opts_parm_get_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_wind_type_enum					wind_type,		/* @parm <in> | The window environment for the symbol options. */
			fz_ffmt_data_symb_opts_parm_enum		which,			/* @parm <in> | The parameter to get. */
			fz_type_td							*value			/* @parm <out> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Sets the value of a symbol import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_symb_opts_parm_enum, fz_ffmt_data_symb_opts_parm_get,

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_symb_opts_parm_set_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_wind_type_enum					wind_type,		/* @parm <in> | The window environment for the symbol options. */
			fz_ffmt_data_symb_opts_parm_enum		which,			/* @parm <in> | The parameter to set. */
			fz_type_td							*value			/* @parm <in> | The value. */
			);


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

	@fsfunc_t
	
	@desc		Determines if the symbol is referenced.  If a symbol is referenced by
				a symbol instance object in the project, this function returns TRUE.
	
	@return		TRUE if the symbol is referenced by a symbol instance object in the project.
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_data_is_symb_lev_referenced_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_symb_lev_ptr		lev_ptr			/* @parm <in> | The symbol definition level to check. */
			);

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

	@fsfunc_t
	
	@desc		Gets the symbol library to import symbol definition into.
				This library is determined by the symbol options.
	
	@return		TRUE if the symbol is referenced by a symbol instance object in the project.
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_get_import_symb_lib_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id, 		/* @parm <in> | The file format reference id. */
			fz_symb_lib_ptr		*lib_ptr		/* @parm <out> | The symbol library. */
			);

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

	@fsfunc_t
	
	@desc		Creates a symbol definition.  This function places the symbol
				definition in the library specified by the symbol options.  It
				also transforms the definition as defined by the transform options
				and the file and formZ units options.
	
	@return		TRUE if the symbol is referenced by a symbol instance object in the project.
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_import_symb_def_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id, 		/* @parm <in> | The file format reference id. */
			char				*name,			/* @parm <in> | the name of the definition. If the name does 
														not exist, a new definition is created. If it 
														already exists, the level will be added to the 
														definition. If the level also exists it will be 
														overwritten. The name cannot contain more than 
														32 characters.											*/
			fzrt_int				lev_indx,		/* @parm <in> | the level index
												   @rimin_imax 0 | 2													*/
			fz_objt_ptr			*src_obj,		/* @parm <in_opt> | array with object pointers					*/
			fzrt_int 				num_src,		/* @parm <in_opt> | number of entries in the src_obj array		*/
			fz_lite_ptr			*src_lite,		/* @parm <in_opt> | array with light pointers					*/
			fzrt_int 				num_lite,		/* @parm <in_opt> | number of entries in the src_lite array	*/
			fz_mat4x4_td		*mat,			/* @parm <in_opt> | A 4x4 matrix to transform all imported objects by.
																If not NULL, this matrix is concatenated with the tform matrix
																(from tform opts and the units scaling).  The resulting matrix is applied to all
																imported symbol definition objects.  If NULL, only the tform and units scaling are applied
																to all imported symbol definition objects.	 */
			fz_xyz_td			*origin,		/* @parm <in_opt> | origin point of the definition level.
													This should be specified in the file's coordinate system.
												   @default	{0.0, 0.0, 0.0}												*/
			fz_xyz_td			*scale_pt,		/* @parm <in_opt> | Handle point of the definition level.
													This should be specified in the file's coordinate system.
												   @default	the upper right corner of the 3D bounding box of the objects/lights.								*/
			fz_symb_def_ptr		*new_def,		/* @parm <out_opt> | definition (new or existing) 
														to which the definition level was added					*/
			fz_symb_lev_ptr		*new_lev		/* @parm <out_opt> | new definition level								*/
			);

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

	@fsfunc_t
	
	@desc		Associates a keyword with a translator.
				Other plugins can then use this keyword to obtain a translator's
				reference id.  For example a model file translator can obtain a reference
				id for a tiff translator using the "TIFF" keyword to export textures as tiff files.
				formZ supplied keywords are defined in formZ_vendor.h.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_keyword_to_ref_id, fz_ffmt_keyword_to_ref_id_list

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_keyword_set_str_func)(
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			char				*keyword_str		/* @parm <in> | The keyword. */
			);

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

	@fsfunc_t
	
	@desc		Gets the reference id for a translator associated with a keyword.
	
	@return		TRUE if matching translator was found.
				FALSE if not found.

	@avail		5.0.0.0
	
	@see		fz_ffmt_keyword_set_str, fz_ffmt_keyword_to_ref_id_list,
				fz_ffmt_get_ref_id_from_file, fz_ffmt_get_ref_id_from_uuid, fz_ffmt_get_uuid

	@toc		ffmt

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_keyword_to_ref_id_func)(
			char				*keyword_str,		/* @parm <in> | The keyword. */
			fz_ffmt_ref_td		*ffmt_id			/* @parm <out> | The matching translator's reference id.  Set to -1 if no match found.  Must be allocated by the caller. */
			);

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

	@fsfunc_t
	
	@desc		Gets the reference ids for all translators associated with a keyword.
	
	@return		TRUE if matching translator was found.
				FALSE if not found.

	@avail		5.0.0.0
	
	@see		fz_ffmt_keyword_set_str, fz_ffmt_keyword_to_ref_id_list

	@toc		ffmt

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_keyword_to_ref_id_list_func)(
			char				*keyword_str,		/* @parm <in> | The keyword. */
			fz_ffmt_ref_td		*ffmt_id,			/* @parm <out> | A pointer to the beginning of an array of reference ids to fill.  Must be allocated by the caller. */
			fzrt_int				*num_ids			/* @parm <out> | A pointer to the number of reference ids to fill.  Must be allocated by the caller. */
			);	/* TAH 10/28/02 */


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

	@fsfunc_t
	
	@desc		Gets the UUID of a translator.
		
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_get_ref_id_from_file, fz_ffmt_get_ref_id_from_uuid, fz_ffmt_keyword_to_ref_id

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_get_uuid_func)(
			fz_ffmt_ref_td		ffmt_id,				/* @parm <in>  | The file format reference id. */
			fzrt_UUID_td		uuid					/* @parm <out> | The UUID of the translator. */
			);

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

	@fsfunc_t
	
	@desc		Gets the format reference id of a translator from its UUID.
		
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_get_ref_id_from_file, fz_ffmt_get_uuid, fz_ffmt_keyword_to_ref_id

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_get_ref_id_from_uuid_func)(
			fzrt_UUID_td		uuid,					/* @parm <in>  | The UUID of a translator. */
			fz_ffmt_ref_td		*ffmt_id				/* @parm <out> | The file format reference id. */
			);

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

	@fsfunc_t
	
	@desc		Gets the format reference id of a translator formZ will use to read a file.
		
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_get_ref_id_from_uuid, fz_ffmt_get_uuid, fz_ffmt_keyword_to_ref_id

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_get_ref_id_from_file_func)(
			fzrt_floc_ptr		floc,					/* @parm <in>  | An file location containing the name and path of the file. */
			fz_ffmt_ref_td		*ffmt_id				/* @parm <out> | The file format reference id. */
			);

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

	@fsfunc_t
	
	@desc		Imports a file into a formZ project.
		
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_export_file

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_import_file_func)(
			fzrt_int						*windex,			/* @parm <in_out> | If add_to_proj is TRUE, the window of a project to read the file into. 
																				Else, the windex of the new project. */
			fz_ffmt_ref_td				ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr				floc,				/* @parm <in> | An file location containing the name and path of the file. */
			fzrt_boolean				add_to_proj,		/* @parm <in> | If TRUE, add the data to the project referenced by windex.
																				Else, create a new project for the file. */
			fz_ffmt_data_read_meth_enum	data_read_method,	/* @parm <in> | How to read data, as model objects or draft elements. */
			fz_ffmt_image_read_meth_enum	imag_read_method	/* @parm <in> | How to read an image, as model, draft elements or draft image. */
			);

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

	@fsfunc_t
	
	@desc		Exports the contents of a formZ project to a file.
		
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_import_file

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_export_file_func)(
			fzrt_int				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc				/* @parm <in> | An file location containing the name and path of the file. */
			);

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

	@type
	
	@desc		A file format translator enumerator.  This is used to enumerate all
				translators of a specified class.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_class_enum, <auto>

	@toc		ffmt

*************************************************************************/
typedef struct ffmt_translator_enum_td	*fz_ffmt_translator_iter_ptr;

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

	@enum
	
	@desc		File format translator classes.  These classes represent capabilities of
				a translator such as its ability to read or write certian types of data.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, <auto>

	@toc		ffmt

*************************************************************************/
typedef enum fz_ffmt_translator_class_enum
{
	FZ_FFMT_TRANSLATOR_CLASS_IMAGE_BMAP			= 0x00000001,								/* @emem The translator can import and/or export bitmap images. */
	FZ_FFMT_TRANSLATOR_CLASS_IMAGE_VECT			= 0x00000002,								/* @emem The translator can import and/or export vector images. */
	FZ_FFMT_TRANSLATOR_CLASS_IMAGE				= FZ_FFMT_TRANSLATOR_CLASS_IMAGE_BMAP |		/* @emem The translator can import and/or export bitmap or vector images. */
											FZ_FFMT_TRANSLATOR_CLASS_IMAGE_VECT,
	FZ_FFMT_TRANSLATOR_CLASS_DATA_MODL			= 0x00000100,								/* @emem The translator can import and/or export 3d modeling data. */
	FZ_FFMT_TRANSLATOR_CLASS_DATA_DRFT			= 0x00000200,								/* @emem The translator can import and/or export 2d drafting data. */
	FZ_FFMT_TRANSLATOR_CLASS_DATA				= FZ_FFMT_TRANSLATOR_CLASS_DATA_MODL |		/* @emem The translator can import and/or export 3d modeling or 2d drafting data. */
											FZ_FFMT_TRANSLATOR_CLASS_DATA_DRFT,
	FZ_FFMT_TRANSLATOR_CLASS_IMPORT				= 0x01000000,								/* @emem The translator can import. */
	FZ_FFMT_TRANSLATOR_CLASS_EXPORT				= 0x02000000,								/* @emem The translator can export. */

	FZ_FFMT_TRANSLATOR_CLASS_ALL				= 0xffffffff
}  fz_ffmt_translator_class_enum;

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

	@fsfunc_t
	
	@desc		Initializes a translator enumerator.  The resulting enumerator will contain
				an enumeration of all translators matching the specified capabilities (classes).
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_get_next, fz_ffmt_translator_iter_get_by_index,
				fz_ffmt_translator_iter_finit

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_iter_init_func)(
			fz_ffmt_translator_class_enum		trans_class,			/* @parm <in>  | The class of translators to enumerate.
																		   @rflag fz_ffmt_image_read_opts_flags_enum  */
			fz_ffmt_translator_iter_ptr			*ffmt_enum,				/* @parm <in_out> | The translator enumerator to initialize. */
			fzrt_int								*num_translators		/* @parm <out> | The number of translators in the enumeration. */
			);

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

	@fsfunc_t
	
	@desc		Gets the first translator's format reference from a translator enumerator.  This starts the enumeration of
				the translators.  To get the first translator's format reference id call fz_ffmt_translator_iter_get_first.
				After call fz_ffmt_translator_iter_get_next until nxt_ref_td is FZ_FFMT_NONE to get the file format reference
				ids that follow.  nxt_ffmt_id will be set to FZ_FFMT_NONE to indicate the end of the enumeration.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_init, fz_ffmt_translator_iter_finit
				fz_ffmt_translator_iter_get_next, fz_ffmt_translator_iter_get_by_index,

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_iter_get_first_func)(
			fz_ffmt_translator_iter_ptr		ffmt_enum,				/* @parm <in>  | The translator enumerator to initialize. */
			fz_ffmt_ref_td					*first_ffmt_id			/* @parm <out> | The next file format reference id. This is set to FZ_FFMT_NONE
																					 when the end is reached.  */
			);

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

	@fsfunc_t
	
	@desc		Gets a translator's format reference from a translator enumerator.  This performs the enumeration of
				the translators.  To get the first translator's format reference id call fz_ffmt_translator_iter_get_first.
				After call fz_ffmt_translator_iter_get_next until nxt_ref_td is FZ_FFMT_NONE to get the file format reference
				ids that follow.  nxt_ffmt_id will be set to FZ_FFMT_NONE to indicate the end of the enumeration.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_init, fz_ffmt_translator_iter_finit
				fz_ffmt_translator_iter_get_first, fz_ffmt_translator_iter_get_by_index,

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_iter_get_next_func)(
			fz_ffmt_translator_iter_ptr		ffmt_enum,				/* @parm <in>  | The translator enumerator to initialize. */
			fz_ffmt_ref_td					*nxt_ffmt_id			/* @parm <out> | The next file format reference id. This is set to FZ_FFMT_NONE
																					 when the end is reached.  */
			);

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

	@fsfunc_t
	
	@desc		Gets a translator's format reference from a translator enumerator.  This gets the i-th item in the enumeration.
				If the indx is out of range, ffmt_id will be set to FZ_FFMT_NONE.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_init, fz_ffmt_translator_iter_get_next,
				fz_ffmt_translator_iter_finit

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_iter_get_by_index_func)(
			fz_ffmt_translator_iter_ptr		ffmt_enum,				/* @parm <in>  | The translator enumerator to initialize. */
			fzrt_int							indx,					/* @parm <in>  | The file format reference id returned by a previous call to
																			fz_ffmt_translator_iter_get_next. To get the first ffmt_id, use FZ_FFMT_NONE.
																	   @rimin_max 0 | num_translators from fz_ffmt_translator_iter_init  */
			fz_ffmt_ref_td					*ffmt_id				/* @parm <out> | The file format reference id. This is set to FZ_FFMT_NONE
																			if the index is out of range.  */
			);

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

	@fsfunc_t
	
	@desc		Uninitializes a translator enumerator.  This should be called when
				the translator enumerator is no longer needed.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_get_next, fz_ffmt_translator_iter_get_by_index,
				fz_ffmt_translator_iter_finit

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_iter_finit_func)(
			fz_ffmt_translator_iter_ptr		*ffmt_enum				/* @parm <in_out> | The translator enumerator to uninitialize. */
			);

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

	@fsfunc_t
	
	@desc		Gets the capabilities (classes) of a translator.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_get_next, fz_ffmt_translator_iter_get_by_index,
				fz_ffmt_translator_iter_finit

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_translator_get_class_func)(
			fz_ffmt_ref_td						ffmt_id,				/* @parm <in>  | The file format reference id. */
			fz_ffmt_translator_class_enum		*trans_class			/* @parm <out> | The class of the translator.
																		   @rflag fz_ffmt_image_read_opts_flags_enum  */
			);
			
/************************************************************************

	@fsfunc_t
	
	@desc		Checks if a translator has the specified capabilities (classes).
	
	@return		TRUE if the translator is of the specified class.
				FALSE if not.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_iter_ptr, fz_ffmt_translator_class_enum,
				fz_ffmt_translator_iter_get_next, fz_ffmt_translator_iter_get_by_index,
				fz_ffmt_translator_iter_finit

	@toc		ffmt

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_translator_is_class_func)(
			fz_ffmt_ref_td						ffmt_id,				/* @parm <in> | The file format reference id. */
			fz_ffmt_translator_class_enum		trans_class				/* @parm <in> | The class of the translator.
																		   @rflag fz_ffmt_image_read_opts_flags_enum  */
			);

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

	@fsfunc_t
	
	@desc		Gets the name of a translator's file format.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_get_format_name_func)(
			fz_ffmt_ref_td			ffmt_id,			/* @parm <in>  | The file format reference id. */
			char					*name,				/* @parm <out> | The name of the file format. */
			fzrt_int					max_len				/* @parm <in>  | The maximum length in bytes of the file format name. */
			);

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

	@fsfunc_t
	
	@desc		Displays the content of a file in the formZ viewer window. Usually
				such a file is an image file. However, other file types may be
				used as well, as fzrt_int as the viewer window is capable of
				displaying the file content. For example, the formZ viewer
				can also display formZ animation files (.fan).
	
	@return		FZRT_NOERR on success.
				An error, if the file cannot be displayed.

	@avail		6.0.0.0

	@toc		ffmt

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_file_display_in_viewer_func)(
			fzrt_floc_ptr		floc						/* @parm <in> | The file to display. */
			);

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

	@fset	fz_ffmt_fset
	
	@desc	formZ File Translator Function Set

	@avail	5.0.0.0

	@toc	ffmt, ffmt_str

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

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

	@fsdef	formZ file translator function set UUID.

*********************************************************************************************************/
/* UUID : {9e196c30-9c84-4f31-9099-9a0c39f05ec1} */
#define FZ_FFMT_FSET_TYPE		"\x9e\x19\x6c\x30\x9c\x84\x4f\x31\x90\x99\x9a\x0c\x39\xf0\x5e\xc1"	/* Reference : 20 */
/********************************************************************************************************

	@fsdef	formZ file translator function set name.

*********************************************************************************************************/
#define FZ_FFMT_FSET_NAME		"FormZ File Translator Functions"
/********************************************************************************************************

	@fsdef	formZ file translator function set version.

*********************************************************************************************************/
#define FZ_FFMT_FSET_VERSION	FZPL_VERS_MAKE(6,0,0,0)

typedef struct fz_ffmt_fset
{
	fzpl_fset_prvt_data_td						prvt_data;

	fz_file_set_attributes_func				fz_file_set_attributes;				/* @fsfunc */
	fz_file_remove_func						fz_file_remove;						/* @fsfunc */

	fz_file_remove_extension_func				fz_file_remove_extension;				/* @fsfunc */
	fz_file_create_func 							fz_file_create;							/* @fsfunc */
	fz_file_remove_ext_func 						fz_file_remove_ext;						/* @fsfunc */
	fz_file_make_unique_name_func 					fz_file_make_unique_name;					/* @fsfunc */
	fz_ffmt_lterm_term_get_str_func 				fz_ffmt_lterm_term_get_str;				/* @fsfunc */
	
	
	fz_ffmt_read_get_units_scale_func			fz_ffmt_read_get_units_scale;			/* @fsfunc */
	adjust_import_scale_func					fz_adjust_import_scale;					/* @fsfunc */

	fz_file_get_extension_func				fz_file_get_extension;				/* @fsfunc */
	
	fz_ffmt_get_ref_id_func						fz_ffmt_get_ref_id;						/* @fsfunc */
	
	fz_ffmt_make_identifier_func					fz_ffmt_make_identifier;					/* @fsfunc */
	
	fz_ffmt_keyword_set_str_func					fz_ffmt_keyword_set_str;					/* @fsfunc */
	fz_ffmt_keyword_to_ref_id_func					fz_ffmt_keyword_to_ref_id;					/* @fsfunc */
	fz_ffmt_keyword_to_ref_id_list_func			fz_ffmt_keyword_to_ref_id_list;			/* @fsfunc */	/* TAH 10/28/02 */

	fz_ffmt_data_symb_opts_parm_get_func					fz_ffmt_data_symb_opts_parm_get;					/* @fsfunc */
	fz_ffmt_data_symb_opts_parm_set_func					fz_ffmt_data_symb_opts_parm_set;					/* @fsfunc */

	fz_ffmt_get_uuid_func							fz_ffmt_get_uuid;							/* @fsfunc */
	fz_ffmt_get_ref_id_from_uuid_func				fz_ffmt_get_ref_id_from_uuid;				/* @fsfunc */
	fz_ffmt_get_ref_id_from_file_func				fz_ffmt_get_ref_id_from_file;				/* @fsfunc */
	fz_ffmt_import_file_func						fz_ffmt_import_file;						/* @fsfunc */
	fz_ffmt_export_file_func						fz_ffmt_export_file;						/* @fsfunc */
	fz_ffmt_translator_iter_init_func				fz_ffmt_translator_iter_init;				/* @fsfunc */
	fz_ffmt_translator_iter_get_first_func			fz_ffmt_translator_iter_get_first;			/* @fsfunc */
	fz_ffmt_translator_iter_get_next_func			fz_ffmt_translator_iter_get_next;			/* @fsfunc */
	fz_ffmt_translator_iter_get_by_index_func		fz_ffmt_translator_iter_get_by_index;		/* @fsfunc */
	fz_ffmt_translator_iter_finit_func				fz_ffmt_translator_iter_finit;				/* @fsfunc */
	fz_ffmt_translator_get_class_func				fz_ffmt_translator_get_class;				/* @fsfunc */
	fz_ffmt_translator_is_class_func				fz_ffmt_translator_is_class;				/* @fsfunc */
	fz_ffmt_get_format_name_func					fz_ffmt_get_format_name;					/* @fsfunc */

	fz_ffmt_data_get_import_symb_lib_func			fz_ffmt_data_get_import_symb_lib;			/* @fsfunc */
	fz_ffmt_data_is_symb_lev_referenced_func		fz_ffmt_data_is_symb_lev_referenced;		/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_file_display_in_viewer_func					fz_file_display_in_viewer;					/* @fsfunc */

}  fz_ffmt_fset;







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

	@fsfunc_t	

	@desc		Creates a pixel buffer from the display. 
				This function will return a pixel buffer of the display associated with the 
				specified windex. The pixel buffer will contain a rendering with the 
				currently selected renderer at the current view parameters.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_bmap_pixbuf_from_display_func)(
			fzrt_int						windex, 				/* @parm <in> | project window index */
			fzrt_pbuf_ptr *			pbuf, 					/* @parm <out> | pointer to a pixel buffer pointer that receives a pixel buffer of the current display */
			fzrt_pbuf_rect_td *		pbuf_rect				/* @parm <out> | pointer to a pixel buffer rectangle that contains the size of the pixel buffer */
			);


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

	@fsfunc_t

	@desc		Writes a file.  This is the main function which writes data to a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_vect_write_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc			/* @parm <in> | The file to write to. */
			);

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

	@fsfunc_t

	@desc		Writes the contents of a pixel buffer to a file.  This is the main function which writes
				the contents of a pixel buffer to an image file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_image_bmap_get_write_funcs

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_bmap_write_pbuf_func)(
			fzrt_int					windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr			floc,			/* @parm <in> | The file to write to. */
			fzrt_pbuf_ptr			pbuf,			/* @parm <in> | The pixel buffer to write. */
			fzrt_pbuf_rect_td		*pb_rect		/* @parm <in> | The bounding rectangle of the pixel buffer. */
			);

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

	@fsfunc_t
	
	@desc		Gets a function which writes an image to a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td		 (FZRT_SPEC *fz_ffmt_image_bmap_get_write_funcs_func)(
			fz_ffmt_ref_td 							ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_image_bmap_write_pbuf_func		*write_pbuf			/* @parm <out> | The image write function. */
			);

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

	@fsfunc_t
	
	@desc		This function determines of a file format supports reading of bitmap images.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_supports_read_bitmap_func)(
			fz_ffmt_ref_td						ffmt_id			/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t
	
	@desc		This function determines of a file format supports writing of bitmap images.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_supports_write_bitmap_func)(
			fz_ffmt_ref_td						ffmt_id			/* @parm <in> | The file format reference id. */
			);


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

	@prmenum

	@desc		Image import options parameter ids.
				Parameter identifiers for image import options.  Used for the
				"which" argument of fz_ffmt_image_read_opts_parm_get and fz_ffmt_image_read_opts_parm_set.
			
	@avail		5.0.0.0
			
 	@see		fz_ffmt_image_read_opts_parm_get, fz_ffmt_image_read_opts_parm_set

	@toc		ffmt_io

*********************************************************************************************************/
typedef enum fz_ffmt_image_read_opts_enum
{
	FZ_FFMT_IMAGE_READ_OPTS_PARM_NONE = 0,
	FZ_FFMT_IMAGE_READ_OPTS_PARM_FLAGS,				/* @emem  Image import flags.<nl>
													   @ptype fzrt_int
													   @rflag fz_ffmt_image_read_opts_flags_enum
													   @default Reserved bit 2 <bar> FZ_FFMT_IMAGE_READ_OPTS_ORIGINALSIZE_BIT <bar> FZ_FFMT_IMAGE_READ_OPTS_ORIGPROPORTIONS_BIT */
	FZ_FFMT_IMAGE_READ_OPTS_PARM_READ_METHOD,		/* @emem  Image import method.<nl>
													   @ptype fz_ffmt_image_read_meth_enum
													   @default FZ_FFMT_IMAGE_READ_METH_ASDRAFTBITMAP	*/
	FZ_FFMT_IMAGE_READ_OPTS_PARM_COLR_METHOD,		/* @emem  Image import color method.<nl>
													   @ptype fz_ffmt_read_color_meth_enum
													   @default FZ_FFMT_READ_COLOR_METH_FILECOLOR			*/
	FZ_FFMT_IMAGE_READ_OPTS_PARM_POSITION,			/* @emem  The location (in model or draft coordinates) of
															  the lower left corner of the image when importing 
															  as a draft image.<nl>
													   @ptype fz_xy_td
													   @default 0.0,0.0,0.0
													   @rmin_max -INF | INF 								*/
	FZ_FFMT_IMAGE_READ_OPTS_PARM_SIZE,				/* @emem  The size (in model or draft units) of the image
															  when importing as a draft image.<nl>
													   @ptype fz_xy_td
													   @default 12.0,12.0
													   @rmin_max -INF | INF 								*/
	FZ_FFMT_IMAGE_READ_OPTS_PARM_SCALE,				/* @emem  Scale factors to scale the imported vector data
															  when importing as draft elements.<nl>
													   @ptype fz_xy_td
													   @default 1.0,1.0
													   @rmin_max -INF | INF <nequ> 0.0						*/
	FZ_FFMT_IMAGE_READ_OPTS_PARM_PLOT_SCALE,			/* @emem  The ratio of image size to world size (i.e. 1/16" = 1')
															  when importing as draft elements.<nl>
													   @ptype double
													   @default 192.0
													   @rmin_max -INF | INF <nequ> 0.0						*/	
	FZ_FFMT_IMAGE_READ_OPTS_PARM_DEFAULT_FONT,		/* @emem Data model import grouping method.
													   @ptype string
													   @pavail 5.5.0.0 */
	FZ_FFMT_IMAGE_READ_OPTS_PARM_MAX
}  fz_ffmt_image_read_opts_enum;

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

	@prmenum

	@desc		Image import options parameter ids.
				Parameter identifiers for image import options. Used for the
				"which" argument of fz_ffmt_image_write_opts_parm_get and fz_ffmt_image_write_opts_parm_set.
			
	@avail		5.0.0.0
			
 	@see		fz_ffmt_image_write_opts_parm_get, fz_ffmt_image_write_opts_parm_set

	@toc		ffmt_io

*********************************************************************************************************/
typedef enum fz_ffmt_image_write_opts_enum
{
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_NONE = 0,
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_FLAGS,			/* @emem  Image export flags.<nl>
											  @ptype fzrt_int
											  @rflag fz_ffmt_image_write_opts_flags_enum
											  @default 0									*/
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_WRITE_METHOD,		/* @emem  Image export method.<nl>
											  @ptype fz_ffmt_image_write_meth_enum
											  @default FZ_FFMT_IMAGE_WRITE_METH_ASBITMAP	*/
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_PLATFORM,			/* @emem  Text line termination type to use when writing an ascii file.<nl>
											  @ptype fz_ffmt_write_nl_meth_enum
											  @pdefault FZ_FFMT_WRITE_NL_METH_CR | FZ_FFMT_WRITE_NL_METH_CRLF	*/
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_MODEL_LWEIGHT,	/* @emem  Line weights to when exporting from model.<nl>
											  @ptype fz_ffmt_image_vect_modl_line_weight_enum
											  @default FZ_FFMT_IMAGE_VECT_MODL_LINE_WEIGHT_HALFPOINT	*/
	
	FZ_FFMT_IMAGE_WRITE_OPTS_PARM_MAX
}  fz_ffmt_image_write_opts_enum;

/************************************************************************
	
	@fsfunc_t
	
	@desc		Get the value of an image import option
	
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.
			
	@avail		5.0.0.0

	@see		fz_ffmt_image_read_opts_enum, fz_ffmt_image_read_opts_parm_set
	@toc		ffmt_io
											
*************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_ffmt_image_read_opts_parm_get_func)(
			fz_ffmt_ref_td					ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_ffmt_image_read_opts_enum	which,			/* @parm <in> | The parameter to get.
												  			   @ptype fz_ffmt_image_read_opts_enum */
			fz_type_td						*value			/* @parm  <out> | the value of the option. */
			);

/************************************************************************
	
	@fsfunc_t
	
	@desc		Set the value of an image import option
	
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.
			
	@avail		5.0.0.0

	@see		fz_ffmt_image_read_opts_enum, fz_ffmt_image_read_opts_parm_get

	@toc		ffmt_io
											
*************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_ffmt_image_read_opts_parm_set_func)(
			fz_ffmt_ref_td					ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_ffmt_image_read_opts_enum	which,			/* @parm <in> | The parameter to set.
												  			   @ptype fz_ffmt_image_read_opts_enum */
			fz_type_td						*value			/* @parm <out> | the value of the option. */
			);

/************************************************************************
	
	@fsfunc_t
	
	@desc		Get the value of an image export option
	
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.
			
	@avail		5.0.0.0

	@see		fz_ffmt_image_write_opts_enum, fz_ffmt_image_write_opts_parm_set

	@toc		ffmt_io
											
*************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_ffmt_image_write_opts_parm_get_func)(
			fz_ffmt_ref_td					ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_ffmt_image_write_opts_enum	which,			/* @parm <in> | The parameter to get.
												  			   @ptype fz_ffmt_image_write_opts_enum */
			fz_type_td						*value			/* @parm <out> | the value of the option. */
			);

/************************************************************************
	
	@fsfunc_t
	
	@desc		Set the value of an image export option
	
	@return		FZRT_NOERR on success.<nl>
				An error otherwise.
			
	@avail		5.0.0.0

	@see		fz_ffmt_image_write_opts_enum, fz_ffmt_image_write_opts_parm_get

	@toc		ffmt_io
											
*************************************************************************/
typedef fzrt_error_td 	 (FZRT_SPEC *fz_ffmt_image_write_opts_parm_set_func)(
			fz_ffmt_ref_td					ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_ffmt_image_write_opts_enum	which,			/* @parm <in> | The parameter to set.
												  			   @ptype fz_ffmt_image_write_opts_enum */
			fz_type_td						*value			/* @parm <out> | the value of the option. */
			);



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

	@fsfunc_t
	
	@desc		Gets the item enable flags for the image Import Options dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_read_get_dlog_flags_func)(
			fz_ffmt_ref_td			ffmt_id,				/* @parm <in>  | The file format reference id. */
			fzrt_int				*flags					/* @parm <out> | The item enable flags.
														   @rflag fz_ffmt_image_read_iface_opts_flags_enum */
			);
/************************************************************************

	@fsfunc_t
	
	@desc		Sets the item enable flags for the image Import Options dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_read_set_dlog_flags_func)(
			fz_ffmt_ref_td			ffmt_id,				/* @parm <in> | The file format reference id. */
			fzrt_int				flags					/* @parm <in> | The item enable flags.
														   @rflag fz_ffmt_image_read_iface_opts_flags_enum */
			);
/************************************************************************

	@fsfunc_t
	
	@desc		Gets the item enable flags for the image Export Options dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_write_get_dlog_flags_func)(
			fz_ffmt_ref_td			ffmt_id,				/* @parm <in>  | The file format reference id. */
			fzrt_int				*flags					/* @parm <out> | The item enable flags.
														   @rflag fz_ffmt_image_write_iface_opts_flags_enum */
			);
/************************************************************************

	@fsfunc_t
	
	@desc		Sets the item enable flags for the image Export Options dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_write_set_dlog_flags_func)(
			fz_ffmt_ref_td			ffmt_id,				/* @parm <in> | The file format reference id. */
			fzrt_int				flags					/* @parm <in> | The item enable flags.
														   @rflag fz_ffmt_image_write_iface_opts_flags_enum */
			);


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

	@fsfunc_t

	@desc		Reads Information from a bitmap file.
				This function is called to get information
				about a bitmap file.  This information includes width, height, number of components,
				bits per sample, etc.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_read_info_func)(
			fzrt_int				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc,				/* @parm <in> | The file to read from. */
			fzrt_int				*width,				/* @parm <out> | The width of the bitmap in pixels. */
			fzrt_int				*height,			/* @parm <out> | The height of the bitmap in pixels. */
			short				*pixel_depth,		/* @parm <out> | The number of bits per pixel. */
			fzrt_boolean		*has_alpha,			/* @parm <out> | TRUE if the bitmap has an alpha channel. */
			double				*dpi				/* @parm <out> | The resolution of the bitmap in pixels (dots) per inch. */
			);

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

	@enum
	
	@desc		Image channels.
				The image channels to read from the image file. 
				This only applies to a image type of FZ_FFMT_IMAGE_TYPE_TRUE_COLOR.

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_ib

*************************************************************************/
typedef enum fz_ffmt_image_channel_enum
{	FZ_FFMT_IMAGE_CHANNEL_RGB				=0,		/* @emem The channels to read are Red, Blue, Green */
	FZ_FFMT_IMAGE_CHANNEL_ALPHA				=1,		/* @emem Read the alpha channel only  */
	FZ_FFMT_IMAGE_CHANNEL_RGBA				=2,		/* @emem Read the Red, Green, Blue and Alpha channels */
	FZ_FFMT_IMAGE_CHANNEL_RGB_ALPHA_APLIED	=3		/* @emem Read the Red, Green, Blue channels then apply the Alpha channel to the pixel data  */
} fz_ffmt_image_channel_enum;

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

	@fsfunc_t

	@desc		Reads a bitmap file.
				This function is called to get pixel data stored in
				a bitmap file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_read_func)(
			fzrt_int						windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr				floc,				/* @parm <in> | The file to read from. */
			fz_ffmt_image_channel_enum	which_channel,		/* @parm <in> | Which channels of the image to read. */
			fzrt_pbuf_ptr				*pbuf 				/* @parm <out> | A pixel buffer to fill with the bitmap's pixels. */
			);


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

	@fsfunc_t
	
	@desc		Gets the functions needed to read bitmap data from a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_bmap_get_read_funcs_func)(
			fz_ffmt_ref_td 							ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_cbak_image_bmap_read_info_func	*read_info,			/* @parm <out_opt> | The function which reads image info. */
			fz_ffmt_cbak_image_bmap_read_func		*read_bitmap		/* @parm <out_opt> | The function which reads image pixels. */
			);		/* IMAGE EPILOGUE */

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

	@fsfunc_t

	@desc		Reads the extents of a vector file.
				This function is called to read or compute the
				extents (bounds) of vector data in a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td   (FZRT_SPEC *fz_ffmt_cbak_image_vect_read_frame_func)(
			fzrt_int				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fzrt_int				size,				/* @parm <in> | The size of the translator defined data. */
			fzrt_rect			*rect				/* @parm <out> | The extents of the vector data. */
			);

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

	@fsfunc_t

	@desc		A function that is called prior to displaying the image export options dialog.
				This optional function is called just prior
				to displaying the translator's image export options dialog.  It can be used to dynamically set
				the enabled states and values of options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_write_predloginit_func)(
			fzrt_int		windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td	ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t
	
	@desc		Retreives functions to write image vector data.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_vect_get_write_funcs_func)(
			fz_ffmt_ref_td 							ffmt_id,		/* @parm  <in> 	| The file format reference id. */
			fz_ffmt_image_vect_write_func			*write);		/* @parm  <out> | The function to write a image vector file. */



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

	@type
	
	@desc		A vector image lineset.  A line set is a collection of points which make up a connected
				series of line segments.  The line set also contains a flag indicating whether the lineset
				is open or closed.  A closed lineset connects the first and last points.  An open lineset
				does not.

	@avail		5.0.0.0
	
	@see		fz_ffmt_translator_class_enum, <auto>

	@toc		ffmt_iv

*************************************************************************/
typedef struct exp2d_lineset_td *fz_ffmt_image_lineset_ptr;

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

	@fsfunc_t
	
	@desc		Adds a vertex to a line set.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_lineset_append_pnts_func)(
			fzrt_int						windex, 				/* @parm <in> | project window index */
			fz_ffmt_image_lineset_ptr	lineset,				/* @parm <in> | The line set. */
			const fz_xy_td				*pnts,					/* @parm <in> | The array of vertices to append to the end of the line set. */
			fzrt_int 						num_pnts				/* @parm <in> | The number of points in the vertex array. */
			);

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

	@fsfunc_t
	
	@desc		Designates a line set as closed.  Normally a line set is an open polyline.
				Calling this designates a line set as closed.  This has the effect of adding
				a line segment from the last vertex to the first vertex.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_lineset_close_func)(
			fzrt_int						windex, 				/* @parm <in> | project window index */
			fz_ffmt_image_lineset_ptr	lineset,				/* @parm <in> | The line set. */
			fzrt_boolean				closed					/* @parm <in> | If TRUE, the line set is closed and a line segment should be
																			drawn connecting the last vertex to the first.  If FALSE, the line
																			set is open and the last vertex and first vertex are not connected. */
			);

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

	@fsfunc_t
	
	@desc		Removed all points from a lineset.  Also sets the lineset as open (not closed).
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_lineset_clear_func)(
			fzrt_int						windex, 				/* @parm <in> | project window index */
			fz_ffmt_image_lineset_ptr	lineset				/* @parm <in> | The line set. */
			);

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

	@fsfunc_t
	
	@desc		Gets an array of vertices from a line set.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_lineset_get_pnts_func)(
			fzrt_int						windex, 				/* @parm <in>  | project window index */
			fz_ffmt_image_lineset_ptr	lineset,				/* @parm <in>  | The line set. */
			fz_xy_td					*pnts,					/* @parm <out_opt> | The array of vertices in the line set. */
			fzrt_int						*num_pnts,				/* @parm <out_opt> | The number of vertices in the line set. */
			fzrt_boolean				*closed					/* @parm <out_opt> | If TRUE, the line set is closed and a line segment should be
																			drawn connecting the last vertex to the first.  If FALSE, the line
																			set is open and the last vertex and first vertex are not connected. */
			);

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

	@fsfunc_t
	
	@desc		Determines if a line set represents a hole.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_lineset_is_hole_func)(
			fzrt_int						windex, 				/* @parm <in>  | project window index */
			fz_ffmt_image_lineset_ptr	lineset,				/* @parm <in>  | The line set. */
			fzrt_boolean				*is_hole				/* @parm <out> | Set to true if the line represents a hole. */
			);

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

	@fsfunc_t

	@desc		Reads a vector file.
				This function reads data from a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_read_func)(														/* TAH 01/23/04 */
			fzrt_int					windex, 			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr			floc				/* @parm <in> | The file to read from. */
			);

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

	@fsfunc_t

	@desc		Reads raw vector data from a file.
				This function is called to read raw vector data from a file.  This function allocates
				and fills a block of memory (pointer to by the data parameter) with raw vector data from a file.
				This function can also allocates a block of memory (pointed to by the pview_data parameter)
				and fill it with the vector file's preview image.
				This function is provided so that raw vector data can be embedded in other files (i.e. eps
				can embed raw PICT data as a preview).
	
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc			ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_read_raw_data_func)(
			fzrt_int				windex,				/* @parm <in> | The active window. */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc,				/* @parm <in> | The file to read from. */
			fz_ffmt_ref_td		*pview_type,		/* @parm <out_opt> | The file reference id for the format of the preview image. */
			fzrt_int				*pview_data_size,	/* @parm <out_opt> | The size of the pview_data allocated by this function. */
			void				**pview_data,		/* @parm <out_opt> | The raw preview data. */
			fzrt_int				*data_size,			/* @parm <out_opt> | The size of the raw vector data allocated by this function. */
			void				**data				/* @parm <out_opt> | The raw vector data. */
			);

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

	@fsfunc_t

	@desc		Reads raw vector data from a file.
				This function is called to read raw vector data from a file.  This function allocates
				and fills a block of memory (pointer to by the data parameter) with raw vector data from a file.
				This function is provided so that raw vector data can be sent directly to a printer.
				NOTE: Currently, only PostScript data is supported.
	
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc			ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_read_printer_data_func)(
			fzrt_int				windex,				/* @parm <in> | The active window. */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc,				/* @parm <in> | The file to read from. */
			fzrt_int				*data_size,			/* @parm <out_opt> | The size of the raw vector data allocated by this function. */
			void				**data				/* @parm <out_opt> | The raw vector data. */
			);

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

	@fsfunc_t
	
	@desc		Retreives functions to read image vector data.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_vect_get_read_funcs_func)(
			fz_ffmt_ref_td 									ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_cbak_image_vect_read_frame_func			*read_frame,		/* @parm <out_opt> | A function which reads the extents of the vector data. */
			fz_ffmt_cbak_image_vect_read_raw_data_func		*read_data			/* @parm <out_opt> | A function which fills a block of memory with raw vector data from the file. */
			);


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

	@fsfunc_t
	
	@desc		Loads an image from a specified file into a pixel buffer.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_bmap_load_pbuf_func)(
			fz_ffmt_ref_td		ffmt_id,				/* @parm <in>  | The format reference id of the image file to load.  Use FFMT_NONE if the 
																			format id is not known. */
			fzrt_floc_ptr		floc,					/* @parm <in>  | The image file to load. */
			char				alpha,					/* @parm <in>  | If TRUE, load the image into the pixel buffer's alpha channel. */
			short				pix_depth,				/* @parm <in>  | The number of color channels in the pixel buffer. */
			fzrt_pbuf_ptr		*pbuf					/* @parm <out> | The pointer to a pixel buffer to load.  If it points to NULL, a pixel buffer will be allocated. */
			);

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

	@enum
	
	@desc		Image type.
				The image type is defined by the values of the pixel data in the
				image scanline.  

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_ib

*************************************************************************/
typedef enum fz_ffmt_image_type_enum
{
	FZ_FFMT_IMAGE_TYPE_TRUE_COLOR			=	0,		/* @emem Image pixels values contains RGB values */
	FZ_FFMT_IMAGE_TYPE_MAPPED_COLOR			=	1		/* @emem Image pixels contain an index into a color map  */
} fz_ffmt_image_type_enum;

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

	@enum
	
	@desc		Image order.
				The image order defines the order of the channels in the pixel data. 

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_ib

*************************************************************************/
typedef enum fz_ffmt_image_order_enum
{	FZ_FFMT_IMAGE_ORDER_RGB					=0,		/* @emem The order of the pixel values is Blue, Green, Red */
	FZ_FFMT_IMAGE_ORDER_BGR					=1		/* @emem The order of the pixel values is Red, Green, Blue  */
} fz_ffmt_image_order_enum;

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

	@enum
	
	@desc		Image Map type.
				This defines the type of color map that is used for an image. 

	@avail		5.0.0.0
	
	@see		<auto>

	@toc		ffmt_ib

*************************************************************************/
typedef enum fz_ffmt_image_map_type_enum
{	FZ_FFMT_IMAGE_MAP_TYPE_GRAY_WHITE_FIRST	=1,	/* @emem The image map is a grayscale map with white at index 0. The color map is generated in fz_ffmt_image_bmap_scanline_init.  */
	FZ_FFMT_IMAGE_MAP_TYPE_GRAY_BLACK_FIRST	=2,	/* @emem The image map is a grayscale map with black at index 0. The color map is generated in fz_ffmt_image_bmap_scanline_init.   */
	FZ_FFMT_IMAGE_MAP_TYPE_COLOR				=3	/* @emem The image map is a color map. The color map is supplied to the function fz_ffmt_image_bmap_scanline_init.    */
} fz_ffmt_image_map_type_enum;

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

	@fsfunc_t
	
	@desc		Initialize the image bitmap import storage.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_image_bmap_scanline_init_func)( 
						 fzrt_pbuf_ptr					*pbuf,				/* @parm <in> | The pixel buffer where the image is going.				*/
						 fzrt_int							img_width,			/* @parm <in> | The number of pixels per scan line.				*/
						 short							bits_per_pixel,		/* @parm <in> | The number of bits per pixel.
						 												   		@rval  8, 16, 24 or 32								*/
						 short							bytes_per_pixel,	/* @parm <in> | The number of bytes per pixel (real size of pixel), used for incrementing pixel pointer.	*/
						 short							channels,			/* @parm <in> | The number of color channels.
						 												   		@rval  1 = grayscale or ALPHA, 3 = RGB, 4 = RGBA */
						 fz_ffmt_image_channel_enum		which_channel,		/* @parm <in> | The color channels in the image scanline													*/
						 fz_ffmt_image_order_enum		rgb_order,			/* @parm <in> | The order of the colors on a scan line. 	*/
						 fzrt_boolean					alpha_first,		/* @parm <in> | If TRUE the alpha channel precedes the color channels.
						 												   		@rval  FALSE = RGBA or ABGR, TRUE = ARGB or BGRA				*/
						 fz_ffmt_image_type_enum			img_type,			/* @parm <in> | valid values are FZ_FFMT_IMAGE_TYPE_TRUE_COLOR, FZ_FFMT_IMAGE_TYPE_MAPPED_COLOR 											*/
						 unsigned char					*color_map,	  		/* @parm <in> | The image colormap.	If has_colormap is FALSE, this should be NULL.												*/
						 short							map_entry_bits,  	/* @parm <in> | The number of bits in each color map entry. 								*/
						 short							map_entry_bytes,  	/* @parm <in> | The number of bytes in each color map entry. 								*/
						 short							map_n_entries,		/* @parm <in> | The number of entries in the color map.								*/ 
						 short							map_order,			/* @parm <in> | the color organization in the color map.
						 												   		@rval  1 = RGB-RGB-RGB, 0 = RRR-GGG-BBB		*/
						 fz_ffmt_image_map_type_enum		map_type,			/* @parm <in> | The type of color map needed for the image.									*/
						 double							gamma,				/* @parm <in> | The gamma value of the image. */
						 fz_ffmt_image_import_ptr		*img_in_ptr			/* @parm <out> | The image bitmap import storage. */
						 );

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

	@fsfunc_t
	
	@desc		Uninitialize the image bitmap import storage.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef void  (FZRT_SPEC *fz_ffmt_image_bmap_scanline_finit_func)(
			fz_ffmt_image_import_ptr	*img_in_ptr				/* @parm <out> | The image bitmap import storage. */
			);

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

	@fsfunc_t
	
	@desc		Add a scanline to an image import pixel buffer.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_ib

*************************************************************************/
typedef short  (FZRT_SPEC *fz_ffmt_image_bmap_scanline_import_func)( 
			fzrt_pbuf_ptr		*pbuf,					/* @parm <in> | The pixel buffer where the image is going. */
			fz_ffmt_image_import_ptr  	img_in_ptr,		/* @parm <in> | The image bitmap import storage. */
			unsigned char 		*scanline, 				/* @parm <in> | A pointer to the beginning of the scan line. */
			unsigned short 		y, 						/* @parm <in> | The row of the scan line. */
			unsigned short 		pix_start,				/* @parm <in> | Which pixel on the scanline to start loading. */
			unsigned short 		pix_cnt					/* @parm <in> | The number of pixels to load in the scanline. */
			);


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

	@fset	fz_ffmt_image_fset
	
	@desc	formZ File Translator Image Function Set.  This function set contains formZ supplied functions
			for reading and writing vector and bitmap image files.

	@avail	5.0.0.0

	@toc	ffmt, ffmt_io, ffmt_ib, ffmt_iv

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

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

	@fsdef	formZ image file translator image function set UUID.

*********************************************************************************************************/
/* UUID : {0bbafc29-df63-46a0-86dc-0625e4c68d54} */
#define FZ_FFMT_IMAGE_FSET_TYPE		"\x0b\xba\xfc\x29\xdf\x63\x46\xa0\x86\xdc\x06\x25\xe4\xc6\x8d\x54"	/* Reference : 21 */
/********************************************************************************************************

	@fsdef	formZ image file translator image function set name.

*********************************************************************************************************/
#define FZ_FFMT_IMAGE_FSET_NAME		"FormZ Image File Translator Functions"
/********************************************************************************************************

	@fsdef	formZ image file translator image function set version.

*********************************************************************************************************/
#define FZ_FFMT_IMAGE_FSET_VERSION	FZPL_VERS_MAKE(5,0,0,0)

typedef struct fz_ffmt_image_fset
{
	fzpl_fset_prvt_data_td								prvt_data;

	fz_ffmt_image_lineset_append_pnts_func				fz_ffmt_image_lineset_append_pnts;				/* @fsfunc */
	fz_ffmt_image_lineset_close_func					fz_ffmt_image_lineset_close;					/* @fsfunc */
	fz_ffmt_image_lineset_clear_func					fz_ffmt_image_lineset_clear;					/* @fsfunc */
	fz_ffmt_image_lineset_get_pnts_func					fz_ffmt_image_lineset_get_pnts;					/* @fsfunc */
	
	fz_ffmt_image_bmap_get_write_funcs_func				fz_ffmt_image_bmap_get_write_funcs;				/* @fsfunc */
	fz_ffmt_supports_read_bitmap_func					fz_ffmt_supports_read_bitmap;					/* @fsfunc */
	fz_ffmt_supports_write_bitmap_func					fz_ffmt_supports_write_bitmap;					/* @fsfunc */
	
	fz_ffmt_image_read_opts_parm_get_func				fz_ffmt_image_read_opts_parm_get;				/* @fsfunc */
	fz_ffmt_image_read_opts_parm_set_func				fz_ffmt_image_read_opts_parm_set;				/* @fsfunc */
	fz_ffmt_image_write_opts_parm_get_func				fz_ffmt_image_write_opts_parm_get;				/* @fsfunc */
	fz_ffmt_image_write_opts_parm_set_func				fz_ffmt_image_write_opts_parm_set;				/* @fsfunc */

	fz_ffmt_image_read_get_dlog_flags_func				fz_ffmt_image_read_get_dlog_flags;				/* @fsfunc */
	fz_ffmt_image_read_set_dlog_flags_func				fz_ffmt_image_read_set_dlog_flags;				/* @fsfunc */
	fz_ffmt_image_write_get_dlog_flags_func				fz_ffmt_image_write_get_dlog_flags;				/* @fsfunc */
	fz_ffmt_image_write_set_dlog_flags_func				fz_ffmt_image_write_set_dlog_flags;				/* @fsfunc */
	
	fz_ffmt_image_bmap_get_read_funcs_func				fz_ffmt_image_bmap_get_read_funcs;				/* @fsfunc */
	fz_ffmt_image_vect_get_read_funcs_func				fz_ffmt_image_vect_get_read_funcs;				/* @fsfunc */
	fz_ffmt_image_vect_get_write_funcs_func				fz_ffmt_image_vect_get_write_funcs;				/* @fsfunc */
	fz_ffmt_image_bmap_write_pbuf_func					fz_ffmt_image_bmap_write_pbuf;					/* @fsfunc */
	fz_ffmt_image_bmap_pixbuf_from_display_func			fz_ffmt_image_bmap_pixbuf_from_display;			/* @fsfunc */

	fz_ffmt_image_bmap_load_pbuf_func					fz_ffmt_image_bmap_load_pbuf;					/* @fsfunc */
	fz_ffmt_image_bmap_scanline_init_func				fz_ffmt_image_bmap_scanline_init;				/* @fsfunc */
	fz_ffmt_image_bmap_scanline_finit_func				fz_ffmt_image_bmap_scanline_finit;				/* @fsfunc */
	fz_ffmt_image_bmap_scanline_import_func				fz_ffmt_image_bmap_scanline_import;				/* @fsfunc */

	fz_ffmt_image_lineset_is_hole_func					fz_ffmt_image_lineset_is_hole;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
}  fz_ffmt_image_fset;


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

	@type

	@desc	A texture map file conversion table.  
	
	@avail	5.0.0.0

	@toc	ffmt_dm

*********************************************************************************************************/
typedef struct ffmt_tmap_filetab_td			*fz_ffmt_tmap_filetab_ptr;

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

	@type

	@desc	An entry in a texture map file conversion table.  
	
	@avail	5.0.0.0
	
	@see	<auto>

	@toc	ffmt_dm

*********************************************************************************************************/
typedef struct ffmt_tmap_file_td			*fz_ffmt_tmap_file_ptr;

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

	@type

	@desc	A surface style lookup table.  
	
	@avail	5.0.0.0

	@toc	ffmt_dm

*********************************************************************************************************/
typedef struct ffmt_tmap_styletab_td		*fz_ffmt_tmap_styletab_ptr;

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

	@type

	@desc	An entry in a surface style lookup table.  
	
	@avail	5.0.0.0
	
	@see	<auto>

	@toc	ffmt_dm

*********************************************************************************************************/
typedef struct ffmt_tmap_style_td			*fz_ffmt_tmap_style_ptr;


		

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

	@fsfunc_t
	
	@desc		Gets the transform matrix.  Gets the transform matrix from the
				transform options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_tform_get_martix_func)(
			fz_ffmt_ref_td						ffmt_id,			/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_tform_dir_enum	direction,			/* @parm  <in> | Use FZ_FFMT_DATA_MODEL_TFORM_DIR_ISEXPORT if exporting a file.
																					Use FZ_FFMT_DATA_MODEL_TFORM_DIR_ISIMPORT if importing a file. */
			fz_mat4x4_td						*mat				/* @parm  <out> | The transform matrix. */
			);



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

	@fsfunc_t

	@desc		Begin export of symbols.  This function iterates over all symbol definitions
				in the project referenced by windex.  For each symbol to be exported, the data model write
				functions defined in fz_ffmt_data_cbak_fset are called.  Which functions are
				called depends on the object type of the symbol definition and the parameters passed into this function.
				The values for most of the parameters to this function should be obtained from the data model
				write options.  They are passed through here as parameters in case the translator needs to override
				any of the options when writing symbols.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_sdefs_func)(
			fzrt_int									windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		 					ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_data_write_symb_meth_enum 		sym_method,			/* @parm <in> | The symbol export method. */
			fzrt_int									flags,				/* @parm <in> | The export options flags.  Usually obtained by calling
																						fz_ffmt_data_model_write_opts_parm_get with FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_FLAGS as the which parameter.
																		   @rflag  fz_ffmt_data_model_write_opts_flags_enum */
			fzrt_boolean							do_tmap,			/* @parm <in> | If TRUE, export texture maps.  If FALSE don't export texture maps. */
			fz_ffmt_data_model_write_grup_meth_enum	grup_method,		/* @parm <in> | The grouping method. */
			fz_ffmt_data_model_write_fact_meth_enum	fact_method,		/* @parm <in> | The Facetted objects export method */
			fz_ffmt_data_model_write_smod_meth_enum	smod_method,		/* @parm <in> | The Smooth (ACIS) objects export method. */
			fz_ffmt_data_model_write_cntl_meth_enum	cntl_method,		/* @parm <in> | The Controlled objects export method. */
			double									angle,				/* @parm <in> | The smooth shading angle. */
			fz_mat4x4_td							*mat,				/* @parm <in> | The transform matrix. */
			void									*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_objt_tria_type_enum					triang_type,		/* @parm <in> | Decomposition option: The type of triangulation. */
			fzrt_boolean							non_planar_only,	/* @parm <in> | Decomposition option: if TRUE, only the non planar faces are triangulated, 
																						otherwise all faces are triangulated. */
			fzrt_boolean							strict_planarity,	/* @parm <in> | Decomposition option: if TRUE, the triangulation process is more sensitive 
																						to smaller disturbances in the planarity of a face. */
			fzrt_floc_ptr							floc				/* @parm <in> | The file to write the symbol definitions to. */
			);



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

	@fsfunc_t

	@desc		Get a translator's texture file table.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_func)(
			fz_ffmt_ref_td					ffmt_id,			/* @parm  <in>  | The model file format reference id. */
			fz_ffmt_tmap_filetab_ptr		*filetab			/* @parm  <out> | The texture file table. */
			);






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

	@fsfunc_t

	@desc		Adds an entry to a texture file table for import.  This function also
				performs any file format conversion or file copy specified by the texture
				options.  This function should only be called during data model file import.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_read_filetab_add_func)(
			fzrt_int						windex,				/* @parm  <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,			/* @parm  <in> | The model file format reference id. */
			fz_ffmt_tmap_filetab_ptr	filetab,			/* @parm  <in> | The texture file table. */
			char						*fname,				/* @parm  <in> | The name of the source texture map file. */
			fzrt_int						*file_id			/* @parm <out> | The id of the table entry. */
			);

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

	@fsfunc_t

	@desc		Gets the number of entries in a texture file table.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_count_func)(
			fz_ffmt_tmap_filetab_ptr		filetab,			/* @parm  <in> | The texture file table. */
			fzrt_int							*knt				/* @parm <out> | The number of entries in the table. */
			);

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

	@fsfunc_t

	@desc		Gets an entry from a texture file table.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_entry_func)(
			fz_ffmt_tmap_filetab_ptr		filetab,			/* @parm  <in> | The texture file table. */
			fzrt_int							id,					/* @parm  <in> | The id of the table entry. */
			fz_ffmt_tmap_file_ptr			*item				/* @parm <out> | The table entry. */
			);

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

	@fsfunc_t

	@desc		Gets an entry from a texture file table which matches a source
				file's name and file path.
	
	@return		TRUE on success (an entry was found).
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_entry_by_src_floc_func)(
			fz_ffmt_tmap_filetab_ptr		filetab,			/* @parm  <in> | The texture file table. */
			fzrt_floc_ptr					floc1,				/* @parm  <in> | A file location containing the file name and path to match with the source texture. */
			fz_ffmt_tmap_file_ptr			*item				/* @parm <out> | The table entry. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's id.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_id_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_int						*id					/* @parm <out> | The id of the table entry. */
			);


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

	@fsfunc_t

	@desc		Gets a texture file table entry's source file's format id.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_src_ffmt_id_func)(
			fz_ffmt_tmap_file_ptr			item,				/* @parm  <in> | The texture file table entry. */
			fz_ffmt_ref_td					*ffmt_id1			/* @parm <out> | The source texture's file format reference id. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's source file location.
				This file location contains the name and file path of the source
				texture map file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_src_floc_func)(
			fz_ffmt_tmap_file_ptr 		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_floc_ptr 				floc1				/* @parm <out> | A file location containing the file name and path of the source texture. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's source bounds rectangle.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_src_bounds_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_rect					*bounds1			/* @parm <out> | The bounds of the source texture. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's source croping rectangle.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_src_crop_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_rect					*crop1				/* @parm <out> | The source texture's cropping rectangle. */
			);


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

	@fsfunc_t

	@desc		Gets a texture file table entry's destination file's format id.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_dst_ffmt_id_func)(
			fz_ffmt_tmap_file_ptr			item,				/* @parm  <in> | The texture file table entry. */
			fz_ffmt_ref_td					*ffmt_id2			/* @parm <out> | The destination texture's file format reference id. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's destination file specification.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_dst_floc_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_floc_ptr				floc2				/* @parm <out> | A file location containing the file name and path of the destination texture. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's destination bounds.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_dst_bounds_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_rect					*bounds2			/* @parm <out> | The bounds of the destination texture. */
			);

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

	@fsfunc_t

	@desc		Gets a texture file table entry's destination crop.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_filetab_dst_crop_func)(
			fz_ffmt_tmap_file_ptr		item,				/* @parm  <in> | The texture file table entry. */
			fzrt_rect					*crop2				/* @parm <out> | The destination texture's cropping rectangle. */
			);




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

	@fsfunc_t

	@desc		Gets a style table for a translator.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_func)(
			fz_ffmt_ref_td				ffmt_id,				/* @parm  <in>	| The model file format reference id. */
			fz_ffmt_tmap_styletab_ptr	*styletab				/* @parm  <out> | The surface style lookup table. */
			);






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

	@fsfunc_t

	@desc		Adds an entry to a style table.  This will check the surface style name for a matching entry.
				If one is found, its id will be returned.  Otherwise a new entry will be created and
				the new entry's id will be returned.  This function will also add new surface styles to
				the project's surface style palette
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_add_func)(
			fzrt_int						windex,					/* @parm  <in> | project window index */
			fz_ffmt_tmap_styletab_ptr	styletab,				/* @parm  <in> | The style table. */
			fz_ffmt_tmap_filetab_ptr	filetab,				/* @parm  <in> | The texture file table. */
			char						*name,					/* @parm  <in> | surface style name. */
			double						ambient,				/* @parm  <in> | ambient reflection factor. */
			double						diffuse,				/* @parm  <in> | diffuse reflection factor. */
			double						specular,				/* @parm  <in> | specular reflection factor. */
			double						spec_expo,				/* @parm  <in> | specular reflection exponent. */
			double						refl,					/* @parm  <in> | reflectivity factor. */
			double						transp,					/* @parm  <in> | transparency factor. */
			double						refr,					/* @parm  <in> | index of refraction. */
			fz_rgb_float_td				*spec_col,				/* @parm  <in> | specular color. */
			fz_rgb_float_td				*diff_col,				/* @parm  <in> | plain surface color. */
			double						bmp_amp,				/* @parm  <in> | bump map amplitude. */
			fzrt_int						color,					/* @parm  <in> | Texture file table entry id of the color texture map. 0 If no color texture. */
			fzrt_int						trans,					/* @parm  <in> | Texture file table entry id of the transparency texture map. 0 If no transparency texture. */
			fzrt_int						bump,					/* @parm  <in> | Texture file table entry id of the bump texture map. 0 If no bump texture. */
			fzrt_int						*id						/* @parm <out> | The id of the created style table entry. */
			);

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

	@fsfunc_t

	@desc		Gets the number of entries in a style table.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_count_func)(
			fz_ffmt_tmap_styletab_ptr	styletab,				/* @parm  <in> | The style table. */
			fzrt_int						*knt					/* @parm <out> | The number of entries in the table. */
			);

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

	@fsfunc_t

	@desc		Gets a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_entry_func)(
			fz_ffmt_tmap_styletab_ptr	styletab,				/* @parm  <in> | The style table. */
			fzrt_int						id,						/* @parm  <in> | The id of the table entry. */
			fz_ffmt_tmap_style_ptr		*item					/* @parm <out> | The table entry. */
			);

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

	@fsfunc_t

	@desc		Gets a style table entry from a surface style palette item tag.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_entry_by_surf_tag_func)(
			fz_ffmt_tmap_styletab_ptr	styletab,				/* @parm  <in> | The style table. */
			fz_tag_td					*surf_tag,				/* @parm  <in> | The surface style palette item tag to match. */
			fz_ffmt_tmap_style_ptr		*item					/* @parm <out> | The table entry. */
			);

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

	@fsfunc_t

	@desc		Gets a style table entry from a surface style name.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_entry_by_surf_name_func)(
			fz_ffmt_tmap_styletab_ptr	styletab,				/* @parm  <in> | The style table. */
			char						*name,					/* @parm  <in> | The surface style name to match. */
			fz_ffmt_tmap_style_ptr		*item					/* @parm <out> | The table entry. */
			);

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

	@fsfunc_t

	@desc		Gets the id style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_id_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			fzrt_int						*id						/* @parm <out> | The id of the table entry. */
			);

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

	@fsfunc_t

	@desc		Gets a style table entry's surface style palette item tag.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_surf_tag_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			fz_tag_td					*surf_tag				/* @parm <out> | The surface style palette item tag. */
			);

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

	@fsfunc_t

	@desc		Gets a style table entry's surface style name.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_surf_name_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			char						*name,					/* @parm <out> | The surface style name. */
			fzrt_int						name_len				/* @parm  <in> | The maximum number of bytes to copy to name. */
			);

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

	@fsfunc_t

	@desc		Gets the ambient reflection factor for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_ambient_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			double						*ambient				/* @parm <out> | The ambient reflection factor. */
			);

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

	@fsfunc_t

	@desc		Gets the diffuse reflection factor for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_diffuse_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			double						*diffuse				/* @parm <out> | The diffuse reflection factor. */
			);

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

	@fsfunc_t

	@desc		Gets the specular reflection factor for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_specular_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry. */
			double						*specular				/* @parm <out> | The specular reflection factor. */
			);

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

	@fsfunc_t

	@desc		Gets the specular reflection exponent for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_spec_expo_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			double						*spec_expo				/* @parm <out> | The specular exponent. */
			);

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

	@fsfunc_t

	@desc		Gets the reflectivity factor for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_reflection_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			double						*refl					/* @parm <out> | The reflectivity factor. */
			);

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

	@fsfunc_t

	@desc		Gets the transparency factor for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_transparency_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			double						*transp					/* @parm <out> | The transparency factor. */
			);

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

	@fsfunc_t

	@desc		Gets the index of refraction for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_refraction_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			double						*refr					/* @parm <out> | The index of refraction. */
			);

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

	@fsfunc_t

	@desc		Gets the specular color for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_specular_color_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			fz_rgb_float_td				*spec_col				/* @parm <out> | The specular color. */
			);

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

	@fsfunc_t

	@desc		Gets the plain surface color for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_diffuse_color_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			fz_rgb_float_td				*diff_col				/* @parm <out> | The plain surface color. */
			);		/* TAH 10/23/02 */

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

	@fsfunc_t

	@desc		Gets the bump map amplitude for a style table entry.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_bmap_amplitude_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			float						*bmp_amp				/* @parm <out> | The bump map amplitude. */
			);

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

	@fsfunc_t

	@desc		Texture file table entry id of the color texture map. 0 If no color texture.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_color_file_id_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm  <in> | The table entry */
			fzrt_int						*col_id					/* @parm <out> | Texture file table entry id of the color texture map. */
			);

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

	@fsfunc_t

	@desc		Texture file table entry id of the transparency texture map. 0 If no transparency texture.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_transparency_file_id_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm <out> | The table entry */
			fzrt_int						*transp_id				/* @parm <out> | Texture file table entry id of the transparency texture map. */
			);

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

	@fsfunc_t

	@desc		Gets the id of the texture map file table entry for the surface style's bump map texture.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_styletab_bmap_file_id_func)(
			fz_ffmt_tmap_style_ptr		item,					/* @parm <out> | The table entry */
			fzrt_int						*bmap_id				/* @parm  <in> | The id of the texture map file table entry for the surface style's bump map texture. */
			);


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

	@fsfunc_t

	@desc		Gets the style table entry for an object's face.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_sid_from_face_func)(
			fzrt_int						windex,			/* @parm  <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_tmap_styletab_ptr	styletab,		/* @parm  <in> | The style table. */
			fz_objt_ptr					obj,			/* @parm  <in> | The object. */
			fzrt_int						findx,			/* @parm  <in> | The face index. */
			fz_ffmt_tmap_style_ptr		*item			/* @parm <out> | The table entry. */
			);



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

	@fsfunc_t

	@desc		Checks if an objects texture mapping is parametric.
				This function returns TRUE if an object has a texture mapping and the mapping type
				is parametric (FZ_MAP_SPACE_PARAMETRIC) as described in section 6.3.4 of the formZ Users Manual.

	
	@return		TRUE - If the object has a texture mapping and the type parametric.<nl>
				FALSE - If the object does not have a texture mapping or the type is not parametric.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_data_model_tmap_isparam_func)(
			fzrt_int				windex,			/* @parm  <in> | project window index */
			fz_objt_ptr			obj				/* @parm  <in> | The object. */
			);

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

	@fsfunc_t

	@desc		Maps vertex texture uv coordinates to segments.  formZ stores texture
				uv coordinates at the segment level.  Many file formats store texture
				uv coordinates at the vertex level.  Each texture coordinate corresponds
				to the segment's start vertex.  This function maps an array of texture
				uv coordinates, which correspond to an objects vertex array, to an array
				of texture uv coordinates which correspond to an objects segment array.
				This is a convenience function which can be used to prepare an array of
				texture uv coordinates to set a texture control using fz_objt_attr_set_objt_tctl_uv.
				
				IMPORTANT NOTE: The segment texture coordinate array must be allocated by the
				translator and must at least the size obtained from fz_objt_get_segt_count.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_int  (FZRT_SPEC *fz_ffmt_data_model_tmap_expand_uvs_func)(
			fz_objt_ptr			obj,			/* @parm <in> | The object to assign the texture coordinates to. */
			fz_xy_td			*xyz_uv,		/* @parm <in> | An array of texture coordinates corresponding to the object's vertex array. */
			fz_xy_td			*segt_uv		/* @parm <out> | An array of texture coordinates corresponding to the object's segment array. */
			);


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

	@fsfunc_t
	
	@desc		Groups an array of objects.  Creates a new group with a default name.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_grup_objs_func)(
			fzrt_int			windex,					/* @parm <in> | project window index */
			fz_objt_ptr		*objs,					/* @parm <in> | The array of objects. */
			fzrt_int			num_objs				/* @parm <in> | the number of objects in the array. */
			);
/************************************************************************

	@fsfunc_t
	
	@desc		Creates a unique group name.  The name is generated using the 
				export grouping options and a seed value.  The seed value is
				a number which is incremented for each named group.  This function
				initializes the seed value.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_int  (FZRT_SPEC *fz_ffmt_data_model_get_first_grup_name_func)(
			fzrt_int		windex,				/* @parm <in> | project window index */
			short		opt_grouping,		/* @parm <in> | The export grouping method */
			fzrt_int		opt_flags,			/* @parm <in> | Export option flags */
			char		*group_name,		/* @parm <out> | A unique name for the group */
			fzrt_int		*group_flags,		/* @parm <out> | Group bit flags */
			fzrt_int		*seed,				/* @parm <out> | Ta value to pass to subsequent calls to fz_ffmt_data_model_get_next_grup_name */
			fz_tag_td	*tag				/* @parm <out> | The tag of the group, layer, color, or object. */
			);
/************************************************************************

	@fsfunc_t
	
	@desc		Creates a unique group name.  The name is generated using the 
				export grouping options and a seed value.  The seed value is
				a number which is incremented for each named group.  This function
				uses and increments the seed value initialized by fz_ffmt_data_model_get_first_grup_name.
	
	@return		FZRT_NOERR on success.
				An error otherwise.
	
	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_int  (FZRT_SPEC *fz_ffmt_data_model_get_next_grup_name_func)(
			fzrt_int		windex,				/* @parm <in> | project window index */
			fzrt_int		prev,				/* @parm <in> | The seed value returned from a previous call to either
															fz_ffmt_data_model_get_next_grup_name or fz_ffmt_data_model_get_first_grup_name */
			short		opt_grouping,		/* @parm <in> | The export grouping method */
			fzrt_int		opt_flags,			/* @parm <out> | bit flags */
			char		*group_name,		/* @parm <out> | A unique name for the group */
			fzrt_int		*group_flags,		/* @parm <out> | Group bit flags */
			fzrt_int		*seed,				/* @parm <out> | Ta value to pass to subsequent calls to fz_ffmt_data_model_get_next_grup_name */
			fz_tag_td	*tag				/* @parm <out> | The tag of the group, layer, color, or object. */
			);	/* TAH 01/15/03 */



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

	@prmenum
	
	@desc		Data model import options parameter ids.
				Parameter identifiers for data model import options.  Used for the
				"which" argument of fz_ffmt_data_model_read_opts_parm_get and fz_ffmt_data_model_read_opts_parm_set.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_read_opts_parm_get, fz_ffmt_data_model_read_opts_parm_set

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_read_opts_enum
{	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_NONE = 0,
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_FLAGS,				/* @emem Data model import options Flags.
										 					   @ptype fzrt_int 
															   @rflag fz_ffmt_data_model_read_opts_flags_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_READ_METHOD,			/* @emem Data model import method.
															   @ptype fz_ffmt_data_read_meth_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_GRUP_METHOD,			/* @emem Data model import grouping method.
															   @ptype fz_ffmt_data_model_read_grup_meth_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_COLR_METHOD,			/* @emem Data model import color method.
															   @ptype fz_ffmt_read_color_meth_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_FMZ_UNITS,			/* @emem Model units in form-Z file.
															   @ptype fz_ffmt_data_formz_units_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_FMT_UNITS,			/* @emem How the units in the imported 
																file will be interpreted.
															   @ptype fz_ffmt_data_file_units_enum */
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_DEFAULT_FONT,			/* @emem Default font for imported text.
															   @ptype string
															   @pavail 5.5.0.0 */
	
	FZ_FFMT_DATA_MODEL_READ_OPTS_PARM_MAX
}  fz_ffmt_data_model_read_opts_enum;

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

	@prmenum
	
	@desc		Data model export options parameter ids.
				Parameter identifiers for data model export options.  Used for the
				"which" argument of fz_ffmt_data_model_write_opts_parm_get and fz_ffmt_data_model_write_opts_parm_set.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_write_opts_parm_get, fz_ffmt_data_model_write_opts_parm_set

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_write_opts_enum
{	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_NONE = 0,
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_FLAGS,			/* @emem Data model export options Flags.
														   @ptype fzrt_int 
														   @rflag fz_ffmt_data_model_write_opts_flags_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_NL_METHOD,		/* @emem Line termination for ascii text files.
														   @ptype fz_ffmt_write_nl_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_GRUP_METHOD,		/* @emem Data model export grouping method.
														   @ptype fz_ffmt_data_model_write_grup_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_FACT_METHOD,		/* @emem Data model export method for facetted objects.
														   @ptype fz_ffmt_data_model_write_fact_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_SMOD_METHOD,		/* @emem Data model export method for smooth (ACIS) objects.
														   @ptype fz_ffmt_data_model_write_smod_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_CNTL_METHOD,		/* @emem Data model export method for controlled objects.
														   @ptype fz_ffmt_data_model_write_cntl_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_SYMB_METHOD,		/* @emem Data model export method for symbols.
														   @ptype fz_ffmt_data_write_symb_meth_enum */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_SMTH_ANG,		/* @emem The smooth shading minimum angle.
														   @ptype double
														   @rimin_max 0.0 | 2_PI */
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_UNITS,			/* @emem Export Units. 
															@ptype fz_ffmt_data_write_units_enum
															@pavail 6.1.0.0 */
	
	FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_MAX
}  fz_ffmt_data_model_write_opts_enum;

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

	@prmenum
	
	@desc		Data model transform options options parameter ids.
				Parameter identifiers for data model options.  Used for the
				"which" argument of fz_ffmt_data_model_tform_opts_parm_get and fz_ffmt_data_model_tform_opts_parm_set.
				Note that the same options are used for import and export.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_tform_opts_parm_get, fz_ffmt_data_model_tform_opts_parm_set

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_tform_opts_enum
{	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_NONE = 0,
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_FLAGS,				/* @emem Data model transform options Flags.
										   @ptype fzrt_int 
										   @rflag fz_ffmt_data_model_tform_opts_flags_enum */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_SCALE,				/* @emem Data model transform scale.
										   @ptype fz_xyz_td */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_ROTATION,			/* @emem Data model transform rotation.
										   @ptype fz_xyz_td */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_TRANSLATION,			/* @emem Data model transform translation.
										   @ptype fz_xyz_td */
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_DIRECTION,			/* @emem Data model transform direction.
										   @ptype fz_ffmt_data_model_tform_dir_enum */
	
	FZ_FFMT_DATA_MODEL_TFORM_OPTS_PARM_MAX
}  fz_ffmt_data_model_tform_opts_enum;

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

	@fsfunc_t
	
	@desc		Gets the value of a model import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_read_opts_parm_get_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_read_opts_enum	which,			/* @parm <in> | The parameter to get. */
			fz_type_td							*value			/* @parm <out> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Sets the value of a model import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_read_opts_parm_set_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_read_opts_enum	which,			/* @parm <in> | The parameter to set. */
			fz_type_td							*value			/* @parm <in> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Gets the value of a model export option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_parm_get_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_write_opts_enum	which,			/* @parm <in> | The parameter to get. */
			fz_type_td							*value			/* @parm <out> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Sets the value of a model export option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_parm_set_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_write_opts_enum	which,			/* @parm <in> | The parameter to set. */
			fz_type_td							*value			/* @parm <in> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Gets the value of a model transform option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tform_opts_parm_get_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_tform_opts_enum	which,			/* @parm <in> | The parameter to get. */
			fz_type_td							*value			/* @parm <out> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Sets the value of a model transform option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tform_opts_parm_set_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_tform_opts_enum	which,			/* @parm <in> | The parameter to set. */
			fz_type_td							*value			/* @parm <in> | The value. */
			);



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

	@fsfunc_t
	
	@desc		Gets the model export decomposition options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_get_dcomp_opts_func)(
			fz_ffmt_ref_td						ffmt_id,					/* @parm  <in> | The file format reference id. */
			fz_objt_tria_type_enum				*const triang_type,			/* @parm <in> | The type of triangulation. */
			fzrt_boolean						*const non_planar_only,		/* @parm <in> | if TRUE, only the non planar faces are triangulated, 
																							otherwise all faces are triangulated. */
			fzrt_boolean						*const strict_planarity		/* @parm <in> | if TRUE, the triangulation process is more sensitive 
																							to smaller disturbances in the planarity of a face. */
			);

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

	@fsfunc_t
	
	@desc		Sets the model export decomposition options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_set_dcomp_opts_func)(
			fz_ffmt_ref_td						ffmt_id,				/* @parm  <in> | The file format reference id. */
			fz_objt_tria_type_enum				triang_type,			/* @parm <in> | The type of triangulation. */
			fzrt_boolean						non_planar_only,		/* @parm <in> | if TRUE, only the non planar faces are triangulated, 
																						otherwise all faces are triangulated. */
			fzrt_boolean						strict_planarity		/* @parm <in> | if TRUE, the triangulation process is more sensitive 
																						to smaller disturbances in the planarity of a face. */
			);

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

	@prmenum
	
	@desc		Texture map import options parameter ids.
				Parameter identifiers for texture map import options.  Used for the
				"which" argument of fz_ffmt_data_model_tmap_opts_parm_get and fz_ffmt_data_model_tmap_opts_parm_set.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_tmap_opts_parm_get, fz_ffmt_data_model_tmap_opts_parm_set

	@toc		ffmt_dm

*************************************************************************/
typedef enum fz_ffmt_data_model_tmap_opts_enum
{	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_NONE = 0,
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_FLAGS,				/* @emem Symbol data import options Flags.
										   @ptype fzrt_int
										   @rflag fz_ffmt_data_model_read_tmap_opts_flags_enum */
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_FIND_METHOD,		/* @emem The method for finding texture map files which can not be found in the texture paths specified in the File Search Paths preferences.
										   @ptype fz_ffmt_data_model_read_tmap_src_find_enum */
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_DST_LOC,			/* @emem Where to write the destination texture maps.
										   @ptype fz_ffmt_data_model_read_tmap_loc_enum */
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_DST_METHOD,			/* @emem The method for converting the source texture map to the destination texture map.
										   @ptype fz_ffmt_data_model_read_tmap_convert_enum */
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_DST_FFMT_ID,		/* @emem This specifies the file format that texture maps will be converted to
											when the FZ_FFMT_DATA_MODEL_TMAP_OPTS_PARM_DST_METHOD option is set to FZ_FFMT_DATA_MODEL_READ_TMAP_CONVERT_CONVERT.
										   @ptype fz_ffmt_ref_td(short) */
	
	FZ_FFMT_DATA_MODEL_TMAP_OPTS_OPTS_PARM_MAX
}  fz_ffmt_data_model_tmap_opts_enum;

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

	@fsfunc_t
	
	@desc		Gets the value of a model texture map import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_tmap_opts_enum, fz_ffmt_data_model_tmap_opts_parm_set

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_opts_parm_get_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_tmap_opts_enum	which,			/* @parm <in> | The parameter to get. */
			fz_type_td							*value			/* @parm <out> | The value. */
			);

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

	@fsfunc_t
	
	@desc		Sets the value of a model texture map import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_data_model_tmap_opts_enum, fz_ffmt_data_model_tmap_opts_parm_get

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_opts_parm_set_func)(
			fz_ffmt_ref_td						ffmt_id,		/* @parm  <in> | The file format reference id. */
			fz_ffmt_data_model_tmap_opts_enum	which,			/* @parm <in> | The parameter to set. */
			fz_type_td							*value			/* @parm <in> | The value. */
			);


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

	@fsfunc_t
	
	@desc		Gets the folder of the formZ texture from the model texture map import option.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_tmap_opts_get_dst_floc_func)(
			fz_ffmt_ref_td			ffmt_id,		/* @parm  <in> | The file format reference id. */
			fzrt_floc_ptr			dst_volm		/* @parm <out> | The destination folder. */
			);


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

	@fsfunc_t
	
	@desc		This sets the transform to be used for an export.  All objects, views, lights, etc.
				are transformed by this matrix by formZ before they are exported.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_export_set_tform_func)(
			fzrt_int			windex,					/* @parm <in> | project window index */
			fz_mat4x4_td	*tform					/* @parm <in> | The transform matrix.  */
			);

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

	@fsfunc_t
	
	@desc		Gets the enable flags for items on the common section of the Modeling Import Options dialog.
				This can be used in the fz_ffmt_cbak_data_model_read_predloginit and fz_ffmt_cbak_data_model_read_opts_changed
				callback functions to determine the state of the items on the dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_read_get_dlog_flags_func)(
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int				*flags				/* @parm <in> | The options enable flags.
														@rflag  fz_ffmt_data_model_read_iface_opts_flags_enum */
			);

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

	@fsfunc_t
	
	@desc		Sets the enable flags for items on the common section of the Modeling Import Options dialog.
				This can be used in the fz_ffmt_cbak_data_model_read_predloginit and fz_ffmt_cbak_data_model_read_opts_changed
				callback functions to set the state of the items on the dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_read_set_dlog_flags_func)(
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int				flags				/* @parm <in> | The options enable flags.
														@rflag  fz_ffmt_data_model_read_iface_opts_flags_enum */
			);

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

	@fsfunc_t
	
	@desc		Gets the enable flags for items on the common section of the Modeling Import Options dialog.
				This can be used in the fz_ffmt_cbak_data_model_write_predloginit and fz_ffmt_cbak_data_model_write_opts_changed
				callback functions to determine the state of the items on the dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_get_dlog_flags_func)(
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int				*flags				/* @parm <in> | The options enable flags.
														@rflag  fz_ffmt_data_model_write_iface_opts_flags_enum */
			);

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

	@fsfunc_t
	
	@desc		Sets the enable flags for items on the common section of the Modeling Import Options dialog.
				This can be used in the fz_ffmt_cbak_data_model_write_predloginit and fz_ffmt_cbak_data_model_write_opts_changed
				callback functions to set the state of the items on the dialog.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_set_dlog_flags_func)(
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int				flags				/* @parm <in> | The options enable flags.
														@rflag  fz_ffmt_data_model_write_iface_opts_flags_enum */
			);


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

	@fsfunc_t

	@desc		Begin export of objects.  This function iterates over all objects
				in the project referenced by windex.  For each of the objects to be exported, the data model write
				functions defined in fz_ffmt_data_cbak_fset are called.  Which functions are
				called depends on the object type and the parameters passed into this function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_all_func)(								/* TAH 10/14/03 */
	fzrt_int									windex,				/* @parm <in> | project window index */
	fz_ffmt_ref_td		 					ffmt_id,			/* @parm <in> | The file format reference id. */
	fzrt_int									flags,				/* @parm <in> | The export options flags.  Usually obtained by calling
																			fz_ffmt_data_model_write_opts_parm_get with FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_FLAGS as the which parameter.
																   @rflag  fz_ffmt_data_model_write_opts_flags_enum */
	fzrt_boolean							do_tmap,			/* @parm <in> | If TRUE, export texture maps.  If FALSE don't export texture maps. */
	fz_ffmt_data_model_write_grup_meth_enum	grup_method,		/* @parm <in> | The grouping method. */
	fz_ffmt_data_model_write_fact_meth_enum	fact_method,		/* @parm <in> | The Facetted objects export method */
	fz_ffmt_data_model_write_smod_meth_enum	smod_method,		/* @parm <in> | The Smooth (ACIS) objects export method. */
	fz_ffmt_data_model_write_cntl_meth_enum	cntl_method,		/* @parm <in> | The Controlled objects export method. */
	double									angle,				/* @parm <in> | The smooth shading angle. */
	fz_mat4x4_td							*tform,				/* @parm <in> | The transform matrix. */
	void									*data,				/* @parm <in> | A pointer to translator defined data. */
	fz_objt_tria_type_enum					triang_type,		/* @parm <in> | Decomposition option: The type of triangulation. */
	fzrt_boolean							non_planar_only,	/* @parm <in> | Decomposition option: if TRUE, only the non planar faces are triangulated, 
																				otherwise all faces are triangulated. */
	fzrt_boolean							strict_planarity,	/* @parm <in> | Decomposition option: if TRUE, the triangulation process is more sensitive 
																				to smaller disturbances in the planarity of a face. */
	fzrt_floc_ptr							floc				/* @parm <in> | The file to write the symbol definitions to. */
	);


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

	@fsfunc_t
	
	@desc		Completes object import.
				This function processes imported objects.  If an error occurred during import,
				(err != FZRT_NOERR) this function deletes and imported objects and
				in the case of "Add to Project", returns the project to it's pre-
				import state.<nl><nl>
				
				If no error occurred during import, The imported objects are processed
				as defined by several import options.  This processing includes, transforming
				the object as defined by the transform, formZ units and file units options;
				forming solids and joining faces as defined by the Composition options; 
				splitting solids into separate objects as defined by the Separate Objects By
				Volume option; and performs object validity checking and repairs bad object
				when possible.<nl><nl>
				
				The objects may be further transformed by this function by passing in either
				a transformation matrix or a scale.  If a transformation matrix is passed in,
				it is concatenated with the matrix derived from the transform options and the 
				file and formZ units options.  The imported objects are transformed by the concatenated
				matrix.  If a scale is passed in, the matrix derived from the transform options
				and the file and formZ units options is scaled and the resulting matrix is used to
				transform the imported objects.<nl><nl>
				
				NOTE: If importing a vector image file as modeling objects, there are no units or tform options.
				Therefore, all units scaling and any other transform must be included in either the mat or
				scale parameters.

	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_read_finish_func)(
	fzrt_int						windex,			/* @parm <in> | project window index */
	fz_ffmt_ref_td				ffmt_id,		/* @parm <in> | The file format reference id. */
	fzrt_error_td				err,			/* @parm <in> | The id of the last error encountered.  If not FZRT_NOERR,
																this function cancels the import and cleans up (deletes created
																objects). */
	fz_mat4x4_td				*mat,			/* @parm <in_opt> | A 4x4 matrix to transform all imported objects by.
																If not NULL, this matrix is concatenated with the tform matrix
																(from tform opts and the units scaling).  The resulting matrix is applied to all
																imported objects.  If NULL, only the tform and units scaling are applied
																to all imported objects.	 */
	const fz_xyz_td *const		scale			/* @parm <in_opt> | A scale factor to scale all imported objects by.  If mat is not NULL,
																this parameter is ignored.  If not NULL, this scale is concatenated with the tform matrix
																and units scaling.  The resulting matrix is applied to all imported objects.
																If NULL, only the tform and units scaling are applied to all imported objects. */
	);

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

	@fsfunc_t

	@desc		Cleans up an objects topology.
				Removes duplicate points and corrects face directions. 
				Note : this function also calls fz_objt_fact_link_faces at the end of 
				cleanup.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_cleanup_objt_geom_func)(
			fzrt_int			windex,				/* @parm <in> | project window index */
			fz_objt_ptr		obj					/* @parm <in_out> | The object to clean. */
			);

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

	@fsfunc_t

	@desc		Tells formZ that the import of a single object is complete.
				This adds an object to a group.  This function must be called
				prior to reparenting an object in the group hierarchy.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_objt_complete_func)(
			fzrt_int			windex,				/* @parm <in> | project window index */
			fz_objt_ptr		obj					/* @parm <in> | The object. */
			);


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

	@fsfunc_t

	@desc		Gets flags which tell formZ which units in the export options
				Units menu should be enabled beacuse the file format supports
				them.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		6.1.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_units_menu_get_enable_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in>  | The file format reference id. */
			fzrt_int			*enable_flags		/* @parm <out> | The flags to disable the Units menu items.
													@rflag fz_ffmt_iface_units_menu_enable_flags_enum */
			);

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

	@fsfunc_t

	@desc		Sets flags which tell formZ which units in the export options
				Units menu should be enabled beacuse the file format supports
				them.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		6.1.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_opts_units_menu_set_enable_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int			enable_flags		/* @parm <in> | The flags to disable the Units menu items.
													@rflag fz_ffmt_iface_units_menu_enable_flags_enum */
			);

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

	@fsfunc_t
	
	@desc		Creates a symbol definition.  This function places the symbol
				definition in the library specified by the symbol options.  It
				also transforms the definition as defined by the transform options
				and the file and formZ units options.
	
	@return		TRUE if the symbol is referenced by a symbol instance object in the project.
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_str

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_import_cmpt_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id, 		/* @parm <in> | The file format reference id. */
			char				*name,			/* @parm <in> | the name of the definition. If the name does 
														not exist, a new definition is created. If it 
														already exists, the level will be added to the 
														definition. If the level also exists it will be 
														overwritten. The name cannot contain more than 
														32 characters.											*/
			fzrt_int				lev_indx,		/* @parm <in> | the level index
												   @rimin_imax 0 | 2													*/
			fz_objt_ptr			*src_obj,		/* @parm <in_opt> | array with object pointers					*/
			fzrt_int 				num_src,		/* @parm <in_opt> | number of entries in the src_obj array		*/
			fz_lite_ptr			*src_lite,		/* @parm <in_opt> | array with light pointers					*/
			fzrt_int 				num_lite,		/* @parm <in_opt> | number of entries in the src_lite array	*/
			fz_mat4x4_td		*mat,			/* @parm <in_opt> | A 4x4 matrix to transform all imported objects by.
																If not NULL, this matrix is concatenated with the tform matrix
																(from tform opts and the units scaling).  The resulting matrix is applied to all
																imported symbol definition objects.  If NULL, only the tform and units scaling are applied
																to all imported symbol definition objects.	 */
			fz_xyz_td			*origin,		/* @parm <in_opt> | origin point of the definition level.
													This should be specified in the file's coordinate system.
												   @default	{0.0, 0.0, 0.0}												*/
			fz_xyz_td			*scale_pt,		/* @parm <in_opt> | Handle point of the definition level.
													This should be specified in the file's coordinate system.
												   @default	the upper right corner of the 3D bounding box of the objects/lights.								*/
			fz_tag_td			*new_cmpt_tag		/* @parm <out_opt> | new component level								*/
			);

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

	@fsfunc_t

	@desc		Begin export of symbols.  This function iterates over all symbol definitions
				in the project referenced by windex.  For each symbol to be exported, the data model write
				functions defined in fz_ffmt_data_cbak_fset are called.  Which functions are
				called depends on the object type of the symbol definition and the parameters passed into this function.
				The values for most of the parameters to this function should be obtained from the data model
				write options.  They are passed through here as parameters in case the translator needs to override
				any of the options when writing symbols.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		7.0.0.0

	@toc		ffmt_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_data_model_write_cmpts_func)(
			fzrt_int									windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		 					ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_data_write_symb_meth_enum 		sym_method,			/* @parm <in> | The symbol export method. */
			fzrt_int									flags,				/* @parm <in> | The export options flags.  Usually obtained by calling
																						fz_ffmt_data_model_write_opts_parm_get with FZ_FFMT_DATA_MODEL_WRITE_OPTS_PARM_FLAGS as the which parameter.
																		   @rflag  fz_ffmt_data_model_write_opts_flags_enum */
			fzrt_boolean							do_tmap,			/* @parm <in> | If TRUE, export texture maps.  If FALSE don't export texture maps. */
			fz_ffmt_data_model_write_grup_meth_enum	grup_method,		/* @parm <in> | The grouping method. */
			fz_ffmt_data_model_write_fact_meth_enum	fact_method,		/* @parm <in> | The Facetted objects export method */
			fz_ffmt_data_model_write_smod_meth_enum	smod_method,		/* @parm <in> | The Smooth (ACIS) objects export method. */
			fz_ffmt_data_model_write_cntl_meth_enum	cntl_method,		/* @parm <in> | The Controlled objects export method. */
			double									angle,				/* @parm <in> | The smooth shading angle. */
			fz_mat4x4_td							*mat,				/* @parm <in> | The transform matrix. */
			void									*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_objt_tria_type_enum					triang_type,		/* @parm <in> | Decomposition option: The type of triangulation. */
			fzrt_boolean							non_planar_only,	/* @parm <in> | Decomposition option: if TRUE, only the non planar faces are triangulated, 
																						otherwise all faces are triangulated. */
			fzrt_boolean							strict_planarity,	/* @parm <in> | Decomposition option: if TRUE, the triangulation process is more sensitive 
																						to smaller disturbances in the planarity of a face. */
			fzrt_floc_ptr							floc				/* @parm <in> | The file to write the symbol definitions to. */
			);

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

	@fset	fz_ffmt_data_model_fset
	
	@desc	formZ File Translator Data Model Export Function Set

	@avail	5.0.0.0

	@toc	ffmt, ffmt_dm

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

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

	@fsdef	formZ file translator data model function set UUID.

*********************************************************************************************************/
/* UUID : {40c37610-50bb-43d0-8601-580c784aa513} */
#define FZ_FFMT_DATA_MODEL_FSET_TYPE		"\x40\xc3\x76\x10\x50\xbb\x43\xd0\x86\x01\x58\x0c\x78\x4a\xa5\x13"	/* Reference : 53 */
/********************************************************************************************************

	@fsdef	formZ file translator data model function set name.

*********************************************************************************************************/
#define FZ_FFMT_DATA_MODEL_FSET_NAME		"formZ 3D File Translator Functions"
/********************************************************************************************************

	@fsdef	formZ file translator data model function set version.

*********************************************************************************************************/
#define FZ_FFMT_DATA_MODEL_FSET_VERSION	FZPL_VERS_MAKE(5,0,0,0)

typedef struct fz_ffmt_data_model_fset
{
	fzpl_fset_prvt_data_td								prvt_data;

	fz_ffmt_tform_get_martix_func							fz_ffmt_tform_get_martix;							/* @fsfunc */

	fz_ffmt_data_model_write_all_func							fz_ffmt_data_model_write_all;							/* @fsfunc */						/* TAh 10/14/03 */
	fz_ffmt_data_model_write_sdefs_func						fz_ffmt_data_model_write_sdefs;						/* @fsfunc */


	fz_ffmt_data_model_tmap_filetab_func				fz_ffmt_data_model_tmap_filetab;					/* @fsfunc */
	fz_ffmt_data_model_tmap_read_filetab_add_func						fz_ffmt_data_model_tmap_read_filetab_add;						/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_count_func						fz_ffmt_data_model_tmap_filetab_count;						/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_entry_func						fz_ffmt_data_model_tmap_filetab_entry;						/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_entry_by_src_floc_func				fz_ffmt_data_model_tmap_filetab_entry_by_src_floc;				/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_id_func						fz_ffmt_data_model_tmap_filetab_id;						/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_src_ffmt_id_func					fz_ffmt_data_model_tmap_filetab_src_ffmt_id;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_src_floc_func					fz_ffmt_data_model_tmap_filetab_src_floc;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_src_bounds_func					fz_ffmt_data_model_tmap_filetab_src_bounds;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_src_crop_func					fz_ffmt_data_model_tmap_filetab_src_crop;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_dst_ffmt_id_func					fz_ffmt_data_model_tmap_filetab_dst_ffmt_id;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_dst_floc_func					fz_ffmt_data_model_tmap_filetab_dst_floc;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_dst_bounds_func					fz_ffmt_data_model_tmap_filetab_dst_bounds;					/* @fsfunc */
	fz_ffmt_data_model_tmap_filetab_dst_crop_func					fz_ffmt_data_model_tmap_filetab_dst_crop;					/* @fsfunc */

	fz_ffmt_data_model_styletab_func						fz_ffmt_data_model_styletab;			/* @fsfunc */
	fz_ffmt_data_model_styletab_add_func							fz_ffmt_data_model_styletab_add;							/* @fsfunc */
	fz_ffmt_data_model_styletab_count_func						fz_ffmt_data_model_styletab_count;						/* @fsfunc */
	fz_ffmt_data_model_styletab_entry_func						fz_ffmt_data_model_styletab_entry;						/* @fsfunc */
	fz_ffmt_data_model_styletab_entry_by_surf_tag_func					fz_ffmt_data_model_styletab_entry_by_surf_tag;					/* @fsfunc */
	fz_ffmt_data_model_styletab_entry_by_surf_name_func					fz_ffmt_data_model_styletab_entry_by_surf_name;					/* @fsfunc */
	fz_ffmt_data_model_styletab_id_func						fz_ffmt_data_model_styletab_id;						/* @fsfunc */
	fz_ffmt_data_model_styletab_surf_tag_func					fz_ffmt_data_model_styletab_surf_tag;					/* @fsfunc */
	fz_ffmt_data_model_styletab_surf_name_func					fz_ffmt_data_model_styletab_surf_name;					/* @fsfunc */
	fz_ffmt_data_model_styletab_ambient_func					fz_ffmt_data_model_styletab_ambient;					/* @fsfunc */
	fz_ffmt_data_model_styletab_diffuse_func					fz_ffmt_data_model_styletab_diffuse;					/* @fsfunc */
	fz_ffmt_data_model_styletab_specular_func				fz_ffmt_data_model_styletab_specular;				/* @fsfunc */
	fz_ffmt_data_model_styletab_spec_expo_func				fz_ffmt_data_model_styletab_spec_expo;				/* @fsfunc */
	fz_ffmt_data_model_styletab_reflection_func				fz_ffmt_data_model_styletab_reflection;				/* @fsfunc */
	fz_ffmt_data_model_styletab_transparency_func			fz_ffmt_data_model_styletab_transparency;			/* @fsfunc */
	fz_ffmt_data_model_styletab_refraction_func				fz_ffmt_data_model_styletab_refraction;				/* @fsfunc */
	fz_ffmt_data_model_styletab_specular_color_func			fz_ffmt_data_model_styletab_specular_color;			/* @fsfunc */
	fz_ffmt_data_model_styletab_diffuse_color_func			fz_ffmt_data_model_styletab_diffuse_color;			/* @fsfunc */
	fz_ffmt_data_model_styletab_bmap_amplitude_func			fz_ffmt_data_model_styletab_bmap_amplitude;			/* @fsfunc */
	fz_ffmt_data_model_styletab_color_file_id_func			fz_ffmt_data_model_styletab_color_file_id;			/* @fsfunc */
	fz_ffmt_data_model_styletab_transparency_file_id_func	fz_ffmt_data_model_styletab_transparency_file_id;	/* @fsfunc */
	fz_ffmt_data_model_styletab_bmap_file_id_func			fz_ffmt_data_model_styletab_bmap_file_id;			/* @fsfunc */

	fz_ffmt_data_model_sid_from_face_func						fz_ffmt_data_model_sid_from_face;						/* @fsfunc */
	fz_ffmt_data_model_tmap_isparam_func						fz_ffmt_data_model_tmap_isparam;						/* @fsfunc */
	fz_ffmt_data_model_tmap_expand_uvs_func							fz_ffmt_data_model_tmap_expand_uvs;							/* @fsfunc */

	fz_ffmt_data_model_grup_objs_func								fz_ffmt_data_model_grup_objs;								/* @fsfunc */
	fz_ffmt_data_model_get_first_grup_name_func					fz_ffmt_data_model_get_first_grup_name;					/* @fsfunc */
	fz_ffmt_data_model_get_next_grup_name_func					fz_ffmt_data_model_get_next_grup_name;					/* @fsfunc */

	fz_ffmt_data_model_read_opts_parm_get_func				fz_ffmt_data_model_read_opts_parm_get;				/* @fsfunc */
	fz_ffmt_data_model_read_opts_parm_set_func				fz_ffmt_data_model_read_opts_parm_set;				/* @fsfunc */
	fz_ffmt_data_model_write_opts_parm_get_func				fz_ffmt_data_model_write_opts_parm_get;				/* @fsfunc */
	fz_ffmt_data_model_write_opts_parm_set_func				fz_ffmt_data_model_write_opts_parm_set;				/* @fsfunc */
	fz_ffmt_data_model_tform_opts_parm_get_func				fz_ffmt_data_model_tform_opts_parm_get;				/* @fsfunc */
	fz_ffmt_data_model_tform_opts_parm_set_func				fz_ffmt_data_model_tform_opts_parm_set;				/* @fsfunc */

	fz_ffmt_data_model_write_opts_get_dcomp_opts_func		fz_ffmt_data_model_write_opts_get_dcomp_opts;		/* @fsfunc */
	fz_ffmt_data_model_write_opts_set_dcomp_opts_func		fz_ffmt_data_model_write_opts_set_dcomp_opts;		/* @fsfunc */

	fz_ffmt_data_model_tmap_opts_parm_get_func						fz_ffmt_data_model_tmap_opts_parm_get;						/* @fsfunc */
	fz_ffmt_data_model_tmap_opts_parm_set_func						fz_ffmt_data_model_tmap_opts_parm_set;						/* @fsfunc */
	fz_ffmt_data_model_tmap_opts_get_dst_floc_func					fz_ffmt_data_model_tmap_opts_get_dst_floc;					/* @fsfunc */
	
	fz_ffmt_data_model_export_set_tform_func							fz_ffmt_data_model_export_set_tform;							/* @fsfunc */

	fz_ffmt_data_model_read_get_dlog_flags_func				fz_ffmt_data_model_read_get_dlog_flags;				/* @fsfunc */
	fz_ffmt_data_model_read_set_dlog_flags_func				fz_ffmt_data_model_read_set_dlog_flags;				/* @fsfunc */
	fz_ffmt_data_model_write_get_dlog_flags_func			fz_ffmt_data_model_write_get_dlog_flags;			/* @fsfunc */
	fz_ffmt_data_model_write_set_dlog_flags_func			fz_ffmt_data_model_write_set_dlog_flags;			/* @fsfunc */

	fz_ffmt_data_model_read_finish_func						fz_ffmt_data_model_read_finish;						/* @fsfunc */
	fz_ffmt_data_model_import_symb_def_func					fz_ffmt_data_model_import_symb_def;					/* @fsfunc */

	fz_ffmt_data_model_cleanup_objt_geom_func				fz_ffmt_data_model_cleanup_objt_geom;
	fz_ffmt_data_model_objt_complete_func					fz_ffmt_data_model_objt_complete;
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/

	fz_ffmt_data_model_write_opts_units_menu_get_enable_flags_func		fz_ffmt_data_model_write_opts_units_menu_get_enable_flags;	/* @fsfunc */
	fz_ffmt_data_model_write_opts_units_menu_set_enable_flags_func		fz_ffmt_data_model_write_opts_units_menu_set_enable_flags;	/* @fsfunc */

	fz_ffmt_data_model_import_cmpt_func						fz_ffmt_data_model_import_cmpt;					/* @fsfunc */
	fz_ffmt_data_model_write_cmpts_func						fz_ffmt_data_model_write_cmpts;					/* @fsfunc */

}  fz_ffmt_data_model_fset;



/* TAH 09/15/03 Begin { */

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

	@comm				Plugin Implemented Function Sets

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

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

	@fsfunc_t

	@desc		Saves and restores the translator's custom options.
				This function is called by formZ
				to save the translator's custom options.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_opts_io_func)(
			fz_iost_ptr					iost,			/* @parm <in> | The IOStream to read/write the options to/from. */
			fz_iost_dir_td_enum				dir,			/* @parm <in> | The direction of the IO (read or write).
																	*/
			fzpl_vers_td * const		version,		/* @parm <in_out> | The version of the options data. 
																	This parameter is a Result if dir == FZ_IOST_WRITE.
																	This parameter is an input if dir == FZ_IOST_READ. */
			fzrt_unsigned_int				size			/* @parm <in> | The size of the options data.
																	This parameter is valid only if dir == FZ_IOST_READ. */
			);	/* TAH 10/11/02 */



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

	@fsfunc_t

	@desc		Gets file format name.  This is the name that appears in the formZ interface.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_name_func)(
			char			*fmt_name,			/* @parm <out> | The file format name which appears in the user interface. */
			fzrt_int			fmt_name_max_len	/* @parm <in>  | The maximum length in bytes of the file format name. */
			);

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

	@fsfunc_t

	@desc		Gets a file translator's id.  This is a unique persisting id for the translator.
				This id must be created once by the uuid generation application.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_uuid_func)(
			fzrt_UUID_td	fmt_id				/* @parm <out> | A unique id for the translator. For plugins which implement only one translator, this can be the plugin's id. */
			);

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

	@fsfunc_t

	@desc		Gets information about a file translator.  This information is used by
				formZ to place the file format in the appropriate places in the formZ
				user interface.<nl>
				
				This function also associates a keyword with a translator.
				Other plugins can then use this keyword to obtain a translator's
				reference id.  For example a model file translator can obtain a reference
				id for a tiff translator using the "TIFF" keyword to export textures as tiff files.
				formZ supplied keywords are defined in formZ_vendor.h.
	
				The file_ext string can contain up to FZRT_STDF_MAX_NUM_EXT extensions.  Each extension must be
				less than FZRT_STDF_MAX_EXT characters.  The extensions are separated by the colon ':' character.
				If this string contains more than FZRT_STDF_MAX_NUM_EXT extensions, only the first FZRT_STDF_MAX_NUM_EXT
				extensions will be used.

	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_info_func)(
			char			*sortby,			/* @parm <out> | A string used to sort file format names in user interface lists and menus. */
			fzrt_int			sortby_max_len,		/* @parm <in>  | The maximum length in bytes of the sort string. */
			char			*file_ext,			/* @parm <out> | The file extensions recognized by the file format. */
			fzrt_int			file_ext_max_len,	/* @parm <in>  | The maximum length in bytes of the file extension. */
			char			*keywd,				/* @parm <out> | The format keyword. */
			fzrt_int			keywd_max_len,		/* @parm <in>  | The maximum length in bytes of the format keyword. */
			fzrt_int			*attr_flags			/* @parm <out> | Translator attribute flags.
												   @rflag	fz_ffmt_format_attr_flags_enum */
			);

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

	@fsfunc_t

	@desc		Gets the Macintosh file type and creator associated with a file's format.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_ftype_func)(
			fzrt_ostype		*type,				/* @parm <out> | The Macintosh file type for the file this translator reads and writes. */
			fzrt_ostype		*creator			/* @parm <out> | The Macintosh file creator for the file this translator reads and writes. */
			);

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

	@fsfunc_t

	@desc		Gets the icon associated with a file format.  Gets the icon from the translator's
				resource data.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_icon_rsrc_func)(
			fzrt_icon_ptr 	*icon				/* @parm <out> | The icon handle of the icon associated with the file's format. */
			);

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

	@fsfunc_t

	@desc		Gets the icon associated with a file format.  Gets the icon from files.
				One file for the icon's color data, the other file for the icon's mask.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_icon_file_func)(
			fzrt_floc_ptr 			floc,				/* @parm	<out> | file location of file which contains the icon. */
			fzrt_int 					*hpos, 				/* @parm	<out> | left horizontal location of icon data in file. */
			fzrt_int 					*vpos, 				/* @parm	<out> | top vertical location of icon data in file. */
			fzrt_floc_ptr 			floc_mask, 			/* @parm	<out_opt> | file location of file which contains the icon mask data. */
			fzrt_int 					*hpos_mask, 		/* @parm	<out_opt> | left horizontal location of icon mask data in file. */
			fzrt_int 					*vpos_mask			/* @parm	<out_opt> | top vertical location of icon mask data in file. */
			);

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

	@fsfunc_t

	@desc		Checks if a file's format is supported by a translator.
				This function can either check the first size bytes (read by formZ) to see
				if a proper format identifier exists or it can open the file and read the
				appropriate format identification data.
							
	@return		TRUE if the translator supports the file's format.
				FALSE if not.

	@avail		5.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_cbak_is_file_func)(
			fzrt_floc_ptr		floc,				/* @parm <in> | The file to read from. */
			const fzrt_ptr		data,				/* @parm <in> | The first size bytes of the file. */
			fzrt_int				size				/* @parm <in> | The size of the data. */
			);

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

	@fsfunc_t

	@desc		Instructs a formZ extension to register its help data.
							
	@avail		6.0.0.0

	@toc		ffmt_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_pdf_help_func)(void);

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

	@plfset	fz_ffmt_cbak_info_fset
	
	@desc	formZ File Translator Install Function Set

	@avail	5.0.0.0

	@toc	ffmt_cbak

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

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

	@fsdef	formZ file translator install function set UUID.

*********************************************************************************************************/
/* UUID : {BB973B78-720D-49d9-B7FF-6BD4FEFFBDB1} */
#define FZ_FFMT_CBAK_INFO_FSET_TYPE		"\xbb\x97\x3b\x78\x72\x0d\x49\xd9\xb7\xff\x6b\xd4\xfe\xff\xbd\xb1"	/* Reference : 5 */
/********************************************************************************************************

	@fsdef	formZ file translator install function set name.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_INFO_FSET_NAME		"File Translator Callbacks"		/* TAH 07/01/02 */
/********************************************************************************************************

	@fsdef	formZ file translator install function set version.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_INFO_FSET_VERSION	FZPL_VERS_MAKE(6,0,0,0)

typedef struct fz_ffmt_cbak_info_fset
{
	fzpl_fset_prvt_data_td					prvt_data;

	fz_ffmt_cbak_name_func					fz_ffmt_cbak_name;				/* @fsfunc */
	fz_ffmt_cbak_uuid_func					fz_ffmt_cbak_uuid;				/* @fsfunc */
	fz_ffmt_cbak_info_func					fz_ffmt_cbak_info;				/* @fsfunc */
	fz_ffmt_cbak_ftype_func					fz_ffmt_cbak_ftype;				/* @fsfunc */
	fz_ffmt_cbak_icon_rsrc_func				fz_ffmt_cbak_icon_rsrc;			/* @fsfunc */
	fz_ffmt_cbak_icon_file_func				fz_ffmt_cbak_icon_file;			/* @fsfunc */
	fz_ffmt_cbak_opts_io_func				fz_ffmt_cbak_opts_io;			/* @fsfunc */
	fz_ffmt_cbak_is_file_func				fz_ffmt_cbak_is_file;			/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/

	fz_ffmt_cbak_pdf_help_func				fz_ffmt_cbak_pdf_help;			/* @fsfunc */

}  fz_ffmt_cbak_info_fset;









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

	@fsfunc_t

	@desc		Obtains format image import options dialog item enable flags.
				This optional function is used by the application 
				to get the image read options dialog item enable flags.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_opts_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int			*flags,				/* @parm  <out> | The enable flags. */
			fzrt_int			*opts_flags			/* @parm  <out> | General import/export options flags. */
			);

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

	@fsfunc_t

	@desc		Obtains format image export options dialog item enable flags.
				This optional function is used by the application 
				to get the image write options dialog item enable flags.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_write_opts_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int			*flags,				/* @parm  <out> | The enable flags. */
			fzrt_int			*opts_flags			/* @parm  <out> | General import/export options flags. */
			);

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

	@fsfunc_t

	@desc		A function that is called prior to displaying the image import options dialog.
				This optional function is called just prior to displaying the translator's image
				import options dialog.  It can be used to dynamically set
				the enabled states and values of options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_predloginit_func)(
			fzrt_int			windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td	ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Adds a custom section to an image read translator's options dialog.
				This optional function adds items to the options dialog to support any
				custom options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_dlog_cust_func)(
			fz_fuim_tmpl_ptr	fuim_tmpl,				/* @parm <in> | The fuim manager pointer. */
			short				parent,					/* @parm <in> | The fuim id of the parent dialog. */
			fz_ffmt_ref_td		ffmt_id					/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Adds a custom section to an image write translator's options dialog.
				This optional function adds items to the options dialog to support any custom
				options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_write_dlog_cust_func)(
			fz_fuim_tmpl_ptr	fuim_tmpl,				/* @parm <in> | The fuim manager pointer. */
			short				parent,					/* @parm <in> | The fuim id of the parent dialog. */
			fz_ffmt_ref_td		ffmt_id					/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Sets an image read translator's custom options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_opts_default_func)(
			fz_ffmt_ref_td		ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Sets an image write translator's custom options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_write_opts_default_func)(
			fz_ffmt_ref_td		ffmt_id				/* @parm <in> | The file format reference id. */
			);


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

	@fsfunc_t

	@desc		An optional translator implemented function which gets called when the
				value of an option in the common section of the options dialog changes.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_write_opts_changed_func)(
			fz_ffmt_ref_td						ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_image_write_opts_enum	 	which 				/* @parm <in> | The option item that changes value. */
			);

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

	@fsfunc_t

	@desc		An optional translator implemented function which gets called when the
				value of an option in the common section of the options dialog changes.
	
	@return		FZRT_NOERR if the IO was successful.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_io

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_opts_changed_func)(
			fz_ffmt_ref_td						ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_image_read_opts_enum	 	which 				/* @parm <in> | The option item that changes value. */
			);



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

	fsfunc_t

	desc		Reads an image file and creates a draft image element.
				This function reads data from a file and creates a draft image element.  Draft images
				in formZ can be bitmap images or images made up of platform specific drawing commands
				(GDI on windows and QuickDraw on Macintosh).
				This function should only be implemented if the translator has the capability of generating
				GDI or QuickDraw commands.  Examples of file formats which can easily use this function are
				PICT on the Macintosh and WMF on Windows.  If this function is not implemented
				(set to NULL), a default function which creates bitmap draft images will be used.
	
	return		FZRT_NOERR on success.
				An error otherwise.

	avail		5.0.0.0

	toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_read_plat_native_draft_image_func)(
			fzrt_int				windex,				/* parm <in> | The active window. */
			fz_ffmt_ref_td		ffmt_id,			/* parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc				/* parm <in> | The file to read from. */
			);




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

	@fsfunc_t

	@desc		Begins the writing of a bitmap file.
				Any translator specific data can be allocated in this function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_file_begin_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				**data_ptr,	/* @parm <out> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc		/* @parm <in> | The file to write to. */
			);

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

	@fsfunc_t

	@desc		Ends the writing of a bitmap file.
				Any translator specific data allocated fz_ffmt_cbak_image_bmap_write_begin
				should be freed in this function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_file_end_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				**data_ptr,	/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc,		/* @parm <in> | The file to write to. */
			fzrt_error_td		err			/* @parm <in> | The last error detected. */
			);

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

	@fsfunc_t

	@desc		Gets a progress string for bitmap export.
				This is an optional plugin implemented function.  This function sets a string
				which is displayed in the export progress bar.  If this function is not implemented
				(set to NULL), a default string will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_progress_str_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			char				*str,		/* @parm <out> | The progress string. */
			fzrt_int				max_len		/* @parm <in> | Ths maximum length of the progress string. */
			);

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

	@fsfunc_t

	@desc		Gets the string to use as a window label for an error dialog.
				This function is called to get text for a window label for an error dialog.
				If this function is not implemented (set to NULL), a default label will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_err_label_func)(
			fzrt_int				windex,		/* @parm <in>  | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in>  | The file format reference id. */
			char				*str,		/* @parm <out> | The label string. */
			fzrt_int				max_len,	/* @parm <in>  | The maximum length the label string can be. */
			short				*err_id		/* @parm <out> | The error code for the error. */
			);

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

	@fsfunc_t

	@desc		Begins writing an image to a bitmap file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_image_begin_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			fzrt_int				width,		/* @parm <in> | The width of the image to export. */
			fzrt_int				height,		/* @parm <in> | The height of the image to export. */
			fzrt_boolean		has_alpha	/* @parm <in> | TRUE if the image has alpha data. */
			);

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

	@fsfunc_t

	@desc		Writes a single scanline of an image to a bitmap file.  The rgb and alpha
				data is represented by unsigned bytes.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_image_scanline_byte_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_rgb_uchar_td		*pixels,	/* @parm <in> | The scanline pixels to export. */
			unsigned char		*alpha,		/* @parm <in> | The scanline alpha channel to export.  This will be NULL if no alpha is to be exported. */
			fzrt_int				row			/* @parm <in> | Which scanline. */
			);

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

	@fsfunc_t

	@desc		Writes a single scanline of an image to a bitmap file.  All data is
				represented as single precision floating point values.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_image_scanline_float_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_rgb_float_td		*pixels,	/* @parm <in> | The scanline pixels to export. */
			float				*alpha,		/* @parm <in> | The scanline alpha channel to export.  This will be NULL if no alpha is to be exported. */
			float				*depth,		/* @parm <in> | The scanline depth data to export.  This will be NULL if no depth is to be exported. */
			fz_rgb_float_td		*rgb_bg,	/* @parm <in> | The scanline background color to export.  This will be NULL if no background color is to be exported. */
			fzrt_int				row			/* @parm <in> | Which scanline. */
			);

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

	@fsfunc_t

	@desc		Ends writing an image to a bitmap file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_ib

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_bmap_write_image_end_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data		/* @parm <in> | A pointer to translator defined data. */
			);






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

	@fsfunc_t

	@desc		Begins the writing of a vector file.
				Any translator specific data
				can be allocated in this function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_begin_func)(
			fzrt_int										windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td								ffmt_id,			/* @parm <in> | The file format reference id. */
			void										**data_ptr,			/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr								floc,				/* @parm <in> | The file to write to. */
			fzrt_boolean								*invrt_proj,		/* @parm <out_opt> | TRUE if the y origin is top-left.
																								 FALSE if the y origin is bottom-left. */
																			/* @default	FALSE */
			fz_ffmt_image_vect_write_text_method_enum	*text_method,		/* @parm <out_opt> | How text is to be exported. */
																			/* @default	FZ_FFMT_IMAGE_VECT_WRITE_TEXT_METH_AS_PATHS */
			double										*deflt_line_weight,	/* @parm <out_opt> | The file format's default line width. */
																			/* @default	1.0 */
			fzrt_boolean								*full_faces,		/* @parm <out_opt> | TRUE if the exporting full faces.
																								 FALSE if exporting filtered segments. */
																			/* @default	FALSE */
			fzrt_boolean								*pnts_as_pnts		/* @parm <out_opt> | TRUE if exporting points as points.
																								 FALSE if exporting points as drawn on the screen. */
																			/* @default	FALSE */
			);

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

	@fsfunc_t

	@desc		Ends the writing of a vector file.
				Any translator specific data allocated fz_ffmt_cbak_image_vect_write_begin
				should be freed in this function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_end_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				**data_ptr,	/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc,		/* @parm <in> | The file to write to. */
			fzrt_error_td		err			/* @parm <in> | The last error detected. */
			);

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

	@fsfunc_t

	@desc		Gets a progress string for vector export.
				This is an optional plugin implemented function.  This function sets a string
				which is displayed in the export progress bar.  If this function is not implemented
				(set to NULL), a default string will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_progress_str_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			char				*str,		/* @parm <out> | The progress string. */
			fzrt_int				max_len		/* @parm <in> | Ths maximum length of the progress string. */
			);

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

	@fsfunc_t

	@desc		Gets the string to use as a window label for an error dialog.
				This function is called to get text for a window label for an error dialog.
				If this function is not implemented (set to NULL), a default label will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_err_label_func)(
			fzrt_int				windex,		/* @parm <in>  | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in>  | The file format reference id. */
			char				*str,		/* @parm <out> | The label string. */
			fzrt_int				max_len,	/* @parm <in>  | The maximum length the label string can be. */
			short				*err_id		/* @parm <out> | The error code for the error. */
			);

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

	@fsfunc_t
	
	@desc		Writes a line segment to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_line_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				x1,			/* @parm <in> | The x location of the starting point of the line segment. */
			double				y1,			/* @parm <in> | The y location of the starting point of the line segment. */
			double				x2,			/* @parm <in> | The x location of the end point of the line segment. */
			double				y2			/* @parm <in> | The y location of the end point of the line segment. */
			);

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

	@fsfunc_t
	
	@desc		Writes a line segment to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		8.5.3.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_line_ref_func)(
			fzrt_int			windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_objt_ptr			ref_obj,	/* @parm <in> | reference object (the original object that the line is derived from). Useful for accessing attributes */
			double				x1,			/* @parm <in> | The x location of the starting point of the line segment. */
			double				y1,			/* @parm <in> | The y location of the starting point of the line segment. */
			double				x2,			/* @parm <in> | The x location of the end point of the line segment. */
			double				y2			/* @parm <in> | The y location of the end point of the line segment. */
			);


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

	@fsfunc_t
	
	@desc		Writes a polyline to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_lineset_func)(
			fzrt_int							windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td					ffmt_id,	/* @parm <in> | The file format reference id. */
			void							*data,		/* @parm <in> | A pointer to translator defined data. */
			fzrt_int							how,		/* @parm <in> | What the lineset represents (i.e. outline, filled polygon, clip polygon). 
														   @rflag fz_ffmt_lineset_flags_enum */
			fz_ffmt_image_lineset_ptr		lineset		/* @parm <in> | The lineset to write. */
			);
	
/************************************************************************

	@fsfunc_t
	
	@desc		Writes a polyline to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_lineset_ref_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td					ffmt_id,	/* @parm <in> | The file format reference id. */
			void							*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_objt_ptr						ref_obj,	/* @parm <in> | reference object (the original object that the line is derived from). Useful for accessing attributes */
			fzrt_int						how,		/* @parm <in> | What the lineset represents (i.e. outline, filled polygon, clip polygon).
														   @rflag fz_ffmt_lineset_flags_enum */
			fz_ffmt_image_lineset_ptr		lineset		/* @parm <in> | The lineset to write. */
			);



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

	@fsfunc_t
	
	@desc		Writes a drawn point to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_point_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				x,			/* @parm <in> | The x location of the point. */
			double				y			/* @parm <in> | The y location of the point. */
			);

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

	@fsfunc_t
	
	@desc		Writes a drawn point to a vector file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_point_ref_func)(
			fzrt_int			windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			 fz_objt_ptr		ref_obj,	/* @parm <in> | reference object (the original object that the point is derived from). Useful for accessing attributes */
			double				x,			/* @parm <in> | The x location of the point. */
			double				y			/* @parm <in> | The y location of the point. */
			);
	
/************************************************************************

	@fsfunc_t
	
	@desc		Writes simple text to a file.  Simple text is text that is all the same font
				and size.  It has no style (normal, bold, etc.) unless the style is implicit
				in the font.  It is not rotated and follows a linear path.  Any new line characters
				are ignored.  Currently, formZ only calls this to export axis labels.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_simple_text_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				*fname,		/* @parm <in> | The font name. */
			double				txsize,		/* @parm <in> | The point size of the font. */
			double				x,			/* @parm <in> | The x location of the lower left corner of the text. */
			double				y,			/* @parm <in> | The y location of the lower left corner of the text. */
			char				*str		/* @parm <in> | The ascii text string. */
			);

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

	@fsfunc_t
	
	@desc		Sets the current line color.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_line_color_func)(
			fzrt_int							windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td						ffmt_id,	/* @parm <in> | The file format reference id. */
			void							*data,		/* @parm <in> | A pointer to translator defined data. */
			const fzrt_rgb_color_td *const	rgb_color	/* @parm <in> | The line color. */
			);

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

	@fsfunc_t
	
	@desc		Sets the current fill color.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_fill_color_func)(
			fzrt_int							windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td						ffmt_id,	/* @parm <in> | The file format reference id. */
			void							*data,		/* @parm <in> | A pointer to translator defined data. */
			fzrt_rgb_color_td *const		rgb_color	/* @parm <in> | The fill color. */
			);

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

	@fsfunc_t
	
	@desc		Sets the current line width.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_line_weight_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				line_width	/* @parm <in> | The line width. */
			);

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

	@fsfunc_t
	
	@desc		Called at the sart of exporting a compound element.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_begin_compound_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,	/* @parm <in> | The file format reference id. */
			void						*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_ffmt_image_lineset_ptr	lineset		/* @parm <in> | The line set. */
			);

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

	@fsfunc_t
	
	@desc		Called at the completion of exporting a compound element.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_end_compound_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,	/* @parm <in> | The file format reference id. */
			void						*data,		/* @parm <in> | A pointer to translator defined data. */
			fz_ffmt_image_lineset_ptr	lineset		/* @parm <in> | The line set. */
			);

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

	@fsfunc_t
	
	@desc		Saves the current graphics state.  When this function is called,
				The translator needs to save the current state of the graphics.
				This state includes, line color, fill color, clipping path, fill
				pattern, and line style.  The graphics state will be restored by
				a call to fz_ffmt_cbak_image_vect_write_restore_gstate.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_cbak_image_vect_write_restore_gstate

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_save_gstate_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data		/* @parm <in> | A pointer to translator defined data. */
			);

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

	@fsfunc_t
	
	@desc		Saves the current graphics state.  When this function is called,
				The translator needs to restore the state of the graphics save by
				a previous call to fz_ffmt_cbak_image_vect_write_save_gstate.
				This state includes, line color, fill color, clipping path, fill
				pattern, and line style.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0
	
	@see		fz_ffmt_cbak_image_vect_write_save_gstate

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_restore_gstate_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data		/* @parm <in> | A pointer to translator defined data. */
			);

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

	@fsfunc_t
	
	@desc		Sets the current line style.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_line_style_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				type,		/* @parm <in> | Line style id (a lookup into the line style palette). */
			short				lsty_flag,	/* @parm <in> | Bit flags controlling the drawing of the line style. */
			double				delta_ptr,	/* @parm <in> | A parameter used to adjust the dashed at corners. */
			double				d1_ptr,		/* @parm <in> | The length of the first dash. */
			double				ddd_ptr,	/* @parm <in> | The length of the overall pattern. */
			double				drawn_ptr	/* @parm <in> | A parameter used to adjust the dashed at corners. */
			);

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

	@fsfunc_t
	
	@desc		Writes a circular arc to a vector file.
				Circles, ellipses and elliptical arcs are also written with this function.  Full
				circles and ellipses are specified by setting the start angle to 0 and the end angle
				to 360.  Ellipses and elliptical arcs are specified by setting different values to
				rx and ry.  Filled arcs are filled as wedges.
				
				This function should return TRUE if the translator is able to export the arc.  If FALSE
				is returned, formZ will call the translator's fz_ffmt_cbak_image_vect_write_lineset_func
				to export the arc as polylines.  This is useful to translators which can not directly export
				all possible types of arcs, circles or ellipses.  For instance, some translators can not export
				rotated ellipses.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_can_do_arc_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,	/* @parm <in> | The file format reference id. */
			void						*data,		/* @parm <in> | A pointer to translator defined data. */
			double						cx,			/* @parm <in> | The x location of the center of the center of the arc. */
			double						cy,			/* @parm <in> | The y location of the center of the center of the arc. */
			double						rx,			/* @parm <in> | The radius along the x-axis. */
			double						ry,			/* @parm <in> | The radius along the x-axis. */
			double						ang1,		/* @parm <in> | The angle of the starting point of the arc. */
			double						ang2,		/* @parm <in> | The angle of the end point of the arc. */
			double						pitch,		/* @parm <in> | Rotation to apply to the arc. */
			fzrt_int						how			/* @parm <in> | What the arc represents (i.e. outline, filled polygon, clip polygon)
													   @rflag fz_ffmt_lineset_flags_enum */
			); 

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

	@fsfunc_t
	
	@desc		Determines of a specific circular arc can be exported to a vector file.
				Circles, ellipses and elliptical arcs are checked with this function.  Full
				circles and ellipses are specified by setting the start angle to 0 and the end angle
				to 360.  Ellipses and elliptical arcs are specified by setting different values to
				rx and ry.  Filled arcs are filled as wedges.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_arc_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,	/* @parm <in> | The file format reference id. */
			void						*data,		/* @parm <in> | A pointer to translator defined data. */
			double						cx,			/* @parm <in> | The x location of the center of the center of the arc. */
			double						cy,			/* @parm <in> | The y location of the center of the center of the arc. */
			double						rx,			/* @parm <in> | The radius along the x-axis. */
			double						ry,			/* @parm <in> | The radius along the x-axis. */
			double						ang1,		/* @parm <in> | The angle of the starting point of the arc. */
			double						ang2,		/* @parm <in> | The angle of the end point of the arc. */
			double						pitch,		/* @parm <in> | Rotation to apply to the arc. */
			short						res,		/* @parm <in> | The maximum length of a line segment to represent the arc. */
			fzrt_int						how			/* @parm <in> | What the arc represents (i.e. outline, filled polygon, clip polygon)
													   @rflag fz_ffmt_lineset_flags_enum */
			);

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

	@fsfunc_t
	
	@desc		Sets the current fill pattern.
				If the pat parameter is NULL, The current fill pattern is set to solid.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_fill_pattern_func)(
			fzrt_int						windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,	/* @parm <in> | The file format reference id. */
			void						*data,		/* @parm <in> | A pointer to translator defined data. */
			fzrt_pen_pattern_ptr		pat			/* @parm <in> | The fill pattern. */
			);

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

	@fsfunc_t

	@desc		Sets the rotation of a text character.  This rotation is relative
				to the plotted x-axis.  This sets the rotation for all subsequent
				calls to fz_ffmt_cbak_image_vect_write_write_text_char.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_text_angle_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				ang_rad		/* @parm <in> | Rotation to apply to the text. */
			);

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

	@fsfunc_t

	@desc		Sets the font of a text character.  This sets the font for
				all subsequent calls to fz_ffmt_cbak_image_vect_write_write_text_char.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_set_text_font_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				*font_name,	/* @parm <in> | The name of the font. */
			double				size,		/* @parm <in> | The point size of the font. */
			short				nchar		/* @parm <in> | The number of characters this font applies to. */
			);

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

	@fsfunc_t

	@desc		Writes a single text character.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_write_text_char_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				c,			/* @parm <in> | The ascii character to write. */
			double				x,			/* @parm <in> | The x location of the character. */
			double				y,			/* @parm <in> | The x location of the character. */
			short				face		/* @parm <in> | The id of the font. */
			);

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

	@fsfunc_t

	@desc		Tells the exporter that a text string is about to be exported.
				This allows an exporter to write any necessary string begin
				data to the file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_header_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				llx,		/* @parm <in> | The x location of the lower left corner of the text. */
			double				lly,		/* @parm <in> | The y location of the lower left corner of the text. */
			double				size,		/* @parm <in> | The size of the string. */
			double				angle,		/* @parm <in> | Rotation to apply to the text. */
			double				lspc,		/* @parm <in> | The spacing between lines of text. */
			char				just		/* @parm <in> | The justification of the text. */
			);

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

	@fsfunc_t

	@desc		Inserts a new line in exported text.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_newline_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			void				*data			/* @parm <in> | A pointer to translator defined data. */
			);

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

	@fsfunc_t

	@desc		Sets the font for exported text.  This sets the font for
				all subsequent calls to fz_expt_vect_string_write.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_font_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				*fnt,		/* @parm <in> | The Name of the font. */
			double				size		/* @parm <in> | Th font point size. */
			);

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

	@fsfunc_t

	@desc		Writes a line of text.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_write_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			char				*string,	/* @parm <in> | The text string to write. */
			short				len			/* @parm <in> | The length of the text string. */
			);

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

	@fsfunc_t

	@desc		Tells an exporter that a text string is about to be exported.
				This allows an exporter to write any necessary string end
				data to the file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_trailer_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data		/* @parm <in> | A pointer to translator defined data. */
			);

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

	@fsfunc_t

	@desc		Writes a line of text.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		7.1.0.0

	@toc		ffmt_cbak_iv

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_image_vect_write_string_write_angle_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			void				*data,		/* @parm <in> | A pointer to translator defined data. */
			double				font_size,	/* @parm <in> | The font size to use. */
			fz_xy_td			origin,		/* @parm <in> | The start point of the text. */
			fz_xy_td			end_point,	/* @parm <in> | The start point of the text. */
			char				*font_name, /* @parm <in> | The name of the font to use. */
			char				*string,	/* @parm <in> | The text string to write. */
			short				len,		/* @parm <in> | The length of the text string. */
			short				unicode		/* @parm <in> | Is the string a Unicode string. */
			);


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

	@plfset	fz_ffmt_cbak_image_fset
	
	@desc	formZ File Translator Image Options Function Set

	@avail	5.0.0.0

	@toc	ffmt_cbak, ffmt_cbak_io, ffmt_cbak_ib, ffmt_cbak_iv

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

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

	@fsdef	formZ file translator image function set UUID.

*********************************************************************************************************/
/* UUID : {b945d577-ca50-49e2-8376-581ca5b281dc} */
#define FZ_FFMT_CBAK_IMAGE_FSET_TYPE		"\xb9\x45\xd5\x77\xca\x50\x49\xe2\x83\x76\x58\x1c\xa5\xb2\x81\xdc"	/* Reference : 814 */
/********************************************************************************************************

	@fsdef	formZ file translator image function set name.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_IMAGE_FSET_NAME		"File Translator Image Callback Functions"
/********************************************************************************************************

	@fsdef	formZ file translator image function set version.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_IMAGE_FSET_VERSION		FZPL_VERS_MAKE(8,5,3,0)

typedef struct fz_ffmt_cbak_image_fset
{
	fzpl_fset_prvt_data_td									prvt_data;

		/* Image Read Common */
	fz_ffmt_cbak_image_read_dlog_cust_func					fz_ffmt_cbak_image_read_dlog_cust;							/* @fsfunc */
	fz_ffmt_cbak_image_read_predloginit_func				fz_ffmt_cbak_image_read_predloginit;						/* @fsfunc */
	fz_ffmt_cbak_image_read_opts_default_func				fz_ffmt_cbak_image_read_opts_default;						/* @fsfunc */
	fz_ffmt_cbak_image_read_opts_flags_func					fz_ffmt_cbak_image_read_opts_flags;							/* @fsfunc */
	fz_ffmt_cbak_image_read_opts_changed_func				fz_ffmt_cbak_image_read_opts_changed;						/* @fsfunc */

		/* Image Read Bitmap */
	fz_ffmt_cbak_image_bmap_read_info_func					fz_ffmt_cbak_image_bmap_read_info;							/* @fsfunc */
	fz_ffmt_cbak_image_bmap_read_func						fz_ffmt_cbak_image_bmap_read;								/* @fsfunc */
																											
		/* Image Read Vector */
	fz_ffmt_cbak_image_vect_read_frame_func					fz_ffmt_cbak_image_vect_read_frame;							/* @fsfunc */
	fz_ffmt_cbak_image_vect_read_func						fz_ffmt_cbak_image_vect_read;								/* @fsfunc */
	fz_ffmt_cbak_image_vect_read_raw_data_func				fz_ffmt_cbak_image_vect_read_raw_data;						/* @fsfunc */
	fz_ffmt_cbak_image_vect_read_printer_data_func			fz_ffmt_cbak_image_vect_read_printer_data;					/* @fsfunc */
																											
	fz_ffmt_cbak_image_read_plat_native_draft_image_func	fz_ffmt_cbak_image_read_plat_native_draft_image;			/* fsfunc */
																											
		/* Image Write Common */
	fz_ffmt_cbak_image_write_dlog_cust_func					fz_ffmt_cbak_image_write_dlog_cust;							/* @fsfunc */
	fz_ffmt_cbak_image_write_predloginit_func				fz_ffmt_cbak_image_write_predloginit;						/* @fsfunc */
	fz_ffmt_cbak_image_write_opts_default_func				fz_ffmt_cbak_image_write_opts_default;						/* @fsfunc */
	fz_ffmt_cbak_image_write_opts_flags_func				fz_ffmt_cbak_image_write_opts_flags;						/* @fsfunc */
	fz_ffmt_cbak_image_write_opts_changed_func				fz_ffmt_cbak_image_write_opts_changed;						/* @fsfunc */
																											
		/* Image Write Bitmap */
	fz_ffmt_cbak_image_bmap_write_file_begin_func				fz_ffmt_cbak_image_bmap_write_file_begin;					/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_file_end_func					fz_ffmt_cbak_image_bmap_write_file_end;						/* @fsfunc */																										
	fz_ffmt_cbak_image_bmap_write_progress_str_func				fz_ffmt_cbak_image_bmap_write_progress_str;					/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_image_begin_func				fz_ffmt_cbak_image_bmap_write_image_begin;					/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_image_scanline_byte_func		fz_ffmt_cbak_image_bmap_write_image_scanline_byte;			/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_image_scanline_float_func		fz_ffmt_cbak_image_bmap_write_image_scanline_float;			/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_image_end_func				fz_ffmt_cbak_image_bmap_write_image_end;					/* @fsfunc */
	fz_ffmt_cbak_image_bmap_write_err_label_func				fz_ffmt_cbak_image_bmap_write_err_label;					/* @fsfunc */
																											
		/* Image Write Vector */
	fz_ffmt_cbak_image_vect_write_begin_func				fz_ffmt_cbak_image_vect_write_begin;						/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_end_func					fz_ffmt_cbak_image_vect_write_end;							/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_progress_str_func			fz_ffmt_cbak_image_vect_write_progress_str;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_err_label_func			fz_ffmt_cbak_image_vect_write_err_label;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_line_func					fz_ffmt_cbak_image_vect_write_line;							/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_point_func				fz_ffmt_cbak_image_vect_write_point;						/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_simple_text_func			fz_ffmt_cbak_image_vect_write_simple_text;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_line_color_func		fz_ffmt_cbak_image_vect_write_set_line_color;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_fill_color_func		fz_ffmt_cbak_image_vect_write_set_fill_color;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_line_weight_func		fz_ffmt_cbak_image_vect_write_set_line_weight;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_lineset_func				fz_ffmt_cbak_image_vect_write_lineset;						/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_begin_compound_func		fz_ffmt_cbak_image_vect_write_begin_compound;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_end_compound_func			fz_ffmt_cbak_image_vect_write_end_compound;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_save_gstate_func			fz_ffmt_cbak_image_vect_write_save_gstate;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_restore_gstate_func		fz_ffmt_cbak_image_vect_write_restore_gstate;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_line_style_func		fz_ffmt_cbak_image_vect_write_set_line_style;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_arc_func					fz_ffmt_cbak_image_vect_write_arc;							/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_text_angle_func		fz_ffmt_cbak_image_vect_write_set_text_angle;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_text_font_func		fz_ffmt_cbak_image_vect_write_set_text_font;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_write_text_char_func		fz_ffmt_cbak_image_vect_write_write_text_char;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_set_fill_pattern_func		fz_ffmt_cbak_image_vect_write_set_fill_pattern;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_string_header_func		fz_ffmt_cbak_image_vect_write_string_header;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_string_newline_func		fz_ffmt_cbak_image_vect_write_string_newline;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_string_font_func			fz_ffmt_cbak_image_vect_write_string_font;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_string_write_func			fz_ffmt_cbak_image_vect_write_string_write;					/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_string_trailer_func		fz_ffmt_cbak_image_vect_write_string_trailer;				/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_can_do_arc_func			fz_ffmt_cbak_image_vect_write_can_do_arc;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	 
	 fz_ffmt_cbak_image_vect_write_string_write_angle_func	fz_ffmt_cbak_image_vect_write_string_write_angle;			/* @fsfunc */
	 
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 7.1.0.0 functions.									*
	 *																					*
	 ************************************************************************************/

	fz_ffmt_cbak_image_vect_write_line_ref_func					fz_ffmt_cbak_image_vect_write_line_ref;							/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_point_ref_func				fz_ffmt_cbak_image_vect_write_point_ref;						/* @fsfunc */
	fz_ffmt_cbak_image_vect_write_lineset_ref_func				fz_ffmt_cbak_image_vect_write_lineset_ref;						/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.5.3.0 functions.									*
	 *																					*
	 ************************************************************************************/
}  fz_ffmt_cbak_image_fset;





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

	@fsfunc_t

	@desc		Obtains format id's for texture formats supported by a model file format.
				If this function is not implemented (set to NULL), formZ will assume that no texture
				file formats are supported by this model format.  This could mean either that the model
				format does not support textures or that texture are embedded in the model file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_tmap_list_func)(
			fz_ffmt_ref_td			ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_ref_td			*list,				/* @parm <out> | A list of texture format id's supported by this format. */
			fzrt_int				*list_knt			/* @parm <out> | The number of texture format id's in list. */
			);





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

	@fsfunc_t

	@desc		Obtains format options dialog item enable flags.
				This optional function is by the application 
				to get the options dialog item enable flags.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_opts_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int		*flags,				/* @parm  <out> | The enable flags */
			fzrt_int		*opts_flags			/* @parm  <out> | General import/export options flags 
											   @rflag fz_ffmt_data_model_read_iface_opts_flags_enum */
			);

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

	@fsfunc_t

	@desc		A function that is called prior to displaying the import options dialog.
				This optional function is called just prior
				to displaying the translator's import options dialog.  It can be used to dynamically set
				the enabled states and values of options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_predloginit_func)(
			fzrt_int		windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td	ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Adds a custom section to a model read translator's options dialog.
				This optional function adds items to
				the options dialog to support any custom options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_dlog_cust_func)(
			fz_fuim_tmpl_ptr	fuim_tmpl,		/* @parm <in> | The fuim manager pointer. */
			short			parent,				/* @parm <in> | The fuim id of the parent dialog. */
			fz_ffmt_ref_td		ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Sets a model read translator's custom options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_opts_default_func)(
			fz_ffmt_ref_td		ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		An optional translator implemented function which gets called when the
				value of an option in the common section of the options dialog changes.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_opts_changed_func)(
			fz_ffmt_ref_td							ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_data_model_read_opts_enum	 	which 				/* @parm <in> | The option item that changes value. */
			);

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

	@fsfunc_t

	@desc		An optional translator implemented function which gets called when the
				value of an option in the common section of the options dialog changes.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_tform_opts_changed_func)(
			fz_ffmt_ref_td							ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_data_model_tform_opts_enum	 	which 				/* @parm <in> | The option item that changes value. */
			);


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

	@fsfunc_t

	@desc		Reads model data from a file.
				This function reads model data from a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_read_func)(														/* TAH 01/23/04 */
			fzrt_int				windex, 			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_floc_ptr		floc				/* @parm <in> | The file to read from. */
			);



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

	@fsfunc_t

	@desc		Obtains format options dialog item enable flags.
				This optional function is by the application 
				to get the options dialog item enable flags.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_opts_flags_func)(
			fz_ffmt_ref_td	ffmt_id,			/* @parm <in> | The file format reference id. */
			fzrt_int		*flags,				/* @parm  <out> | The enable flags */
			fzrt_int		*opts_flags			/* @parm  <out> | General import/export options flags */
			);

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

	@fsfunc_t

	@desc		A function that is called prior to displaying the import options dialog.
				This optional function is called just prior to displaying the translator's
				import options dialog.  It can be used to dynamically set the enabled states
				and values of options.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_predloginit_func)(
			fzrt_int		windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td	ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Adds a custom section to a model write translator's options dialog.
				This optional function adds items to the options dialog to support any custom
				options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_dlog_cust_func)(
			fz_fuim_tmpl_ptr	fuim_tmpl,		/* @parm <in> | The fuim manager pointer. */
			short			parent,				/* @parm <in> | The fuim id of the parent dialog. */
			fz_ffmt_ref_td		ffmt_id				/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		Sets a model read translator's custom options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_opts_default_func)(
			fz_ffmt_ref_td		ffmt_id			/* @parm <in> | The file format reference id. */
			);

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

	@fsfunc_t

	@desc		An optional translator implemented function which gets called when the
				value of an option in the common section of the options dialog changes.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_opts_changed_func)(
			fz_ffmt_ref_td							ffmt_id,			/* @parm <in> | The file format reference id. */
			fz_ffmt_data_model_write_opts_enum	 	which 				/* @parm <in> | The option item that changes value. */
			);

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

	@fsfunc_t

	@desc		Begins the writing of a model file.
				Any translator specific data can be allocated in this function.  In the case that the Separate Files
				option is selected, the name parameter specifies the name of the folder to write the files.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_begin_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,	/* @parm <in> | The file format reference id. */
			void				**data_ptr,	/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc		/* @parm <in> | The file to write to. */
			);

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

	@fsfunc_t

	@desc		Ends the writing of a model file.
				Any translator specific data allocated fz_ffmt_cbak_data_model_write_begin_func should be
				freed in this function.
				NOTE:  This function is called whether the export succeeded or failed.  It
				is up to this function to check error codes and NULL pointers.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_end_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			void				**data_ptr,		/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc,			/* @parm <in> | The file to write to. */
			fzrt_error_td		err				/* @parm <in> | An error indicating the success or failure of the
																	export.  Set to FZRT_NOERR if everything succeeded. */
			);

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

	@fsfunc_t

	@desc		Begins the writing of a file.
				This function is called at the beginning of each file to be written.  Multiple files will
				be written when the Separate Files option is selected.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_file_begin_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			void				*data,			/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc			/* @parm <in> | The file to write. */
			);

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

	@fsfunc_t

	@desc		Ends the writing of a file.
				This function is called at the end of each file to be written.  Multiple files will be
				written when the Separate Files option is selected.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_file_end_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			void				*data,			/* @parm <in> | A pointer to translator defined data. */
			fzrt_floc_ptr		floc			/* @parm <in> | The file to write. */
			);

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

	@fsfunc_t

	@desc		Begins the writing of a group.
				This function is called at the beginning of each group to be written.
				The meaning of the indx parameter depends on the export grouping method.
				The following define the meaning of indx for each grouping method:<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_NOGROUPING		indx will always be 0.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYOBJECT			indx is a count of exported objects
																		starting with 0.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYCOLOR			indx is the surface style tag for the
																		color group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYLAYER			indx is the layer tag for the layer group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPFLAT		indx is the group tag for the group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPHIER		indx is the group tag for the group.<nl>
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_grup_begin_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,		/* @parm <in> | The file format reference id. */
			void				*data,			/* @parm <in> | A pointer to translator defined data. */
			fz_tag_td			*fz_tag,		/* @parm <in> | A group identifier. */
			char				*name			/* @parm <in> | The name of the group. */
			);

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

	@fsfunc_t

	@desc		Ends the writing of a group.
				This function is called at the end of each group to be written.
				The meaning of the indx parameter depends on the export grouping method.
				The following define the meaning of indx for each grouping method:<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_NOGROUPING		indx will always be 0.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYOBJECT			indx is a count of exported objects
																		starting with 0.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYCOLOR			indx is the surface style tag for the
																		color group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYLAYER			indx is the layer tag for the layer group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPFLAT		indx is the group tag for the group.<nl>
					FZ_FFMT_DATA_MODEL_WRITE_GRUP_METH_BYGROUPHIER		indx is the group tag for the group.<nl>
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_grup_end_func)(
			fzrt_int				windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,		/* @parm <in> | The file format reference id. */
			void				*data,			/* @parm <in> | A pointer to translator defined data. */
			fz_tag_td			*fz_tag,		/* @parm <in> | A group identifier. */
			char				*name			/* @parm <in> | The name of the group. */
			);

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

	@fsfunc_t

	@desc		Gets the string to use as a window label for an error dialog.
				This function is called to get text for a window label for an error dialog.  If this function is not
				implemented (set to NULL), a default label will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_err_label_func)(
			fzrt_int				windex,			/* @parm <in>  | project window index */
			fz_ffmt_ref_td		ffmt_id,		/* @parm <in>  | The file format reference id. */
			char				*str,			/* @parm <out> | The label string. */
			fzrt_int				max_len,		/* @parm <in>  | The maximum length the label string can be. */
			short				*err_id			/* @parm <out> | The error code for the error. */
			);

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

	@fsfunc_t

	@desc		Gets the units conversion scale factor.
				This function is called to get conversion scale factor to convert from the project's
				units to the file format's units.  If this function is not implemented (set to NULL),
				a scale factor of 1.0 will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_units_conv_func)(
			fzrt_int					windex,			/* @parm <in> | project window index */
			fz_ffmt_ref_td			ffmt_id,		/* @parm <in> | The file format reference id. */
			fz_unit_type_enum		units_type,		/* @parm <in> | The units of the project. */
			double					*conv_factor	/* @parm <out> | The units conversion scale factor. */
			);

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

	@fsfunc_t

 	@desc		A function to export points.
 				This function is called when the translator is to export single points of groups of
 				unconnected points (i.e. point clouds).  If the files format does not support point data,
 				this function pointer should be set to NULL and no implementation is necessary.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.
 			
	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_points_func) (
			fzrt_int						windex, 				/* @parm <in> | project window index */
			fz_ffmt_ref_td					ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.								*/
			fz_objt_ptr				obj,					/* @parm <in> | The object to export. */
			fz_xyz_td						*vertex_normals,		/* @parm <in> | An array of vertex normals.  The size of the array will 
																		be equal to the number of vertices in the object.  If this
																		array is NULL, do not export vertex normals.							*/
			fz_xy_td						*vertex_texture_uvs		/* @parm <in> | An array of texture coordinates.  The size of the array will 
																		be equal to the number of vertices in the object.  If this array
																		is NULL, do not export texture coordinates.								*/
			);

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

	@fsfunc_t

 	@desc		A function to export individual line segments.
 				This function is called when the translator is to export individual line segments.
 				If the files format does not support line data, this function pointer should be set
 				to NULL and no implementation is necessary.
 
 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.
			
	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_lines_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.							*/
			fz_objt_ptr					obj,					/* @parm <in> | The object to export. */
			fz_xyz_td					*vertex_normals,		/* @parm <in> | An array of vertex normals.  The size of the array will 
																		be equal to the number of vertices in the object.  If this
																		array is NULL, do not export vertex normals.						*/
			fz_xy_td					*vertex_texture_uvs		/* @parm <in> | An array of texture coordinates.  The size of the array will 
																		be equal to the number of vertices in the object.  If this array
																		is NULL, do not export texture coordinates.							*/
			);

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

	@fsfunc_t

 	@desc		A function to export a connected set of line segments.
 				This function is called when the translator is to export a connected set of line segments.
 				If the files format does not support polyline data, this function pointer should be set
 				to NULL and no implementation is necessary.
 
 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.
			
	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_polylines_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.							*/
			fz_objt_ptr					obj,					/* @parm <in> | The object to export. */
			fz_xyz_td					*vertex_normals,		/* @parm <in> | An array of vertex normals.  The size of the array will 
																		be equal to the number of vertices in the object.  If this
																		array is NULL, do not export vertex normals.						*/
			fz_xy_td					*vertex_texture_uvs		/* @parm <in> | An array of texture coordinates.  The size of the array will 
																		be equal to the number of vertices in the object.  If this array
																		is NULL, do not export texture coordinates.							*/
			);

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

	@fsfunc_t

 	@desc		A function to export individual polygons.
 				This function is called when the translator is to export individual polygons (faces).
 				If the files format does not support face data, this function pointer should be set
 				to NULL and no implementation is necessary.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.
 			
	@avail		5.0.0.0
			
 	@see		fzpl_fset_td

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_faces_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td					ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.							*/
			fz_objt_ptr				obj,					/* @parm <in> | The object to export. */
			fz_xyz_td						*face_normals,			/* @parm <in> | An array of face normals.  The size of the array will 
																		be equal to the number of faces in the object.  If this
																		array is NULL, do not export face normals.							*/
			fz_xyz_td						*vertex_normals,		/* @parm <in> | An array of vertex normals.  The size of the array will 
																		be equal to the number of vertices in the object.  If this
																		array is NULL, do not export vertex normals.						*/
			fz_xy_td						*vertex_texture_uvs		/* @parm <in> | An array of texture coordinates.  The size of the array will 
																		be equal to the number of vertices in the object.  If this array
																		is NULL, do not export texture coordinates.							*/
			);

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

	@fsfunc_t

 	@desc		A function to export objects.
 				This function is called when the translator is to export objects.  If the files format
 				does not support object data, this function pointer should be set to NULL and no implementation
 				is necessary.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_objt_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td					ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.							*/
			fz_objt_ptr				obj,					/* @parm <in> | The object to export. */
			fz_xyz_td						*face_normals,			/* @parm <in> | An array of face normals.  The size of the array will 
																		be equal to the number of face in the object.  If this
																		array is NULL, do not export face normals.							*/
			fz_xyz_td						*vertex_normals,		/* @parm <in> | An array of vertex normals.  The size of the array will 
																		be equal to the number of vertices in the object.  If this
																		array is NULL, do not export vertex normals.						*/
			fz_xy_td						*vertex_texture_uvs		/* @parm <in> | An array of texture coordinates.  The size of the array will 
																		be equal to the number of vertices in the object.  If this array
																		is NULL, do not export texture coordinates.							*/
			);

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

	@fsfunc_t

 	@desc		A function to export smooth solids.
 				This function is called when the translator is to export a smooth solid.  If the file's
 				format does not support smooth solids, this function pointer should be set to NULL
 				and no implementation is necessary.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_smod_solid_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.						*/
			fz_objt_ptr					obj,					/* @parm <in> | The object to export. */
			fzrt_boolean				do_tmap					/* @parm <in> | If TRUE, export texture, otherwise don't export textures.	*/
			);

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

	@fsfunc_t

 	@desc		A function to export trimmed surfaces.
 				This function is called when the translator is to export smooth trimmed surfaces.
 				If the files format does not support trimmed surfaces, this function pointer should be
 				set to NULL and no implementation is necessary.<nl><nl>
 				
 				Objects in formZ can be made up of several trimmed surfaces.  Prior to calling this function,
 				formZ splits objects into one object per trimmed surface.  This function is called for each
 				of the split objects.  The start parameter is set to TRUE when the object is the first trimmed
 				surface of the original object.  The end parameter is set to TRUE when the object is the last
 				trimmed surface of the original object.  The translator can use these parameters to group
 				the trimmed surfaces of one object together.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_smod_trimmed_surf_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.						*/
			fz_objt_ptr					obj,					/* @parm <in> | The object to export. */
			fzrt_boolean				start,					/* @parm <in> | If TRUE, this object represents the first trimmed surface in a formZ object. */
			fzrt_boolean				end,					/* @parm <in> | If TRUE, this object represents the last trimmed surface in a formZ object. */
			fzrt_boolean				do_tmap					/* @parm <in> | If TRUE, export texture, otherwise don't export textures.	*/
			);

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

	@fsfunc_t

 	@desc		A function used to determine if an object can be exported as a smooth object.
 				This function is called to determine if the translator can export a specific object as a smooth object.
 				This function should return the appropriate export method for the smooth object.
 				If possible, the return value should match the user selected export option
 				(fz_ffmt_data_model_write_smod_meth_enum).  If the files format does not support smooth objects, this
 				function pointer should be set to NULL and no implementation is necessary.  In this
 				case, all formZ smooth objects will be written as facetted data.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_can_do_smooth_func) (
			fzrt_int										windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td								ffmt_id,				/* @parm <in> | The file format reference id. */
			void										*data,					/* @parm <in> | A pointer to translator defined data.						*/
			fz_objt_ptr									obj,					/* @parm <in> | The object to export. */
			fzrt_boolean								do_tmap,				/* @parm <in> | If TRUE, export texture, otherwise don't export textures.	*/
			fz_ffmt_data_model_write_smod_meth_enum		*smod_method			/* @parm <in_out> | The method for exporting ACIS entities.						*/
			);

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

	@fsfunc_t

 	@desc		A function to export controlled objects.
 				This function is called when the translator is to export a controlled object
 				(i.e. sphere, cylinder, cone, torus, nurbs, text, etc.).
 				If the files format does not support controlled objects, this function pointer should be
 				set to NULL and no implementation is necessary.

 	@return		FZRT_NOERR on success.<nl>
				otherwise an appropriate error.
 			
	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_ctrl_func) (
			fzrt_int						windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td				ffmt_id,				/* @parm <in> | The file format reference id. */
			void						*data,					/* @parm <in> | A pointer to translator defined data.						*/
			fz_objt_ptr					obj,					/* @parm <in> | The object to export. */
			fzrt_boolean				do_tmap					/* @parm <in> | If TRUE, export texture, otherwise don't export textures.	*/
			);

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

	@fsfunc_t

 	@desc		A function used to determine if an object can be exported as a controlled object.
 				This function is called to determine if the translator can export a specific object as a
 				controlled object (i.e. sphere, cylinder, cone, torus, nurbs, text, etc.).
 				If the object can be exported as a controlled object, this function should return TRUE.
 				If the files format does not support controlled objects, this function pointer should be
 				set to NULL and no implementation is necessary.  In this case, all formZ ACIS objects will
 				be written as smooth or facetted data.
 				
 				If the translator set the FZ_FFMT_FORMAT_ATTR_SUPPORTS_NURBS_BIT, this function may be called
 				twice.  First to see if the controlled object can be exported as is.  If this function returns
 				FALSE, the object will be converted to a nurbs object and this function will be called again.

 	@return		TRUE if the object can be exported as a controlled object.<nl>
				FALSE otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_can_do_ctrl_func) (
			fzrt_int										windex,  				/* @parm <in> | project window index */
			fz_ffmt_ref_td								ffmt_id,				/* @parm <in> | The file format reference id. */
			void										*data,					/* @parm <in> | A pointer to translator defined data.						*/
			fz_objt_ptr									obj,					/* @parm <in> | The object to export. */
			fzrt_boolean								do_tmap,				/* @parm <in> | If TRUE, export texture, otherwise don't export textures.	*/
			fz_ffmt_data_model_write_cntl_meth_enum		cntl_method				/* @parm <in> | Which method for exporting controlled objects.				*/
			);

/************************************************************************
	
	@fsfunc_t

	@desc		Starts the export of a symbol definition.
				formZ calls this function at the start of export of each symbol definition.
			
	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_symb_def_start_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_symb_lib_ptr		lib_ptr,			/* @parm <in> | The symbol library. */
			fz_symb_def_ptr		def_ptr,			/* @parm <in> | The symbol definition. */
			fz_symb_lev_ptr		lev_ptr				/* @parm <in> | The symbol level. */
			);

/************************************************************************
	
	@fsfunc_t

	@desc		Ends the export of a symbol definition.
	
				formZ calls this function at the end of export of each symbol definition.
			
	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_symb_def_end_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_symb_lib_ptr		lib_ptr,			/* @parm <in> | The symbol library. */
			fz_symb_def_ptr		def_ptr,			/* @parm <in> | The symbol definition. */
			fz_symb_lev_ptr		lev_ptr				/* @parm <in> | The symbol level. */
			);

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

	@fsfunc_t

	@desc		Gets a progress string for vector export.
				This is an optional plugin implemented function.  This function sets a string
				which is displayed in the export progress bar.  If this function is not implemented
				(set to NULL), a default string will be used.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_progress_str_func)(
			fzrt_int				windex,		/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,	/* @parm <in> | The file format reference id. */
			char				*str,		/* @parm <out> | The progress string. */
			fzrt_int				max_len		/* @parm <in> | Ths maximum length of the progress string. */
			);

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

	@fsfunc_t

	@desc		Starts the export of a component definition.
				formZ calls this function at the start of export of each component definition.

	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		7.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_cmpt_def_start_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_tag_td			*cmpt_tag			/* @parm <in> | The component tag. */
			);

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

	@fsfunc_t

	@desc		Ends the export of a component definition.
	
				formZ calls this function at the end of export of each component definition.

	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		7.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_cmpt_def_end_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_tag_td			*cmpt_tag			/* @parm <in> | The component tag. */
			);

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

	@fsfunc_t

 	@desc		A function to export component groups.
 				This function is called when the translator is to export a component group
 				If the files format does not support component groups, this function pointer should be
 				set to NULL and no implementation is necessary.

	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		7.0.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_cmpt_obsolete_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_grup_ptr			grup				/* @parm <in> | component group */
			);


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

	@fsfunc_t

 	@desc		A function to export component groups.
 				This function is called when the translator is to export a component group
 				If the files format does not support component groups, this function pointer should be
 				set to NULL and no implementation is necessary.

	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		7.1.0.0

	@toc		ffmt_cbak_dm

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_data_model_write_cmpt_func) (
			fzrt_int 				windex,				/* @parm <in> | project window index */
			fz_ffmt_ref_td		ffmt_id,			/* @parm <in> | The file format reference id. */
			void				*data,				/* @parm <in> | A pointer to translator defined data. */
			fz_grup_ptr			grup,				/* @parm <in> | component group */
			fz_mat4x4_td		*tform				/* @parm <in> | Export transform */
			);


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

	@plfset	fz_ffmt_cbak_data_model_fset
	
	@desc	formZ File Translator Data Function Set

	@avail	5.0.0.0

	@toc	ffmt_cbak, ffmt_cbak_dm

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

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

	@fsdef
	
	@desc2	formZ file translator data common function set UUID.

*********************************************************************************************************/
/* UUID : {1276137d-7d5d-4ccc-bb65-ea1316e3a84a} */
#define FZ_FFMT_CBAK_DATA_MODEL_FSET_TYPE		"\x12\x76\x13\x7d\x7d\x5d\x4c\xcc\xbb\x65\xea\x13\x16\xe3\xa8\x4a"	/* Reference : 815 */
/********************************************************************************************************

	@fsdef
	
	@desc2	formZ file translator data common function set name.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_DATA_MODEL_FSET_NAME		"File Translator Data Functions"
/********************************************************************************************************

	@fsdef
	
	@desc2	formZ file translator data common function set version.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_DATA_MODEL_FSET_VERSION	FZPL_VERS_MAKE(5,0,0,0)

typedef struct fz_ffmt_cbak_data_model_fset
{
	fzpl_fset_prvt_data_td								prvt_data;

		/* Data Model Common */
	fz_ffmt_cbak_data_model_tmap_list_func					fz_ffmt_cbak_data_model_tmap_list;						/* @fsfunc */
	fz_ffmt_cbak_data_model_tform_opts_changed_func			fz_ffmt_cbak_data_model_tform_opts_changed;				/* @fsfunc */

		/* Data Model Read */
	fz_ffmt_cbak_data_model_read_dlog_cust_func				fz_ffmt_cbak_data_model_read_dlog_cust;					/* @fsfunc */
	fz_ffmt_cbak_data_model_read_predloginit_func			fz_ffmt_cbak_data_model_read_predloginit;				/* @fsfunc */
	fz_ffmt_cbak_data_model_read_opts_default_func			fz_ffmt_cbak_data_model_read_opts_default;				/* @fsfunc */
	fz_ffmt_cbak_data_model_read_opts_flags_func			fz_ffmt_cbak_data_model_read_opts_flags;				/* @fsfunc */
	fz_ffmt_cbak_data_model_read_opts_changed_func			fz_ffmt_cbak_data_model_read_opts_changed;				/* @fsfunc */

	fz_ffmt_cbak_data_model_read_func						fz_ffmt_cbak_data_model_read;							/* @fsfunc */

		/* Data Model Write */
	fz_ffmt_cbak_data_model_write_dlog_cust_func			fz_ffmt_cbak_data_model_write_dlog_cust;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_predloginit_func			fz_ffmt_cbak_data_model_write_predloginit;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_opts_default_func			fz_ffmt_cbak_data_model_write_opts_default;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_opts_flags_func			fz_ffmt_cbak_data_model_write_opts_flags;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_opts_changed_func			fz_ffmt_cbak_data_model_write_opts_changed;				/* @fsfunc */

	fz_ffmt_cbak_data_model_write_begin_func				fz_ffmt_cbak_data_model_write_begin;					/* @fsfunc */
	fz_ffmt_cbak_data_model_write_end_func					fz_ffmt_cbak_data_model_write_end;						/* @fsfunc */
	fz_ffmt_cbak_data_model_write_grup_begin_func			fz_ffmt_cbak_data_model_write_grup_begin;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_grup_end_func			fz_ffmt_cbak_data_model_write_grup_end;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_points_func				fz_ffmt_cbak_data_model_write_points;					/* @fsfunc */
	fz_ffmt_cbak_data_model_write_lines_func				fz_ffmt_cbak_data_model_write_lines;					/* @fsfunc */
	fz_ffmt_cbak_data_model_write_polylines_func			fz_ffmt_cbak_data_model_write_polylines;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_faces_func				fz_ffmt_cbak_data_model_write_faces;					/* @fsfunc */
	fz_ffmt_cbak_data_model_write_objt_func					fz_ffmt_cbak_data_model_write_objt;						/* @fsfunc */
	fz_ffmt_cbak_data_model_write_smod_solid_func			fz_ffmt_cbak_data_model_write_smod_solid;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_smod_trimmed_surf_func	fz_ffmt_cbak_data_model_write_smod_trimmed_surf;		/* @fsfunc */
	fz_ffmt_cbak_data_model_write_can_do_smooth_func		fz_ffmt_cbak_data_model_write_can_do_smooth;			/* @fsfunc */
	fz_ffmt_cbak_data_model_write_ctrl_func					fz_ffmt_cbak_data_model_write_ctrl;						/* @fsfunc */
	fz_ffmt_cbak_data_model_write_can_do_ctrl_func			fz_ffmt_cbak_data_model_write_can_do_ctrl;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_err_label_func			fz_ffmt_cbak_data_model_write_err_label;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_units_conv_func			fz_ffmt_cbak_data_model_write_units_conv;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_symb_def_start_func		fz_ffmt_cbak_data_model_write_symb_def_start;			/* @fsfunc */
	fz_ffmt_cbak_data_model_write_symb_def_end_func			fz_ffmt_cbak_data_model_write_symb_def_end;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_progress_str_func			fz_ffmt_cbak_data_model_write_progress_str;				/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/

	fz_ffmt_cbak_data_model_write_cmpt_def_start_func		fz_ffmt_cbak_data_model_write_cmpt_def_start;			/* @fsfunc */
	fz_ffmt_cbak_data_model_write_cmpt_def_end_func			fz_ffmt_cbak_data_model_write_cmpt_def_end;				/* @fsfunc */
	fz_ffmt_cbak_data_model_write_cmpt_obsolete_func		fz_ffmt_cbak_data_model_write_cmpt_obsolete;			/* @fsfunc */
	fz_ffmt_cbak_data_model_write_cmpt_func					fz_ffmt_cbak_data_model_write_cmpt;						/* @fsfunc */

}  fz_ffmt_cbak_data_model_fset;


/* TAH 09/15/03 End } */



typedef enum fz_ffmt_basic_types_enum
{
	FZ_FFMT_BASIC_TYPE_DATA_MODEL		= 0
}  fz_ffmt_basic_types_enum;


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

	@fsfunc_t

	@desc		Gets the type of data an unstructured translator import or exports.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_ffmt_cbak_basic_type_func)(
				fz_ffmt_basic_types_enum	*type			/* @parm <out> | The type of data this translator imports or exports. */
				);

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

	@fsfunc_t

	@desc		Adds an unstructured translator's read options dialog.
				This optional function creates and adds items to an options dialog to
				support any options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_ffmt_cbak_basic_read_opts_dlog_func)(
				fz_fuim_tmpl_ptr			fuim_tmpl				/* @parm <in> | The fuim manager pointer. */
				);

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

	@fsfunc_t

	@desc		Sets an unstructured translator's read options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_basic_read_opts_default_func)(void);

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

	@fsfunc_t

	@desc		Reads data from a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_ffmt_cbak_basic_read_func)(
				fzrt_int						windex,					/* @parm <in> | project window index */
				fzrt_floc_ptr				floc					/* @parm <in> | The file to read from. */
				);
				

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

	@fsfunc_t

	@desc		Adds an unstructured translator's write options dialog.
				This optional function creates and adds items to an options dialog to\
				support any options a translator may need.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_ffmt_cbak_basic_write_opts_dlog_func)(
				fz_fuim_tmpl_ptr			fuim_tmpl				/* @parm <in> | The fuim manager pointer. */
				);

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

	@fsfunc_t

	@desc		Sets an unstructured translator's write options to default values.
				This is an optional plugin implemented function.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_ffmt_cbak_basic_write_opts_default_func)(void);

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

	@fsfunc_t

	@desc		Writes data to a file.
				This function writes data to a file.
	
	@return		FZRT_NOERR on success.
				An error otherwise.

	@avail		5.0.0.0

	@toc		ffmt_cbak_unstr

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_ffmt_cbak_basic_write_func)(
				fzrt_int						windex,					/* @parm <in> | project window index */
				fzrt_floc_ptr				floc					/* @parm <in> | The file to write to. */
				);
				
/************************************************************************

	@plfset	fz_ffmt_cbak_basic_fset
	
	@desc	formZ Unstructured File Translator Basic Function Set

	@avail	5.0.0.0

	@toc	ffmt_cbak, ffmt_cbak_unstr

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

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

	@fsdef
	
	@desc2	formZ file translator basic function set UUID.

*********************************************************************************************************/
/* UUID : {001150c0-c8b2-43ec-be20-3b8f7fe11689} */
#define FZ_FFMT_CBAK_BASIC_FSET_TYPE		"\x00\x11\x50\xc0\xc8\xb2\x43\xec\xbe\x20\x3b\x8f\x7f\xe1\x16\x89"	/* Reference : 2565 */
/********************************************************************************************************

	@fsdef
	
	@desc2	formZ file translator basic function set name.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_BASIC_FSET_NAME		"File Translator Data Functions"
/********************************************************************************************************

	@fsdef
	
	@desc2	formZ file translator basic function set version.

*********************************************************************************************************/
#define FZ_FFMT_CBAK_BASIC_FSET_VERSION	FZPL_VERS_MAKE(5,0,0,0)

typedef struct fz_ffmt_cbak_basic_fset
{
	fzpl_fset_prvt_data_td							prvt_data;

	fz_ffmt_cbak_basic_type_func					fz_ffmt_cbak_basic_type;					/* @fsfunc */
	
	fz_ffmt_cbak_basic_read_opts_dlog_func			fz_ffmt_cbak_basic_read_opts_dlog;			/* @fsfunc */
	fz_ffmt_cbak_basic_read_opts_default_func		fz_ffmt_cbak_basic_read_opts_default;				/* @fsfunc */
	fz_ffmt_cbak_basic_read_func					fz_ffmt_cbak_basic_read;					/* @fsfunc */
		
	fz_ffmt_cbak_basic_write_opts_dlog_func			fz_ffmt_cbak_basic_write_opts_dlog;			/* @fsfunc */
	fz_ffmt_cbak_basic_write_opts_default_func		fz_ffmt_cbak_basic_write_opts_default;				/* @fsfunc */
	fz_ffmt_cbak_basic_write_func					fz_ffmt_cbak_basic_write;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
}  fz_ffmt_cbak_basic_fset;




#ifdef  __cplusplus
}
#endif /* __cplusplus */


#endif /*__FORMZ_FFMT_API_H */

