 |
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.