PK_ERROR_code_t PK_SURF_eval_handed ( --- received arguments --- PK_SURF_t surf, --- surface PK_UV_t uv, --- 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 ) This function behaves like PK_SURF_eval, 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_too_many_derivatives too many derivatives requested PK_ERROR_num_derivs_not_equal where triangular format was requested PK_ERROR_eval_failure internal evaluator failure This is the handed version of PK_SURF_eval which evaluates a point and derivatives at a parameter pair on a surface patch indicated by an additional pair of direction arguments. The u_hand_dir and v_hand_dir arguments allow evaluation from both the left and right at patch boundaries. Usually these arguments should be set to PK_HAND_right_c which results in evaluation approaching from the right. This means that if the parameter t lies on a patch boundary then the derivatives will be calculated using the next patch and the starting local parameter. If the arguments are set to PK_HAND_left_c (evaluate from left) then the derivatives will be calculated using the previous patch and the end local parameter. The following examples show how the direction arguments affect the evaluation at the given parameter position (shown as *), where straight lines represent surface patch boundaries: ^ U ^ U | | u_on_right | u_on_right u_on_right/left * u_on_right/left v_on_left | v_on_right v_on_left | v_on_right ---------------*--------------> V -----------------+------------------> V u_on_left | u_on_left | v_on_left | v_on_right The derivatives obtained from left and right evaluation may be different if there is a discontinuity at the patch boundary. If a parameter (u or v) is at the beginning / end of a global parameter boundary and in non-periodic direction, PK_HAND_left_c / PK_HAND_right_c means the evaluation will use the surface extended from the boundary.