This is an implementation of lab 1. It is somewhat complete.
The status bar at the bottom of the window provides various statistics.
While a feature is being created, everything in the window except the feature that is currently being created is stored in memory and redrawn each time the mouse moves.
Drawing lines by dragging currently works.
Provisions for drawing all other features are extremely buggy and/or do not work.
Internally, it is not optimized.