 |
PK_EDGE_set_blend_variable |
|
PK_ERROR_code_t PK_EDGE_set_blend_variable
(
--- received arguments ---
PK_EDGE_t edge, --- edge to have
--- blend set
PK_blend_edge_shape_t edge_shape, --- shape of blend
const PK_EDGE_set_blend_variable_o_t *options, --- options structure
--- returned arguments ---
int *const n_blend_edges, --- number of edges with
--- blends set
PK_EDGE_t **const blend_edges --- edges with blends
--- set
)
This function sets edges to have a variable 'radius' blend.
This function does not support facet geometry [NF]
Specific Errors:
PK_ERROR_bad_blend_param illegal combination of blend properties
(MILD)
PK_ERROR_general_body edge is from a general body
(MILD)
PK_ERROR_bad_blend_rho_type attempted to specify a 'rho_type' other than
PK_blend_rho_type_absolute_c in conjunction
with a curvature-continuous blend.
(MILD)
PK_ERROR_facet_geometry edge is from a body with facet geometry
(MILD)
Attaches a variable radius blend with the given parameters to an edge. Any
existing attribute is replaced by one with the given parameters.
'edge_shape' is a structure defining the shape of the blend, as follows:
'n_ranges' if this is greater than 1 then a variable radius blend
is produced, otherwise PK_ERROR_bad_blend_param is returned.
'ranges_1' is an array of length 'n_ranges', consisting of values
specifying the range of the blend off the left face at the
corresponding position.
'ranges_2' is an array of length 'n_ranges', consisting of values
specifying the range of blend off the right face at the
corresponding position.
'rhos' is an array of length 'n_ranges', consisting of values
specifying the rho value at the corresponding position.
'positions' is an array of length 'n_ranges', consisting of position
vectors of the data points on the edge at which the blend
ranges and rho values are defined.
All ranges must be greater than twice the maximum tolerance of the edge
and its associated vertices.
A successful result will produce a new blend attribute. It will return
the edge(s) to which the blend attribute is attached in the array
'blend_edges'.
See PK_BODY_fix_blends for making the blends a part of the topology.
Blends can be created on general bodies, so long as the portion of the body in
the neighbourhood of the blend is locally manifold.