PK_BODY_disjoin   


PK_ERROR_code_t   PK_BODY_disjoin
(
--- received arguments ---
PK_BODY_t         target,           --- a body

--- returned arguments ---
int        *const n_bodies,         --- number of disjoint bodies (>= 1)
PK_BODY_t **const bodies            --- disjoint bodies
)


This function divides the target body into one or more disjoint bodies, each
of which represents a connected point-set.


The target body will be returned as the first entry in bodies.

Each void region in the target body which has more than one shell will lead to
the creation of new regions and bodies into which shells from the target will
be transferred, so that each void region in each resulting body will have
exactly one shell. Each original region which has been split in this way
will stay in the target body; however, it is not specified which of its
shells will be transferred.

If the target body is already connected, the operation will have no effect;
otherwise the resulting bodies will all be classified as general.