Progressive surfaces allow you to control precisely and continuously the level of detail of a GtsSurface. They are built off-line by storing the sequence of edge collapses performed during surface simplification (see gts_psurface_new()). Fast traversal of the pre-built sequence allow on-line selection of the required level of detail.
Using the gts_psurface_write() function a text representation of a progressive surface can be written to a file, pipe or socket. This text representation allows the progressive transmission of a surface, starting with the coarsest representation and progressively refining it as data is read or received (see gts_psurface_open(), gts_psurface_read_vertex() and gts_psurface_close() for details).
The progressive surface object.
derived from GtsObject. The field s is the GtsSurface being refined or coarsened by operations on the progressive surface. All the other fields must be considered private and accessed only through the following functions.
This function works in exactly the same way as the
gts_surface_coarsen() function, except that the history of edge
collapse is saved in an array of GtsSplit objects. This allows for
dynamic continuous multiresolution control of the input surface.
Calls func for each (potential) vertex of ps, whether actually used
or not. The vertices are called in the order they were created during the
edge collapse operation.
Creates a new GtsPSurface prepared for input from the file f
containing a valid GTS representation of a progressive surface. The initial
shape of the progressive surface is loaded into s.