/*********************************************************************************************
 *                                                                                           *
 *                                                                                           *
 *   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_ECDB_API_H
#define _FORMZ_MODEL_ECDB_API_H

#include "fz_model_core_api.h"

#ifdef __cplusplus
extern "C" {
#endif





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

	FZ_OBJT_TYPE_EXTRUDE


	Description
		Unique identifier for the extrusion object type.
 ****************************************************************/
#define FZ_OBJT_TYPE_EXTRUDE		"\x3d\xce\x82\x8a\xc6\x68\x4e\x6b\xbb\x2a\xf4\x5c\x56\xa9\x08\x5d"

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

	fz_objt_extrude_parm_enum


	Description
		Parameter identifiers for a parametric extruded object. Used for the 
		"which" argument of fz_objt_edit_extrude_parm_get and fz_objt_edit_extrude_parm_set.

	Members
		FZ_OBJT_EXTRUDE_PARM_DIST
			Editing - Extrusion distance (height). This 
			parameters may be any value, positive or 
			negative, but cannot be equal to zero.
			Type: double
		FZ_OBJT_EXTRUDE_PARM_NORM
			Editing - Extrusion direction. This must be 
			an unit (normalized) vector
			Type: fz_xyz_td
		FZ_OBJT_EXTRUDE_PARM_SRC_OBJ
			Editing - Extrusion source object. 
			After creating an extruded object, the source object itself can be 
			replaced by passing in a new object using the fz_objt_edit_extrude_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the extrusion initially. When getting 
			this parameter from an existing extrusion via fz_objt_edit_extrude_parm_set, 
			a copy of the source is made and passed back. It is the responsibility 
			of the calling function to delete this new object afterwards.
			Type: fz_objt_ptr

	Availability	5.0.0.0

 ****************************************************************/
typedef enum fz_objt_extrude_parm_enum
{
	
	FZ_OBJT_EXTRUDE_PARM_DIST = 0,

	FZ_OBJT_EXTRUDE_PARM_NORM,
											
	FZ_OBJT_EXTRUDE_PARM_SRC_OBJ ,
									
	FZ_OBJT_EXTRUDE_PARM_MAX
} fz_objt_extrude_parm_enum;

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

	fz_objt_cnstr_extrude



	Description
		Creates an extruded object from a source object. 
		norm indicates the extrusion direction and must be a normalized 
		vector. dist the extrusion height (may be negative, but must be non zero). 
		If the source object has more than one face the first face is extruded.

	Parameters
		windex  [Input]
			project window index
		src_obj  [Input]
			source object
		norm  [Input]
			normal direction of extrusion. Must be a normalized vector
		dist  [Input]
			Extrusion height. This may be any value except zero.
		obj  [Result]
			new object

	Returns
		Error codes


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_extrude_parm_get,fz_objt_edit_extrude_parm_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_extrude_func) (
	fzrt_int 				windex,
	fz_objt_ptr		src_obj,
	fz_xyz_td				*norm,
	double				dist,
	fz_objt_ptr		*obj
	);


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

	fz_objt_edit_extrude_parm_get



	Description
		Gets a parameter of an extruded object. When getting the 
		source object using the FZ_OBJT_EXTRUDE_PARM_SRC_OBJ parameter id, 
		fz_objt_edit_extrude_parm_get creates the object as a copy from 
		its internally stored source object. It is the responsibility 
		of the calling function to delete this object.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not an extruded object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_extrude_parm_set,fz_objt_cnstr_extrude,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_extrude_parm_get_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_extrude_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_edit_extrude_parm_set



	Description
		Sets a parameter of an extruded object. When setting a new 
		source object using the FZ_OBJT_EXTRUDE_PARM_SRC_OBJ parameter id, 
		the calling code must create and delete this 
		object. fz_objt_edit_extrude_parm_set() makes an internal copy.

		Note, that the shape of the extruded object is not changed until the 
		function fz_objt_edit_parm_regen has been called.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not an extruded object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_extrude_parm_get,fz_objt_cnstr_extrude,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_extrude_parm_set_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_extrude_parm_enum	which,
	fz_type_td				*data
	);






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

	FZ_OBJT_TYPE_CONVERGE


	Description
		Unique identifier for the convergence object type.
 ****************************************************************/
