PK_BODY_sew_bodies_o_t   

struct PK_BODY_sew_bodies_o_s
    {
    int                   o_t_version;       --- version number of option
                                             --- structure
    PK_LOGICAL_t          set_global_tolerance;
                                             --- DEPRECATED
                                             --- (PK_LOGICAL_false)
    PK_LOGICAL_t          allow_disjoint_result;
                                             --- whether disjoint sheets can be
                                             --- produced
                                             --- (PK_LOGICAL_false)
    PK_LOGICAL_t          treat_as_manifold; --- assume result is manifold
                                             --- (PK_LOGICAL_true)
    PK_BODY_sewing_type_t prefered_body_type;--- prefered body type of result
                                             --- (PK_BODY_sewing_any_c)
    PK_BODY_sewing_removal_t
                          duplicate_removal; --- effort placed in removing
                                             --- duplications
                                             --- (PK_BODY_sewing_remove_none_c)
                                             --- [NF]
    int                   number_of_iterations;
                                             --- number of gap width bound
                                             --- values to iterate over
                                             --- (1) [NF]
    double               *iteration_bounds;  --- array of gap width bounds
                                             --- (NULL)
    PK_BODY_sewing_assy_t assembly_sewing;   --- improve results when sewing
                                             --- faces from an assembly
                                             --- (PK_BODY_sewing_assy_no_c)
    PK_BODY_sewing_gen_t  general_sewing;    --- whether to sew general input
                                             --- bodies together
                                             --- (PK_BODY_sewing_gen_no_c)
    PK_LOOP_sew_up_t      sew_up_inner_loops;--- whether to sew inner loops
                                             --- (PK_LOOP_sew_up_loop_c)
    PK_EDGE_reduce_tol_t  reduce_edge_tolerance;
                                             --- control the tolerance set on
                                             --- sewn edges
                                             --- (PK_EDGE_reduce_tol_no_c)
                                             --- [NF]
    };

typedef struct PK_BODY_sew_bodies_o_s PK_BODY_sew_bodies_o_t;



Holds optional controls on the execution of sewing.


Specific Errors:
    PK_ERROR_bad_iteration_count    The requested number of iterations was
                                    less than one. (MILD)

    PK_ERROR_bad_gap_bound          A bad gap width bound was supplied in
                                    the option field 'iteration_bounds' when
                                    requesting sewing to make multiple sewing
                                    attempts. (MILD)

    PK_ERROR_contradictory_request  Bad combination of options. (MILD)


Used in:

PK_BODY_sew_bodies


The option structure defines options applicable to the sewing together of
sheet bodies. See here for more information.

The structure has the following user fields.

    allow_disjoint_result:  If true sewing can return several disjoint sheets
                            produced by sewing. When this is false the only
                            sheet returned is the one produced by sewing
                            sheets onto the first one provided in the list
                            of received bodies.
                            See Getting the best from sheet sewing
                            for more information.

    treat_as_manifold:      Assume the result is manifold. If have more than
                            two edges paired, assume the closest pairing is
                            the intended one.

    prefered_body_type:     An enum indicating the prefered type of the
                            result.

    duplicate_removal:      An enum indicating effort to be placed in
                            removing duplications in the input sheets.

    number_of_iterations:   This specifies the number of gap width bound
                            values to iterate over while sewing. This must
                            exceed 0.

                            Where the 'number_of_iterations' is 1, the gap
                            width bound specified in the 'gap_width_bound'
                            argument is used for a single sewing attempt.

                            Where the value of this option field exceeds 1,
                            sewing will make the specified number of attempts
                            to complete the sewing operation.

                            If iteration is requested and the array held in
                            'iteration_bounds' is not NULL, an attempt to sew
                            the bodies will be carried out at each gap width
                            bound specified in the array ( assumed to hold
                            'number_of_iteration' values ). If
                            'iteration_bounds' are supplied, the value set for
                            the 'gap_width_bound' argument is ignored. The gap
                            width bounds will be used in the order in which
                            they appear in the array. It is expected that the
                            best results will occur when the values are in
                            ascending order.

                            Iteration may be requested, with the value of
                            'iteration_bounds' set to NULL. In this case
                            Parasolid will generate 'number_of_iterations'
                            ascending values terminating in 'gap_width_bound'.
                            The range of values chosen will not exceed two
                            orders of magnitude, other than that the chosen
                            values are not specified.

    iteration_bounds:       If the number of iterations exceeds 1 this
                            array will be used as the source of gap width
                            bounds for each iteration unless it is set to NULL.
                            In the latter case Parasolid will generate a
                            range of gap width bounds based on the value of
                            the 'gap_width_bound' passed to PK_BODY_sew_bodies.

                            Where the number of iterations is one, this option
                            field is ignored.

    assembly_sewing:        An enum used to indicate that in cases where
                            more than two edges are matched as candidates for
                            sewing, it is appropriate to view the multiple
                            matches as arising from close proximity of piece
                            parts in an assembly.

                            When using this option it is assumed the input
                            sheets originate from a valid assembly and,
                            moreover, that their orientations also reflect
                            this.

                            This enum is used to indicate what kind of
                            reasoning about assemblies is to be employed when
                            selecting the most appropriate match out of
                            several alternatives.

                            Enabling this option requires 'treat_as_manifold'
                            being set to PK_LOGICAL_true and
                            'duplicate_removal' being set to
                            PK_BODY_sewing_remove_none_c.

    general_sewing:         An enum that controls the sewing when general
                            bodies are present in the input.

                            Enabling this option requires 'assembly_sewing'
                            to be set to PK_BODY_sewing_assy_no_c.

    sew_up_inner_loops:     Whether to allow sewing within inner loops.

                            Note that this option has no effect on facet
                            geometry.

    reduce_edge_tolerance:  Sewing uses multiple factors to determine the
                            tolerance of an edge and the gap between the
                            original edges is just one of these bounds. In
                            order to limit the size of the tolerance used,
                            this option, if set to PK_EDGE_reduce_tol_yes_c,
                            will perform extra checks and attempt to reduce
                            the tolerance where possible. If tolerance
                            reduction is not possible, then a report will be
                            returned in the Parasolid report stream containing
                            a record of type PK_REPORT_record_1_t with status
                            PK_REPORT_1_ed_large_tol_c listing the original
                            edges.