Small change to bring it into common naming convention
Further classify source files into languages

Other modules (notably the precompiled header one) may set properties
directly on the source file; we need to separate them into categories
for which language they belong to.
Present interface for top surface creation

The top surface extends a regular 2D grid with information how to
navigate the underlaying 3D grid.
Handle memory management for top surfaces

Initialize the structure so that it is safe to throw exceptions when
working with it, and provide a destructor that cleans up any work done
so far.

This makes it unusable from C, but we'll provide wrappers for that.
Use builder object to encapsulate construction

Instead of passing a lot of variables as parameters around in various
procedures, or have one large procedure with a lot of variables, then
put all the variables that must be shared into a construction object.
Create frame of the new top surface
Map elements in top surface to active columns

Generate a cell for every column in the fine grid which has at least
one active element, and assign every element of the fine grid into
their right column.
Provide wrapper object for the VE upscaling
Example of how to wrap an existing simulation in a VE upscaling

This doesn't work yet, because it doesn't do all the steps in the
upscaling process.
Add copyright declaration
Change example to use more idiomatic foreach-construct
Extract active grid points for top surface
Basic value types for addr. items in 2D struct. grids
Move basic grid stuff into its own compilation unit

Make it easier to review the basic grid index calculation by keeping
it in its own unit. Also increases the chance of ever reusing it.
Use more descriptive types for Cartesian indices
Use general run-length iterator for columns
Make dimensions comparable
Extend side and corner structures to three dimensions
Improve function name
Improve method names (don't clash with data members)