/*
uf_modl_hollow.h
File description:
Open API modeling routines to create, edit and inquire about hollows.
*****************************************************************************/
#ifndef UF_MODL_HOLLOW_H_INCLUDED
#define UF_MODL_HOLLOW_H_INCLUDED
/***************************************************************************
***************************************************************************/
#include <uf_defs.h>
#include <uf_modl_types.h>
#include <libufun_exports.h>
/*******************************************************************************
Edit a hollow feature.
Environment:Internal and External
See Also:
History: Originally released in V16.0
*******************************************************************************/
extern UFUNEXPORT int UF_MODL_edit_hollow(
tag_t feature_id, /* <I> Feature identifier for the hollow feature. */
int type, /* <I> Hollow type:
1 = face
2 = region
3 = body
*/
double tolerance, /* <I> Tolerance */
char *thickness, /* <I> Default hollow thickness */
int n_pierced_faces, /* <I> Number of pierced or seed faces */
tag_t *pierced_faces, /* <I>
Array of pierced face identifiers */
int n_boundary_faces, /* <I> Number of boundary faces */
tag_t *boundary_faces, /* <I>
Array of boundary face identifiers */
int n_offset_faces, /* <I> Number of offset faces */
tag_t *offset_faces, /* <I>
Array of offset face identifiers */
char **offset_thickness /* <I>
Array of offset thickness expressions */
);
/****************************************************************************
Creates a hollow feature using the input thickness and a list of faces to
hollow. The output of this function is the object identifier associated
to the hollow.
The thickness specified must be larger than the default modeling tolerance.
If a smaller thickness is desired than the modeling tolerance,
UF_MODL_create_variable_hollow may be used.
Environment: Internal and External
See Also: UF_MODL_create_variable_hollow
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_hollow(
char * thickness ,/* <I>
Hollow thickness.
*/
uf_list_p_t faces ,/* <I>
List of faces to be hollow.
*/
tag_t * feature_obj_id /* <O>
Feature object identifier of created hollow
*/
);
/********************************************************************
Gets the hollow parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_hollow_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier
*/
int edit ,/* <I>
This is an unused flag. It used to determine whether
to return the right-hand side or both sides of an
expression. Currently, both sides of an expression
are returned.
*/
char ** thickness /* <OF>
The offset from the faces. This must be
freed by calling UF_free.
*/
);
/*******************************************************************************
Create a variable hollow feature.
Environment:Internal and External
See Also:
History: Originally released in V16.0
*******************************************************************************/
extern UFUNEXPORT int UF_MODL_create_variable_hollow(
double tolerance, /* <I> Tolerance */
char *thickness, /* <I> Default thickness */
int n_pierced_faces, /* <I> Number of pierced faces */
tag_t *pierced_faces, /* <I>
Array of pierced face identifiers. */
int n_boundary_faces, /* <I> Number of boundary faces */
tag_t *boundary_faces, /* <I>
Array of boundary face identifiers */
int n_offset_faces, /* <I> Number of offset faces */
tag_t *offset_faces, /* <I>
Array of offset face identifiers */
char **offset_thickness, /* <I>
Array of offset thickness expressions */
tag_t *feature_id /* <O> Feature identifier */
);
/*******************************************************************************
Ask the data for a hollow feature.
Environment:Internal and External
See Also:
History: Originally released in V16.0
*******************************************************************************/
extern UFUNEXPORT int UF_MODL_ask_hollow_data(
tag_t feature_id, /* <I> Feature identifier */
int *type, /* <I> Hollow type:
1 = face
2 = region
3 = body
*/
double *tolerance, /* <O> Tolerance. */
char **thickness, /* <OF> Default thickness. This must be freed by
calling UF_free.
*/
int *n_pierced_faces, /* <O> Number of pierced faces */
tag_t **pierced_faces, /* <OF> n_pierced_faces
Array of pierced face identifiers. This
array must be freed by calling UF_free.
*/
int *n_boundary_faces,/* <O> Number of boundary faces */
tag_t **boundary_faces, /* <OF> n_boundary_faces
Array of boundary face identifers. This
array must be freed by calling UF_free.
*/
int *n_offset_faces, /* <O> Number of offset faces */
tag_t **offset_faces, /* <OF> n_offset_faces
Array of offset face ids. This array must
be freed by calling UF_free.
*/
char ***offset_thickness /* <OF> n_offset_faces
Array of offset thickness expressions. This
array must be freed by calling UF_free_string_array.
*/
);
#undef EXPORTLIBRARY
#endif /* UF_MODL_HOLLOW_H_INCLUDED */