 |
PK_EDGE_remove_to_bodies |
|
PK_ERROR_code_t PK_EDGE_remove_to_bodies
(
--- received arguments ---
int n_edges, --- no. of edges
const PK_EDGE_t edges[], --- edges
const PK_EDGE_remove_to_bodies_o_t *options, --- options
--- returned arguments ---
int *const n_parent_bodies, --- no. of parent
--- bodies
PK_BODY_t **const parent_bodies, --- parent bodies
int *const n_child_bodies, --- no. of child
--- bodies
PK_BODY_t **const child_bodies, --- child bodies
PK_TOPOL_track_r_t *const tracking --- tracking
--- information
)
This function separates a body into two or more bodies by selecting
wire edges which are to be removed into new bodies
Specific Errors:
PK_ERROR_bad_wire (MILD) input edge not a wire
PK_ERROR_not_in_same_body (MILD) edges not from same body
PK_ERROR_all_edges_in_body (MILD) cannot remove all edges from body
Introduction
All of the given wire 'edges', which must belong to the same body are
removed into one or more new bodies.
Bodies arising from the given set of edges are referred to as 'child_bodies'.
Bodies derived from the remaining body are referred to as 'parent_bodies'.
The body type of the supplied 'parent_bodies' remains the same after the
operation. Any child body, including those removed from a general body, will
have body type PK_BODY_type_wire_c if their resulting topology is manifold.
User Options
The PK_EDGE_remove_to_bodies_o_t structure contains user control options.
See its documentation for detail.
Tracking
The PK_TOPOL_track_t structure contains topology tracking information on the
operation. Two types of tracking information records may be returned :
1) PK_TOPOL_track_split_c, to report vertices which have been split between
parent and child bodies. New vertices will be created on child bodies.
2) PK_TOPOL_track_create_c, to report which 'child_bodies' were created from
which 'edges'. Tracking records of this type will only be returned if
the 'track_bodies' option is set to PK_track_bodies_yes_c.