PK_FACE_instance_bodies_o_t   

struct PK_FACE_instance_bodies_o_s
    {
    int                   o_t_version;     --- version number
    PK_boolean_function_t function;        --- boolean operation
                                           --- (PK_boolean_unite_c)
    const PK_boolean_config_o_t
                         *configuration;   --- target and tool
                                           --- configuration (NULL)
    PK_imprint_face_list_t
                          extend_face_list;
                                           --- whether to use additional
                                           --- target/tool faces
                                           --- (PK_imprint_face_list_no_c)
    PK_instance_repair_fa_fa_t
                          repair_fa_fa;    --- prevent self intersections
                                           --- (PK_instance_repair_fa_fa_yes_c)
    PK_instance_merge_t   merge_imprinted; --- merge imprinted edges where
                                           --- possible
                                           --- (PK_instance_merge_new_c)
    PK_LOGICAL_t          allow_disjoint;  --- allow disjoint body
                                           --- (PK_LOGICAL_false)
    PK_boolean_check_fa_t check_fa;        --- face check options
                                           --- (PK_boolean_check_fa_yes_c)
    double                default_tol;     --- default tolerance
                                           --- (1.0E-5)
    double                max_tol;         --- max tolerance
                                           --- (0.0)
    PK_imprint_complete_t imprint_complete_targ;
                                           --- whether to complete
                                           --- imprint on target faces
                                           --- (PK_imprint_complete_no_c)
    PK_imprint_complete_t imprint_complete_tool;
                                           --- whether to complete
                                           --- imprint on tool faces
                                           --- (PK_imprint_complete_no_c)
    PK_boolean_material_t target_material_side;
                                           --- material side of target
                                           --- (PK_boolean_material_default_c)
    PK_boolean_material_t tool_material_side;
                                           --- material side of tool
                                           --- (PK_boolean_material_default_c)
    PK_LOGICAL_t          limit_target_faces;
                                           --- the boundary of the target face
                                           --- set limits the faces to be
                                           --- deleted when trimming
                                           --- (PK_LOGICAL_false)
    PK_instance_track_type_t
                          tracking_type;   --- level of tracking reporting
                                           --- for operations.
                                           ---(PK_instance_track_type_both_c)
    PK_instance_track_edges_t
                          track_edges;     --- level of edge tracking
                                           --- reported when tracking
                                           --- requested.
                                           ---(PK_instance_track_edges_new_c)

    PK_boolean_prefer_t   resulting_body_type;
                                           --- the preferred type of the
                                           --- resulting body
                                           ---(PK_boolean_prefer_original_c)
    PK_boolean_update_t   update;          --- update switch
                                           ---(PK_boolean_update_default_c)
    };
typedef struct PK_FACE_instance_bodies_o_s PK_FACE_instance_bodies_o_t;




This option structure is supplied to PK_FACE_instance_bodies.

Used in:

PK_FACE_instance_bodies


See also here for more information.

Description of fields:



'function'               Indicates whether an intersect, unite or subtract
                         operation is to be performed, permitted values
                         are:

                         PK_boolean_intersect_c
                         PK_boolean_subtract_c
                         PK_boolean_unite_c



'configuration'          Describes the configuration of target and tool
                         bodies.
                         See Optimizing boolean operations for more
                         information.


'extend_face_list'       PK_FACE_instance_bodies receives a subset of the
                         faces of the target body.  If the imprinting stage
                         of the boolean results in incomplete loops of
                         imprinted edges, this option controls whether the
                         face list of the target may be extended so that
                         additional faces will be intersected with the tool.

                         Since PK_FACE_instance_bodies always uses all faces
                         of the supplied tool bodies, additional faces can be
                         added on the target only.  Consequently the
                         behaviour with PK_imprint_face_list_tool_c is
                         identical to PK_imprint_face_list_no_c, and
                         PK_imprint_face_list_both_c is identical to
                         PK_imprint_face_list_target_c.
                         See here for more information.


'repair_fa_fa'           The value of this determines if face-face checking
                         and repair is performed during the operation,
                         permitted values are:

                         PK_instance_repair_fa_fa_no_c
                         PK_instance_repair_fa_fa_yes_c (default)

                         If this field is set to
                         PK_instance_repair_fa_fa_yes_c tool faces
                         which will survive the operation are compared
                         against all faces of the target and additional
                         imprints and booleans performed if necessary.


'merge_imprinted'        If set to PK_instance_merge_new_c, merges all new
                         mergeable imprinted edges arising from the boolean
                         operation.


'allow_disjoint'         If this option is set to PK_LOGICAL_true, the result
                         of the boolean will be a single body which may contain
                         disjoint manifold components.


'check_fa'               The value of this determines if face checking is
                         performed during the operation, permitted values
                         are :

                         PK_boolean_check_fa_no_c
                         PK_boolean_check_fa_yes_c

                         The default is set to 'PK_boolean_check_fa_yes_c'
                         and it is strongly advised not to change this value.
                         If the face checking is switched off, the boolean
                         operation may produce an invalid body without
                         raising an error.


'default_tol'            The default tolerance to which the instancing
                         operation, if it has to, may approximate entities
                         or assume that entities are coincident. This value
                         should be set to a value that is related to the
                         tolerance to which the application is creating
                         approximations.
                         If this field is set to zero (0.0), it is assumed
                         that the decision to set tolerances on entities is
                         being left to the modeller.


'max_tol'                This value specifies the maximum tolerance which may
                         be applied to any entity involved in the instancing
                         operation.
                         If this field is set to zero (0.0), the default, then
                         it assumed that no upper limit has been set on the
                         tolerance of any entity.
                         If the field is not set to zero (0.0), then it must be
                         set to a value that is greater than the value of the
                         'default_tol' field.


