 |
PK_FACE_make_solid_bodies |
|
PK_ERROR_code_t PK_FACE_make_solid_bodies
(
--- 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_LOGICAL_t local_check, --- whether to perform local check
--- returned arguments ---
int *const n_bodies,
PK_BODY_t **const bodies, --- created solid bodies
PK_local_check_t **const check_results --- results of local check
)
This function creates solid bodies from a collection of faces
This function does not support facet geometry [NF]
Specific Errors:
PK_ERROR_wire_body (MILD) unable to make solid from wire body
PK_ERROR_dont_make_solid (MILD) can't make solid from given 'faces'
PK_ERROR_non_manifold (MILD) can't heal wound with non-manifold
boundary
PK_ERROR_not_in_same_part (MILD) 'faces' not all from same body
PK_ERROR_general_body (MILD) 'faces' come from general body
PK_ERROR_not_implemented (MILD) 'heal_action' not implemented
The topologies of the given 'faces', which must belong to the same body, plus
all their geometry and attributes are copied into a new solid body or bodies.
A new body is created from each set of connected faces.
If any of the copied topological entities are contained within groups, then
these groups plus their attributes are copied into the appropriate new
solid body or bodies.
If a 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_child_c faces around the hole are extended until
they cover the hole
PK_FACE_heal_grow_from_parent_c grow the faces the parent had around the
hole until they cover it
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.
'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.
See Local Ops: Creating New Solids from Faces and
Making a body from solid topology for more information.