Math for Game Programmers: Interaction With 3D Geometry