PK_FACE_make_3_face_blend_o_t   

struct PK_FACE_make_3_face_blend_o_s
    {
    int                     o_t_version;   --- version number of options
    double                  blend_tolerance;
                                           --- tolerance for surface
                                           --- construction (1.0e-05)
    PK_LOGICAL_t            have_propagation_tolerance;
                                           --- whether a propagation tolerance
                                           --- has been supplied
                                           --- (PK_LOGICAL_true)
    double                  propagation_tolerance;
                                           --- angular tolerance in radians
                                           --- for propagation (0.05)
    PK_blend_propagate_t    propagate;     --- whether to propagate
                                           --- (PK_blend_propagate_yes_c)
    PK_blend_orientation_t  left_orientation;
                                           --- blend direction from left wall
                                           --- (PK_blend_orientation_unknown_c)
    PK_blend_orientation_t  right_orientation;
                                           --- blend direction from right wall
                                           --- (PK_blend_orientation_unknown_c)
    PK_blend_orientation_t  centre_orientation;
                                           --- blend direction from centre wall
                                           --- (PK_blend_orientation_unknown_c)
    PK_blend_trim_t         trim;          --- blend trimming option
                                           --- (PK_blend_trim_to_walls_c)
    PK_blend_walls_t        walls;         --- wall trimming option
                                           --- (PK_blend_walls_attach_c)
    PK_blend_repair_fa_X_t  repair_fa_X;   --- whether to attempt to repair
                                           --- self-intersecting faces
                                           --- (PK_blend_repair_fa_X_no_c)
    PK_blend_xs_plane_t     xsection;      --- cross section shape
                                           --- (PK_blend_xs_disc_c)
    PK_PARTITION_t          partition;     --- a partition
                                           --- (PK_PARTITION_null)
    int                     n_limits;      --- number of limit entities (0)
    const PK_ENTITY_t      *limits;        --- entities limiting the blend
                                           --- (NULL)
    int                     n_caps;        --- number of caps (0)
    const PK_ENTITY_t      *caps;          --- entities for capping
                                           --- blend (NULL)
    const PK_LOGICAL_t     *reverse_cap;   --- whether cap orientation
                                           --- should be reversed (NULL)
    PK_blend_update_t       update;        --- disable changes for updates
                                           --- (PK_blend_update_default_c)
    PK_blend_check_fa_fa_t  check_fa_fa;   --- check for face-face
                                           --- inconsistencies
                                           --- (PK_blend_check_fa_fa_yes_c)
    PK_blend_track_edges_t  track_edges;   --- whether to provide laminar
                                           --- edge tracking when result is
                                           --- a sheet body
                                           --- (PK_blend_track_edges_no_c)
    PK_blend_trim_extent_t  trim_extent;   --- additional controls upon
                                           --- the trim option regarding
                                           --- the walls whose extents
                                           --- should be considered
                                           --- (PK_blend_trim_extent_all_c)
    PK_LOGICAL_t            have_help_point;
                                           --- whether help point is provided
                                           --- (PK_LOGICAL_false)
    PK_VECTOR_t             help_point;    --- help point

    };

typedef struct PK_FACE_make_3_face_blend_o_s PK_FACE_make_3_face_blend_o_t;



This structure contains options for three face blending.

Used in:

PK_FACE_make_3_face_blend