'imprint_complete_targ'  This option controls whether to complete the imprint
                         on the target faces so that the end vertices of the
                         imprint lie on any edge or laminar edge of the target
                         faces.  This imprint completion is carried out during
                         the imprinting phase of the boolean algorithm
                         (described in PK_BODY_boolean_2).

                         If this is set to PK_imprint_complete_no_c (the
                         default) the imprint is not completed.  Otherwise 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

                         Both the target and tool bodies must be manifold sheet
                         bodies.

                         A complete imprint that self-intersects will be
                         trimmed at the point of self-intersection.

                         Imprint completion on the target faces will only
                         occur from laminar edges of the tool.

                         Restriction: The orientation of the plane is currently
                         restricted to that which would be produced by
                         PK_imprint_extend_tangent_c.

                         See here for more information.


'imprint_complete_tool'  This option controls whether to complete the imprint
                         on the tool faces in a manner similar to that
                         described for 'imprint_complete_targ' above.

                         See here for more information.


'target_material_side'   This option allows the material side of the target
                         faces to be specified when determining which faces
                         survive the given instancing Boolean.

                         PK_boolean_material_inside_c:
                             All faces are treated as if their face normals
                             point away from solid material.
                             This allows a sheet body to be treated locally as
                             the boundary of a solid; treatment of faces from
                             solid bodies will be unchanged.

                         PK_boolean_material_none_c:
                             All faces are treated as if they have no solid
                             material on either side.
                             This allows a solid body to be treated locally as
                             a sheet; treatment of faces from sheet bodies will
                             be unchanged.

                         PK_boolean_material_outside_c:
                             All faces are treated as if their face normals
                             point into solid material.
                             This allows a sheet body to be treated locally as
                             the boundary of a solid; solid bodies will be
                             negated.

                         PK_boolean_material_default_c (the default):
                             Faces from solid bodies have normals pointing away
                             from solid material; faces from sheet bodies will
                             have material on neither side.

                         This option is only supported if general topology is
                         disabled.

                         See here for more information.


'tool_material_side'     This option allows the material side of the tool
                         faces to be specified when determining which faces
                         survive the given Boolean.

                         PK_boolean_material_inside_c:
                             All faces are treated as if their face normals
                             point away from solid material.
                             This allows a sheet body to be treated locally as
                             the boundary of a solid; treatment of faces from
                             solid bodies will be unchanged.

                         PK_boolean_material_none_c:
                             All faces are treated as if they have no solid
                             material on either side.
                             This allows a solid body to be treated locally as
                             a sheet; treatment of faces from sheet bodies will
                             be unchanged.

                         PK_boolean_material_outside_c:
                             All faces are treated as if their face normals
                             point into solid material.
                             This allows a sheet body to be treated locally as
                             the boundary of a solid; solid bodies will be
                             negated.

                         PK_boolean_material_default_c (the default):
                             Faces from solid bodies have normals pointing away
                             from solid material; faces from sheet bodies will
                             have material on neither side.

                         This option is only supported if general topology is
                         disabled.

                         See here for more information.


'limit_target_faces'     This option limits the faces to be deleted. It
                         is particularly useful when the operation is a
                         trim of the target.

                         PK_LOGICAL_true:
                             The boundary of the target face set is used to
                             complete the imprint and limits the face set
                             to be deleted. It should be noted that the
                             target face set will include faces added by any
                             requested face list extension during the initial
                             phase of imprinting.

                         PK_LOGICAL_false (the default):
                             No limits are imposed upon the region to be
                             deleted.

                         This option can only be used with a limited
                         set of operations.

                         For more information, see here.


'tracking_type'          This option allows the user to specify the level
                         of information they wish tracking records to
                         contain. The levels of tracking available are:

                         PK_instance_track_type_none_c:
                             No tracking information will be returned.

                         PK_instance_track_type_inst_c:
                             Tracking information will be returned in the
                             return structure 'instance_tracking'.
                             'instance_tracking' will contain
                             tracking regarding the new topologies
                             associated with each instance.

                         PK_instance_track_type_topol_c:
                             Tracking information will be returned in the
                             return structure 'tracking'. The structure
                             'tracking' will contain topological tracking
                             information.

                         PK_instance_track_type_both_c:
                             (Default).
                             Tracking information will be returned in the
                             return structures 'tracking' and
                             'instance_tracking'. The structure 'tracking'
                             will contain topological tracking information
                             and 'instance_tracking' will contain
                             tracking regarding the new topologies
                             associated with each instance.

                             See the documentation for
                             PK_FACE_instance_bodies for more details.



'track_edges'            This option specifies the level of edge
                         tracking information returned in the
                         'tracking' records.

                         The levels of tracking available are:

                         PK_instance_track_edges_no_c:
                             No edge tracking information will be
                             returned.

                         PK_instance_track_edges_laminar_c:
                             Tracking information will be returned
                             associated with laminar edges.

                         PK_instance_track_edges_new_c:
                             (Default).
                             Tracking information will be returned
                             associated with all new edges.



'resulting_body_type'    This option allows the preferred type of the
                         resulting body to be indicated.

                         PK_boolean_prefer_solid_c:
                             If possible the results of the Boolean operation
                             will be solid bodies.  The result will only be
                             made solid if all shells in the result are closed.

                         PK_boolean_prefer_sheet_c:
                             If possible the results of the Boolean operation
                             will be sheet bodies.  The result may contain
                             several components, if 'allow_disjoint' is set to
                             PK_LOGICAL_false then the components will be
                             split out into separate bodies.

                         PK_boolean_prefer_original_c (the default):
                             The resulting bodies will be of the same type as
                             the target body.  If it is not possible to return
                             a body of the desired type an appropriate error
                             will be returned.

                         See here for more information.



'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)