PK_EDGE_attach_curves_2   

PK_ERROR_code_t                  PK_EDGE_attach_curves_2
(
--- received arguments ---
int                              n_edges,  --- number of edges
const PK_EDGE_t                  edges[],  --- edges to have curves attached
const PK_CURVE_t                 curves[], --- curves to attach to edges
const PK_EDGE_attach_curves_o_t *options,  --- options structure

--- returned arguments ---
PK_ENTITY_track_r_t       *const tracking  --- tracking information
)


This function attaches curves to edges.


Specific Errors:
    PK_ERROR_bad_vertex          (MILD)     A curve has failed the vertex
                                            checking (if enabled).
    PK_ERROR_not_in_same_body    (MILD)     Not all members of 'edges' are
                                            from the same body.
    PK_ERROR_geom_topol_mismatch (MILD)     At least one of the edges is not
                                            accurate.
    PK_ERROR_geom_not_needed     (MILD)     A member of 'edges' already has
                                            an attached curve.
    PK_ERROR_bad_combination     (MILD)     An invalid combination of options
                                            has been supplied.
    PK_ERROR_cant_get_point      (MILD)     Unable to find the point
                                            associated with a vertex.
    PK_ERROR_cant_use_curve      (MILD)     A curve to be attached to a ring
                                            edge is not closed or periodic.
    PK_ERROR_bad_shared_entity   (MILD)     An illegal attempt to share a
                                            member of 'curves'.
    PK_ERROR_bad_interval        (MILD)     The specified interval extends
                                            beyond the curve's parameter range.
    PK_ERROR_invalid_geometry    (MILD)     A member of 'curves' fails the
                                            geometry checks (if enabled).
    PK_ERROR_has_parent          (MILD)     A member of 'curves' is already
                                            attached to an edge and the
                                            copy_never option is specified.


The arrays 'edges' and 'curves' are both of the length 'n_edges' and all the
'edges' must belong to the same body.

If a curve occurs more than once in 'curves' then the curve will be shared,
providing the sharing is legal. Curves may not be attached to tolerant
edges.

Unless specified in the options structure, PK_EDGE_attach_curves_2 will copy
curves (and their dependents) if they have geometric owners or are unable
to be shared. Any copied geometry is returned in the tracking array.
Attributes are not copied.

The curve must be able to pass Parasolid's geometry checking, unless this is
disabled in the options structure, or self-intersection or G1-continuity
checking is disabled by an interface parameter (PK_SESSION_set_check_self_int
or PK_SESSION_set_check_continuity).

No checking is performed to ensure that the curve lies on the corresponding
surface(s). This may lead to face invalidities.

Only closed periodic curves may be attached to ring edges. For split ring
edges, vertex checking (if enabled) applies to the sole vertex.

Finer control over curve attachment (including suppressing geometry checking,
controlling copying behaviour, specifying curve interval and orientation) is
provided through the options structure. See PK_EDGE_attach_curves_o_t for
details.