#ifndef PROFACET_H_
#define PROFACET_H_
#include <ProToolkit.h>
#include <ProObjects.h>
PRO_BEGIN_C_DECLS
typedef struct pro_model_item ProFacetSet;
typedef struct new_facet* ProFacet;
typedef struct new_vtx_and_data* ProFacetVertex;
typedef ProError (*ProFacetFilterAction) (ProFacet facet,
ProAppData app_data);
/*
Purpose: Filter action for a facet in the faceted geometry set.
Input Arguments:
facet - The facet.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_CONTINUE - Skip visiting this item.
Any other value - Visit this item and pass this error code to the visit
action.
*/
typedef ProError (*ProFacetVisitAction) (ProFacet facet,
ProError error,
ProAppData app_data);
/*
Purpose: Visit action for a facet in the faceted geometry set.
Input Arguments:
facet - The facet.
error - Error return passed from the filter action.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue visiting.
Any other value - Stop visiting and return this error code from the
visit function.
*/
typedef ProError (*ProFacetsetFilterAction) (ProFacetSet* facet_set,
ProAppData app_data);
/*
Purpose: Filter action for visiting the facet sets in a solid model.
Input Arguments:
facet_set - The facet set.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_CONTINUE - Skip visiting this item.
Any other value - Visit this item and pass this error code to the visit
action.
*/
typedef ProError (*ProFacetsetVisitAction) (ProFacetSet* facet_set,
ProError error,
ProAppData app_data);
/*
Purpose: Visit action for visiting the facet sets found in a solid model.
Input Arguments:
facet_set - The facet set.
error - Error return passed from the filter action.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue visiting.
Any other value - Stop visiting and return this error code from the
visit function.
*/
extern ProError ProSolidFacetsetVisit (ProSolid solid,
ProFacetsetVisitAction action,
ProFacetsetFilterAction filter,
ProAppData app_data);
/*
Purpose: Visits each of the facet sets found in the given solid model.
Input Arguments:
solid - The part or assembly.
action - The visit action
filter - The filter action
app_data - Application data passed to the action functions.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - No items were found.
Any other value - Visiting stopped due to this error return from the
visit action.
*/
extern ProError ProFacetsetFacetVisit (ProFacetSet* facet_set,
ProFacetVisitAction action,
ProFacetFilterAction filter,
ProAppData app_data);
/*
Purpose: Visits the facets in the faceted geometry set.
Input Arguments:
facet_set - The set of facetted geometry.
action - The visit action
filter - The filter action
app_data - Application data passed to the action functions.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - No items were found.
Any other value - Visiting stopped due to this error return from the
visit action.
*/
extern ProError ProFacetVerticesGet (ProFacet facet,
ProFacetVertex vertices[3]);
/*
Purpose: Obtains the vertices for the given facet.
Input Arguments:
facet - The facet.
Output Arguments:
vertices - The facet vertices.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProFacetvertexPointGet (ProFacetVertex vertex,
ProPoint3d point);
/*
Purpose: Obtains the facet vertex location.
Input Arguments:
vertex - The facet vertex
Output Arguments:
point - The location of the vertex.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProFacetNormalGet (ProFacet facet,
ProVector normal);
/*
Purpose: Obtains the facet's normal vector.
Input Arguments:
facet - The facet.
Output Arguments:
normal - The normal for the given facet.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProFacetverticesFree (ProFacetVertex vertices[3]);
/*
Purpose: Frees the memory allocated for the vertices of a facet.
Input Arguments:
vertices - The facet vertices
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
PRO_END_C_DECLS
#endif