PK_BODY_imprint_faces_o_t   

struct PK_BODY_imprint_faces_o_s
    {
    int           o_t_version;           --- version number of option structure
    PK_LOGICAL_t  imprint_tool;          --- whether to imprint on tool
                                         --- (PK_LOGICAL_true)
    PK_LOGICAL_t  imprint_overlapping;   --- whether to imprint boundaries of
                                         --- overlapping areas
                                         --- (PK_LOGICAL_false)
    PK_imprint_face_list_t
                  extend_face_list;      --- whether to extend list of faces
                                         --- for imprinting
                                         --- (PK_imprint_face_list_no_c)
    const PK_boolean_match_o_t
                 *matched_region;        --- regions to match (NULL)
    PK_imprint_complete_t
                  imprint_complete_targ; --- whether to complete imprint on
                                         --- target faces
                                         --- (PK_imprint_complete_no_c)
    PK_imprint_extend_t
                  imprint_extend_targ;   --- direction in which to complete
                                         --- imprint on target faces
                                         --- (PK_imprint_extend_tangent_c)
    PK_imprint_complete_t
                  imprint_complete_tool; --- whether to complete imprint on
                                         --- tool faces
                                         --- (PK_imprint_complete_no_c)
    PK_imprint_extend_t
                  imprint_extend_tool;   --- direction in which to complete
                                         --- imprint on tool faces
                                         --- (PK_imprint_extend_tangent_c)
    PK_imprint_dir_t
                  imprint_dir;           --- whether imprinted edges should
                                         --- have consistent direction
                                         --- (PK_imprint_dir_no_check_c)
    PK_boolean_update_t
                  update;                --- update switch
                                         --- (PK_boolean_update_default_c)

    PK_LOGICAL_t  have_tolerance;        --- whether a tolerance is provided
                                         --- (PK_LOGICAL_false) [NF]

    double        tolerance;             --- tolerance to which the imprint
                                         --- operation may assume that entities
                                         --- are coincident (0.0) [NF]
    };

typedef struct PK_BODY_imprint_faces_o_s PK_BODY_imprint_faces_o_t;



This option structure is supplied to the body imprinting operation.


Specific Errors:
    PK_ERROR_unsupported_operation    target or tool faces do not belong to
                                      a sheet body when this is needed in order
                                      to support imprint completion (MILD)
    PK_ERROR_bad_tolerance            proposed tolerance is too small (MILD)

Used in:

PK_BODY_imprint_faces_2



Description of fields:

'imprint_tool'           Imprint edges and vertices on the tool faces.
                         If this flag is set to PK_LOGICAL_false,
                         edges and vertices are imprinted on the
                         target only. The arrays of edges and
                         vertices on the tool, returned in the results
                         structure, will be set to NULL.

'imprint_overlapping'    Imprint the boundaries of overlapping areas.
                         This is only necessary when the target is
                         a sheet body. If a face from the target and
                         a face from the tool are on the same surface,
                         the boundaries of the overlapping area will
                         be imprinted. If this flag is not set,
                         faces on a common surface will not imprint
                         on each other.

'extend_face_list'       When imprinting results in incomplete loops of
                         imprinted edges, the face list of the tool may
                         be extended so that additional faces will be
                         intersected with the target.
                         See here for more information.

'matched_region'         Describes matched regions between the target and tool.
                         See PK_boolean_match_o_t and here for more
                         information.

'imprint_complete_targ'  Complete the imprint on the target faces so
                         that the end vertices of the imprint lie on
                         any edge or any laminar edge of the target
                         faces. The incomplete imprint is completed by
                         intersecting the target faces with a plane
                         orthogonal to the target at the end vertices
                         of the incomplete imprint. Depending on the
                         value of this option, the imprint will be
                         completed along the direction of this plane
                         until it either:
                         o meets any edge belonging to the target faces, or
                         o meets any laminar edge belonging to the
                           target faces.

                         If general topology is not enabled in the session,
                         the tool body must be a sheet body. The target body
                         must also be a sheet body if completion is to a
                         laminar edge, otherwise a solid body is also allowed.
                         If general topology is enabled, the target and tool
                         bodies may be of any type, however imprint completion
                         can still only begin from laminar edges.

                         A completed imprint that self-intersects will be
                         trimmed at the point of self-intersection.
                         Imprint completion on the target will only occur
                         from laminar edges of the tool.
                         See here for more
                         information.

'imprint_extend_targ'    Choose the orientation of the plane when
                         completing an imprint with
                         'imprint_complete_targ'. The plane may lie
                         tangential or orthogonal to the end of the
                         imprint. The orthogonal direction may lie
                         along the forward or backward direction of the
                         tool face normal at that point.
                         See here for more
                         information.

'imprint_complete_tool'  Complete the imprint on the tool faces. The
                         incomplete imprint will be completed on the
                         tool faces in a manner similar to that described
                         for 'imprint_complete_targ' above.  However unlike
                         'imprint_complete_targ' it is not possible for the
                         tool faces to belong to solid bodies.
                         'imprint_tool' must be set to PK_LOGICAL_true
                         when completing an imprint on the tool.
                         See here for more
                         information.

'imprint_extend_tool'    Choose the orientation of the plane when
                         completing an imprint with
                         'imprint_complete_tool'. This option behaves
                         in a similar manner to that described in
                         'imprint_extend_targ'.
                         See here for more
                         information.

'imprint_dir'            If enabled, the directions of imprinted edges are
                         made consistent where possible. Parasolid's definition
                         of consistency is described here. Edges for
                         which a consistent direction cannot be determined will
                         be reported with a PK_REPORT_1_imp_dir_undef_c record.

'update'                 The default value allows applications to take
                         advantage of the latest enhancements to the boolean
                         algorithm. To maintain consistency when rebuilding
                         models created in a previous version of Parasolid, a
                         non-default value should be specified.
                         (PK_boolean_update_default_c)

'have_tolerance'         Indicates whether an operation tolerance is being
                         passed in through the 'tolerance' parameter.

'tolerance'              The tolerance to which the imprint operation may
                         assume that entities are coincident. This field should
                         be set to a value that is related to the tolerance to
                         which the application is creating approximations.