PK_BODY_extend_o_t   

struct PK_BODY_extend_o_s
    {
    int                  o_t_version;   --- version number
    PK_LOGICAL_t         modify;        --- whether to modify the original
                                        --- faces or always create separate
                                        --- extension faces (PK_LOGICAL_false)
    PK_extension_shape_t extension_shape;
                                        --- the shape of the extension
                                        --- (PK_extension_shape_linear_c)[PF]
    PK_BODY_extension_t  extension_type;--- the type of the extension
                                        --- (PK_BODY_extension_distance_c)
    double               extension_distance;
                                        --- distance to extend by (0.0)
    PK_ENTITY_t          target;        --- target body or surface to define
                                        --- the extended sheet's new boundary
                                        --- (PK_ENTITY_null)
    PK_extension_limit_t target_limit;  --- defines how the target controls
                                        --- the amount of extension
                                        --- (PK_extension_limit_minimal_c)
    PK_extension_smoothness_t
                         preserve_internal_smoothness;
                                        --- the level of continuity to
                                        --- preserve across internal edges
                                        --- on the extension, where
                                        --- possible.
                                        --- (PK_extension_smoothness_g0_c)
    PK_extend_track_type_t
                         track_type;    --- how to track new laminar edges
                                        --- (PK_extend_track_type_basic_c)
    PK_extend_track_internal_t
                         track_internal;--- whether to track new internal edges
                                        --- (PK_extend_track_internal_no_c)
    PK_extend_create_t   extend_create; --- how extension topology is created
                                        --- (PK_extend_create_new_c)
    PK_extension_boundary_t
                         extension_boundary;
                                        --- whether to produce a simpler
                                        --- extension boundary
                                        --- (PK_extension_boundary_precise_c)
    PK_extend_side_data_t
                         extend_side_data;
                                        --- How to create side edges of
                                        --- extension faces at specific
                                        --- terminal vertices of the chain
                                        --- of edges.
    PK_extend_side_t     extend_side;   --- How to create side edges at any
                                        --- terminal vertices of the chain
                                        --- edges which don't appear in the
                                        --- field 'extend_side_data'
                                        --- (PK_extend_side_default_c)
    PK_local_ops_update_t
                         update;        --- update flag
                                        --- (PK_local_ops_update_default_c)

    PK_results_output_t  results_output;
                                        --- specifies whether function should
                                        --- output its local status and
                                        --- associated  entities  as a return
                                        --- argument from the function or in
                                        --- report form to the Parasolid
                                        --- report.
                                        --- ( PK_result_output_return_c )

    };
typedef struct PK_BODY_extend_o_s PK_BODY_extend_o_t;



This structure contains optional controls for PK_BODY_extend.

Used in:

PK_BODY_extend


The options provided are:

'modify'                       Controls whether the extension modifies the
                               original faces of the body where possible
                               (PK_LOGICAL_true) or always creates separate
                               extension faces (PK_LOGICAL_false). See
                               Changes to topology for more
                               information.

'extension_shape'              Specifies the shape of extension to use.
                               Possible values are:

                                PK_extension_shape_linear_c:
                                    create linear extension
                                PK_extension_shape_soft_c:
                                    create curvature continuous extension
                                PK_extension_shape_reflective_c:
                                    create reflective extension

                               Note that the values
                               PK_extension_shape_natural_c and
                               PK_extension_shape_arc_c are not allowed.

                               Note that the value PK_extension_shape_soft_c
                               will produce the same result as
                               PK_extension_shape_linear_c for facet geometry.

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

                               The default value is
                               PK_extension_shape_linear_c. See
                               Specifying the shape of the extension
                               for more information.

'extension_type'               Specifies the method for determining the extent
                               of the extension.
                               Possible values are:
                                PK_BODY_extension_distance_c:
                                    Extend the body by the amount determined
                                    by a given distance.
                                PK_BODY_extension_target_c:
                                    Extend the body until its intersection
                                    with the target entity forms a complete
                                    boundary.

                               If the value PK_BODY_extension_distance_c is
                               supplied a non-zero distance must be supplied in
                               'extension_distance'.

                               If the value PK_BODY_extension_target_c is
                               supplied, either a surface, or a solid or sheet
                               body must be supplied in the field 'target'.
                               Otherwise, no change will be made to the sheet.

                               See here for more information.

