PK_CIRCLE_sf_t   



struct PK_CIRCLE_sf_s
    {
    PK_AXIS2_sf_t basis_set; --- a centre, a ref_direction and an axis
    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



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.