PK_BODY_taper_o_t   

struct PK_BODY_taper_o_s
    {
    int                      o_t_version;   --- version number of option
                                            --- structure
    double                   tolerance;     --- max. tol. for applying
                                            --- surfaces (1.0e-5)
    PK_LOGICAL_t             miter_at_parting;
                                            --- whether to miter halves
                                            --- at the parting sheet
                                            --- (PK_LOGICAL_true)
    PK_LOGICAL_t             merge_face;    --- whether tapered faces
                                            --- are to be merged with
                                            --- their neighbours
                                            --- (PK_LOGICAL_true)
    PK_check_fa_fa_t         check_fa_fa;   --- check for face-face
                                            --- inconsistencies
                                            --- (PK_check_fa_fa_yes_c)
    PK_taper_method_t        default_method;--- default tapering method
                                            --- (PK_taper_method_isocline_c)
    int                      n_methods;     --- number of non-default
                                            --- tapering methods (0)
    const PK_taper_method_t *methods;       --- non-default tapering
                                            --- methods (NULL)
    const PK_ENTITY_t       *method_refs;   --- reference entities to use
                                            --- non-default tapering
                                            --- method (NULL)
    PK_taper_corner_type_t   corner_type;   --- how to fill the gap at the
                                            --- corner of two adjacent faces
                                            --- (PK_taper_corner_extend_c)
    int                      n_parting_edges;
                                            --- number of parting edges (0)
    const PK_ENTITY_t       *parting_edges; --- all the edges lying on the
                                            --- parting body (NULL)
    PK_taper_miter_type_t    miter_type;    --- how to miter the halves
                                            --- (PK_taper_miter_on_ref_c)
    int                      n_non_miter_edges;
                                            --- number of non-miter
                                            --- reference edges (0)
    const PK_EDGE_t         *non_miter_edges;
                                            --- non-miter reference edges
                                            --- (NULL)
    int                      n_replace_edges;
                                            --- number of replace edges (0)
    const PK_EDGE_t         *replace_edges; --- edges to be replaced to allow
                                            --- adjacent faces to meet the
                                            --- nearby tapered faces (NULL)
    PK_taper_undercut_t      undercut;      --- how to cope with undercut
                                            --- (PK_taper_undercut_ref_no_c)
    int                      n_upper_faces; --- number of upper faces (0)
    const PK_FACE_t         *upper_faces;   --- faces to be tapered from
                                            --- their upper bounds using
                                            --- surfaces created from their
                                            --- highest point (NULL)
    int                      n_lower_faces; --- number of lower faces (0)
    const PK_FACE_t         *lower_faces;   --- faces to be tapered from
                                            --- their lower bounds using
                                            --- surfaces created from their
                                            --- lowest point (NULL)
    PK_taper_concave_type_t  concave_type;  --- how to replace the concave
                                            --- corners in mitering
                                            --- (PK_taper_concave_none_c)
    double                   concave_radius;--- radius of the cylinder for
                                            --- making imprints to replace
                                            --- the imprints to miter to
                                            --- at a concave corner (0.0)
    PK_taper_keep_material_t keep_material; --- how to process regions
                                            --- of material which protrude
                                            --- from the tapered faces
                                            ---(PK_taper_keep_material_no_c)
    PK_local_ops_update_t    update;        --- update flag
                                            --- (PK_local_ops_update_default_c)
    };
typedef struct PK_BODY_taper_o_s PK_BODY_taper_o_t;


This structure contains optional controls for PK_BODY_taper.

Used in:

PK_BODY_taper



Description of fields:

'tolerance'              Maximum tolerance for the operation. The default
                         value is 1.0e-5.

'miter_at_parting'       If this flag is set to PK_LOGICAL_true, the
                         resulting body will be mitered. The default
                         value is PK_LOGICAL_true.
                         See here for more information.

'merge_face'             If this flag is set to PK_LOGICAL_true, the
                         new faces produced by the operation will be
                         merged with their neighbouring faces, if it is
                         feasible. The default value is PK_LOGICAL_true.

'check_fa_fa'            Check for face-face inconsistencies.
                         Values can be :
                             PK_check_fa_fa_no_c
                             PK_check_fa_fa_yes_c
                         The default value is PK_check_fa_fa_yes_c.

