PK_FACE_change_o_t   

struct PK_FACE_change_o_s
    {
    int                       o_t_version;
                                          --- version number of option
                                          --- structure
    PK_LOGICAL_t              merge_face;
                                          --- whether changed faces are to
                                          --- be merged with their
                                          --- neighbours, if feasible
                                          --- (PK_LOGICAL_true)
    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_change_edge_geom_data_t
                              edge_geom_data;
                                          --- data used to control the geometry
                                          --- of a specified set of edges [PF]
    PK_replace_edge_data_t    edge_data;  --- replace data for edges [PF]
    PK_replace_vertex_data_t  vertex_data;--- replace data for vertices
    PK_replace_help_points_t  edge_help;  --- edge help points
    PK_replace_help_points_t  vertex_help;--- vertex help points
    PK_replace_update_t       replace_update;
                                          --- replace update flag
                                          --- (PK_replace_update_default_c)
    PK_local_ops_update_t     update;     --- update flag
                                          --- (PK_local_ops_update_default_c)
    PK_FACE_prefer_adj_t      adjacency;  --- specifies how to control the
                                          --- interaction between change faces
                                          --- and adjacent faces
                                          --- (PK_FACE_prefer_adj_keep_c)
    PK_FACE_grow_t            grow;       --- controls which faces to grow when
                                          --- repairing clashes [PF]
                                          --- (PK_FACE_grow_update_c)
    PK_FACE_grow_cb_f_t       grow_cb;    --- user callback function for
                                          --- control of faces to grow when
                                          --- repairing clashes
                                          --- ( NULL )
    PK_POINTER_t              grow_data;  --- user data for callback function
                                          --- ( NULL )
    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_repair_fa_fa_t         repair_fa_fa;
                                          --- repair face-face inconsistencies
                                          --- (PK_repair_fa_fa_no_c)
    PK_FACE_trim_cb_f_t       trim_cb;    --- user callback function for
                                          --- control of faces to trim when
                                          --- repairing clashes
                                          --- ( NULL )
    PK_POINTER_t              trim_data;  --- user data for callback function
                                          --- ( NULL )
    PK_LOGICAL_t              report_surf_extension;
                                          --- whether to report surfaces that
                                          --- have been extended during the
                                          --- operation
                                          --- ( PK_LOGICAL_false )
    PK_change_track_edges_t   track_edges;--- which edges to return tracking
                                          --- information from
                                          --- (PK_change_track_edges_no_c)
    PK_results_output_t       results_output;
                                          --- Specifies whether function should
                                          --- output its local status and
                                          --- associated error entities either
                                          --- as a return argument from the
                                          --- function or in report form to the
                                          --- Parasolid report.
                                          --- ( PK_result_output_return_c )
    PK_repair_fa_t            repair_fa;  --- whether invalid faces should be
                                          --- repaired.
                                          --- ( PK_repair_fa_yes_c )
    };
typedef struct PK_FACE_change_o_s PK_FACE_change_o_t;


This structure contains optional controls for PK_FACE_change.


Specific Errors:
    PK_ERROR_bad_combination       (MILD)    The 'n_edges' field 'edge_data'
                                             and the 'n_edge_arrays' field in
                                             'edge_geom_data' are both
                                             non-zero.
                                             The 'repair_fa_fa' value of
                                             PK_repair_fa_fa_yes_c
                                             is not allowed for general bodies

Used in:

PK_FACE_change


Description of fields:



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


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


'edge_geom_data'         Structure containing data used to control the geometry
                         created for a specified set of edges.  Refer to its
                         documentation for details.

                         Note that edges which will be mixed after the
                         operation must be supplied in 'edge_geom_data',
                         if any adjacent face which is being changed has
                         a bend operation.


'edge_data'              Structure containing the data relative to
                         the edge curve replacements. Refer to its
                         documentation for details.

                         Note: This option has been superseded by the
                               'edge_geom_data' option.


'vertex_data'            Structure containing the data relative to the
                         vertex point replacements. Refer to its documentation
                         for details.


