PK_blend_shape_t   

struct PK_blend_shape_s
    {
    PK_blend_xs_plane_t xsection;     --- cross section plane
                                      --- (PK_blend_xs_rolling_ball_c)
    double              radius;       --- constant radius
                                      --- (0.0)
    PK_CURVE_t          parameter;    --- 3D parameter curve
                                      --- (PK_ENTITY_null)
    PK_LAW_sf_t         range1;       --- 1D law function;
                                      --- Variable ranges off left wall
    PK_LAW_sf_t         range2;       --- 1D law function;
                                      --- Variable ranges off right wall
    PK_LAW_sf_t         rho;          --- 1D law function;
                                      --- Variable rho for general conics
    PK_BCURVE_t         depth;        --- 2D law curve; curvature cts blends
                                      --- (PK_ENTITY_null)
    double              width;        --- width of blend for Constant Width
                                      --- blends (0.0)
    double              ratio;        --- ratio of blend ranges for Constant
                                      --- Width blends (1.0)
    PK_blend_xs_shape_t xs_shape;     --- cross section shape
                                      --- (PK_blend_xs_shape_unset_c)
    double              softness;     --- controls softness of curvature
                                      --- continuous blends (1.0)
    PK_blend_rho_t      rho_type;     --- whether to use absolute, relative or
                                      --- centre rho
                                      --- (PK_blend_rho_absolute_c)
    double              range1_const; --- Constant range off left wall (0.0)
    double              range2_const; --- Constant range off right wall (0.0)
    double              rho_const;    --- Constant rho for general conics (0.0)
    PK_LAW_sf_t         var_width;    --- 1D law function;
                                      --- Variable width of blend chord
    PK_LAW_sf_t         var_ratio;    --- 1D law function;
                                      --- variable ratio of blend ranges for
                                      --- variable width blend
    double              depth_const;  --- Constant depth for curvature
                                      --- continuous blends (0.0)
    double              skew_const;   --- Constant skew for curvature
                                      --- continuous blends (0.5)
    PK_blend_range_t    range1_type;  --- interpretation of range1_const
                                      --- (PK_blend_range_face_offset_c)
    PK_blend_range_t    range2_type;  --- interpretation of range2_const
                                      --- (PK_blend_range_face_offset_c)
    };
typedef struct PK_blend_shape_s PK_blend_shape_t;



This structure defines the shape of a blend.

Used in:

