 |
PK_CIRCLE_sf_t |
|
struct PK_CIRCLE_sf_s
{
PK_AXIS2_sf_t basis_set; --- centre, plane normal, direction to t = 0
double radius; --- the radius of the circle(>0)
};
typedef struct PK_CIRCLE_sf_s PK_CIRCLE_sf_t;
Specific Errors:
PK_ERROR_radius_le_0 radius is less than or equal to zero
Used in:
PK_CIRCLE_ask
PK_CIRCLE_create
The parameterisation of the circle is as follows:
C = 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
P( t ) = C + R( ( cos t )x + ( sin t )y ) where ( 0 <= t < 2PI )
Radius must be larger than zero.