PK_BODY_trim_neutral_sheets   


PK_ERROR_code_t                PK_BODY_trim_neutral_sheets
(
--- received arguments ---
PK_BODY_t                      body,             --- the target body
int                            n_pairs,          --- the number of pairs
const PK_FACE_set_pair_t       pairs[],          --- array of pairs
double                         tol,              --- tolerance for curves

--- returned arguments ---
PK_BODY_t                      neutral_sheets[], --- neutral sheets
PK_neutral_error_t             errors[],         --- status of neutral sheets
PK_FACE_neutral_causes_array_t causes[]          --- tracking information
)


This function trims the neutral sheets in accordance with their pairs
of face sets.




This function trims some neutral sheets as specified by
pairs.  All the faces in the facesets must belong to body, which
should be a solid.

The argument tol is used to specify a tolerance in case an
approximate curve is constructed by the function.  If it is zero, the
function will choose its own non-zero value.


The returned arrays neutral_sheets, errors and causes must be the same
length as the given array of pairs. Each entry in the returned arrays
will correspond to the pair in the same position in the input array.
Each body in neutral_sheets will be the same as the sheet body in
the same position in pairs.  The value of the entry in errors will
indicate the status of the corresponding sheet body in
neutral_sheets.  The possible values are as follows:

    Value                     Meaning
    -----                     -------
    PK_neutral_success_c         No problems were detected and a trimmed
                              neutral sheet has been returned.

    PK_neutral_illegal_input_c   Either a neutral sheet has not been
                              supplied, or a face has been used in
                              more than one pair.
    PK_neutral_numerical_failure_c
                              An error has occurred while trying to
                              find the trim curves and their
                              endpoints.  The returned neutral sheet
                              will not be trimmed correctly.

    PK_neutral_unknown_config_c  The disposition of pair faces and side
                              faces is not one which the algorithm
                              recognises.  This is a limitation.
    PK_neutral_imprint_failure_c
                              An error has occurred while imprinting
                              the trim curves onto the neutral sheet.
                              This often means there is a bug in
                              finding the trim curves.

Each entry in causes will be an array containing the tracking
information for the corresponding neutral sheet, each element of this
array being the information for a face in the neutral sheet.

Where trimming has failed, the neutral sheet may have changed and may
have new edges scribed onto it.

If the face set pairs are incomplete for the body, it is possible that
the sheet not be trimmed properly, even though the status is
PK_neutral_success_c.  It is also possible that a neutral sheet will
become disconnected.  If this happens it will be converted to a
general body.