Implementation of 3D snooker simulator : foundation classes development