 |
PK_EDGE_find_g1_edges |
|
PK_ERROR_code_t PK_EDGE_find_g1_edges
(
--- received arguments ---
PK_EDGE_t edge, --- starting edge
double tolerance, --- angular tolerance on tangency
PK_LOGICAL_t convexity, --- convexity checking switch
--- returned arguments ---
int *const n_edges, --- number of edges (>= 1)
PK_EDGE_t **const edges --- received edge and tangent edges
)
This function returns the set of tangent edges for a given edge.
Specific Errors:
PK_ERROR_bad_edge received edge unsuitable for function.
(MILD)
PK_ERROR_bad_angle received angular tolerance out of range.
(MILD)
The function receives an edge, an angular tolerance and a logical switch and
returns an unordered array containing the received edge and connected tangent
edges lying within the given angular tolerance.
If 'convexity' is PK_LOGICAL_true, then the function only considers tangent
edges with the same convexity as the received edge.
If 'convexity' is PK_LOGICAL_true then the body must be of type solid
or sheet otherwise the function returns PK_ERROR_bad_edge. If 'convexity'
is PK_LOGICAL_false then the function accepts all body types.
The function returns PK_ERROR_bad_edge if 'convexity' is PK_LOGICAL_true
and the convexity of the first edge, as returned by PK_EDGE_ask_convexity, is
PK_EDGE_convexity_smooth_var_c or PK_EDGE_convexity_variable_c.
If, while searching along a chain of edges, the function encounters a vertex
with more than one possible tangent edge, then no attempt is made to propagate
the search beyond the vertex.