 |
PK_CURVE_make_bcurve_array_o_t |
|
struct PK_CURVE_make_bcurve_array_o_s
{
int o_t_version; --- option structure version
double tolerance; --- max deviation of input curve
--- from output B-curve (1.0e-5)
PK_LOGICAL_t have_degree; --- whether a degree is
--- specified (PK_LOGICAL_false) [NF]
int degree; --- degree of output B-curves
--- (= order-1) [NF]
PK_force_continuity_t force_continuity;
--- whether to force a certain
--- level of continuity
--- (PK_force_continuity_no_c) [NF]
PK_continuity_t continuity; --- level of continuity
--- (PK_continuity_c1_c) [NF]
PK_LOGICAL_t force_non_rational;
--- whether output B-curves should
--- be non-rational
--- (PK_LOGICAL_false)
PK_LOGICAL_t force_bezier; --- whether output B-curves should
--- be piecewise Bezier
--- (PK_LOGICAL_false)
PK_ITEM_t destination; --- destination for B-curves
--- (PK_ITEM_null)
};
typedef struct PK_CURVE_make_bcurve_array_o_s
PK_CURVE_make_bcurve_array_o_t;
This options structure holds optional controls for PK_CURVE_make_bcurve_array.
Specific Errors:
PK_ERROR_bad_order (MILD) 'degree' is invalid.
PK_ERROR_facet_geometry (MILD) 'curves' contains a polyline
and 'have_degree' or
'force_continuity' has been set
to a value that is not supported
for polylines.
Used in:
PK_CURVE_make_bcurve_array
Description of fields:
'tolerance' If an approximation of any curve is produced, this
option specifies the maximum deviation between the
input and output curves. Note that the actual
achieved tolerance is returned as 'achieved_tol'.
'have_degree' Specifies whether the degree of the resulting B-curves
is supplied through the 'degree' option. If
PK_LOGICAL_false, the degree will depend upon the input
curves - see the documentation for
PK_CURVE_make_bcurve_array for details.
Note: this option must be set to PK_LOGICAL_false if
any input curve is a polyline.
'degree' The desired degree of the resulting B-curves.
Currently the supported values are 2 (for quadratic
B-curves) and 3 (for cubics).
'force_continuity' This option allows a continuity level to be supplied
through the 'continuity' option, and also controls how
discontinuities of the input curve will be handled.
It has the possible values:
o PK_force_continuity_yes_c
All discontinuities will be eliminated up to the
level specified by the 'continuity' option. The
parameterisation of the input curves may not be
preserved.
o PK_force_continuity_prefer_c
Small curve discontinuities will be eliminated, up
to the level specified by the 'continuity' option.
Any large discontinuities which are not removed will
be reported with a PK_REPORT_3_discontinuities_c
record. The parameterisation of the input curves may
not be preserved.
o PK_force_continuity_no_c
No attempt will be made to remove discontinuities,
and no report will be returned. The parameterisation
of the input curves will be preserved, except in the
case of exact representations of circles and
ellipses.
Note: this option must be set to
PK_force_continuity_no_c if any input curve is a
polyline.
'continuity' The desired continuity of the resulting B-curves.
This is ignored if 'force_continuity' is set to
PK_force_continuity_no_c. The possible values are:
PK_continuity_c1_c
PK_continuity_c2_c
PK_continuity_g1_c
PK_continuity_g2_c
'force_non_rational' If set to PK_LOGICAL_true, B-curves are forced to be
non-rational, otherwise their rationality will depend
on the input curves.
'force_bezier' If set to PK_LOGICAL_true, the resulting B-curves are
forced to be piecewise-Bezier.
'destination' This option specifies the destination for the resulting
B-curves.
It can be a partition, PK_PARTITION_t, or a part,
PK_PART_t, but no other PK_ITEM_t. Alternatively it
may be set to PK_ITEM_null (default).
o If 'destination' is a partition, the B-curves will
be orphan geometry in that partition.
o If 'destination' is a part, the B-curves will be
construction geometry in that part.
o If 'destination' is PK_ITEM_null, the B-curves
will be orphan geometry in the current partition.