All the openGL stuff is located in MyGLTools.
The objects we have to draw are the cameras and the ping-pong balls. We have chosen to draw cones for the cameras and spheres for the balls. The cones are aiming at the direction of the camera focal axis and the sphere are positionned as they are in the reality. The positions and rotations of the cameras are given by the calibration. The positions of the 3D-points are given by the 3D-Reconstruction.
Placing the objects:
We compute the position of each item for each frame to allow a Real-Time processing. Nevertheless, cameras are static, we could have use a glList but it is far too complicated for a so simple problem (Who uses a bazooka to shoot a fly ;) ).
For cameras, we have 2 steps to place them. First we translate the current modelview matrix in the right position with glTranslatef and then we rotate it to aim the cone in the right direction with glMultMatrixf.
For the balls we just need a translation to place them.
Moving in the Scene:
To be able to locate all objects in the scene, we build a "free view" system to move in the 3D-World. You can move the point of view as if you're a ghost in a FPS like Unreal Tournament or CounterStrike (we recognize the geeks ;) ). The motion system is as follow : we got a position vector and a line of sight vector.
The direction is given by a mouse move whiile clicking on the right button. I have followed this tutorial to build my motion features. You can strafe with left and right keys. Walk forward and backward with up and down keys. And run forward and backward with PageUp and PageDown keys.