PK_BODY_hollow_o_t   

struct PK_BODY_hollow_o_s
    {
    int                o_t_version;    --- version number of option structure
    int                n_pierce_faces; --- number of faces in 'pierce_faces'
    const PK_FACE_t   *pierce_faces;   --- faces to be pierced (not offset)
    PK_check_fa_fa_t   check_fa_fa;    --- check for face-face inconsistencies
                                       --- (PK_check_fa_fa_yes_c)
    int                n_offset_faces; --- number of elements in 'offset_faces'
                                       --- and 'offset_values' (0)
    const PK_FACE_t   *offset_faces;   --- faces to be offset by a different
                                       --- value than the function value (NULL)
    const double      *offset_values;  --- offset values for corresponding
                                       --- faces in 'offset_faces' array (NULL)
    PK_LOGICAL_t       pierce_tangent; --- DEPRECATED (PK_LOGICAL_false) [NF]
    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_hollow_local_t  hollow_local;   --- method of local hollowing
                                       --- (PK_hollow_local_none_c)
    int                n_local_faces;  --- number of faces for local hollowing
                                       --- (0)
    const PK_FACE_t   *local_faces;    --- faces for local hollowing
                                       --- (NULL)
    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_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_local_ops_update_t
                       update;         --- update flag
                                       --- (PK_local_ops_update_default_c)
    };
typedef struct PK_BODY_hollow_o_s PK_BODY_hollow_o_t;


This structure contains optional controls for PK_BODY_hollow_2

Used in:

PK_BODY_hollow_2



Description of fields:

'n_pierce_faces'        Length of 'pierce_faces' array. The default value
                        is 0.

'pierce_faces'          The array of faces which are not to be offset. Pierced
                        faces remain only as a section through the hollowed
                        body. For instance, hollowing a cylindrical solid with
                        one end face pierced will result in a tube with one
                        open and one closed end. The default value is NULL.
                        See Specifying pierce faces for more
                        information.

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

'n_offset_faces'        Length of 'offset_faces' and 'offset_values' arrays.
                        The default value is 0.

'offset_faces'          The array of faces which are to be offset by a value
                        different to that specified via the function arguments.
                        Every face in this array must be matched with a
                        corresponding value in the 'offset_value' array.
                        Faces listed in this array must not be listed within
                        the 'pierce_faces' array.
                        The default value is NULL.

'offset_values'         The array of specific face offset values. Every value
                        in this array is associated with the corresponding
                        face in the 'offset_faces' array.
                        The same rules apply to these offset values as the
                        'offset' parameter specified in the function argument
                        list. A zero value is allowed: the associated face
                        will be treated as a pierce face.
                        The default value is NULL.

'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 hollowed 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 a value other than PK_fix_degens_no_c, this
                        option improves the reliability when offsetting
                        surfaces with degeneracies, by modifying the surfaces
                        in the regions near the degeneracies.
                        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 hollowed 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 pierced 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 pierced.
                        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.

'hollow_local'          The method used when hollowing only parts of a body.
                        One method is to exclude faces in the body that are to
                        be hollowed and the other is to add faces in the body
                        to the hollowed body.
                        The default is PK_hollow_local_none_c

'n_local_faces'         Number of faces for local hollowing.
                        The default value is 0.

'local_faces'           The array of faces which are to be used to either add
                        or exclude parts of the body from the hollowing
                        operation. They are not excluded from the result, but
                        rather from the parts that are to be hollowed. For
                        instance, one can exclude the faces comprising the
                        stem and base of a glass, while hollowing the vessel.
                        The default value is NULL.

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

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

'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


See Hollowing options for more information about any of these
options.