PK_FACE_offset_o_t   

struct PK_FACE_offset_o_s
    {
    int                o_t_version;     --- version number of option structure
    PK_LOGICAL_t       allow_disjoint;  --- whether disjoint body can be
                                        --- produced
                                        --- (PK_LOGICAL_false)
    PK_check_fa_fa_t   check_fa_fa;     --- check for face-face inconsistencies
                                        --- (PK_check_fa_fa_yes_c)
    PK_offset_method_t offset_method;   --- offset method
                                        --- (PK_offset_method_sx_trim_c)
    PK_LOGICAL_t       report_sx;       --- whether to report faces that have
                                        --- been repaired to remove
                                        --- self-intersections
                                        --- (PK_LOGICAL_false)
    PK_fix_degens_t    fix_degens;      --- control on repairing surface
                                        --- degeneracies (PK_fix_degens_no_c)
    PK_LOGICAL_t       report_fix_degens;
                                        --- whether to report faces that have
                                        --- been modified by the 'fix_degens'
                                        --- option (PK_LOGICAL_false)
    PK_offset_step_t   offset_step;     --- whether to create a step offset
                                        --- (PK_offset_step_no_c)
    PK_LOGICAL_t       ortho_vx_split;  --- Split laminar vertices during
                                        --- offset orthogonal to surface
                                        --- geometry
                                        --- (PK_LOGICAL_false) [NF]
    PK_offset_track_del_t
                       track_del;       --- How to track deleted faces
                                        --- (PK_offset_track_del_no_c)
    PK_EDGE_offset_blend_t
                       blend_edges;     --- Offset edges as blend faces
                                        --- (PK_EDGE_offset_blend_no_c) [PF]
    double             blend_radius;    --- Radius of blend faces created if
                                        --- 'blend_edges' is a non-default
                                        --- value (0.0)
    PK_FACE_grow_t     grow;            --- controls which faces to grow
                                        --- when repairing clashes
                                        --- (PK_FACE_grow_update_c) [PF]
    PK_VERTEX_limit_t  vertex_limit;    --- How to constrain the maximum
                                        --- tolerance required by each vertex
                                        --- (PK_VERTEX_limit_no_c)
    PK_EDGE_limit_t    edge_limit;      --- How to constrain the maximum
                                        --- tolerance required by each edge
                                        --- (PK_EDGE_limit_no_c)
    PK_local_ops_update_t
                       update;          --- update flag
                                        --- (PK_local_ops_update_default_c)
    };
typedef struct PK_FACE_offset_o_s PK_FACE_offset_o_t;


This structure contains optional controls for PK_FACE_offset_2

Used in:

PK_FACE_offset_2



Description of fields:

'allow_disjoint'         If this flag is set to PK_LOGICAL_true, and if the
                         resulting body is split by the operation, all
                         the disjoint components of that body will be preserved
                         within a single body. If this flag is set to
                         PK_LOGICAL_false, only one disjoint part of the body
                         will be returned.
                         The default value is PK_LOGICAL_false.

'check_fa_fa'            Check for face-face inconsistencies. Permitted values
                         are:
                              PK_check_fa_fa_yes_c
                              PK_check_fa_fa_no_c
                         The default value is PK_check_fa_fa_yes_c.

'offset_method'          The method used for repairing self-intersections
                         caused by offsetting surfaces in the body.

                         Note that, for facet geometry, there is only one
                         method for repairing self-intersections, so this
                         option is ignored for facet geometry.

                         The default value is PK_offset_method_sx_trim_c.
                         See Removing self-intersections for more
                         information.

'report_sx'              If this is set to PK_LOGICAL_true, then a report will
                         be returned in the Parasolid report stream containing
                         a record of type PK_REPORT_record_type_1_c. This
                         record will have a status of
                         PK_REPORT_1_fa_sx_repair_c and will contain
                         information on faces that have been repaired in order
                         to remove self-intersections. The report will contain
                         faces that have been repaired by the method of
                         b-surface patching, as specified by setting
                         'offset_method' to a value other than
                         PK_offset_method_sx_trim_c. The faces will be returned
                         as followed:
                           o As 'old_items', a list of repaired faces that
                             existed on the original body.
                           o As 'new_items', a list of repaired faces that
                             exist on the resultant offset body.
                         If 'offset_method' is set to
                         PK_offset_method_sx_trim_c, then no report will be
                         returned.
                         The default value is PK_LOGICAL_false.

'fix_degens'             Controls when to repair degeneracies on surfaces. If
                         set to PK_fix_degens_offset_c, this option improves
                         the reliability when offsetting surfaces with
                         degeneracies, by modifying the surfaces in the regions
                         near the degeneracies. Note that PK_fix_degens_all_c
                         may not be used for this option.
                         The default value is PK_fix_degens_no_c.

