RRVDEP   

Equivalent PK functions: PK_TOPOL_render_line

RRVDEP ( nopts, iopts, optdta, entys, transf, vmatrx, ifail )
=============================================================

  Generate view dependent rendering data.

Receives:
 <KI_int_nitems>           *nopts          --- number of options in 'iopts'
  KI_cod_rrop               iopts[nopts]   --- rendering options
 <KI_tag_list_dbl>          optdta[nopts]  --- option data lists
  KI_tag_list_entity       *entys          --- entities to render
 <KI_tag_list_<transform>> *transf         --- entity transforms
  KI_dbl_view_mx            vmatrx[16]     --- viewing transform matrix

Returns:
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_missing_geom           A topological entity has no associated geometry
  KI_abort_from_go          Rendering aborted by GO
  KI_bad_view_mx            Invalid view matrix
  KI_wrong_transf           Unsuitable transform
  KI_not_same_length        Entity and transform lists are of different lengths
  KI_wrong_entity_in_list   Entity is not a part, face or edge
  KI_bad_option_data        Option data incorrect for specified options

Description:
  RRVDEP outputs, through the Graphical Output interface (GO), data for a
  picture of the entities which is dependent on the viewing angle and
  distance (e.g. silhouettes); view independent data is not output.

  RRVDEP can render assemblies, complete bodies and/or individual faces. Edges
  are ignored.

  Transforms may only contain translation and rotation components.  Reflections,
  scales and shears are not allowed.

  The data output is selected by options in 'iopts'. For some options the output
  is further controlled by data in a real list whose tag is passed in the
  corresponding entry in 'optdta'. If no data is required for an option a null
  tag should be passed.

  Options accepted are:-

      Option                   Contents of option data
      ===================================================================
      RROPSI: SIlhouette-data  none
      RROPTR: TRansform        none
      RROPPS: PerSpective      none
      RROPCT: Curve Tolerance  (1) Chord tolerance in model units
                               (2) Maximum chord length in model units
                               (3) Angular tolerance in radians
      RROPVP: ViewPort         (1,2,3) Centre of viewport in model coordinates
                               (4,5,6)    1st axis of viewport in model
                                          coordinates
                               (7,8,9)    2nd axis
                               (10,11,12) 3rd axis
                               (13) Length of viewport along 1st axis in model
                                    units
                               (14) Length along 2nd axis
                               (15) Length along 3rd axis

  Option RROPSI causes silhouette lines to be output. If not present no data
  will be produced by RRVDEP. Silhouettes coincident with real edges are not
  output.

  Option RROPTR is required if any of the entities is to be rendered in a
  transformed position (e.g. as part of an assembly). If it is not specified,
  the contents of 'transf' are ignored, and entities are rendered in their
  local coordinate system.

  Option RROPPS should be specified if a perspective view is required; by
  default the system will produce a view from infinity, taking only the
  view direction from 'vmatrx'.

  Option RROPCT controls the representation of curves as polylines. A curved
  edge is approximated by a number of straight lines called chords. The first
  value in the option data is a chord tolerance. This is an upper bound on
  the distance from each chord to the curve it is approximating. The second
  value is a chord limit. This is an upper bound on the length of a chord
  used in the approximation of a curved edge. The third value is an angular
  tolerance. This limits the angular error between a curve and a chord used
  in its approximation. This is an upper bound on the sum of the two angles
  formed between the chord and the curve tangent at each chord end. If this
  option is not specified a default angular tolerance is used.
  If the option RROPVP is supplied then the system will attempt only to render
  those bodies/faces which are inside or partly inside the viewport supplied.

  The viewport is a cuboid region of model space and should be supplied in the
  option data as a real list consisting of a centre, three axes, and lengths in
  model units along these axes. The axes must be orthogonal but need not be
  normalised.

  While all faces that are inside or partly inside the viewport will be
  rendered, no attempt is made to trim the output to the boundaries of the
  viewport, and bodies or faces lying entirely outside, but close to it may be
  rendered.