'default_method'         Tapering method to construct new surfaces.
                         Allowed values are:
                             PK_taper_method_isocline_c : isocline method
                             PK_taper_method_curve_c    : curve method
                             PK_taper_method_surface_c  : surface method

                         The default is PK_taper_method_isocline_c.
                         See here for more information.

'n_methods'              Number of elements in 'methods' and 'method_refs'
                         arrays. Default is 0.

'methods'                Array of 'n_methods' tapering methods to be
                         used instead of 'default_method' corresponding
                         to reference entities in 'method_refs'. Default is
                         NULL. See here for more information.

'method_refs'            Array of reference entities to use non-default
                         tapering method specified in corresponding
                         entries of 'methods'. Only entities given as
                         references to PK_BODY_taper are allowed in this
                         array.

'corner_type'            How to fill the gap at the corner of two taper faces
                         built on adjacent edges. This can be one of:
                            PK_taper_corner_extend_c
                            PK_taper_corner_plane_c

                         The default is PK_taper_corner_extend_c.
                         See here for more information.

'n_parting_edges'        Number of parting edges. The default is 0.

'parting_edges'          Either NULL or array of all the edges (of the body
                         to be tapered) that lie on the parting body.
                         The edges in the list should be created by
                         intersecting the body and the parting body.
                         The default is NULL.
                         See here for more information.

'miter_type'             How to modify the taper faces by mitering. This can
                         be one of:
                            PK_taper_miter_on_ref_c
                            PK_taper_miter_to_face_c
                            PK_taper_miter_at_open_c

                         The default is PK_taper_miter_on_ref_c.
                         See here for more information.

'n_non_miter_edges'      Number of non-miter reference edges. The default is 0.

'non_miter_edges'        Array of reference edges on which the taper faces are
                         constructed as if miter_at_parting had been set to
                         PK_LOGICAL_false regardless of its real value.
                         See here for more information.

'n_replace_edges'        Number of replace edges. The default is 0.

'replace_edges'          Edges to be replaced to allow adjacent faces to meet
                         the nearby tapered faces. The default is NULL.
                         See here for more information.

'undercut'               How to cope with undercut. This can be one of:
                            PK_taper_undercut_ref_no_c
                            PK_taper_undercut_ref_yes_c

                         The default is PK_taper_undercut_ref_no_c.
                         See here for more information.

'n_upper_faces'          Number of upper faces. The default is 0.

'upper_faces'            Array of faces above the parting body where the taper
                         faces are constructed from their upper bounds using
                         surfaces created from their highest point with respect
                         to the draw direction. The default is NULL.
                         See here for more information.

'n_lower_faces'          Number of lower faces. The default is 0.

'lower_faces'            Array of faces below the parting body where the taper
                         faces are constructed from their lower bounds using
                         surfaces created from their lowest point with respect
                         to the draw direction. The default is NULL.
                         See here for more information.

'concave_type'           How to replace the imprints to miter to at the concave
                         corners where the imprints of above taper faces cross
                         the imprints of below taper faces on the parting body.
                         The allowed values are:
                            PK_taper_concave_none_c   : perform no smoothing
                            PK_taper_concave_radius_c : see concave_radius
                            PK_taper_concave_plane_c  : see datatype definition
                            PK_taper_concave_mix_c    : see datatype definition
                         The default is PK_taper_concave_none_c;
                         See here for more information.

'concave_radius'         Radius of the cylinder that intersects the parting
                         body to create imprints to replace the imprints at a
                         concave corner. The cylinder takes the draw direction
                         as its axis and touches one imprint of each side at
                         the concave corner. The default is 0.0.

'keep_material'          How to process regions of material which lie between
                         the references and the parting body which protrude
                         from the taper faces.  This can be one of:
                            PK_taper_keep_material_no_c
                            PK_taper_keep_material_yes_c

                         The default is PK_taper_keep_material_no_c.

'update'                 The default value allows applications to take
                         advantage of the latest enhancements of the generic
                         algorithms supporting Parasolid local operations
                         functions. To maintain consistency when rebuilding
                         models created in a previous version of Parasolid,
                         a non-default value should be specified.

                         The default value is PK_local_ops_update_default_c