#define FZ_OBJT_TYPE_CONVERGE		"\x2a\x2d\x17\xc4\x02\xe0\x43\x29\x96\x9a\x9c\xe7\x03\x5b\x89\x91"

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

	fz_objt_converge_parm_enum


	Description
		Parameter identifiers for a parametric converged object. Used for the 
		"which" argument of fz_objt_edit_converge_parm_get and fz_objt_edit_converge_parm_set.

	Members
		FZ_OBJT_CONVERGE_PARM_DIST
			Editing - Extrusion distance (height). This 
			parameters may be any value, positive or 
			negative, but cannot be equal to zero.
			Type: double
		FZ_OBJT_CONVERGE_PARM_NORM
			Editing - Extrusion direction. This must be 
			an unit (normalized) vector
			Type: fz_xyz_td
		FZ_OBJT_CONVERGE_PARM_BASE
			Editing - Convergence base point.
			Type: fz_xyz_td
		FZ_OBJT_CONVERGE_PARM_SRC_OBJ
			Editing - Convergence source object. 
			After creating a converged object, the source object itself can be 
			replaced by passing in a new object using the fz_objt_edit_converge_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the converged object initially. When getting 
			this parameter from an existing converged object via fz_objt_edit_converge_parm_set, 
			a copy of the source is made and passed back. It is the responsibility 
			of the calling function to delete this new object afterwards.
			Type: fz_objt_ptr

	Availability	5.0.0.0


	See Also
		fz_objt_edit_converge_parm_get, fz_objt_edit_converge_parm_set

 ****************************************************************/
typedef enum fz_objt_converge_parm_enum
{
	
	FZ_OBJT_CONVERGE_PARM_DIST = 0,
										
	FZ_OBJT_CONVERGE_PARM_NORM,
									
	FZ_OBJT_CONVERGE_PARM_BASE,
											
	FZ_OBJT_CONVERGE_PARM_SRC_OBJ ,
									
	FZ_OBJT_CONVERGE_PARM_MAX
} fz_objt_converge_parm_enum;

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

	fz_objt_cnstr_converge



	Description
		Creates an extruded object from a source object. 
		norm indicates the extrusion direction and must be a normalized 
		vector. dist the extrusion height (may be negative, but must be non zero). 
		If the source object has more than one face the first face is extruded. 
		base is the base point from which the extrusion vector is applied. If 
		passed as NULL, the center of gravity of the source's face is used.

	Parameters
		windex  [Input]
			project window index
		src_obj  [Input]
			source object
		norm  [Input]
			normal direction of extrusion. Must be a normalized vector
		dist  [Input]
			Extrusion height. This may be any value except zero.
		base  [Input, Optional]
			base point. The apex of the 
			converged object is located along the extrusion 
			direction at the given height about this base point. 
			If passed as NULL, the center of gravity of the 
			source is used.
		obj  [Result]
			new object

	Returns
		Error codes


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_converge_parm_get,fz_objt_edit_converge_parm_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_converge_func) (
	fzrt_int 				windex,
	fz_objt_ptr		src_obj,
	fz_xyz_td				*norm,
	double				dist,
	fz_xyz_td				*base,
	fz_objt_ptr		*obj
	);


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

	fz_objt_edit_converge_parm_get



	Description
		Gets a parameter of a converged object. When getting the 
		source object using the FZ_OBJT_CONVERGE_PARM_SRC_OBJ parameter id, 
		fz_objt_edit_converge_parm_get creates the object as a copy from 
		its internally stored source object. It is the responsibility 
		of the calling function to delete this object.

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

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


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_converge_parm_set,fz_objt_cnstr_converge,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_converge_parm_get_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_converge_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_edit_converge_parm_set



	Description
		Sets a parameter of a converged object. When setting a new 
		source object using the FZ_OBJT_CONVERGE_PARM_SRC_OBJ parameter id, 
		the calling code must create and delete this 
		object. fz_objt_edit_extrude_parm_set() makes an internal copy.

		Note, that the shape of the converged object is not changed until 
		the function fz_objt_edit_parm_regen has been called.

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

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


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_converge_parm_get,fz_objt_cnstr_converge,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_converge_parm_set_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_converge_parm_enum	which,
	fz_type_td				*data
	);





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

	FZ_OBJT_TYPE_ENCLOS2D


	Description
		Unique identifier for the 2d enclosure object type.
 ****************************************************************/
#define FZ_OBJT_TYPE_ENCLOS2D		"\xaa\x9e\x66\x38\x73\x10\x49\xa2\xb2\x2f\xd2\x02\xd6\x72\xf1\x90"

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

	fz_objt_enclos2d_parm_enum


	Description
		Parameter identifiers for a parametric 2d enclosure object. Used for the 
		"which" argument of fz_objt_edit_enclos2d_parm_get and fz_objt_edit_enclos2d_parm_set.

	Members
		FZ_OBJT_ENCLOS2D_PARM_WIDTH
			Editing - 2d enclosure width.
			Type: double
			Range: 0.0
		FZ_OBJT_ENCLOS2D_PARM_ALIGN
			Editing - 2d enclosure alignment.
			Type: fz_align_lcr_enum
		FZ_OBJT_ENCLOS2D_PARM_SRC_OBJ
			Editing - 2d enclosure source object. 
			After creating a 2d enclosure object, the source object itself can be 
			replaced by passing in a new object using the fz_objt_edit_enclos2d_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the 2d enclosure initially. When getting 
			this parameter from an existing 2d enclosure, a copy of the 
			source is made and passed back. It is the responsibility of the calling 
			function to delete this new object afterwards.
			Type: fz_objt_ptr

	Availability	5.0.0.0

 ****************************************************************/
