 |
PK_CURVE_output_vectors |
|
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,
for all curve types except polylines. If the curve is a
polyline, this is the maximum allowable angle between a
chord and the polyline segments it spans. A segment that
doubles back on the chord is taken to have an angle in
excess of pi/2 radians.
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.