GRASS was written in K&R C [15] which necessitated LUCAS to be written in either C or C++ to use the GRASS libraries. C++ was chosen as the programming language for LUCAS to allow for an object-oriented solution. While C++ is not a fully-object oriented language, it provides the C-compatibility and useful object-oriented extensions necessary for LUCAS.
LUCAS consists primarily of objects which contain both data and methods (procedures) which operate on that data. Figure 7 shows all of the major C++ classes found in LUCAS and their interaction.
Figure 7: Relationship among LUCAS C++ classes
In the following sections, each class is carefully outlined and its relationship to the other classes is described in more detail.