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.