'report_fix_degens'      If this is set to PK_LOGICAL_true, then information
                         will be returned in the Parasolid report stream about
                         surfaces that have been repaired in order to improve
                         the reliability of offsetting degenerate surfaces, as
                         specified by the option 'fix_degens'. Each record will
                         be of type PK_REPORT_record_type_1_c and will have a
                         status of PK_REPORT_1_fa_fix_degens_c. It will
                         contain:
                           o As 'old_items', a set of faces on the original
                             body, followed by the original surface that they
                             share, which was repaired. In the case where the
                             original surface was an offset surface, this is
                             followed by the underlying b-surface.
                           o As 'new_items', the corresponding repaired
                             b-surface, followed by the corresponding offset
                             surface, followed by the corresponding faces on
                             the resultant offset body that the surfaces belong
                             to.
                         If 'fix_degens' is set to PK_fix_degens_no_c, or no
                         surfaces are repaired, then no reports of this type
                         will be returned.
                         The default value is PK_LOGICAL_false.

'offset_step'            A "boundary edge" is an edge between a face which is
                         being offset and one which is not or between two faces
                         being offset different distances.

                         If this option is set to PK_offset_step_pierce_c then
                         side faces will be created along any smooth boundary
                         edges between a face which is being offset and one
                         which is not.

                         If this option is set to PK_offset_step_all_c then
                         side faces will be created along any smooth boundary
                         edges.

                         If this option is set to PK_offset_step_site_c
                         then side faces will be created for all smooth
                         boundary edges but side faces will not be created if
                         site faces can be grown instead. Site faces with facet
                         geometry will not be grown.

                         This option has no effect on the result if there are
                         no smooth boundary edges.

                         The default value is PK_offset_step_no_c.
                         See here for more information.

'ortho_vx_split'         Offsetting some laminar vertices will require the
                         vertex to split into two vertices.  The default
                         position of the new vertex is trimmed back along one
                         of its laminar edges. If 'ortho_vx_split' is
                         PK_LOGICAL_true, the new vertex will be trimmed
                         orthogonal to the face of the other laminar edge.

'track_del'              Offsetting a face can cause it to be entirely deleted
                         on the offset body. This option controls how such a
                         face is tracked in 'track_records' as an element of
                         PK_TOPOL_track_delete_c. Permitted values are:
                              PK_offset_track_del_no_c
                              PK_offset_track_del_sx_repair_c
                         The default value is PK_offset_track_del_no_c.

'blend_edges'            Offset edge with blending method. The default
                         value is: PK_EDGE_offset_blend_no_c indicating
                         that no blending is to be performed.

                         Offset edge blending effectively combines two
                         operations in one, the result being the same as that
                         obtained by first offsetting the edge and then
                         blending the offset edge.

                         Edges will be blended subject to the following
                         conditions.

                         o The edge lies between two non-rubber faces.
                         o The offsets applied to each face are equal in
                           magnitude and equal to the specified 'blend_radius'
                         o The faces are both offset to the same side of the
                           original sheet.
                         o The edge convexity matches the one indicated by
                           'blend_edges'.

                         For the purpose of this option 'convexity' refers to
                         the 'visual' convexity  of the original edge when
                         viewed from the side of the original faces on which
                         the offset faces lie. There is no direct dependence on
                         face normal direction but an indirect dependence in
                         that the 'side' of the original face on which an
                         offset face lies depends on face normal direction and
                         the sign of the offset distance applied to that face.

                         Note that the value PK_EDGE_offset_blend_convex_c
                         is not supported for mixed edges.

'blend_radius'           The blend radius to use when 'blend_edges' is a
                         non-default value.

'grow'                   While repairing clashing features, there are
                         situations in which it is necessary for faces to be
                         grown.  This option controls which feature's faces
                         will be grown.

                         Permitted values are:
                              PK_FACE_grow_update_c
                              PK_FACE_grow_auto_c
                              PK_FACE_grow_moving_c
                              PK_FACE_grow_fixed_c
                              PK_FACE_grow_no_c
                              PK_FACE_grow_fail_c

                         Note that the value PK_FACE_grow_update_c is not
                         supported for facet geometry.

                         The default value is PK_FACE_grow_update_c, which
                         should be used for updating v20.0 and earlier models.

'vertex_limit'           Specify how to constrain the maximum tolerance
                         required by each vertex so that undesired large vertex
                         tolerances can be avoided in the result.

                         The permitted values are:
                            PK_VERTEX_limit_no_c
                            PK_VERTEX_limit_report_c
                            PK_VERTEX_limit_yes_c

'edge_limit'             Specify how to constrain the maximum tolerance
                         required by each edge so that undesired large edge
                         tolerances can be avoided in the result.

                         The permitted values are:
                            PK_EDGE_limit_no_c
                            PK_EDGE_limit_report_c
                            PK_EDGE_limit_yes_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