#ifndef PROQUILT_H
#define PROQUILT_H
#include <ProObjects.h>
#include <ProGeomitem.h>
/*
Function declarations for ProQuilt.
*/
PRO_BEGIN_C_DECLS
typedef ProError (*ProQuiltSurfaceVisitAction) ( ProSurface surface,
ProError status,
ProAppData app_data );
/*
Purpose: This is the user generic function for visiting surfaces in a
quilt.
Input Arguments:
surface - The handle to the surface.
status - The status from the filter function. If the filter function is
NULL, this is PRO_TK_NO_ERROR.
app_data - The user data passed to <b>ProQuiltSurfaceVisit()</b>.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Visit the next surface.
Other - Causes the function to stop visiting and returns.
*/
typedef ProError (*ProQuiltSurfaceFilterAction) ( ProSurface surface,
ProAppData app_data );
/*
Purpose: This is the user generic function for filtering surfaces in a
quilt.
Input Arguments:
surface - The handle to the surface
app_data - The user data passed to <b>ProQuiltSurfaceVisit()</b>
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Visit the next surface.
PRO_TK_CONTINUE - Skip this surface and do not call the visit function.
PRO_TK_GENERAL_ERROR - Stop visiting and the function returns.
*/
/*===========================================================================*/
extern ProError ProQuiltInit (ProSolid p_owner_handle,
int quilt_id,
ProQuilt *p_handle);
/*
Purpose: Initializes the <i>ProQuilt</i> handle.
Input Arguments:
p_owner_handle - The solid owner of the quilt
quilt_id - The quilt identifier
Output Arguments:
p_handle - The handle to initialize
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the handle.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
*/
extern ProError ProQuiltIdGet (ProQuilt quilt,
int *p_id);
/*
Purpose: Gets the identifier of the quilt object.
<p> NOTE:
<p> Although the pointer can be reallocated, the identifier will
not change.
Input Arguments:
quilt - The quilt handle
Output Arguments:
p_id - The returned identifier of the coordinate system object
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
#define ProQuiltDatatypeGet() (PRO_QUILT)
extern ProError ProQuiltSurfaceVisit (ProQuilt p_quilt,
ProQuiltSurfaceVisitAction action,
ProQuiltSurfaceFilterAction filter,
ProAppData app_data);
/*
Purpose: Visits the surfaces of the specified quilt.
Input Arguments:
p_quilt - The quilt handle
action - The action function
filter - The filter function. If NULL, all surfaces of the quilt are
visited using the action function.
app_data - The application data passed to the filter and visiting
functions
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully visited the surfaces.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_NOT_IMPLEMENTED - The specified <i>p_curve</i> is a valid
geometry item, but not a composite curve.
PRO_TK_E_NOT_FOUND - The function did not visit any of the components,
either because of the filter or for another
reason.
Other - Any other value means the action function returned something
other than PRO_TK_NO_ERROR and stopped visiting the surfaces.
*/
extern ProError ProQuiltVolumeEval (ProQuilt p_quilt,
double *p_volume);
/*
Purpose: Finds the quilt volume.
Input Arguments:
p_quilt - The quilt handle
Output Arguments:
p_volume - The quilt volume
Return Values:
PRO_TK_NO_ERROR - The function successfully found the volume.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_INVALID_TYPE - The quilt supplied is not a closed quilt.
PRO_TK_INCOMPLETE - Maximum number of iterations was reached while
evaluating volume.
*/
extern ProError ProQuiltIsBackupgeometry (ProQuilt quilt, ProBoolean *ret);
/*
Purpose: Checks whether quilt belongs to invisible internal Copy Geom
Backup feature.
Input Arguments:
quilt - The quilt handle
Output Arguments:
ret - PRO_B_TRUE if the quilt belongs to the invisible internal Copy
Geom Backup feature,
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProQuiltIsInternal (ProQuilt quilt, ProBoolean* is_internal);
/*
Purpose: Checks whether a quilt is created for internal use only.
Input Arguments:
quilt - The quilt handle
Output Arguments:
is_internal - PRO_B_TRUE if the quilt is internal,
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
/*===========================================================================*/
PRO_END_C_DECLS
#endif /* PROQUILT_H */