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

  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.