The drawing stage is very simple. Its task is to add graphics items to the graphics scene and position them appropriately.
So the visitor starts from graphics coordinates 0, 0 and visits each cell of the virtual canvas. For each cell it adds a graphics primitive to the scene if necessary and updates the base point for the next cell. The actual painting of the graphics scene is done by the QT library.
This is it about the implementation.