#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 */