'edge_help'              Structure containing the data relative to the
                         edge help points. Help points are used to
                         pick new edge curves. In case of multiple
                         solutions, the closest curve to the related help
                         point is chosen.


'vertex_help'            Structure containing the data relative to the
                         vertex help points. Help points are used to
                         pick new vertex positions. In case of multiple
                         solutions, the closest point to the related help
                         point is chosen.


'replace_update'         The default value allows applications to take
                         advantage of the latest enhancements of the replace
                         face algorithm.  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_replace_update_default_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


'adjacency'              This datatype controls the interaction between faces
                         that have local operations applied to them and their
                         originally adjacent faces.

                         PK_FACE_prefer_adj_keep_c
                           Prefer to maintain adjacency where possible,
                           extending faces if necessary.
                         PK_FACE_prefer_adj_change_c
                           Prefer to choose new adjacent faces where
                           appropriate.


'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 v19.1 and earlier models.



'grow_cb'                User callback function to allow control over
                         individual feature clashes.  If supplied, this
                         callback will be invoked for all values of 'grow'.

                         The default value is NULL.

'grow_data'              Pointer to the user data for 'grow_cb' function.
                         The default value is NULL.



'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



'repair_fa_fa'           Repair face-face inconsistencies identified by
                         the option 'check_fa_fa' when set to
                         PK_check_fa_fa_yes_c.
                         Permitted values are:
                              PK_repair_fa_fa_yes_c
                              PK_repair_fa_fa_no_c
                         The default value is PK_repair_fa_fa_no_c.


'trim_cb'                User callback function to allow control over
                         faces to trim during repairing of individual feature
                         clashes.

                         The default value is NULL.

'trim_data'              Pointer to the user data for 'trim_cb' function.
                         The default value is NULL.



'report_surf_extension'  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_3_c.
                         This record will have a status of
                         PK_REPORT_3_surf_extended_c and will contain
                         information on the surfaces that were extended
                         during the operation.  See the documentation for
                         PK_REPORT_3_t for further details.

                         Note that surface extensions will not be reported for
                         facet geometry.

                         The default value is PK_LOGICAL_false.



'track_edges'            Specifies the edges for which tracking information is
                         returned.
                         Possible values are:
                          PK_change_track_edges_no_c:
                             Do not track  edges.
                          PK_change_track_edges_laminar_c:
                             Track laminar edges.

                         The default value is PK_change_track_edges_no_c.



'results_output'         Specifies whether function should output its local
                         status and associated error entities either as a
                         return argument from the function or in report form
                         to the Parasolid report.

                         Possible values are:
                           PK_results_output_return_c:
                             The results are output as a return argument and
                             PK_ERROR_no_errors is returned by the function if
                             error results are returned.
                           PK_results_output_report_c:
                             The results are output in the Parasolid report and
                             PK_ERROR_failed_to_change is returned by the
                             function if error reports are generated.

                         The default value is PK_results_output_return_c.



'repair_fa'              Specifies whether function should repair/adjust
                         topology to make the part valid.

                         Permitted values are:

                         PK_repair_fa_yes_c:
                         Repairs will be performed to ensure faces are valid.
                         Inconsistencies with adjacent topology will be
                         resolved.

                         PK_repair_fa_local_c:
                         Repairs will be performed to ensure faces are locally
                         valid but there will be no attempt to fix face-face
                         inconsistencies. Returned bodies may not therefore be
                         valid when this option is set. If, as a result of
                         repairing a face, a face's orientation is reversed a
                         report of type PK_REPORT_1_t will be returned via the
                         Parasolid Report mechanism with a 'status' of
                         PK_REPORT_1_negated_c and 'new_items' containing the
                         negated faces. Currently this option only supports
                         operations on open sheet bodies.

                         The default value is PK_repair_fa_yes_c

Restriction: the 'n_edges' field 'edge_data' and the 'n_edge_arrays' field in
'edge_geom_data' may not both be non-zero.