typedef enum fz_objt_enclos2d_parm_enum
{
	
	FZ_OBJT_ENCLOS2D_PARM_WIDTH = 0,

	FZ_OBJT_ENCLOS2D_PARM_ALIGN,
									
	FZ_OBJT_ENCLOS2D_PARM_SRC_OBJ ,
									
	FZ_OBJT_ENCLOS2D_PARM_MAX
} fz_objt_enclos2d_parm_enum;

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

	fz_objt_cnstr_enclos2d



	Description
		Creates a 2d enclosure object from a source object.

	Parameters
		windex  [Input]
			project window index
		src_obj  [Input]
			source object
		width  [Input]
			enclosure wall width.
			Range: 0.0
		align  [Input]
			alignment relative to the direction of the source.
		obj  [Result]
			new object

	Returns
		Error codes


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos2d_parm_get,fz_objt_edit_enclos2d_parm_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_enclos2d_func) (
	fzrt_int 					windex,
	fz_objt_ptr			src_obj,
	double					width,
	fz_align_lcr_enum	align,
	fz_objt_ptr			*obj
	);


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

	fz_objt_edit_enclos2d_parm_get



	Description
		Gets a parameter of a 2d enclosure object. When getting the 
		source object using the FZ_OBJT_ENCLOS2D_PARM_SRC_OBJ parameter id, 
		fz_objt_edit_enclos2d_parm_get creates the object as a copy from 
		its internally stored source object. It is the responsibility 
		of the calling function to delete this object.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a 2d enclosure object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos2d_parm_set,fz_objt_cnstr_enclos2d,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_enclos2d_parm_get_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_enclos2d_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_edit_enclos2d_parm_set



	Description
		Sets a parameter of a 2d enclosure object. When setting a new 
		source object using the FZ_OBJT_ENCLOS2D_PARM_SRC_OBJ parameter id, 
		the calling code must create and delete this 
		object. fz_objt_edit_enclos2d_parm_set() makes an internal copy.

		Note, that the shape of the 2d enclosure object is not changed until 
		the function fz_objt_edit_parm_regen has been called.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a 2d enclosure object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos2d_parm_get,fz_objt_cnstr_enclos2d,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_enclos2d_parm_set_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_enclos2d_parm_enum	which,
	fz_type_td				*data
	);





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

	FZ_OBJT_TYPE_ENCLOS3D


	Description
		Unique identifier for the 3d enclosure object type.
 ****************************************************************/
#define FZ_OBJT_TYPE_ENCLOS3D		"\x72\x8c\x7e\x0a\x18\xe4\x44\xba\xaa\x3f\x89\x6a\x3e\xf4\x6d\xce"

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

	fz_objt_enclos3d_parm_enum


	Description
		Parameter identifiers for a parametric 3d enclosure object. Used for the 
		"which" argument of fz_objt_edit_enclos3d_parm_get and fz_objt_edit_enclos3d_parm_set.

	Members
		FZ_OBJT_ENCLOS3D_PARM_WIDTH
			Editing - 3d enclosure width.
			Type: double
			Range: 0.0
		FZ_OBJT_ENCLOS3D_PARM_ALIGN
			Editing - 3d enclosure alignment.
			Type: fz_align_lcr_enum
		FZ_OBJT_ENCLOS3D_PARM_DIST
			Editing - 3d enclosure distance (height).This 
			parameters may be any value, positive or 
			negative, but cannot be equal to zero.
			Type: double
		FZ_OBJT_ENCLOS3D_PARM_NORM
			Editing - 3d enclosure direction. This must be 
			an unit (normalized) vector
			Type: fz_xyz_td
		FZ_OBJT_ENCLOS3D_PARM_CLOSED_TOP
			Editing - 3d enclosure closed at top on/off.
			Type: fzrt_boolean
		FZ_OBJT_ENCLOS3D_PARM_CLOSED_BOTTOM
			Editing - 3d enclosure closed at bottom on/off.
			Type: fzrt_boolean
		FZ_OBJT_ENCLOS3D_PARM_THICK_TOP
			Editing - 3d enclosure top thickness.
			Type: double
			Range: 0.0
		FZ_OBJT_ENCLOS3D_PARM_THICK_BOTTOM
			Editing - 3d enclosure bottom thickness.
			Type: double
			Range: 0.0
		FZ_OBJT_ENCLOS3D_PARM_SRC_OBJ
			Editing - 3d enclosure source object. 
			After creating a 3d enclosure object, the source object itself can be 
			replaced by passing in a new object using the fz_objt_edit_enclos3d_parm_set 
			API function. Note, that the same restrictions apply for this object 
			as for the one used to construct the 3d enclosure initially. When getting 
			this parameter from an existing 3d enclosure, a copy of the 
			source 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

	Availability	5.0.0.0

 ****************************************************************/
