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 )