The implementation of a 3D snooker table using OpenGL