I really like your work, this also quite a code, I measure almost 300 classes, you must have been working this for a very long time.��
I can confirm your Circle bug with my mac as well.��
One thing it could be improved is drawing of polygons. To finish the polygon you instruct that the last point should be the same as the first point but it can easy to forget what was the first point if the polygon is quite complex so I would advice to use the right click instead. I only started to play around with it and I really like , great work !��