CRCOSU ( posn, axis, radpsn, angle, cone, ifail )
=================================================
Create a conical surface.
Receives:
KI_vec_centre posn --- position on cone axis
KI_vec_axis axis --- axis direction
<KI_dbl_radius> *radpsn --- radius of cone at 'posn'
KI_dbl_angle *angle --- half-angle of cone ( radians )
Returns:
KI_tag_surface *cone --- conical surface
KI_cod_error *ifail --- failure code
Specific errors:
KI_radius_lt_0 radius negative
KI_bad_angle cone angle incorrect
KI_radius_too_large invalid radius value
Description:
A conical surface is created according to the parameters specified.
The mathematical definition of a cone defines two half cones, apex to
apex on a common axis. Only one of the pair is created by this routine.
The half cone is fixed in space by 'axis', the axis direction; 'posn', a
position on the cone axis and 'radpsn', the radius of the cone at
'posn'. 'radpsn' may be given as zero, so that 'posn' is the cone apex.
The sign of 'angle' determines which of the two possible half cones
through the circle defined by 'posn', 'axis' and 'radius' is created.
sign of angle axis direction
--------------------------------
positive towards apex
negative away from apex
Parasolid will, however, convert the cone representation internally to one
with a positive angle, with axis pointing towards the apex.
The surface normal points away from the axis.