'extension_distance'           A length to extend the given body by. The
                               distance is taken as a guide to the amount of
                               extension, not an exact limit. It must be
                               non-negative.

                               This field is ignored unless the
                               'extension_type' has been set to
                               PK_BODY_extension_distance_c.

'target'                       Specifies a surface, or a sheet, solid, or
                               general body that intersects the extended
                               body to define its new boundary. This surface
                               or body remains unmodified.

                               This field is ignored unless the
                               'extension_type' has been set to
                               PK_BODY_extension_target_c.

                               See here for more information.

'target_limit'                 Defines how the target controls the amount of
                               extension.
                               Possible values are:
                                PK_extension_limit_minimal_c:
                                PK_extension_limit_inside_c:
                                PK_extension_limit_outside_c:

'preserve_internal_smoothness' Specifies the level of continuity to be
                               preserved between surfaces along non-laminar
                               edges internal to the extension where possible.
                               Possible values are:

                                PK_extension_smoothness_g0_c:
                                    No attempt at preserving smoothness will be
                                    made.
                                PK_extension_smoothness_g1_c:
                                    G1 smoothness will be preserved where
                                    possible.

                               Note that this option is ignored for facet
                               geometry.

'track_type'                   Specifies how to track new laminar edges that
                               by created by splitting vertices.
                               Possible values are:
                                PK_extend_track_type_basic_c:
                                   Tracks the original vertices from which the
                                   new edges are created.
                                PK_extend_track_type_edges_c:
                                   Tracks the original vertices and their
                                   edges from which the new edges are created.

                               See Tracking new edges for more
                               information.

'track_internal'               Specifies whether to track new non-laminar
                               edges.
                               Possible values are:
                                PK_extend_track_internal_no_c:
                                   Do not track new non-laminar edges.
                                PK_extend_track_internal_yes_c:
                                   Track new non-laminar edges.

                               See Tracking new edges for more
                               information.

'extend_create'                Indicates how extension topology is created for
                               the purposes of bulletining and attribute
                               processing.
                               Possible values are:
                                PK_extend_create_new_c:
                                    Extension topology is newly created
                                PK_extend_create_split_c:
                                    Extension topology is split from the
                                    original topology
                               If 'modify' is PK_LOGICAL_true then the
                               extension faces created as above are merged with
                               the original faces of which they are extensions
                               where possible.

'extension_boundary'           Specifies whether to produce a simpler extension
                               boundary.
                               Possible values are:
                                PK_extension_boundary_precise_c:
                                    The new extension boundary represents an
                                    accurate measure of extension distance.
                                PK_extension_boundary_loose_c:
                                    The body will be extended by at least the
                                    supplied distance and the new extension
                                    boundary represents a rough measure of
                                    extension distance.

                               Note that this option is ignored for facet
                               geometry.

'extend_side_data'             A structure which specifies data for
                               creating side edges of extension faces
                               at specific terminal vertices of the chain
                               of edges.

'extend_side'                  Indicates how side edges of extension
                               faces are created at any terminal
                               vertices of the chain of edges which
                               don't appear in the field 'extend_side_data'.

                               If the extend_side option is set to
                               PK_extend_side_follow_adj_c and the convexity
                               of a terminal vertex could not be determined,
                               the side edge creation will fail. The status
                               PK_local_status_cant_extend_c will be returned
                               with the tag of the terminal vertex.

'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

'results_output'               Specifies whether function should output its
                               local status and associated entities as a
                               return argument from the function or in
                               report form to the Parasolid report. The
                               records in the report will be of type
                               PK_REPORT_record_type_1_c.

                               Possible values are:
                                 PK_results_output_return_c:
                                   The results are output as a return argument.
                                 PK_results_output_report_c:
                                   The results are output in the Parasolid
                                   report.

                               The default value is PK_results_output_return_c.