PK_EDGE_make_wire_body   

PK_ERROR_code_t                   PK_EDGE_make_wire_body
(
--- received arguments ---
int                               n_edges,  --- number of edges
const PK_EDGE_t                   edges[],  --- edges
const PK_EDGE_make_wire_body_o_t *options,  --- options

--- returned arguments ---
PK_BODY_t                  *const body,     --- created body
PK_TOPOL_track_r_t         *const tracking  --- tracking
)


This function creates a wire body from a collection of existing edges. The
edges may come from different bodies.


Specific Errors:
    PK_ERROR_edges_intersect    Supplied edges intersect or overlap.
    PK_ERROR_disjoint           Supplied edges form disjoint body, but
                                'allow_disjoint' set to PK_LOGICAL_false.
    PK_ERROR_non_manifold       Resulting body would become general.
    PK_ERROR_cant_make_bspline  Geometry approximation failed.
    PK_ERROR_bad_wire           Failed to construct wire body.


Edges may be passed to this function in any order. They may also come
from different parts. However they are not allowed to intersect or have
full or partial coincidence.

Vertex tolerances are used when deciding whether edges from different
bodies are connected.

A non-manifold wire body may be created if session general topology is
enabled (see PK_SESSION_ask_general_topology). More than two edges may be
connected at a vertex of a non-manifold wire body. General wire bodies may
not be suitable for subsequent modelling operations.

A disjoint wire body may be created if the 'allow_disjoint' field of the
options structure is set to PK_LOGICAL_true.

Other options allow for the approximation of curves which have dependent
geometry and for using nominal geometry.

This function returns information pairing the edges and vertices of the
new wire body with their originating edges and vertices using the
standard data structure PK_TOPOL_track_r_t.