Don't use assert
Removed (void) parameter
cp::Vec
Got rid of Shape's union
Removed unnecessary forward declarations