![]() |
PK_CURVE_make_bcurve_array |
PK_ERROR_code_t PK_CURVE_make_bcurve_array ( --- received arguments --- int n_curves, --- number of curves PK_CURVE_t curves[], --- curves PK_INTERVAL_t ranges[], --- curve intervals const PK_CURVE_make_bcurve_array_o_t *options, --- option structure [PF] --- returned arguments --- PK_CURVE_make_bcurve_res_t results[], --- results PK_LOGICAL_t *const all_succeeded --- whether succeeded for --- all curves ) Given an array of curves and intervals this function creates B-curves that satisfy the 'options' specified. This function offers partial support for facet geometry [PF] Each created B-curve will be exactly coincident with the given curve if possible. Where this is not possible, the maximum distance between the curve and the returned B-curve will be limited by 'tolerance'. The function will usually achieve this condition but this is not guaranteed. If an exact result does not match the specified continuity, an approximation will be used. Finer control over the form of the resulting bcurve can be provided through the option structure. The resulting B-curves will be attached to the specified 'destination'. Notes for specific classes of input curve ========================================= Line: Unless the 'have_degree' option is set, the B-curve will be linear (degree 1). The result will always be exact. Circle/Ellipse: The result will be cubic by default, and exact unless the 'force_non_rational' option is set. The parameterisation of the input curve may not be preserved. B-curve: Unless you specify the degree of the output B-curve, using the 'have_degree' and 'degree' option fields, the output B-curve will have the same degree as the input curve if the result is exact. The result will be an approximation if and only if any of the following are true: o The degree is lowered (note that increasing the degree can be done with an exact result). o The input curve is rational and the 'force_non_rational' option is true, except in the special case when all the weights of the rational curve are equal. o Any discontinuities are eliminated (via the 'force_continuity' option). Intersection/SP: The output will usually be approximate (and cubic by default) unless the curve coincides with a constant parameter line of an underlying B-surface. In this case the options will apply to the extracted B-curve and an exact result will be possible in some cases. Polyline: The output B-curve will be piecewise linear (degree 1) and the result will be exact. If either the 'have_degree' option or 'force_continuity' option is set to an unsupported value, then PK_ERROR_facet_geometry error will be returned.Generated on: Fri, 04 Oct 2024 12:17:51 GMT