The LandscapeConditionLabel class allows a grid cell on multiple maps to be viewed as a single vector (see Figure 8 and Table 3). The LandscapeConditionLabel class is actually a virtual class, i.e., it is never instantiated.
Figure 8: Landscape Condition Label (LCL) as a vector across
multiple map layers
Two other classes are derived from this base class: the LCL class and
the LCLrow class. These two classes have nearly identical methods,
but one is designed to operate on a single landscape condition label,
and the other on a row of landscape condition labels. The two classes
are friends to each other to allow access to their private
data members. This also allows for operators to improve code
readability.
The LCL class
manages its own storage, while the LCLrow class relies on its own
RowBuf class to manage its memory usage. The RowBuf class provides
for simple management of a single or multiple row buffers; vectors
each containing a row of grid cells. Because GRASS uses row-oriented
access to raster maps, all of the map I/O for LUCAS is performed
through the use of row buffers.