next up previous contents
Next: Installing a Tv on Up: prog_ref Previous: Call Scripts   Contents

Tina View

TinaView is an interactive graphics system aimed at vision applications.

The design aims were:

  1. Window system independence . This has been achieved by separating the display facilities between Tv's, logical display devices which are window system independent, and Tvtool's, actual tools on the screen which have standard facilities, and involve only a small amount of window system dependent code.
  2. Integration with the window system for example displays should automatically rescale themselves to fit a resizable windows.
  3. Flexible allocation of display facilities To achieve this the user defines Tv's for various purposes, e.g. image display, and multiple copies of these can be installed on different physical Tvtools.
  4. Automatic provision of standard visualisation facilities For example, arbitrary scaling of 2D images on display, zooming and rotating displayed 3D objects, and changing from orthographic to perspective viewing.
  5. Facilities for programming standard interaction modes such as choosing a region of interest, applying a function to a list of objects picked from the window, or associating functions with mouse button up drag and down events.
  6. Provision of standard graphics utilities such as graph plotting, wire frame display, surface rendering etc.

The tv data structure in the standard TINA system is used for displaying graphics under X windows on UNIX machines, though the approach taken makes re-implementation on other graphics platforms relatively simple (requiring new versions of the "screen" functions only). It contains sufficient information to control the construction of several types of graphical display.

  1. Direct graphical output to a Tv window in direct pixel coordinates.
  2. Graphical display in a prespecified 2D coordinate system such as an image.
  3. Graphical display in a 3D cartesian coordinate system such as generated by a 3D vision system.
  4. Graph plotting routines for 2D data display (histogramming etc.)
  5. Surface ploting for data visiualisation of 3D surfaces (including hidden line removal).
  6. Red/green anaglyphs for stereo data display.

The standard tv libraries are thus extensive with a wide variety of graphical applications supported. During mouse interaction the graphics display uses a different set of display funtions as specified by skeldraw functions. These will correspond to reduced plotting versions of the fulldraw for reasons of speed. For example the image is normally displayed only as a wirefram mesh during zooming. Tina uses a standard naming proceedure to produce graphics where functions ending in a "3" correspond to 3D graphics, a "2" for 2D graphics and xy for direct plotting on the graphical window. These functions are generally built up as a series of wrappers around the "xy" or IPOS graphics functions and the relavent projection routines. The loweset level functions are the "screen" functions which plot data directly onto the machine dependant bit map.

The easiest way to use tv graphics is to make use of pre defined display utilities, see the chapter on Programmer Graphics Support. It is recommended that you gain some familitarity with the existing features before attempting to write your own. The simplest way to write your own TinaView routines are as a dead graphics display system. In this mode the display will not refresh itself on damage, resizing etc. and some interaction modes are not available. This is not recommended, but gives an easy introduction to the use of TinaView. More advanced programming will use the fulldraw, skeldraw and backdraw callbacks to make the application `live'.

next up previous contents
Next: Installing a Tv on Up: prog_ref Previous: Call Scripts   Contents
root 2019-05-22