The PK_FACE_make_3_face_blend_o_t contains the following options:


 'blend_tolerance'            The tolerance used to build the blend surfaces.
                              See Tolerance for more details.

 'have_propagation_tolerance' Whether a 'propagation_tolerance' has been
                              provided.  If this is PK_LOGICAL_false, then
                              the 'propagation_tolerance' option will be
                              ignored and the blend will only propagate
                              past smooth edges.
                              The default is PK_LOGICAL_true.

 'propagation_tolerance'      The angular tolerance in radians used to
                              propagate past sharp edges.

 'propagate'                  If this is set to 'PK_blend_propagate_yes_c'
                              the blends will be allowed to propagate past
                              edges to faces beyond the provided walls.
                              See Propagating blends for more
                              details.

 'left_orientation'           Determines on which side of 'left_wall_faces'
                              the blend lies.

 'right_orientation'          Determines on which side of 'right_wall_faces'
                              the blend lies.

 'centre_orientation'         Determines on which side of 'centre_wall_faces'
                              the blend lies.
                              See Blend orientation for more details.

 'trim'                       Indicates how the blend is to be trimmed.
                              See documentation of PK_blend_trim_t.
                              The default is PK_blend_trim_to_walls_c.

 'walls'                      Determines if and how the blend sheets are
                              attached to the defining walls.

 'repair_fa_X'                This option controls whether or not Parasolid
                              will attempt to repair blend faces that are
                              self-intersecting.

 'xsection'                   The cross section plane; it may be one of:
                                PK_blend_xs_disc_c (default) or
                                PK_blend_xs_rolling_ball_c.
                              (PK_blend_xs_isoparameter_c is not allowed.)
                              If this option is PK_blend_xs_rolling_ball_c
                              then the 'have_propagation_tolerance' option
                              must be set to PK_LOGICAL_false.
                              See Defining the cross-section plane
                              for more details.



 'partition'                  An optional user-supplied partition. If a
                              partition is supplied and the blend options
                              specify the blend result is to be returned as
                              sheets, rather than attached to the left-hand
                              body being blended, then those resultant
                              sheets will be placed within this
                              user-supplied partition.
                              Default behaviour assumes no
                              partition supplied ( PK_PARTITION_null )
                              and any resultant sheets are placed in the
                              partition associated with the left-hand body
                              being blended.

 'n_limits'                   The number of limiting entities.

 'limits'                     A list of entities which will be used to stop the
                              blend. These entities can be planes, faces or
                              fins. One or two planes may be specified.
                              If the blend encounters a plane from this list,
                              the blend will be trimmed to end in a constant
                              parameter line determined by that plane, and will
                              lie on the positive side of the plane. If the
                              plane intersects the blend in more than one
                              location, the blend will be trimmed in only one
                              location, the one that is closest to the plane's
                              location vector (i.e. `basis_set.location' in
                              PK_PLANE_sf_t).
                              If the blend encounters a face or fin from
                              this list, it will stop and be trimmed to end
                              in a constant parameter line at that point.

 'n_caps'                     The number of capping entities.

 'caps'                       A list of entities which will be used to stop
                              and cap the blend.
                              Currently, Parasolid will handle entities of
                              class PK_CLASS_face and PK_CLASS_plane.
                              If the entity is a PK_FACE_t, then it must
                              belong to one of the bodies to which the walls
                              belong.

 'reverse_cap'                A list of flags which specify which side of each
                              cap will be the exterior of the cap. if
                              `reverse_cap[j]' is PK_LOGICAL_false, then the
                              algorithm will trim away the portion of the blend
                              on the side of `cap[j]' towards which the cap's
                              normal points.

 'update'                     This option allows the disabling of some changes
                              to the blending algorithms for rebuild purposes.

 'check_fa_fa'                Controls the amount of checking for face-face
                              inconsistencies that is required. By default
                              this is set to PK_blend_check_fa_fa_yes_c,
                              activating all of the face-face inconsistency
                              checks. Setting this field to
                              PK_blend_check_fa_fa_no_c will disable all
                              face-face inconsistency checks.



 'track_edges'                Whether to provide additional tracking
                              information associated with laminar edges when
                              the blend result is a sheet body.
                              The default provides no tracking associated with
                              the laminar edges ( PK_blend_track_edges_no_c ).
                              Setting this option to
                              PK_blend_track_edges_laminar_c will request
                              additional tracking information. This additional
                              information will be returned within the
                              returned tracking structure and will usually
                              describe the underlying coincident edge
                              and/or face upon the original body.

 'trim_extent'                Whether to apply additional controls upon
                              trimming operations. The default is to
                              apply no additional controls upon trimming
                              operations and to consider the extent of all
                              three walls ( PK_blend_trim_extent_all_c ).

                              If the 'trim' option is set to
                              PK_blend_trim_no_c, PK_blend_trim_short_c
                              or PK_blend_trim_long_c this field can be set
                              to PK_blend_trim_extent_sides_c. Additionally
                              if the 'trim' option is set to
                              PK_blend_trim_to_walls_c and the central wall
                              lies in a different body to the bodies of the
                              left and the right wall this field can be
                              set to PK_blend_trim_extent_sides_c.

                              Setting this field to
                              PK_blend_trim_extent_sides_c will cause the
                              extent of the centre wall to be ignored when
                              performing trim operations and only the
                              extents of the left and right walls to be
                              considered.

                              When the body of the central wall is different
                              to those of the side walls and the user has
                              set 'trim' to PK_blend_trim_to_walls_c, the
                              'trim_extent' field value will be ignored and
                              the result returned will be as if 'trim_extent'
                              is set to PK_blend_trim_extent_sides_c.

 'have_help_point'            Whether a help point is provided.

 'help_point'                 Help point provided.
                              A vector, which will be used to differentiate
                              between multiple alternative possible blends
                              between the walls. The blend which passes closest
                              to the help point will be the one that is
                              created.

None of the orientation options may be supplied as
'PK_blend_orientation_unknown_c' unless all the walls of faces lie in
the same body.  If this is not the case, the blend will fail and the
'status' field of the PK_FACE_make_3_face_blend_r_t structure will be
returned as 'PK_3_face_blend_unoriented_c'.