An ArcBall creates a sphere around the 3-D scene and enables the user to click on the sphere’s surface and drag it around, thus causing the scene to rotate.
Use an ArcBall instead of a Call List command to place the scene in an ArcBall. Scenes that are attached to an ArcBall automatically respond to clicks and drags of the mouse. Custom programming is not needed. However, rotations made in the arcball are not saved. (Technically, the ArcBall is surrounded by an implicit Push Matrix and Pop Matrix block, so the movements are gone after it returns. See Using the Matrix Stack for details of pushing and popping.)
scene << CallList(shape); // send the display list to the scene
scene << ArcBall(shape,2); // send the display list to an arcball
Note: ArcBall comes from an article by Shoemake (1994) found in Graphics Gems IV, published by Academic Press.
scene << Show Arcball(state)
where state is During Drag, Always, or Never.
Showing the Arc Ball