PK_ERROR_code_t PK_CURVE_output_vectors
(
--- received arguments ---
PK_CURVE_t curve, --- curve
PK_INTERVAL_t interval, --- parametric curve bounds
PK_LOGICAL_t want_ts, --- whether curve parameters required
double curve_chord_tol, --- maximum chordal error
double curve_chord_ang, --- maximum angular error
double curve_chord_max, --- maximum step length
--- returned arguments ---
int *const n_vectors, --- number of position vectors
PK_VECTOR_t **const vectors, --- position vectors
double **const ts --- corresponding curve parameters
)
This function outputs position vectors along a curve.
Specific Errors:
PK_ERROR_ctol_too_small invalid curve_chord_tol
PK_ERROR_atol_too_small invalid curve_chord_ang
PK_ERROR_stol_too_small invalid curve_chord_max
PK_ERROR_tolerances_too_tight failed to meet tolerances
The required part of the curve is bounded by the given interval. The spacing
of position vectors is controlled by 'curve_chord_tol', 'curve_chord_ang' and
curve_chord_max. If these are set zero or negative then suitable defaults
will be used. A chord is the straight line between two adjacent position
vectors.
curve_chord_tol: maximum distance between a chord and the curve
curve_chord_ang: the maximum value of the sum of the angles between the
chord and the curve tangents at either end of the chord
curve_chord_max: maximum chord length.
curve_chord_tol, curve_chord_ang and curve_chord_max are independent
means of controlling the output of vectors. There will be no chord for which
a given control value is exceeded. There is no guarantee that any given
maximum will actually be attained.
As well as position vectors, the function may also output the curve parameter
values corresponding to each position vector. Whether or not this is
required is set by the want_ts argument.