struct PK_CYL_sf_s { PK_AXIS2_sf_t basis_set; --- a point, reference direction and an axis double radius; --- the radius of the cylinder }; typedef struct PK_CYL_sf_s PK_CYL_sf_t; Specific Errors: PK_ERROR_radius_le_0 The radius for the cylinder was less than or equal to zero See documentation for PK_AXIS2_sf_t. The parameterisation of a cylinder is as follows: P = basis_set.location x = basis_set.ref_direction y = basis_set.axis X basis_set.ref_direction ( cross product ) z = basis_set.axis R = radius(>0) S(u, v) = P + R( (cos u)x + (sin u)y ) + vz ( 0 <= u < 2PI )