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



#ifndef _FORMZ_MODEL_TEXT_API_H
#define _FORMZ_MODEL_TEXT_API_H

#ifdef __cplusplus
extern "C" {
#endif







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

	Text Object


	Description
		formZ text objects.  These functions provide functionality to create and edit text objects 
		in formZ.
 ****************************************************************/

#include "fz_model_core_api.h"
#include "fz_text_api.h"



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

	FZ_OBJT_TYPE_TEXT


	Description
		Unique identifier for the text object type.
 ****************************************************************/
#define FZ_OBJT_TYPE_TEXT		"\x03\xa4\x92\xdf\xd0\x29\x45\x70\x88\x3e\xaa\xca\xa3\x73\xf9\xc0"


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

	fz_objt_text_cnstr_opts_ptr


	Description
		data structure to hold options for the construction of a text object. 
		This type is used to pass additional construction options to the 
		functions fz_objt_cnstr_text_plain, fz_objt_cnstr_text_object, fz_objt_cnstr_text_on_line, 
		fz_objt_cnstr_text_parl_lines, and fz_objt_cnstr_text_between_lines. 
		The individual fields of this type can be accessed and set via fz_objt_edit_text_parm_get 
		and fz_objt_edit_text_parm_set.

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_between_lines, fz_objt_cnstr_text_object, fz_objt_cnstr_text_on_line,  
		fz_objt_cnstr_text_opts_get, fz_objt_cnstr_text_opts_set, fz_objt_cnstr_text_parl_lines,  
		fz_objt_cnstr_text_plain, fz_objt_cnstr_text_unistr_between_lines, fz_objt_cnstr_text_unistr_object,  
		fz_objt_cnstr_text_unistr_on_line, fz_objt_cnstr_text_unistr_parl_lines, fz_objt_cnstr_text_unistr_plain

 ****************************************************************/
typedef struct	text_cnstr_opts_td	*fz_objt_text_cnstr_opts_ptr;

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

	fz_objt_text_parm_enum


	Description
		Parameter identifiers for a parametric text object. Used for the 
		"which" argument of fz_objt_edit_text_parm_get, fz_objt_edit_text_parm_set, 
		fz_objt_cnstr_text_opts_get and fz_objt_cnstr_text_opts_set.

	Members
		FZ_OBJT_TEXT_PARM_HORIZ_JUST
			Construction and Editing - Horizontal alignment.
			Type: fz_objt_text_halign_enum
			Default Value: FZ_OBJT_TEXT_HORIZ_JUST_LEFT
		FZ_OBJT_TEXT_PARM_VERT_JUST
			Construction and Editing - Vertical alignment.
			Type: fz_objt_text_valign_enum
			Default Value: FZ_OBJT_TEXT_VERT_JUST_BOTTOM
		FZ_OBJT_TEXT_PARM_DEPTH_JUST
			Construction and Editing - Depth alignment.
			Type: fz_objt_text_dalign_enum
			Default Value: FZ_OBJT_TEXT_DEPTH_JUST_FRONT
		FZ_OBJT_TEXT_PARM_HEIGHT_TYPE
			Construction and Editing - Height measurement method.
			Type: fz_objt_text_htype_enum
			Default Value: FZ_OBJT_TEXT_HEIGHT_TYPE_UPPER
		FZ_OBJT_TEXT_PARM_HEIGHT_CHAR
			Construction and Editing - Height character. 
			A string with any one non white space character only (extra characters 
			will be ignored). The height will be based on the geometry of 
			this character.
			Type: char*
		FZ_OBJT_TEXT_PARM_ONLINE_SCALE
			Construction and Editing - Text on line scale option.
			Type: fz_objt_text_oscale_enum
			Default Value: FZ_OBJT_TEXT_ONLINE_SCALE_WIDTH_HEIGHT
		FZ_OBJT_TEXT_PARM_WIDTH_FACTOR
			Construction and Editing - Text character width scale factor.
			Type: double
			Default Value: 1.0
			Range: 0.0
		FZ_OBJT_TEXT_PARM_LEADING_FACTOR
			Construction and Editing - Text character leading factor.
			Type: double
			Default Value: 0.25
			Range: 0.0
		FZ_OBJT_TEXT_PARM_SMOOTHING
			Construction and Editing - Text smoothness.
			Type: double
			Default Value: 0.5
			Range: 0.0
		FZ_OBJT_TEXT_PARM_PATH_ADJUST
			Construction and Editing - Text between parallel lines/ between lines, adjust on (TRUE) or off (FALSE).
			Type: fzrt_boolean
			Default Value: FALSE
		FZ_OBJT_TEXT_PARM_STANDING
			Construction and Editing - Text standing on (TRUE) or off (FALSE).
			Type: fzrt_boolean
			Default Value: FALSE
		FZ_OBJT_TEXT_PARM_CHAR_ANGLE
			Construction and Editing - Character angle.
			Type: double
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_INCLINE_ANGLE
			Construction and Editing - Character incline angle.
			Type: double
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_RADIUS_ADJUST
			Construction and Editing - Adjust rounding radius on (TRUE) or off (FALSE).
			Type: fzrt_boolean
			Default Value: FALSE
		FZ_OBJT_TEXT_PARM_FONT_TYPE
			Construction and Editing - Text font type.
			Type: fz_objt_text_fonttype_enum
			Default Value: FZ_OBJT_TEXT_FONT_TYPE_TRUETYPE
		FZ_OBJT_TEXT_PARM_FONT_FACE
			Construction and Editing - Text font face.
			Type: fzrt_int
		FZ_OBJT_TEXT_PARM_FONT_NAME
			Construction and Editing - Text font name.
			Type: char*
			Default Value: default font name on current OS
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE
			Construction and Editing - Text rounding front, type. 
			Valid for :  Facetted model type except Plain Text.
			Type: fz_objt_text_rndtype_enum
			Default Value: FZ_OBJT_TEXT_ROUND_TYPE_NONE
		FZ_OBJT_TEXT_PARM_FRND_FRNT_NSIDES
			Construction and Editing - Text rounding front, # of sides. 
			Valid for : Facetted model type except Plain Text.
			Type: fzrt_int
			Range: 2
			Default Value: 4
		FZ_OBJT_TEXT_PARM_FRND_FRNT_RADIUS
			Construction and Editing - Text rounding front, radius. 
			Valid for : Facetted model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_FRND_FRNT_BEVEL
			Construction and Editing - Text rounding front, bevel distance. 
			Valid for : Facetted model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_TYPE
			Construction and Editing - Text smooth rounding front, type. 
			Valid for : Smooth model type except Plain Text.
			Type: fz_objt_srnd_edge_type_enum
			Default Value: FZ_OBJT_SRND_EDGE_TYPE_NONE
		FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS
			Construction and Editing - Text rounding front, radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_MAJ
			Construction and Editing - Text rounding front, major radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_MIN
			Construction and Editing - Text rounding front, minor radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 2.0 in, Metric 5.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_ROT
			Construction and Editing - Text rounding front, rotation angle. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_LEFT
			Construction and Editing - Text rounding front, bevel left distance. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_RITE
			Construction and Editing - Text rounding front, bevel right distance. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_BULGE_ON
			Construction and Editing - Text rounding front, bevel bulge flag. 
			Valid for : Smooth model type except Plain Text.
			Type: fzrt_boolean
			Default Value: FALSE
		FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_BULGE
			Construction and Editing - Text rounding front, bevel bulge value. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE
			Construction and Editing - Text rounding back, type. 
			Valid for : Facetted model type except Plain Text.
			Type: fz_objt_text_rndtype_enum
			Default Value: FZ_OBJT_TEXT_ROUND_TYPE_NONE
		FZ_OBJT_TEXT_PARM_FRND_BACK_NSIDES
			Construction and Editing - Text rounding back, # of sides. 
			Valid for : Facetted model type except Plain Text.
			Type: fzrt_int
			Range: 2
			Default Value: 4
		FZ_OBJT_TEXT_PARM_FRND_BACK_RADIUS
			Construction and Editing - Text rounding back, radius. 
			Valid for : Facetted model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_FRND_BACK_BEVEL
			Construction and Editing - Text rounding back, bevel distance. 
			Valid for : Facetted model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_TYPE
			Construction and Editing - Text smooth rounding back, type. 
			Valid for : Smooth model type except Plain Text.
			Type: fz_objt_srnd_edge_type_enum
			Default Value: FZ_OBJT_SRND_EDGE_TYPE_NONE
		FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS
			Construction and Editing - Text rounding back, radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_MAJ
			Construction and Editing - Text rounding back, major radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_MIN
			Construction and Editing - Text rounding back, minor radius. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 2.0 in, Metric 5.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_ROT
			Construction and Editing - Text rounding back, rotation angle. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_LEFT
			Construction and Editing - Text rounding back, bevel left distance. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_RITE
			Construction and Editing - Text rounding back, bevel right distance. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: English 4.0 in, Metric 10.0 cm

		FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_BULGE_ON
			Construction and Editing - Text rounding back, bevel bulge flag. 
			Valid for : Smooth model type except Plain Text.
			Type: fzrt_boolean
			Default Value: FALSE
		FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_BULGE
			Construction and Editing - Text rounding back, bevel bulge. 
			Valid for : Smooth model type except Plain Text.
			Type: double
			Range: 0.0
			Default Value: 0.0
		FZ_OBJT_TEXT_PARM_HEIGHT
			Editing - Text height. 
			Valid for : Plain Text, Object Text, Text On Line, Text Between Parallel Lines.
			Type: double
			Range: 0.0
		FZ_OBJT_TEXT_PARM_ORIGIN
			Editing - Text origin. 
			Valid for : Plain Text, Object Text.
			Type: fz_xyz_td
		FZ_OBJT_TEXT_PARM_ROTATION
			Editing - Text rotation. 
			Valid for : Plain Text, Object Text.
			Type: fz_xyz_td
		FZ_OBJT_TEXT_PARM_DEPTH
			Editing - Text depth. 
			Valid for : all except Plain Text.
			Type: double
			Range: 0.0
		FZ_OBJT_TEXT_PARM_DO_SOLID
			Editing - Text Solid on (TRUE) or off (FALSE). 
			Valid for : all except Plain Text.
			Type: fzrt_boolean
		FZ_OBJT_TEXT_PARM_STRING
			Editing - Text string.
			Type: char*
		FZ_OBJT_TEXT_PARM_PATH_OBJ1
			Editing - Text path object 1. 
			Valid for :  Text On Line, Text Between Parallel Lines, Text Between Lines. 
			After creating a text object, the path object itself can be 
			replaced by passing in a new object using the fz_objt_edit_text_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the text object initially. When getting 
			this parameter from an existing text object, a copy of the 
			path is made and passed back. It is the responsibility of the calling 
			function to delete this new object afterwards, using fz_objt_edit_delete_objt.
			Type: fz_objt_ptr
		FZ_OBJT_TEXT_PARM_PATH_OBJ2
			Editing - Text path object 2. 
			Valid for :  Text Between Lines 
			After creating a text object, the path object itself can be 
			replaced by passing in a new object using the fz_objt_edit_text_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the text object initially. When getting 
			this parameter from an existing text object, a copy of the 
			path is made and passed back. It is the responsibility of the calling 
			function to delete this new object afterwards, using fz_objt_edit_delete_objt.
			Type: fz_objt_ptr
		FZ_OBJT_TEXT_PARM_MODEL_TYPE
			Editing - Model type.
			Type: fz_objt_model_type_enum

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get, fz_objt_cnstr_text_opts_set, fz_objt_edit_text_parm_get,  
		fz_objt_edit_text_parm_set, fz_objt_text_search_text_parm_get, fz_objt_text_search_text_parm_set

 ****************************************************************/
typedef enum fz_objt_text_parm_enum
{
	
	FZ_OBJT_TEXT_PARM_HORIZ_JUST = 0,
											
	FZ_OBJT_TEXT_PARM_VERT_JUST,
											
	FZ_OBJT_TEXT_PARM_DEPTH_JUST,
											
	FZ_OBJT_TEXT_PARM_HEIGHT_TYPE,
											
	FZ_OBJT_TEXT_PARM_HEIGHT_CHAR,
											
	FZ_OBJT_TEXT_PARM_ONLINE_SCALE,
	
	FZ_OBJT_TEXT_PARM_WIDTH_FACTOR,
											
	FZ_OBJT_TEXT_PARM_LEADING_FACTOR,
											
	FZ_OBJT_TEXT_PARM_SMOOTHING,

	FZ_OBJT_TEXT_PARM_PATH_ADJUST,
	
	FZ_OBJT_TEXT_PARM_STANDING,
											
	FZ_OBJT_TEXT_PARM_CHAR_ANGLE,
											
	FZ_OBJT_TEXT_PARM_INCLINE_ANGLE,
											
	FZ_OBJT_TEXT_PARM_RADIUS_ADJUST,
	
	FZ_OBJT_TEXT_PARM_FONT_TYPE,
											
#ifdef ERROR_MACRO
#endif
	FZ_OBJT_TEXT_PARM_FONT_FACE,
											
	FZ_OBJT_TEXT_PARM_FONT_NAME,
	
	FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE,
											
	FZ_OBJT_TEXT_PARM_FRND_FRNT_NSIDES,
											
	FZ_OBJT_TEXT_PARM_FRND_FRNT_RADIUS,
											
	FZ_OBJT_TEXT_PARM_FRND_FRNT_BEVEL,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_TYPE,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_MAJ,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_MIN,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_RADIUS_ROT,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_LEFT,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_RITE,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_BULGE_ON,
											
	FZ_OBJT_TEXT_PARM_SRND_FRNT_BEVEL_BULGE,
											
	FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE,
											
	FZ_OBJT_TEXT_PARM_FRND_BACK_NSIDES,
											
	FZ_OBJT_TEXT_PARM_FRND_BACK_RADIUS,
											
	FZ_OBJT_TEXT_PARM_FRND_BACK_BEVEL,
	
	FZ_OBJT_TEXT_PARM_SRND_BACK_TYPE,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_MAJ,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_MIN,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_RADIUS_ROT,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_LEFT,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_RITE,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_BULGE_ON,
											
	FZ_OBJT_TEXT_PARM_SRND_BACK_BEVEL_BULGE,
											
	
	FZ_OBJT_TEXT_PARM_HEIGHT,

	FZ_OBJT_TEXT_PARM_ORIGIN,
											
	FZ_OBJT_TEXT_PARM_ROTATION,
											
	FZ_OBJT_TEXT_PARM_DEPTH,
											
	FZ_OBJT_TEXT_PARM_DO_SOLID,
											
	FZ_OBJT_TEXT_PARM_STRING,
											
	FZ_OBJT_TEXT_PARM_PATH_OBJ1,

	FZ_OBJT_TEXT_PARM_PATH_OBJ2,
	FZ_OBJT_TEXT_PARM_MODEL_TYPE,
											

	MODEL_TEXT_PARM_MAX
	
} fz_objt_text_parm_enum;

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

	fz_objt_text_oscale_enum


	Description
		Text on line scale option ids. Used for the 
		FZ_OBJT_TEXT_PARM_ONLINE_SCALE parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_ONLINE_SCALE_WIDTH_HEIGHT
			Text on line : Scale width and height
		FZ_OBJT_TEXT_ONLINE_SCALE_WIDTH
			Text on line : Scale width only
		FZ_OBJT_TEXT_ONLINE_PRESRV_WIDTH_HEIGHT
			Text on line : Preserve width and height

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, fz_objt_text_parm_enum

 ****************************************************************/
typedef enum fz_objt_text_oscale_enum
{	FZ_OBJT_TEXT_ONLINE_SCALE_WIDTH_HEIGHT = 0,
	FZ_OBJT_TEXT_ONLINE_SCALE_WIDTH,
	FZ_OBJT_TEXT_ONLINE_PRESRV_WIDTH_HEIGHT,
	
	MODEL_TEXT_ONLINE_MAX
	
} fz_objt_text_oscale_enum;

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

	fz_objt_text_halign_enum


	Description
		Text horizontal alignment option ids. Used for the 
		FZ_OBJT_TEXT_PARM_HORIZ_JUST parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_HORIZ_JUST_LEFT
			Left justified
		FZ_OBJT_TEXT_HORIZ_JUST_CENTER
			Centered
		FZ_OBJT_TEXT_HORIZ_JUST_RIGHT
			Right justified
		FZ_OBJT_TEXT_HORIZ_JUST_FIT
			Justified to fit

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, fz_objt_text_parm_enum

 ****************************************************************/
typedef enum fz_objt_text_halign_enum
{	FZ_OBJT_TEXT_HORIZ_JUST_LEFT = 0,
	FZ_OBJT_TEXT_HORIZ_JUST_CENTER,
	FZ_OBJT_TEXT_HORIZ_JUST_RIGHT,
	FZ_OBJT_TEXT_HORIZ_JUST_FIT,
	
	MODEL_TEXT_HORIZ_JUST_MAX
} fz_objt_text_halign_enum;

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

	fz_objt_text_valign_enum


	Description
		Text vertical alignment option ids. Used for the 
		FZ_OBJT_TEXT_PARM_VERT_JUST parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_VERT_JUST_BOTTOM
			Bottom justified
		FZ_OBJT_TEXT_VERT_JUST_CENTER
			Centered
		FZ_OBJT_TEXT_VERT_JUST_TOP
			Top justified

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, 

 ****************************************************************/
typedef enum fz_objt_text_valign_enum
{	FZ_OBJT_TEXT_VERT_JUST_BOTTOM = 0,
	FZ_OBJT_TEXT_VERT_JUST_CENTER,
	FZ_OBJT_TEXT_VERT_JUST_TOP,
	
	MODEL_TEXT_VERT_JUST_MAX
} fz_objt_text_valign_enum;

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

	fz_objt_text_dalign_enum


	Description
		Text depth alignment option ids. Used for the 
		FZ_OBJT_TEXT_PARM_DEPTH_JUST parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_DEPTH_JUST_FRONT
			Front justified
		FZ_OBJT_TEXT_DEPTH_JUST_CENTER
			Centered
		FZ_OBJT_TEXT_DEPTH_JUST_BACK
			Back justified

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, fz_objt_text_parm_enum

 ****************************************************************/
typedef enum fz_objt_text_dalign_enum
{	FZ_OBJT_TEXT_DEPTH_JUST_FRONT = 0,
	FZ_OBJT_TEXT_DEPTH_JUST_CENTER,
	FZ_OBJT_TEXT_DEPTH_JUST_BACK,
	
	MODEL_TEXT_DEPTH_JUST_MAX
} fz_objt_text_dalign_enum;

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

	fz_objt_text_htype_enum


	Description
		Text height measurement option ids. Used for the 
		FZ_OBJT_TEXT_PARM_HEIGHT_TYPE parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_HEIGHT_TYPE_FONT
			Height is based on font
		FZ_OBJT_TEXT_HEIGHT_TYPE_UPPER
			Height is based on upper case
		FZ_OBJT_TEXT_HEIGHT_TYPE_LOWER
			Height is based on lower case
		FZ_OBJT_TEXT_HEIGHT_TYPE_CHAR
			Height is based on a particular character. This 
			character is specified by the FZ_OBJT_TEXT_PARM_HEIGHT_CHAR 
			parameter
		FZ_OBJT_TEXT_HEIGHT_TYPE_STRING
			Height is based on the text string

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, fz_objt_text_parm_enum

 ****************************************************************/
typedef enum fz_objt_text_htype_enum
{	FZ_OBJT_TEXT_HEIGHT_TYPE_FONT = 0,
	FZ_OBJT_TEXT_HEIGHT_TYPE_UPPER,
	FZ_OBJT_TEXT_HEIGHT_TYPE_LOWER,
	FZ_OBJT_TEXT_HEIGHT_TYPE_CHAR,
	FZ_OBJT_TEXT_HEIGHT_TYPE_STRING,
	
	MODEL_TEXT_HEIGHT_TYPE_MAX
} fz_objt_text_htype_enum;


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

	fz_objt_text_fonttype_enum


	Description
		Text font type ids. Used for the 
		FZ_OBJT_TEXT_PARM_FONT_TYPE parameter of fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_FONT_TYPE_TRUETYPE
			TrueType
		FZ_OBJT_TEXT_FONT_TYPE_POSTSCRIPT
			PostScript

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, fz_objt_text_parm_enum

 ****************************************************************/
typedef enum fz_objt_text_fonttype_enum
{	FZ_OBJT_TEXT_FONT_TYPE_TRUETYPE = 0,
	FZ_OBJT_TEXT_FONT_TYPE_POSTSCRIPT,
	
	MODEL_TEXT_FONT_TYPE_MAX
} fz_objt_text_fonttype_enum;

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

	fz_objt_text_rndtype_enum


	Description
		Text rounding option ids. Used for the 
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE and FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE parameters of 
		fz_objt_edit_text_parm_get and fz_objt_edit_text_parm_set.

	Members
		FZ_OBJT_TEXT_ROUND_TYPE_NONE
			No rounding
		FZ_OBJT_TEXT_ROUND_TYPE_FILLET
			Fillet rounding
		FZ_OBJT_TEXT_ROUND_TYPE_BEVEL
			Beveling

	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_edit_text_parm_set, 

 ****************************************************************/
typedef enum fz_objt_text_rndtype_enum
{	FZ_OBJT_TEXT_ROUND_TYPE_NONE = 0,
	FZ_OBJT_TEXT_ROUND_TYPE_FILLET,
	FZ_OBJT_TEXT_ROUND_TYPE_BEVEL,
	
	MODEL_TEXT_ROUND_TYPE_MAX
} fz_objt_text_rndtype_enum;

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

	fz_objt_cnstr_text_opts_init



	Description
		Allocates text construction options and fills them with defaults

	Parameters
		windex  [Input]
			project window index
		opts  [Result]
			construction options

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_init,fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_opts_init_func) (
	fzrt_int				windex,
	fz_objt_text_cnstr_opts_ptr	*opts
	);

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

	fz_objt_cnstr_text_opts_get



	Description
		Gets a text construction option

	Parameters
		windex  [Input]
			project window index
		opts  [Input]
			construction options
		which  [Input]
			parameter identifier
		data  [Result]
			parameter data

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_init,fz_objt_cnstr_text_opts_finit,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_opts_get_func) (
	fzrt_int					windex,
	fz_objt_text_cnstr_opts_ptr		opts,
	fz_objt_text_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_cnstr_text_opts_set



	Description
		Sets a text construction option

	Parameters
		windex  [Input]
			project window index
		opts  [Input]
			construction options
		which  [Input]
			parameter identifier
		data  [Input]
			parameter data

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_init,fz_objt_cnstr_text_opts_finit,fz_objt_cnstr_text_opts_get

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_opts_set_func) (
	fzrt_int					windex,
	fz_objt_text_cnstr_opts_ptr		opts,
	fz_objt_text_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_cnstr_text_opts_finit



	Description
		Frees text construction options

	Parameters
		windex  [Input]
			project window index
		opts  [Input, Result]
			construction options (will become NULL)

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_init,fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_opts_finit_func) (
	fzrt_int					windex,
	fz_objt_text_cnstr_opts_ptr		*opts
	);

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

	fz_objt_cnstr_text_plain



	Description
		Creates a plain text object. The text is by default, left justified 
		at the origin, extending along the x axis. The optional origin and 
		rotation parameters transform it into a 3d space position.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			text string
		height  [Input]
			height of text object
			Range: 0.0
		origin  [Input, Optional]
			origin of text object
			Default Value: {0.0, 0.0, 0.0}
		rotation  [Input, Optional]
			rotation of text object
			Default Value: {0.0, 0.0, 0.0}
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_plain_func) (
	fzrt_int 				windex,
	char				*str,
	double				height,
	fz_xyz_td				*origin,
	fz_xyz_td				*rotation,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr		*obj
	);

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

	fz_objt_cnstr_text_object



	Description
		Creates a solid or surface text object. The text is by default, left justified 
		at the origin, extending along the x axis. The optional origin and 
		rotation parameters transform it into a 3d space position. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			text string
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		origin  [Input, Optional]
			origin of text object
			Default Value: {0.0, 0.0, 0.0}
		rotation  [Input, Optional]
			rotation of text object
			Default Value: {0.0, 0.0, 0.0}
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_object_func) (
	fzrt_int 				windex,
	char				*str,
	double				height,
	double				depth,
	fzrt_boolean		do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr	refn_opts,
	fz_xyz_td				*origin,
	fz_xyz_td				*rotation,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr		*obj
	);

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

	fz_objt_cnstr_text_on_line



	Description
		Creates a solid or surface text object along a line. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			text string
		path_obj  [Input]
			object path
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_on_line_func) (
	fzrt_int 				windex,
	char				*str,
	fz_objt_ptr		path_obj,
	double				height,
	double				depth,
	fzrt_boolean		do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr	refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr		*obj
	);

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

	fz_objt_cnstr_text_parl_lines



	Description
		Creates a solid or surface text object between two parallel lines. 
		The path object defines the centerline between the parallel lines. 
		The distance between the parallel lines is the text height. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			text string
		path_obj  [Input]
			object path
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_parl_lines_func) (
	fzrt_int 				windex,
	char				*str,
	fz_objt_ptr		path_obj,
	double				height,
	double				depth,
	fzrt_boolean		do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr	refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr		*obj
	);
											
