PK_ERROR_code_t PK_CURVE_make_surf_isocline ( --- received arguments --- PK_CURVE_t curve, --- curve through which isocline surf passes PK_INTERVAL_t t_interval, --- curve parameter range for which surf reqd PK_VECTOR1_t direction, --- isocline direction double angle, --- isocline angle PK_HAND_t which, --- left or right hand isocline surf PK_INTERVAL_t range, --- required extent of surface double tolerance, --- tolerance for fitting surf through curve --- returned arguments --- PK_SURF_t *const surf --- the isocline surface ) This function makes an isocline surface surf which passes through the given t_interval of the given curve. The isocline is specified by direction and angle. In general, two surfaces pass through the curve and satisfy the isocline condition. The convention used for selection is defined by analogy with a mountain ridge from which descend two slopes: If you walk along the curve in the direction from the start parameter to the end parameter with your head pointing in the draw direction, then there are two isocline surfaces below you: one to your left and one to your right. The selection is by the argument which which may take either of the values: PK_HAND_left_c or PK_HAND_right_c. The sign of 'angle' has no effect on the resulting surface. Along the curve, the surface will at least extend over the given t_interval, but it will not necessarily be bounded by this. The required extent of the surface away from the curve is specified by the INTERVAL range in distance units. This measure is zero at the curve itself, positive along the surface in the given direction, and negative in the opposite direction. If the angle is pi/2 then positive values are in the direction of the cross product of the curve tangent and the given direction. If the range interval contains zero then the given curve will be contained in the resulting 'surf'. If the projection of the surface in the given direction would be self intersecting, then the range is trimmed to avoid this condition. The function may, at times, have to use approximate geometry. For such cases, tolerance specifies an upper bound on the distance by which a point on the actual geometry may deviate from its ideal position. While the function will usually satisfy this constraint, it is not guaranteed. If no surface exists which can satisfy the conditions (eg, the given curve is steep) then surf is given the value PK_ENTITY_null. If the given curve belongs to the geometry of a PART, then the new surf will become construction geometry of that PART. Otherwise it will become construction geometry of the SESSION.