PK_FACE_make_blend_o_t


                        Blend Shape Options:

 'xsection'     Cross section plane, may be one of:
                PK_blend_xs_rolling_ball_c (default) or
                PK_blend_xs_disc_c or
                PK_blend_xs_isoparameter_c
                See Defining the cross-section plane for more
                information.

 'radius'       Radius of blend for defining a constant radius blend (0.0).
                A value of 0.0 will be taken to mean that this field is unset.
                See Specifying the size of the blend for more
                information.

 'parameter'    3D parameter curve. (NULL)
                See Supplying a suitable parameter spine for
                more information.

 'range1'       1D law function: variable range off left wall.
                If this is supplied a parameter curve must be provided in
                'parameter'.
                See Specifying the size of the blend for more
                information.

 'range2'       1D law function: variable range off right wall.
                If this is supplied a parameter curve must be provided in
                'parameter'.
                See Specifying the size of the blend for more
                information.

 'rho'          1D law function: variable rho for general conics.
                If this is supplied a parameter curve must be provided in
                'parameter'.
                See here for more information on user-defined
                conic cross-sections.

 'depth'        2D law curve for curvature continuous blends.  (NULL)
                This is used to determine the maximum depth, depth point,
                at each parameter value along the blend.
                The X coordinate is used as the curve skew, the distance
                along the chord between the contact points which corresponds
                to the depth point. It must be a value between 0 and 1.
                The Y coordinate is used as the curve depth, the distance
                of the depth point between the chord between the contact
                points and the intersection of the tangents of the walls.
                It must be a value between 0 and 1.
                If this is supplied a parameter curve must be provided in
                'parameter'.
                See here for more information on user-defined
                curvature continuous cross-sections.

 'width'        Width of blend for defining constant width blends. (0.0)
                A value of 0.0 will be taken to mean that this field is unset.
                See Specifying the size of the blend for more
                information.

 'ratio'        Ratio of blend ranges for constant width blends. (1.0)
                The ratio is defined as "range off left" / "range off right".
                The default is 1.0 i.e. equal ranges.  This field will be
                ignored unless the 'width' field is set.
                See Specifying the size of the blend for more
                information.

 'xs_shape'     Cross section shape, may be one of:
                PK_blend_xs_shape_unset_c (default)
                PK_blend_xs_shape_conic_c
                PK_blend_xs_shape_g2_c
                PK_blend_xs_shape_chamfer_c
                See Defining the cross-section shape for more
                information.

 'softness'     Modifies the softness for curvature continuous blends. (1.0)
                It takes values above 0.0 and although theoretically has no
                upper limit, a value of 10.0 is likely to be the highest
                value used for practical purposes. Values of 'softness'
                less than 1.0 make the blend less soft, while those values
                greater than 1.0 make the blend more soft.
                See Controlling curvature continuous softness for an
                explanation of the softness of a curvature continuous blend.

 'rho_type'     Controls how the 'rho' and 'rho_const' options in
                PK_blend_shape_t are interpreted when creating conic shaped
                blends. (PK_blend_rho_absolute_c)
                If 'rho_type' is set to PK_blend_rho_absolute_c, the rho is
                independent of the angle subtended by the blend.
                If 'rho_type' is set to PK_blend_rho_relative_c, the rho is
                relative to the angle subtended by the blend. For example,
                a relative rho value of 0.5 will produce a circular or
                least tension elliptical conic, while an absolute rho value
                of 0.5 will produce a parabola.
                If 'rho_type' is set to PK_blend_rho_centre_c, the rho is
                the radius of curvature at the centre of the blend
                cross-section.
                See here for more information on user-defined
                conic cross-sections.

 'range1_const' Constant range off left wall. (0.0)
                See Specifying the size of the blend for more
                information.

 'range2_const' Constant range off right wall. (0.0)
                See Specifying the size of the blend for more
                information.

 'rho_const'    Constant rho for general conics. (0.0)
                See here for more information on user-defined
                conic cross-sections.

 'var_width'    1D law function: variable width of blend chord.
                If this is supplied a parameter curve must be provided in
                'parameter'.

 'var_ratio'    1D law function: variable ratio of blend ranges for variable
                width blends.
                If this is supplied a parameter curve must be provided in
                'parameter'.

 'depth_const'  Constant depth for curvature continuous blends. (0.0)
                See here for more information on user-defined
                curvature continuous cross-sections.

 'skew_const'   Constant skew for curvature continuous blends. (0.5)
                See here for more information on user-defined
                curvature continuous cross-sections.

 'range1_type'
 'range2_type'
                These options control how values given in 'range1_const' and
                'range2_const' are interpreted. For non-default values, these
                options control the interpretation of chamfer blends.

                If set to PK_blend_range_face_offset_c then the range
                represents the blend's offset range from the underlying
                surface on that side.

                If set to PK_blend_range_apex_range_c then the range
                represents the range between the contact point on that side
                and the blend's apex and has to be positive.

                If set to PK_blend_range_angle_c then the range represents
                the angle made by the chord between the contact points and
                the tangent plane of the contact point on the other side.
                The angle must be between 0 and pi.

                Valid combinations of 'range1_type' and 'range2_type' can
                be found in the below table.

                ------------------------------------------------------------
                      'range1_type'          |        'range2_type'
                ------------------------------------------------------------
                PK_blend_range_face_offset_c | PK_blend_range_face_offset_c
                PK_blend_range_apex_range_c  | PK_blend_range_apex_range_c
                PK_blend_range_apex_range_c  | PK_blend_range_angle_c
                PK_blend_range_angle_c       | PK_blend_range_apex_range_c
                ------------------------------------------------------------

                If these options are set to any value other than
                PK_blend_range_face_offset_c then 'xs_shape' must be set to
                PK_blend_xs_shape_chamfer_c, 'xsection' must be set to
                PK_blend_xs_rolling_ball_c and 'run_out' must be set to
                PK_blend_run_out_no_c and 'parameter' must be provided.

                See #here#DOCXXXX# for more information.




If no radius, width or range options are defined then the blend will be
assumed to be determined by its constraints, for example tangent-holdline
blends.

If the 'width' field is set to a non-zero value or the 'var_width' field is
set, then 'xsection' can be set to PK_blend_xs_rolling_ball_c or
PK_blend_xs_disc_c.

'width' and 'var_width' may not be both set. If 'var_width' is set and
'var_ratio' is not set then 'ratio' will be used.

If 'softness' is set to a non-default value then 'xs_shape' must be
PK_blend_xs_shape_g2_c.

If 'radius' is set neither 'range1', 'range2', 'range1_const', 'range2_const',
'width' or 'ratio' may be set.

'range1_const' and 'range1' may not both be set.  Similarly, neither may
'range2_const' and 'range2', and 'rho_const' and 'rho'.

When more than one of the 'range1', 'range2' and 'rho' functions are set,
they must have equal degree, periodicity, closure and knot set.  The 'depth'
option or 'depth_const' and 'skew_const' options are incompatible with the
'rho' and 'rho_const' options.

If 'depth_const' is set to a non-zero value then 'xs_shape' must be
PK_blend_xs_shape_g2_c and 'skew_const' must have a value between 0 and 1.
The 'depth_const' and 'skew_const' options should not be used with the 'depth'
option.
The 'depth_const' and 'skew_const' options should not be used with the
'softness' option.
See here for more information on user-defined curvature continuous
cross-sections.