OUTSUR   

Equivalent PK functions: PK_CONE_ask
PK_CYL_ask
PK_OFFSET_ask
PK_PLANE_ask
PK_SPHERE_ask
PK_TORUS_ask

OUTSUR ( surfac, sftype, vec1, vec2, d1, d2, sense, ifail )
===========================================================

  Output surface.

    Can be called from the GO.

Receives:
  KI_tag_surface           *surfac         --- surface to be output

Returns:
  KI_cod_tysu              *sftype         --- surface type
  KI_vec                    vec1           --- first vector defining surface
  KI_vec                    vec2           --- second vector defining surface
  double                   *d1             --- first double defining surface
  double                   *d2             --- second double defining surface
  KI_cod_logical           *sense          --- surface sense. see below
  KI_cod_error             *ifail          --- failure code

Specific errors:
  KI_wrong_sub_type         not a surface supported by this routine

Description:
  The 'sense' and 'sftype' arguments are returned for all surface types. Further
  information is returned according to the value of 'sftype':

  Type               Arg   Definition                normal if sense == KI_true
  =============================================================================
  Plane (TYSUPL)    'vec1' position in plane         same as 'vec2'
                    'vec2' normal direction

  Cylinder (TYSUCY) 'vec1' position on axis          away from axis
                    'vec2' axis direction
                    'd1'   radius

  Cone (TYSUCO)     'vec1' position on axis          away from axis
                    'vec2' axis direction
                    'd1'   radius of cone at 'vec1'
                    'd2'   half angle (in radians)

  Sphere (TYSUSP)   'vec1' centre position           away from centre
                    'd1'   radius

  Torus (TYSUTO)    'vec1' centre position           away from circle described
                    'vec2' axis direction            by major axis
                    'd1'   major radius
                    'd2'   minor radius

  Blend (TYSUBL)    'd1'   blend radius

  For all other surface types only the type-code is returned.  Use this code
  to select the appropriate output routine.

  If sense == KI_false then the surface normal is opposite to the normal
  described for sense == KI_true.

  Where no information is returned, the relevant argument is set to zero.