CRCOSU   

Equivalent PK functions: PK_CONE_create

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.