PK_BODY_imprint_faces_2   

PK_ERROR_code_t                  PK_BODY_imprint_faces_2
(
--- received arguments ---
PK_BODY_t                        body,        --- a target body
int                              n_faces,     --- number of tool faces
const PK_FACE_t                  faces[],     --- tool faces
const PK_BODY_imprint_faces_o_t *options,     --- imprint options [PF]

--- returned arguments ---
PK_imprint_r_t            *const results,     --- imprint results
PK_TOPOL_track_r_t        *const tracking     --- tracking information
)


This function imprints edges on the given target body and tool faces.

This function offers partial support for facet geometry [PF]


Specific Errors:
    PK_ERROR_tool_faces_many_bodies   tool faces are from more than
                                      one body (MILD)
    PK_ERROR_wire_body                target is wire body (MILD)
    PK_ERROR_missing_geom             target or tool has incomplete geometry
                                      (MILD)
    PK_ERROR_same_tool_and_target     target and tool are the same body
                                      (MILD)
    PK_ERROR_partial_no_intersect     no imprinting on target or tool
                                      (MILD)
    PK_ERROR_bad_tolerance            proposed tolerance is too small (MILD)
    PK_ERROR_bad_combination          a mixture of facet and classic geometry
                                      has been supplied (MILD)
    PK_ERROR_cant_complete_imprint    unable to complete the imprint
                                      (SERIOUS)
    PK_ERROR_ambiguous_imprint        ambiguous imprint cannot be
                                      completed
                                      (SERIOUS)
    PK_ERROR_cant_do_imprint          imprint failure (SERIOUS)



Introduction

The function takes the target body and tool faces and adds edges and
vertices where the body and the faces intersect.  The corresponding
imprinted edges and vertices are returned in matching arrays, one for target,
one for tool, contained within the results structure.  Where the imprint is
coincident with existing edges or vertices, new imprint topology will not be
added and these original edges and vertices will be included in the imprint
results.  Where an imprinted entity on the target/tool has arisen from
imprint completion, the matched entity in the tool/target results list
will be PK_ENTITY_null.
Vertices are returned only where they are isolated points
of contact between the target body and tool faces.

The target and tool faces can each belong to either a solid or sheet
body although solid bodies are not supported for all combinations of imprint
completion, please see documentation of imprint completion options for details.

See Imprinting for more information.


Imprint Options

The option structure passed to this function provides the application
programmer with the following controls:

 o Restrict imprint to the target body only
 o Imprint boundaries of overlapping areas
 o Extend face list on tool faces
 o Complete partial imprints on faces
 o Force imprinted edge direction to be consistent

Refer to the PK_BODY_imprint_faces_o_t documentation for more detailed
information about the options within this structure.


Returned Arguments

Refer to the PK_imprint_r_t documentation for information
about the arrays returned in the 'results' structure.

The returned PK_TOPOL_track_r_t structure contains tracking records of type
PK_TOPOL_track_create_c which track the imprint topology to those topologies
on the original bodies that were responsible for creating the imprint.


Error Reporting

When an error occurs the function will, where possible, make extra
information related to the error available to the application via the
standard form of the error. This information will consist of either a
single or a group of topological or geometric entities.

This mechanism is identical to that of the PK boolean functions.
Refer to PK_BODY_boolean for a more detailed description of
the error reporting mechanism.