Data Storage and the Scaling System used within TGS
All primitives store their coordinates at two levels:
- double precision floating point
numbers relating to coordinates in the real world
- integers relating to units on the output device
This approach provides the highest level of flexibility for scaling,
coupled with the highest possible display update speed for repaints,
panning, and animation.
A regeneration operation is performed as required to calculate the
device unit coordinates from the real coordinates. For very complex
drawings this can take a few seconds, so special techniques are employed
to regenerate what will actually be within the display window first,
followed by what will be outside the window.
TGS uses a comprehensive 4 tiered coordinate scaling system, and uses
3x3 matrices to perform the conversions between the different coordinate
systems.
This scaling system allows the application program to use one or more
real coordinate systems which are in context with the graphics being
processed. eg. mapping info can be defined in terms of the map grid in
use. The scaling system then allows for page placement, special print
operations such as multipage printing, and translation to the coordinate
system required by the output device.
Control primitives may be placed throughout the primitive
table to dynamically change the scaling and placement of graphics throughout
a drawing.
|