IMPRNT   

Equivalent PK functions: PK_BODY_imprint_body
PK_BODY_imprint_faces
PK_FACE_imprint_faces

IMPRNT ( target, tool, nopts, opts, targed, tooled, nedges, targvx, toolvx, 
============================================================================
         nverts, ifail )
         ===============

  Imprint bodies or lists of faces

Receives:
  KI_tag_list_entity       *target         --- target body or list of faces
  KI_tag_list_entity       *tool           --- tool body or list of faces
 <KI_int_nitems>           *nopts          --- number of imprinting options
  KI_cod_imop               opts[nopts]    --- option codes

Returns:
 <KI_tag_list_edge>        *targed         --- corresponding edges on target
 <KI_tag_list_edge>        *tooled         --- corresponding edges on tool
 <KI_int_nitems>           *nedges         --- number of edges
 <KI_tag_list_vertex>      *targvx         --- corresponding vertices on target
 <KI_tag_list_vertex>      *toolvx         --- corresponding vertices on tool
 <KI_int_nitems>           *nverts         --- number of vertices
  KI_cod_error             *ifail          --- failure code

Specific errors:
  KI_cant_do_imprint        imprint failure
  KI_tool_faces_many_bodies tool faces are from more than one body
  KI_targ_faces_many_bodies target faces are from more than one body
  KI_wire_body              target or tool is wire body or face of wire body
  KI_missing_geom           target or tool has incomplete geometry
  KI_same_tool_and_target   target and tool are from the same body
  KI_unsuitable_entity      mixed body

Description:
  Takes a target entity and tool entity and adds edges and vertices where the
  faces intersect (except where they already exist).  The corresponding
  imprinted (or original) edges and vertices are returned in matching lists.
  Vertices are returned only where they are isolated points of contact between
  a face from the target and a face from the tool.

  The target and tool each can be a sheet or solid body or a list of faces from
  a sheet or solid body.

  The options for IMPRNT are:

      IMOPNT: Do not imprint on tool.  Edges and vertices are imprinted on the
              target only and the lists of edges and vertices on the tool will
              be returned as null.

      IMOPOA: Imprint boundaries of overlapping areas.  This is necessary only
              when the target and tool are faces or sheet bodies.  If a face
              from the target and a face from the tool have identical surfaces,
              the boundaries of the overlapping area will be imprinted.  If this
              option is not selected, faces with identical surfaces will not
              imprint on each other.

      IMOPEF: Extend face list on target.  If the imprinting results in
              incomplete loops of imprinted edges, additional faces in the
              target will be intersected with the tool and imprinted in an
              attempt to form complete loops.  This will have no effect when
              the whole target body is supplied.  No additional faces in the
              tool will be used.

  This function does not support general bodies and faces belonging to
  general bodies.