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.