This section describes how the 2D and 3D features are represented in the Tina system. It includes both image features, such as edges and corners, as well as edge strings, and geometrical primitives (both 2 and 3 dimensions) recovered from them. It is possible (highly likely) that further primitives will be added in future releases of the system. Such primitives will be treated in a broadly similar way to those described here.
In the light of experience and to allow the system to be flexible to the requirements of the user, the basic representation of Tina primitives has been kept as simple and uniform as possible. This system has now been used succesfully in a continuing program of computer vision research for several years. Extendibility and generality is achieved by using a property list for the storage of additional information specific to each different application. This property lists field is always defined in other Tina structures as
struct list *props;
Property lists are used throughout the Tina system and are described in the chapter on list processing.
In addition each data structure contains a structure identifier
which is used to allow data transfer between machines. This is described further in the chapter dealing with the "serialisation process".
Extra information that describes the relationships between primitives (such as edge strings or order along the image rasters) is kept outside the primitives themselves. This approach further enhances the modularity of the representations.
The most important forms of generic data structure used throughout the Tina sytem are lists, doubly directed lists, and strings (these are described in a separate chapter of this programming guide). Additional data structures used to represent more specific data abstractions will be introduced in this chapter.