#ifndef PROCONTOUR_H #define PROCONTOUR_H #include <ProObjects.h> #include <ProUvStat.h> /* Function declarations for ProCurve. */ PRO_BEGIN_C_DECLS typedef enum { PRO_CONTOUR_TRAV_NONE = 0, PRO_CONTOUR_TRAV_INTERNAL = -1, PRO_CONTOUR_TRAV_EXTERNAL = 1 } ProContourTraversal; /*===========================================================================*/ typedef ProError (*ProContourEdgeVisitAction) ( ProEdge p_edge, ProError status, ProAppData app_data); /* Purpose: This is the generic function for visiting an edge in a contour. Input Arguments: p_edge - The handle to the edge status - The status from the filter function app_data - The application data passed to <b>ProContourEdgeVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Visit the next edge. Other - Stop visiting, and the function returns. */ typedef ProError (*ProContourEdgeFilterAction) ( ProEdge p_edge, ProAppData app_data); /* Purpose: This is the filter function used by the visit function. Input Arguments: p_edge - The handle to the edge app_data - The application data passed to <b>ProContourEdgeVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Call the visit function. PRO_TK_CONTINUE - Skip to the next edge (call the filter function for the next edge, if present). PRO_TK_GENERAL_ERROR - Stop the visit function. */ extern ProError ProContourEdgeVisit ( ProSurface surface, ProContour p_contour, ProContourEdgeVisitAction action, ProContourEdgeFilterAction filter, ProAppData app_data); /* Purpose: Visits all the edges of the specified contour. Input Arguments: surface - The surface of the contour. p_contour - The contour handle. action - The action function to be called for each edge. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. Note that you must specify this argument. filter - The filter function. If NULL, visits all edges 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 edges. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_E_NOT_FOUND - No edges were visited, either because of the filter or for another reason. Other - Any other value is the value returned by the action function (visiting stopped). */ extern ProError ProContourTraversalGet (ProContour p_contour, ProContourTraversal* p_traversal); /* Purpose: Retrieves the contour traversal. Input Arguments: p_contour - The contour handle Output Arguments: p_traversal - The traversal Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. */ extern ProError ProContainingContourFind ( ProSolid solid, ProContour contour, ProContour* p_containing_contour); /* Purpose: Finds a pointer to the innermost contour that closes the specified contour. If the specified contour is internal, the returned contour will be external, and vice versa. If the specified contour is the outermost contour for the surface, the output will be NULL. Input Arguments: solid - The solid owner of the contour (of type PRO_PART or PRO_ASSEMBLY) contour - The contour handle Output Arguments: p_containing_contour - The pointer to the contour Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_E_NOT_FOUND - The specified contour was not found. PRO_TK_INVALID_PTR - The specified pointer is not a solid pointer. */ extern ProError ProContourAreaEval ( ProSurface p_srf_handle, ProContour p_cntr_handle, double *r_area ); /* Purpose: Finds the inside surface area of the specified outer contour, taking into account internal voids. Input Arguments: p_srf_handle - The surface handle p_cntr_handle - The outer contour handle Output Arguments: r_area - The contour area Return Values: PRO_TK_NO_ERROR - The function successfully found the surface area. PRO_TK_BAD_SRF_CRV - The input argument is invalid. */ extern ProError ProContourBoundbox2dCompute ( ProSurface p_srf_handle, ProContour p_cntr_handle, Pro2dPnt r_outline_points[2] ); /* Purpose: Finds the 2d bounding box for the inside surface of the given outer contour. Input Arguments: p_srf_handle - The surface handle, may be NULL. p_cntr_handle - The outer contour handle, may be NULL. Output Arguments: r_outline_points - The contour 2d bounding box, may be NULL. Return Values: PRO_TK_NO_ERROR - The function successfully found the surface area. PRO_TK_BAD_SRF_CRV - The input argument is invalid. */ extern ProError ProContourUvpntVerify ( ProSurface p_srf_handle, ProContour p_cntr_handle, Pro2dPnt uv_point, ProUvStatus *r_result ); /* Purpose: Verifies whether the specified UV point lies within the given contour. Input Arguments: p_srf_handle - The surface handle p_cntr_handle - The contour handle uv_point - The UV point to test Output Arguments: r_result - The resulting status: Return Values: PRO_TK_NO_ERROR - The function successfully verified the point. PRO_TK_BAD_SRF_CRV - One or more of the input arguments are invalid. */ extern ProError ProContourBoundbox3dCompute ( ProSurface p_srf_handle, ProContour p_cntr_handle, Pro3dPnt r_outline_points[2] ); /* Purpose: Finds the 3d bounding box for the inside surface of the specified outer contour, taking into account internal voids. <P> <B>Note:</B> The outline returned by the function ProContourBoundbox3dCompute() represents the outline box used by Creo Parametric embedded algorithms, and hence it can be slightly bigger than the outline computed directly from the surface parameters. Input Arguments: p_srf_handle - The surface handle p_cntr_handle - The contour handle Output Arguments: r_outline_points - The contour 3d bounding box Return Values: PRO_TK_NO_ERROR - The function successfully found the 3d bounding box. PRO_TK_BAD_SRF_CRV - One or more of the input arguments are invalid. */ extern ProError ProEdgeContourGet ( ProSurface surface, ProEdge edge, ProContour *p_cntr ); /* Purpose: Finds a pointer to the contour associated with the edge. Input Arguments: surface - The surface of the contour edge - The edge handle Output Arguments: p_cntr - The pointer to the contour Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_E_NOT_FOUND - The specified contour was not found. */ PRO_END_C_DECLS #endif /* PROCONTOUR_H */