PK_FACE_delete   

PK_ERROR_code_t          PK_FACE_delete
(
--- received arguments ---
int                      n_faces,          --- number of faces
const PK_FACE_t          faces[],          --- faces
PK_FACE_heal_t           heal_action,      --- method for healing wounds
PK_FACE_heal_loops_t     heal_loops,       --- how to process the loops of
                                           --- the wound
PK_LOGICAL_t             local_check,      --- whether to perform local check

--- returned arguments ---
int               *const n_bodies,         --- number of bodies
PK_BODY_t        **const bodies,           --- remaining bodies
PK_local_check_t **const check_results     --- result of local check
)


This function deletes the given faces from a solid or sheet body and repairs
any resulting holes.

NOTE: This function is deprecated and has been superseded by PK_FACE_delete_2.



Specific Errors:
    PK_ERROR_wire_body              (MILD) unable to delete faces from wire
                                    body
    PK_ERROR_non_manifold           (SERIOUS) can't heal wound with
                                    non-manifold boundary
    PK_ERROR_wrong_entity_in_array  (MILD )'faces' not all from same body
    PK_ERROR_general_body           (SERIOUS ) 'faces' come from general body
    PK_ERROR_all_faces_in_body      (MILD) can not delete all faces in a body
    PK_ERROR_cant_heal_wound        (SERIOUS) can't heal wound - impossible
                                    geometry
    PK_ERROR_not_implemented        (MILD) 'heal_action' not implemented


See also Local Ops: Deleting Faces and Healing Wounds for more
information.

All of the given faces, which must belong to the same body, are deleted from
that body.  If the resulting body does not have a complete boundary, then any
holes are treated as wounds which are healed as specified by 'heal_action'.
This may take the values:

    PK_FACE_heal_no_c               don't heal wounds - leave rubber faces
    PK_FACE_heal_cap_c              find a surface in which all edges of a hole
                                    lie and attach this to a face covering the
                                    hole
    PK_FACE_heal_grow_from_parent_c grow the faces the parent had around the
                                    hole until they cover it
    PK_FACE_heal_shrink_c           if extending faces does not yield a
                                    solution, then shrinking the faces is tried

The 'local_check' argument specifies whether checks on newly created
topological and geometrical entities are to be performed, and the
'check_results' argument returns the result of such checks on each body.
'check_results' may take the values:

    PK_local_check_no_c             local checking not performed either because
                                    'local_check' was PK_LOGICAL_false or
                                    'heal_action' was PK_FACE_heal_no_c
    PK_local_check_ok_c             'body' passes local checks
    PK_local_check_negated_c        as initially created, 'body' was inside out
                                    but it has been negated and is now valid
    PK_local_check_failed_c         body fails local checks - it is
                                    self-intersecting

Rubber faces can not be grown to heal other wounds.

This function will not operate on faces from a general body.

If 'heal_loops' is set to PK_FACE_heal_loops_separate_c, then each closed loop
of the wound face is healed independently.
If 'heal_loops' is set to PK_FACE_heal_loops_together_c, then the loops of the
wound are healed together.
If 'heal_loops' is set to PK_FACE_heal_loops_auto_c, then the loops of the
wound are healed either together or separate as appropriate.

Healing loops separately can cause the original body to be split into more
than one 'bodies'.

The faces may not form the shell of a sheet body, or the outer shell of a solid
body, but may form an inner shell of a solid body, in which case the shell is
deleted.