/****************************************************************

	fz_objt_cnstr_text_between_lines



	Description
		Creates a solid or surface text object between two lines. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			text string
		path_obj1  [Input]
			object path 1
		path_obj2  [Input]
			object path 2
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_between_lines_func) (
	fzrt_int 				windex,
	char				*str,
	fz_objt_ptr		path_obj1,
	fz_objt_ptr		path_obj2,
	double				depth,
	fzrt_boolean		do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr	refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr		*obj
	);

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

	fz_objt_edit_text_parm_get



	Description
		Gets a parameter of a text object.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		which  [Input]
			parameter identifier
		data  [Result]
			parameter data

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a text object


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_set,fz_objt_cnstr_text_plain, 
		fz_objt_cnstr_text_object,fz_objt_cnstr_text_on_line, 
		fz_objt_cnstr_text_parl_lines,fz_objt_cnstr_text_between_lines, 
		fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_text_parm_get_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_text_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_edit_text_parm_set



	Description
		Sets a parameter of a text object. Note, that the shape of the 
		text object is not changed until the function fz_objt_edit_parm_regen 
		has been called.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		which  [Input]
			parameter identifier
		data  [Input]
			parameter data

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a text object


	Availability	5.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text.fsl

	See Also
		fz_objt_edit_text_parm_get,fz_objt_cnstr_text_plain, 
		fz_objt_cnstr_text_object,fz_objt_cnstr_text_on_line, 
		fz_objt_cnstr_text_parl_lines,fz_objt_cnstr_text_between_lines, 
		fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_text_parm_set_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_text_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_cnstr_text_unistr_plain



	Description
		Creates a plain text object. The text is by default, left justified 
		at the origin, extending along the x axis. The optional origin and 
		rotation parameters transform it into a 3d space position.

		The text is made up of unicode (utf16) characters (two bytes per character). 
		The string must terminated with two NULL bytes (one NULL character).

		Only one text style can be applied to the object during creation. 
		If other styles need to be applied this can be done using 
		fz_objt_edit_text_set_style_run after the object is created. 
		If NULL is passed in for the style, the default font (as set in 
		the Project: Fonts section of the Preferences dialog) will be 
		used.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			unicode (utf16) text string
		style  [Input, Optional]
			the style to apply to the text
		height  [Input]
			height of text object
			Range: 0.0
		origin  [Input, Optional]
			origin of text object
			Default Value: {0.0, 0.0, 0.0}
		rotation  [Input, Optional]
			rotation of text object
			Default Value: {0.0, 0.0, 0.0}
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get, fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_unistr_plain_func) (
	fzrt_int 						windex,
	fzrt_uni_char				*str,
	fz_text_style_ptr			style,
	double						height,
	fz_xyz_td					*origin,
	fz_xyz_td					*rotation,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr					*obj
	);

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

	fz_objt_cnstr_text_unistr_object



	Description
		Creates a solid or surface text object. The text is by default, left justified 
		at the origin, extending along the x axis. The optional origin and 
		rotation parameters transform it into a 3d space position. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

		The text is made up of unicode (utf16) characters (two bytes per character). 
		The string must terminated with two NULL bytes (one NULL character).

		Only one text style can be applied to the object during creation. 
		If other styles need to be applied this can be done using 
		fz_objt_edit_text_set_style_run after the object is created. 
		If NULL is passed in for the style, the default font (as set in 
		the Project: Fonts section of the Preferences dialog) will be 
		used.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			unicode (utf16) text string
		style  [Input, Optional]
			the style to apply to the text
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		origin  [Input, Optional]
			origin of text object
			Default Value: {0.0, 0.0, 0.0}
		rotation  [Input, Optional]
			rotation of text object
			Default Value: {0.0, 0.0, 0.0}
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_unistr_object_func) (
	fzrt_int 						windex,
	fzrt_uni_char				*str,
	fz_text_style_ptr			style,
	double						height,
	double						depth,
	fzrt_boolean				do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr			refn_opts,
	fz_xyz_td					*origin,
	fz_xyz_td					*rotation,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr					*obj
	);

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

	fz_objt_cnstr_text_unistr_on_line



	Description
		Creates a solid or surface text object along a line. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

		The text is made up of unicode (utf16) characters (two bytes per character). 
		The string must terminated with two NULL bytes (one NULL character).

		Only one text style can be applied to the object during creation. 
		If other styles need to be applied this can be done using 
		fz_objt_edit_text_set_style_run after the object is created. 
		If NULL is passed in for the style, the default font (as set in 
		the Project: Fonts section of the Preferences dialog) will be 
		used.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			unicode (utf16) text string
		style  [Input, Optional]
			the style to apply to the text
		path_obj  [Input]
			object path
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_unistr_on_line_func) (
	fzrt_int 						windex,
	fzrt_uni_char				*str,
	fz_text_style_ptr			style,
	fz_objt_ptr					path_obj,
	double						height,
	double						depth,
	fzrt_boolean				do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr			refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr					*obj
	);

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

	fz_objt_cnstr_text_unistr_parl_lines



	Description
		Creates a solid or surface text object between two parallel lines. 
		The path object defines the centerline between the parallel lines. 
		The distance between the parallel lines is the text height. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

		The text is made up of unicode (utf16) characters (two bytes per character). 
		The string must terminated with two NULL bytes (one NULL character).

		Only one text style can be applied to the object during creation. 
		If other styles need to be applied this can be done using 
		fz_objt_edit_text_set_style_run after the object is created. 
		If NULL is passed in for the style, the default font (as set in 
		the Project: Fonts section of the Preferences dialog) will be 
		used.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			unicode (utf16) text string
		style  [Input, Optional]
			the style to apply to the text
		path_obj  [Input]
			object path
		height  [Input]
			height of text object
			Range: 0.0
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_unistr_parl_lines_func) (
	fzrt_int 						windex,
	fzrt_uni_char				*str,
	fz_text_style_ptr			style,
	fz_objt_ptr					path_obj,
	double						height,
	double						depth,
	fzrt_boolean				do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr			refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr					*obj
	);
											
/****************************************************************

	fz_objt_cnstr_text_unistr_between_lines



	Description
		Creates a solid or surface text object between two lines. 
		If do_solid is TRUE, the text is extruded by "depth". Otherwise a 
		surface object is created.

		The text is made up of unicode (utf16) characters (two bytes per character). 
		The string must terminated with two NULL bytes (one NULL character).

		Only one text style can be applied to the object during creation. 
		If other styles need to be applied this can be done using 
		fz_objt_edit_text_set_style_run after the object is created. 
		If NULL is passed in for the style, the default font (as set in 
		the Project: Fonts section of the Preferences dialog) will be 
		used.

	Parameters
		windex  [Input]
			project window index
		str  [Input]
			unicode (utf16) text string
		style  [Input, Optional]
			the style to apply to the text
		path_obj1  [Input]
			object path 1
		path_obj2  [Input]
			object path 2
		depth  [Input]
			depth of text object
			Range: 0.0
		do_solid  [Input]
			if TRUE, extrudes by depth, 
			otherwise creates a surface object.
		model_type  [Input]
			model type
		refn_opts  [Input, Optional]
			display resolution options. For defaults see see fz_attr_refn_parm_enum
		opts  [Input, Optional]
			construction options. For defaults see fz_objt_text_parm_enum
		obj  [Result]
			text object

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl

	See Also
		fz_objt_cnstr_text_opts_get,fz_objt_cnstr_text_opts_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_text_unistr_between_lines_func) (
	fzrt_int 						windex,
	fzrt_uni_char				*str,
	fz_text_style_ptr			style,
	fz_objt_ptr					path_obj1,
	fz_objt_ptr					path_obj2,
	double						depth,
	fzrt_boolean				do_solid,
	fz_objt_model_type_enum		model_type,
	fz_attr_refn_ptr			refn_opts,
	fz_objt_text_cnstr_opts_ptr	opts,
	fz_objt_ptr					*obj
	);

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

	fz_objt_edit_text_get_num_style_runs



	Description
		Gets the number of style runs from a text object.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		num_style_runs  [Result]
			the number of style runs

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_get_num_style_runs_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					*num_style_runs
	);

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

	fz_objt_edit_text_style_run_get_info



	Description
		Gets style run information from a text object. 
		The range of the style run is specified by start_char and 
		end_char.  This range is inclusive.  The range represents 
		characters in the text string which use the style.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		style_run_index  [Input]
			the style run to get.  This value 
			must be >= 0 and < the number of runs returned 
			from fz_objt_edit_text_get_num_style_runs
		start_char  [Result]
			the starting character of the run's range
		end_char  [Result]
			the end character of the run's range
		style  [Result]
			the style applied to the run

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_style_run_get_info_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					style_run_index,
	fzrt_int					*start_char,
	fzrt_int					*end_char,
	fz_text_style_ptr		style
	);

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

	fz_objt_edit_text_set_style_run



	Description
		Sets a style run information for a text object. 
		The range of the style run is specified by start_char and 
		end_char.  This range is inclusive.  The range represents 
		characters in the text string which use the style. 
		This function replaces the style previously applied to 
		the text range.  This works much like selecting text in a 
		text editor and applying a style to the selected text. 
		Styles outside the specified range are  not affected, however, 
		any ranges which overlap the range specified to this function 
		are adjusted to the start and end of this range.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		start_char  [Input]
			the starting character of the run's range
		end_char  [Input]
			the end character of the run's range
		style  [Result]
			the style applied to the run

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_set_style_run_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					start_char,
	fzrt_int					end_char,
	fz_text_style_ptr		style
	);

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

	fz_objt_edit_text_get_string_length



	Description
		Gets the length of a text object's string. 
		This length is in utf16 unicide characters (each character 
		is two bytes).

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		length  [Result]
			the number of characters in the object's text string.

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_get_string_length_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					*length
	);

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

	fz_objt_edit_text_get_string



	Description
		Gets a text object's string. 
		max_length characters are copied into str.  str must be 
		allocated by the calling function and must be at least 
		max_length*sizeof(fzrt_uni_char) bytes.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		str  [Result]
			the string
		max_length  [Input]
			The maximum number of characters to copy into str

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_get_string_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_uni_char			*str,
	fzrt_int					max_length
	);

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

	fz_objt_edit_text_get_string_range



	Description
		Gets a substring of a text object's string. 
		The substring is specified by the inclusive range from 
		start_char to end_char. 
		max_length characters are copied into str.  str must be 
		allocated by the calling function and must be at least 
		max_length*sizeof(fzrt_uni_char) bytes.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		start_char  [Input]
			the character index to start copying
		end_char  [Input]
			the character index of the last character to copy
		str  [Result]
			the string
		max_length  [Input]
			The maximum number of characters to copy into str

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_get_string_range_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					start_char,
	fzrt_int					end_char,
	fzrt_uni_char			*str,
	fzrt_int					max_length
	);

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

	fz_objt_edit_text_set_string



	Description
		Gets a text object's string. 
		Any previous string is deleted.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		str  [Input]
			the string

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_set_string_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_uni_char			*str
	);

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

	fz_objt_edit_text_set_string_range



	Description
		Replaces a range of on object's string.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		start_char  [Input]
			the character index to start the replace
		end_char  [Input]
			the character index of the last character to replace
		str  [Input]
			the new text

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_set_string_range_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					start_char,
	fzrt_int					end_char,
	fzrt_uni_char			*str
	);

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

	fz_objt_edit_text_insert_string



	Description
		Inserts text into a text object's string. 
		The text will be inserted in front of the character 
		specified by insert_point.  No text will be deleted 
		from the object.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		insert_point  [Input]
			the character to insert the text in front of
		str  [Input]
			the string

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_insert_string_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					insert_point,
	fzrt_uni_char			*str
	);

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

	fz_objt_edit_text_delete_text



	Description
		Deletes a range of text from a text object's string. 
		The deleted text is specified by the inclusive range from 
		start_char to end_char.

	Parameters
		windex  [Input]
			project window index
		obj  [Input]
			text object
		start_char  [Input]
			the character index to start deleting
		end_char  [Input]
			the character index of the last character to delete

	Returns
		Error codes


	Availability	5.5.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_unistr_text.fsl
 ****************************************************************/
