#ifndef PRO_EXTOBJDISP_H
#define PRO_EXTOBJDISP_H
#include <ProToolkit.h>
#include <ProObjects.h>
#include <ProExtobj.h>
#include <ProColor.h>
PRO_BEGIN_C_DECLS
/* Creo Parametric TOOLKIT external object display - related functions */
typedef enum
{
PRO_EXTOBJ_ZOOM_INVARIANT = 1,
PRO_EXTOBJ_SPIN_INVARIANT = 2,
PRO_EXTOBJ_BLANKED = 3,
PRO_EXTOBJ_ZBUFFERED = 4
} ProExtobjDispprops;
/* Display data - related functions */
extern ProError ProDispdatAlloc (ProWExtobjdata *disp_data);
/*
Purpose: Initializes the display data structure.
Input Arguments:
disp_data - The display data
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the structure.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The function could not initialize the structure.
*/
extern ProError ProDispdatTrfSet (ProWExtobjdata disp_data,
ProMatrix trf);
/*
Purpose: Sets the transformation matrix to the display data. This matrix is
used to transform entities and selection boxes from the local
coordinates of the external object to model coordinates. Its
origin is used to figure out the proper display of spin- and
zoom-invariant entities.
Input Arguments:
disp_data - The display data
trf - The transformation matrix
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the data.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not set the data.
*/
extern ProError ProDispdatTrfGet (ProWExtobjdata disp_data,
ProMatrix trf);
/*
Purpose: Retrieves the transformation matrix, given the display data.
Input Arguments:
disp_data - The display data
Output Arguments:
trf - The transformation matrix
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProDispdatEntsSet (ProWExtobjdata disp_data,
ProCurvedata *entities,
int num_ents);
/*
Purpose: Sets the display data for a list of entities. The entities are
specified in the local coordinates of the external object. To
transform them to model coordinates, use the <i>disp_data</i>
transformation matrix (see the function
<b>ProDispdatTrfSet()</b>). NOTE: The only entities for which this
is supported are PRO_ENT_LINE and PRO_ENT_ARC. (Polygons may be
drawn as multiple lines, and circles as arcs of extent 2 * pi.)
Input Arguments:
disp_data - The display data
entities - The list of entities
num_ents - The length of the list of entities
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the display data.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The entity was not found, or the function could
not set the data.
See Also:
ProDispdatTrfSet()
*/
extern ProError ProDispdatEntsGet (ProWExtobjdata disp_data,
ProCurvedata **entities,
int *num_ents);
/*
Purpose: Retrieves the list of entities, given the display data.
Input Arguments:
disp_data - The display data.
Output Arguments:
entities - The list of entities. Use <b>ProCurvedataArrayFree()</b> to
release the memory.
num_ents - The length of the list of entities.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The entity was not found, or the function could
not retrieve the information.
See Also:
ProCurvedataArrayFree()
*/
extern ProError ProCurvedataArrayFree (ProCurvedata **entities,
int num_ents);
/*
Purpose: Frees the memory used by the specified list of entities.
Input Arguments:
entities - The address to the list of entities
num_ents - The length of the list of entities
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The memory was freed successfully.
PRO_TK_BAD_INPUTS - One or more of the arguments invalid.
PRO_TK_GENERAL_ERROR - The function could not free the memory.
*/
extern ProError ProDispdatScaleSet (ProWExtobjdata disp_data,
double scale);
/*
Purpose: Sets the scale for the display data.
Input Arguments:
disp_data - The display data
scale - The scale
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the scale.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not set the scale.
*/
extern ProError ProDispdatScaleGet (ProWExtobjdata disp_data,
double *p_scale);
/*
Purpose: Retrieves the scale for the display data.
Input Arguments:
disp_data - The display data
Output Arguments:
p_scale - The scale
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProDispdatPropsSet (ProWExtobjdata disp_data,
ProExtobjDispprops *properties,
int prop_num);
/*
Purpose: Sets the properties for the display data.
Input Arguments:
disp_data - The display data
properties - The properties
prop_num - The number of properties
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the properties.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not set the properties.
*/
extern ProError ProDispdatPropsGet (ProWExtobjdata disp_data,
ProExtobjDispprops **properties,
int *prop_num);
/*
Purpose: Retrieves the properties of the display data.
Input Arguments:
disp_data - The display data.
Output Arguments:
properties - The array of display properties. The array is allocated by
the function. Use <b>ProArrayFree()</b> to free the
allocated memory.
prop_num - The number of properties.
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The function could not retrieve the data.
See Also:
ProArrayFree()
*/
extern ProError ProDispdatColorSet (ProWExtobjdata disp_data,
ProColortype color);
/*
Purpose: Sets the color for the display data.
Input Arguments:
disp_data - The display data
color - The color
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the color.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not set the color.
*/
extern ProError ProDispdatColorGet (ProWExtobjdata disp_data,
ProColortype *p_color);
/*
Purpose: Retrieves the display color.
Input Arguments:
disp_data - The display data
Output Arguments:
p_color - The color
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProDispdatLinestyleSet (ProWExtobjdata disp_data,
ProLinestyle line_style);
/*
Purpose: Sets the line style for the display data.
Input Arguments:
disp_data - The display data
line_style - The line style
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the line style.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The function could not set the line style.
*/
extern ProError ProDispdatLinestyleGet (ProWExtobjdata disp_data,
ProLinestyle *p_line_style);
/*
Purpose: Retrieves the display line style.
Input Arguments:
disp_data - The display data
Output Arguments:
p_line_style - The line style
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProExtobjScreentrfGet (ProExtobj *object,
ProMatrix trf);
/*
Purpose: Retrieves the screen transformation.
<p><b>Note: </b>In the assembly mode, ProExtobjScreentrfGet() is
applicable for external objects owned only by the top assembly
model. However, in the part mode, this function is applicable for
all objects.
Input Arguments:
object - The external object
Output Arguments:
trf - The transformation matrix
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_GENERAL_ERROR - The function could not retrieve the information.
*/
extern ProError ProDispdatEntsWithColorSet (ProWExtobjdata disp_data,
ProCurvedata **entities,
ProColortype *colors);
/*
Purpose: Sets the display data for a list of entities and the color for
each entity. The entities are specified in the local coordinates
of the external object. To transform them to model coordinates,
use the <i>disp_data</i> transformation matrix (see the function
<b>ProDispdatTrfSet()</b>). NOTE: The only entities for which this
is supported are PRO_ENT_LINE and PRO_ENT_ARC. (Polygons may be
drawn as multiple lines, and circles as arcs of extent 2 * pi.)
Input Arguments:
disp_data - The display data.
entities - ProArray of pointers to ProCurvedata allocated by the user.
colors - Corresponding ProArray of colors (ProColortype) allocated by
the user.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully set the display data.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
PRO_TK_GENERAL_ERROR - The entity was not found, or the function could
not set the data.
*/
PRO_END_C_DECLS
#endif /* PRO_EXTOBJDISP_H */