typedef enum fz_objt_enclos3d_parm_enum
{
	
	FZ_OBJT_ENCLOS3D_PARM_WIDTH = 0,

	FZ_OBJT_ENCLOS3D_PARM_ALIGN,
											
	FZ_OBJT_ENCLOS3D_PARM_DIST,
											
	FZ_OBJT_ENCLOS3D_PARM_NORM,
									
	FZ_OBJT_ENCLOS3D_PARM_CLOSED_TOP,

	FZ_OBJT_ENCLOS3D_PARM_CLOSED_BOTTOM,
										
	FZ_OBJT_ENCLOS3D_PARM_THICK_TOP,
											
	FZ_OBJT_ENCLOS3D_PARM_THICK_BOTTOM,

	FZ_OBJT_ENCLOS3D_PARM_SRC_OBJ,

	FZ_OBJT_ENCLOS3D_PARM_MAX
} fz_objt_enclos3d_parm_enum;

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

	fz_objt_cnstr_enclos3d



	Description
		Creates a 3d enclosure object from a source object.

	Parameters
		windex  [Input]
			project window index
		src_obj  [Input]
			source object
		norm  [Input]
			normal direction of extrusion. Must be a normalized vector
		dist  [Input]
			Extrusion height. This may be any value except zero.
		width  [Input]
			enclosure wall width.
			Range: 0.0
		thick_top  [Input]
			Thickness of enclosure top.
			Range: 0.0
		thick_bottom  [Input]
			Thickness of enclosure bottom.
			Range: 0.0
		align  [Input]
			alignment relative to the direction of the source.
		closed_top  [Input]
			Enclosure closed (TRUE) or open (FALSE) at top.
		closed_bottom  [Input]
			Enclosure closed (TRUE) or open (FALSE) at bottom.
		obj  [Result]
			new object

	Returns
		Error codes


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos3d_parm_get,fz_objt_edit_enclos3d_parm_set

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_cnstr_enclos3d_func) (
	fzrt_int 					windex,
	fz_objt_ptr			src_obj,
	fz_xyz_td					*norm,
	double					dist,
	double					width,
	double					thick_top,
	double					thick_bottom,
	fz_align_lcr_enum	align,
	fzrt_boolean			closed_top,
	fzrt_boolean			closed_bottom,
	fz_objt_ptr			*obj
	);

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

	fz_objt_edit_enclos3d_parm_get



	Description
		Gets a parameter of a 3d enclosure object. When getting the 
		source object using the FZ_OBJT_ENCLOS3D_PARM_SRC_OBJ parameter id, 
		fz_objt_edit_enclos3d_parm_get creates the object as a copy from 
		its internally stored source object. It is the responsibility 
		of the calling function to delete this object.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a 3d enclosure object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos3d_parm_set,fz_objt_cnstr_enclos3d,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_enclos3d_parm_get_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_enclos3d_parm_enum	which,
	fz_type_td				*data
	);

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

	fz_objt_edit_enclos3d_parm_set



	Description
		Sets a parameter of a 3d enclosure object. When setting a new 
		source object using the FZ_OBJT_ENCLOS3D_PARM_SRC_OBJ parameter id, 
		the calling code must create and delete this 
		object. fz_objt_edit_enclos3d_parm_set() makes an internal copy.

		 
		Note, that the shape of the 3d enclosure object is not changed until 
		the function fz_objt_edit_parm_regen has been called.

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

	Returns
		Error codes 
		MODEL_ERR_WRONG_OBJT_TYPE	- object passed in is not a 3d enclosure object


	Availability	5.0.0.0

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

	See Also
		fz_objt_edit_enclos3d_parm_get,fz_objt_cnstr_enclos3d,fz_objt_edit_parm_regen

 ****************************************************************/
typedef fzrt_error_td  (*fz_objt_edit_enclos3d_parm_set_func) (
	fzrt_int					windex,
	fz_objt_ptr			obj,
	fz_objt_enclos3d_parm_enum	which,
	fz_type_td				*data
	);


#ifdef __cplusplus
}
#endif

#endif
