 |
PK_CURVE_eval_handed |
|
PK_ERROR_code_t PK_CURVE_eval_handed
(
--- received arguments ---
PK_CURVE_t curve, --- curve
double t, --- curve parameter
int n_derivs, --- number of derivatives
PK_HAND_t hand_direction, --- evaluation direction
--- returned arguments ---
PK_VECTOR_t p[] --- point and derivatives.
)
The function behaves like PK_CURVE_eval but takes an additional argument to
control the direction of the evaluation.
Specific Errors:
PK_ERROR_at_terminator unable to calculate 2nd derivatives at
a terminator of 'curve' (MILD)
PK_ERROR_bad_parameter not permitted to evaluate outside of
range (MILD)
PK_ERROR_too_many_derivatives too many derivatives requested (MILD)
PK_ERROR_eval_failure internal evaluator failure (MILD)
This function is the handed version of PK_CURVE_eval, which evaluates the point
and derivatives at a given parameter of a curve.
The point and derivatives at a given parameter are determined using the
curve segment that the parameter lies in. If the parameter lies on a
segment boundary then there are two possible curve segments that can be used.
They are the segment before the boundary (hand_direction == PK_HAND_left_c )
and the segment after the boundary (hand_direction == PK_HAND_right_c).
0 1 2 3 4 5
|------------|------------|----------|----------|----------|
on_left |
<---------| on_right
|--------->
t
Where derivative discontinuities exist at the parameter, the derivatives
calculated by the left segment may be different from those calculated
using the right segment.
If the curve is periodic, the left (or right) segment of the beginning of
the periodic range equals to the left (or right) segment of the end of the
periodic range.