PK_blend_properties_t   

struct PK_blend_properties_s
    {
    PK_blend_propagate_t    propagate;     --- DEPRECATED
                                           --- (PK_blend_propagate_no_c) [NF]
    PK_blend_vary_t         vary;          --- form of variation
                                           --- (PK_blend_vary_smooth_c) [NF]
    PK_blend_render_rib_t   render_rib;    --- enable rendering of ribs
                                           --- (PK_blend_render_rib_no_c) [NF]
    PK_LOGICAL_t            draw_fix;      --- whether blend will be drawn
                                           --- and fixed (PK_LOGICAL_true) [NF]
    PK_blend_ov_smooth_t    ov_smooth;     --- enable smooth overflow
                                           --- (PK_blend_ov_smooth_diff_c) [PF]
    PK_blend_ov_cliff_t     ov_cliff;      --- enable cliff edge overflow
                                           --- (PK_blend_ov_cliff_diff_c) [PF]
    PK_blend_ov_cliff_end_t ov_cliff_end;  --- enable cliff edge end overflow
                                           --- (PK_blend_ov_cliff_end_no_c)
                                           --- [NF]
    PK_blend_ov_notch_t     ov_notch;      --- enable notch overflow
                                           --- (PK_blend_ov_notch_yes_c)
    double                  tolerance;     --- tolerance for blended edge
                                           --- (1.0e-5)
    double                  ribspace;      --- approx separation of rib lines
                                           --- (0.0) [NF]
    };
typedef struct PK_blend_properties_s PK_blend_properties_t;



Used in:

PK_EDGE_ask_blend
PK_EDGE_set_blend_chamfer_o_t
PK_EDGE_set_blend_constant_o_t
PK_EDGE_set_blend_variable_o_t


This structure records a set of blend properties.

Description of fields:

'propagate'
    This option is deprecated. If you wish to propagate you are strongly
    recommended to use PK_EDGE_find_g1_edges to find smoothly connected edges
    and pass these into PK_EDGE_set_blend_constant or PK_EDGE_set_blend_chamfer
    rather than set this option to PK_blend_propagate_yes_c.

'vary'
    This field is only applicable to blends set by
    PK_EDGE_set_blend_variable. Causes the blend ranges to vary naturally.
    The default behaviour is for the range variation to be constrained in
    such a way as to ensure that they would meet other blends smoothly at
    the vertices. (PK_blend_vary_smooth_c)

'render_rib'
    Whether ribs will be drawn by the rendering functions.

'draw_fix'
    When 'draw_fix' is PK_LOGICAL_true, the created unfixed blends are
    fixed, checked and rendered when required.
    Setting 'draw_fix' to PK_LOGICAL_false causes the unfixed blends
    to be ignored by PK_BODY_fix_blends, PK_EDGE_check_blends and
    PK_TOPOL_render_line, which will all treat the edges as unblended.

Overflow: The default overflow behaviour of a blend is as follows;
When fixing a blend, it is possible that the blend as defined by
its basic parameters would lie outside the faces adjacent
to the edge being blended. If this is so, the blend must 'overflow'.

'ov_smooth'
    If the configuration allows us, we smoothly overflow and
    create a blend one of whose underlying faces is the
    one it has overflowed onto.
    This option must be set to either PK_blend_ov_smooth_no_c or
    PK_blend_ov_smooth_any_c for facet geometry.

'ov_cliff'
    If the configuration is unsuitable for smooth overflow,
    we try to cliff overflow - that is replace the
    appropriate section of the blend by a cliffedge blend
    running along the appropriate edges. Cliff overflows are not
    possible for blends set by PK_EDGE_set_blend_chamfer.
    This option must be set to PK_blend_ov_cliff_no_c for facet geometry.

'ov_cliff_end'
    If the configuration is unsuitable for cliff overflow,
    we try to cliff and overflow - that is replace the
    appropriate section of the blend by a cliffedge blend
    at the ends of the appropriate edges. End cliff overflows are not
    possible for blends set by PK_EDGE_set_blend_chamfer.

'ov_notch'
    If the configuration is unsuitable for cliff overflow too,
    we will then notch overflow - that is, merely trim the blend
    by the other faces in the region, leaving its surface geometry
    unchanged. If the configuration is unsuitable
    for this as well, the blend will not fix.

By default neither cliffedge nor smooth overflows will occur when
the edge being overflowed is of the same convexity as the
edge being blended.

By default also, cliffedge overflows will not occur
at the ends of blends, except where they meet another blend smoothly.

Overflow Type  | Prevent
--------------------------------------------
SMOOTH         | PK_blend_ov_smooth_no_c
CLIFFEDGE      | PK_blend_ov_cliff_no_c
NOTCH          | PK_blend_ov_notch_no_c
--------------------------------------------

Overflow Type  | Allow when Same Convexity
--------------------------------------------
SMOOTH         | PK_blend_ov_smooth_any_c
CLIFFEDGE      | PK_blend_ov_cliff_any_c
--------------------------------------------

Overflow Type  | Allow at End
--------------------------------------------
CLIFFEDGE END  | PK_blend_ov_cliff_end_yes_c
--------------------------------------------

Overflow Type  | Default
--------------------------------------------
SMOOTH         | PK_blend_ov_smooth_diff_c
CLIFFEDGE      | PK_blend_ov_cliff_diff_c
CLIFFEDGE END  | PK_blend_ov_cliff_end_no_c
NOTCH          | PK_blend_ov_notch_yes_c
--------------------------------------------

'tolerance'
    Sets the tolerance for the blended edge. The default tolerance is 1000 *
    modeller resolution. This field does not apply to conic blends set by
    PK_EDGE_set_blend_constant on a classic body.

'ribspace'
    The approximate separation of rib lines.
    ( 0 <  ribspace < size )

For further explanation, and examples, of the use of these options,
please refer to the blending section of the manual.