 |
PK_CYL_sf_t |
|
struct PK_CYL_sf_s
{
PK_AXIS2_sf_t basis_set; --- location, cylinder axis, drn. to u = 0
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
Used in:
PK_CYL_ask
PK_CYL_create
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 )