PK_SURF_eval_with_normal_handed   


PK_ERROR_code_t    PK_SURF_eval_with_normal_handed
(
--- received arguments ---
PK_SURF_t          surf,        --- surf
PK_UV_t            uv,          --- surf u and v parameter pair
int                n_u_derivs,  --- number of u derivatives
int                n_v_derivs,  --- number of v derivatives
PK_LOGICAL_t       triangular,  --- triangular derivative array required
PK_HAND_t          u_hand_dir,  --- evaluate u as limit from left or right
PK_HAND_t          v_hand_dir,  --- evaluate v as limit from left or right

--- returned arguments ---
PK_VECTOR_t        p[],         --- point and derivatives
PK_VECTOR_t *const normal       --- surface normal
)


This function behaves like PK_SURF_eval_with_normal, but takes additional
arguments ( u_hand_dir and v_hand_dir ) as input.


Specific Errors:
    PK_ERROR_bad_parameter            cannot evaluate out of range
    PK_ERROR_at_singularity           failed to evaluate normal at singularity
    PK_ERROR_too_many_derivatives     too many derivatives requested
    PK_ERROR_num_derivs_not_equal     where triangular format requested
    PK_ERROR_eval_failure             internal evaluator failure


This is the handed version of PK_SURF_eval_with_normal which evaluates a
point, derivatives and normal at a parameter pair on a surface patch indicated
by additional direction arguments u_hand_dir and v_hand_dir.

If the surface has a disconunity at the parameter position,these arguments
( see PK_SURF_eval_handed for the definition ) determine which side of the
discontinuity will be calculated.