SMS: Mathematics for 3D Game Programming and Computer Graphics