PK_FACE_make_sect_with_sfs   

PK_ERROR_code_t                       PK_FACE_make_sect_with_sfs
(
--- received arguments ---
int                                   n_targets, --- Number of target faces
PK_FACE_t                             targets[], --- Target faces
int                                   n_tools,   --- Number of tool surfaces
PK_SURF_t                             tools[],   --- Tool surfaces
const PK_FACE_make_sect_with_sfs_o_t *options,   --- Sectioning options

--- returned arguments ---
PK_TOPOL_track_r_t             *const tracking,  --- Tracking information
PK_FACE_make_sect_with_sfs_r_t *const results    --- Resultant bodies
)


This function sections selected regions of the target body with
tool surfaces. The target body remains unchanged.



Specific Errors:
    PK_ERROR_missing_geom              Target or tool has incomplete geometry
                                       (SERIOUS)
    PK_ERROR_wire_body                 Target or tool has wireframe or acorn
                                       components (MILD)
    PK_ERROR_non_manifold              Non-manifold result (SERIOUS)
    PK_ERROR_boolean_failure           Inconsistent arguments, or internal
                                       error (SERIOUS)
    PK_ERROR_general_body              Target is a general body (MILD)
    PK_ERROR_targ_faces_many_bodies    Target faces are from more than one
                                       body (MILD)



Introduction
The given set of tool surfaces is used to generate sections of faces of the
target body. The target body remains unchanged.

The target body may be solid or sheet.

The results are wire bodies created from edges resulting from imprinting
targets onto surfaces.

If non-manifold wire body is found it is added to 'reports' field of the
'results' with PK_section_report_non_manifold_c (see PK_section_report_r_t).

The result may contain several disjoint components, if 'allow_disjoint' is
set to PK_LOGICAL_false the components will be split out into separate bodies.

The operation of the sectioning may be controlled via a set of options passed
to the function as an input argument.

Output of the operation is returned in the 'results' structure.

See Non-destructive sectioning for more information.

Returned Arguments
Tracking

The 'tracking' structure contains topology tracking information on the
operation. In the case of this function, tracking information for all the
edges from 'bodies' is returned.

The PK_TOPOL_track_t structure in 'tracking' will be of type
PK_TOPOL_track_create_c. 'original_topols' will contain the tag of the target
face and tool surface. If the edge is coincident with the target edge,
tag of the target edge will be returned. The first entity will be from the
target body and second entity will be tool surface.
For the edges 'n_original_topols' will be 2.


Status and Fault Reporting

The 'results' structure contains resultant bodies and additional information,
if any about the operation.

If the function returns PK_ERROR_no_errors, then resultant wire bodies will
be contained within the 'bodies' array.

The 'reports' will provide information about non-manifold or other invalid
sections.

Each report structure contains a 'report' field indicating the reason for the
failure and, if possible, an array of entities. These entities may assist the
application in identifying the region or entities that resulted in the failure.
The 'entities' array may contain topology from the target and tool bodies. The
entities returned in the array will be members of the following classes :

   o PK_CLASS_body
   o PK_CLASS_shell
   o PK_CLASS_face
   o PK_CLASS_edge
   o PK_CLASS_vertex

If 'report' is PK_boolean_report_non_manifold_c, the invalid section body will
be returned in 'entities' array.

Function Restrictions
The following restrictions apply to the sectioning operation :

o Targets are faces of the same body.

o This function does not support general bodies.