snooker sim to demonstrate collision detection and response in C++ and OpenGL