typedef fzrt_error_td (*fz_objt_edit_text_delete_text_func)(
	fzrt_int					windex,
	fz_objt_ptr				obj,
	fzrt_int					start_char,
	fzrt_int					end_char
	);




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

	fz_objt_text_search_init



	Description
		Initialize model text search parameters.  This will set the parameters to default values. 
		This function will allocate memory to store parameters.  This memory must be freed 
		by calling fz_objt_text_search_finit.

	Parameters
		srch_parms  [Input]
			Search parameters.
		windex  [Input]
			The project window index
		action  [Input]
			The action to take on the results of the search

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_text_search_parm_ptr, fz_text_search_action_enum, fz_objt_text_search_finit

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_init_func)(
				fz_text_search_parm_ptr			*srch_parms,
				fzrt_int							windex,
				fz_text_search_action_enum		action
				);

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

	fz_objt_text_search_finit



	Description
		Unintialize model text search parameters.  This free memory allocated by fz_objt_text_search_init. 
		After calling this function, the search parameters will no longer be valid.

	Parameters
		srch_parms  [Input]
			Search parameters.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_finit_func)(
				fz_text_search_parm_ptr			*srch_parms
				);

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

	fz_objt_text_search_set_srch_str



	Description
		Sets the search string of model text search parameters.  The string is limited 
		to 255 single byte characters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Input]
			The text to search for.  To clear the search text use NULL.
		select  [Input]
			If TRUE, the text will be selected and used as a search parameter. 
			Otherwise, the text will not be used as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_set_srch_str_func)(
				fz_text_search_parm_ptr			srch_parms,
				char							*text,
				fzrt_boolean					select
				);

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

	fz_objt_text_search_get_srch_str



	Description
		Gets the search string of model text search parameters.  The string is limited 
		to 255 single byte characters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Result]
			The text to search for.  This must be preallocated by the caller.
		select  [Result]
			This will be set to TRUE if the text is selected as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_get_srch_str_func)(
				fz_text_search_parm_ptr			srch_parms,
				char							*text,
				fzrt_boolean					*select
				);

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

	fz_objt_text_search_set_repl_str



	Description
		Gets the replace string of model text search parameters.  Matching text will be 
		replaced by this string if the action was set to FZ_TEXT_SRCH_ACTION_REPLACE in 
		fz_objt_text_search_init.  The string is limited to 255 single byte characters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Input]
			The text to replace matching text with.
		select  [Input]
			If TRUE, the text will be selected and text replacement will occur. 
			Otherwise, the text replacement will not occur.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_set_repl_str_func)(
				fz_text_search_parm_ptr			srch_parms,
				char							*text,
				fzrt_boolean					select
				);

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

	fz_objt_text_search_get_repl_str



	Description
		Gets the replace string of model text search parameters.  Matching text will be 
		replaced by this string if the action was set to FZ_TEXT_SRCH_ACTION_REPLACE in 
		fz_objt_text_search_init.  The string is limited to 255 single byte characters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Result]
			The text to replace matching text with.
		select  [Result]
			This will be set to TRUE if the text replacement is selected as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_get_repl_str_func)(
				fz_text_search_parm_ptr			srch_parms,
				char							*text,
				fzrt_boolean					*select
				);

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

	fz_objt_text_search_set_srch_unistr



	Description
		Sets the search string of model text search parameters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Input]
			The text to search for.  To clear the search text use NULL.
		select  [Input]
			If TRUE, the text will be selected and used as a search parameter. 
			Otherwise, the text will not be used as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_set_srch_unistr_func)(
				fz_text_search_parm_ptr			srch_parms,
				fzrt_uni_char					*text,
				fzrt_boolean					select
				);

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

	fz_objt_text_search_get_srch_unistr



	Description
		Gets the search string of model text search parameters.  text must be allocated by 
		the calling function.  The text_len parameter serves 2 purposes.  First it tells 
		this function how many characters to copy into text.  Second, it is filled with the 
		number of characters in the replace text.  So, this function can be called with text 
		set to NULL to get the size of the text.  Then text can be allocated to that size and 
		this function called again to fill text.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Result, Optional]
			The text to search for.  This must be preallocated by the caller.
		text_len  [Input, Result, Optional]
			The number of characters in text.
		select  [Result, Optional]
			This will be set to TRUE if the text is selected as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_get_srch_unistr_func)(
				fz_text_search_parm_ptr			srch_parms,
				fzrt_uni_char					*text,
				fzrt_int							*text_len,
				fzrt_boolean					*select
				);

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

	fz_objt_text_search_set_repl_unistr



	Description
		Gets the replace string of model text search parameters.  Matching text will be 
		replaced by this string if the action was set to FZ_TEXT_SRCH_ACTION_REPLACE in 
		fz_objt_text_search_init.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Input]
			The text to replace matching text with.
		select  [Input]
			If TRUE, the text will be selected and text replacement will occur. 
			Otherwise, the text replacement will not occur.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_set_repl_unistr_func)(
				fz_text_search_parm_ptr			srch_parms,
				fzrt_uni_char					*text,
				fzrt_boolean					select
				);

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

	fz_objt_text_search_get_repl_unistr



	Description
		Gets the replace string of model text search parameters.  Matching text will be 
		replaced by this string if the action was set to FZ_TEXT_SRCH_ACTION_REPLACE in 
		fz_objt_text_search_init.  text must be allocated by the calling function. 
		The text_len parameter serves 2 purposes.  First it tells this function how many 
		characters to copy into text.  Second, it is filled with the number of characters 
		in the replace text.  So, this function can be called with text set to NULL to 
		get the size of the text.  Then text can be allocated to that size and this function 
		called again to fill text.

	Parameters
		srch_parms  [Input]
			Search parameters.
		text  [Result, Optional]
			The text to replace matching text with.
		text_len  [Input, Result, Optional]
			The number of characters in text.
		select  [Result, Optional]
			This will be set to TRUE if the text replacement is selected as a search parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_get_repl_unistr_func)(
				fz_text_search_parm_ptr			srch_parms,
				fzrt_uni_char					*text,
				fzrt_int							*text_len,
				fzrt_boolean					*select
				);

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

	fz_objt_text_search_parm_set



	Description
		Sets model text search parameters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		which  [Input]
			Parameter identifier.
		select  [Input]
			If TRUE, this parameter will be selected and used as a search parameter. 
			Otherwise, this parameter will not be used as a search parameter.
		val  [Input]
			The value of the parameter.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_parm_set_func)(
				fz_text_search_parm_ptr			srch_parms,
				fz_text_search_parm_enum		which,
				fzrt_boolean					select,
				fz_type_td						*val
				);

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

	fz_objt_text_search_parm_get



	Description
		Gets model text search parameters.

	Parameters
		srch_parms  [Input]
			Search parameters.
		which  [Input]
			Parameter identifier.
		select  [Result]
			This will be set to TRUE if the parameter is selected as a search parameter.
		val  [Result]
			The value of the parameter

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_parm_get_func)(
				fz_text_search_parm_ptr			srch_parms,
				fz_text_search_parm_enum		which,
				fzrt_boolean					*select,
				fz_type_td						*val
				);

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

	fz_objt_text_search_text_parm_set



	Description
		Sets model text parameters.  This allows several text construction parameters 
		to be used as search parameters.  These can only be used as search parameters.  The 
		values of these parameters on text objects can  not be changed using the 
		FZ_TEXT_SRCH_ACTION_REPLACE action.  Some of the parameters have a slightly different 
		interpretation than when used for text object construction/editing:  These differences 
		are as follows: 
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE, FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE:  These are bitwise or's 
		of facetted rounding type bits (since more than one type can be used as a search 
		parameter). 
		FZ_OBJT_TEXT_PARM_SRND_FRNT_TYPE, FZ_OBJT_TEXT_PARM_SRND_BACK_TYPE:  These are bitwise or's 
		of smooth rounding type bits (since more than one type can be used as a search 
		parameter). 
		FZ_OBJT_TEXT_PARM_STRING: Not used in this function.  Use fz_objt_text_search_set_srch_str 
		to set the search string and fz_objt_text_search_set_repl_str to set the replace 
		string. 
		FZ_OBJT_TEXT_PARM_FONT_TYPE:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_FONT_FACE:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_TEXT_SRCH_PARM_SEARCH_FACE parameter selection. 
		FZ_OBJT_TEXT_PARM_FONT_NAME:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_TEXT_SRCH_PARM_SEARCH_FONT parameter selection. 
		FZ_OBJT_TEXT_PARM_PATH_OBJ1:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_PATH_OBJ2:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_MODEL_TYPE:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_ORIGIN:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_NORM, FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_RND, 
		or FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_BEVL parameters selection. 
		FZ_OBJT_TEXT_PARM_BACK_FRNT_TYPE:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_NORM, FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_RND, 
		or FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_BEVL parameters selection.

	Parameters
		srch_parms  [Input]
			Search parameters.
		which  [Input]
			Parameter identifier.
		min_max  [Input]
			Specified whether the minimum or maximum of the search range is being set.
		select  [Input]
			If TRUE, this parameter will be selected and used as a search parameter. 
			Otherwise, this parameter will not be used as a search parameter.
		val  [Input]
			The value of the parameter

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_text_parm_set_func)(
				fz_text_search_parm_ptr			srch_parms,
				fz_objt_text_parm_enum			which,
				fz_text_search_range_enum		min_max,
				fzrt_boolean					select,
				fz_type_td						*val
				);

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

	fz_objt_text_search_text_parm_get



	Description
		Gets model text parameters.  This allows several text construction parameters 
		to be used as search parameters.  These can only be used as search parameters.  The 
		values of these parameters on text objects can  not be changed using the 
		FZ_TEXT_SRCH_ACTION_REPLACE action.  Some of the parameters have a slightly different 
		interpretation than when used for text object construction/editing:  These differences 
		are as follows: 
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE, FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE:  These are bitwise or's 
		of facetted rounding type bits (since more than one type can be used as a search 
		parameter). 
		FZ_OBJT_TEXT_PARM_SRND_FRNT_TYPE, FZ_OBJT_TEXT_PARM_SRND_BACK_TYPE:  These are bitwise or's 
		of smooth rounding type bits (since more than one type can be used as a search 
		parameter). 
		FZ_OBJT_TEXT_PARM_STRING: Not used in this function.  Use fz_objt_text_search_get_srch_str 
		to get the search string and fz_objt_text_search_get_repl_str to get the replace 
		string. 
		FZ_OBJT_TEXT_PARM_PATH_OBJ1:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_PATH_OBJ2:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_MODEL_TYPE:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_ORIGIN:  Not used in this function. 
		FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_NORM, FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_RND, 
		or FZ_OBJT_TEXT_PARM_FRND_FRNT_TYPE_BEVL parameters selection. 
		FZ_OBJT_TEXT_PARM_BACK_FRNT_TYPE:  Not used in this function.  Use fz_objt_text_search_parm_set 
		with FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_NORM, FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_RND, 
		or FZ_OBJT_TEXT_PARM_FRND_BACK_TYPE_BEVL parameters selection.

	Parameters
		srch_parms  [Input]
			Search parameters.
		which  [Input]
			Parameter identifier.
		min_max  [Input]
			Specified whether the minimum or maximum of the search range is being set.
		select  [Result]
			This will be set to TRUE if the parameter is selected as a search parameter.
		val  [Result]
			The value of the parameter

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_text_parm_get_func)(
				fz_text_search_parm_ptr			srch_parms,
				fz_objt_text_parm_enum			which,
				fz_text_search_range_enum		min_max,
				fzrt_boolean					*select,
				fz_type_td						*val
				);

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

	fz_objt_text_search_objt



	Description
		Search an object.  This searches a single object and performs the action 
		(specified in the call to fz_objt_text_search_init) on any matching text.

	Parameters
		srch_parms  [Input]
			Search parameters.
		obj  [Input]
			The object to search.
		found  [Result]
			This is set to TRUE if the object contains any matching text.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_objt_func)(
				fz_text_search_parm_ptr			srch_parms,
				fz_objt_ptr						obj,
				fzrt_boolean					*found
				);

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

	fz_objt_text_search_all_objts



	Description
		Search all objects.  This searches all picked objects or all objects in a formZ 
		project (if the FZ_TEXT_SRCH_PARM_SEARCH_ALL_OBJECTS parameter is set) and performs 
		the action (specified in the call to fz_objt_text_search_init) on any matching text.

	Parameters
		srch_parms  [Input]
			Search parameters.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_search_all_objts_func)(
				fz_text_search_parm_ptr			srch_parms
				);

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

	fz_objt_text_interactive_search_init



	Description
		Initialize interactive model text search data.  This initializes storage for 
		search results.  The results can then be obtained one at a time.

	Parameters
		data  [Input]
			Interactive search data.
		srch_parms  [Input]
			Search parameters.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_interactive_search_finit

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_interactive_search_init_func)(
				fz_text_interactive_search_data_ptr		*data,
				fz_text_search_parm_ptr					srch_parms
				);

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

	fz_objt_text_interactive_search_finit



	Description
		Uninitialize interactive model text search data.  This frees storage used for 
		search results.

	Parameters
		data  [Input]
			Interactive search data.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_interactive_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_interactive_search_finit_func)(
				fz_text_interactive_search_data_ptr		*data
				);

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

	fz_objt_text_interactive_search_find_next



	Description
		Gets the next instance of matching text.  This gets the text object 
		and the start and end characters in the string of text that matches 
		the search parameters.  This also sets the current results to that 
		which is returned.  If the object contains multiple ranges of text 
		which match the search parameters, successive calls to this function 
		will return the same object but with different start and end characters. 
		When all matching objects have been found, obj_ptr is set to NULL.

	Parameters
		data  [Input]
			Interactive search data.
		obj_ptr  [Result]
			The object containing the matching text.
		start  [Result]
			The starting character of the matching text.
		end  [Result]
			The last character of the maching text.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_interactive_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_interactive_search_find_next_func)(
				fz_text_interactive_search_data_ptr		data,
				fz_objt_ptr								*obj_ptr,
				fzrt_int									*start,
				fzrt_int									*end
				);

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

	fz_objt_text_interactive_search_do_replace



	Description
		Replaces text.  Replaces text in the current instance of matching text.

	Parameters
		data  [Input]
			Interactive search data.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_interactive_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_interactive_search_do_replace_func)(
				fz_text_interactive_search_data_ptr		data
				);

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

	fz_objt_text_interactive_search_get_current



	Description
		Gets the current instance of matching text.

	Parameters
		data  [Input]
			Interactive search data.
		obj_ptr  [Result]
			The object containing the matching text.
		start  [Result]
			The starting character of the matching text.
		end  [Result]
			The last character of the maching text.

	Returns
		Error codes


	Availability	6.0.0.0

	Example Files
		../../../../Scripts/Samples/Utilities/util_objt_text_search.fsl

	See Also
		fz_objt_text_interactive_search_init

 ****************************************************************/
typedef fzrt_error_td (*fz_objt_text_interactive_search_get_current_func)(
				fz_text_interactive_search_data_ptr		data,
				fz_objt_ptr								*obj_ptr,
				fzrt_int									*start,
				fzrt_int									*end
				);

#ifdef __cplusplus
}
#endif

#endif
