Viewpoint Navigation

Camera Model

ProteinShop uses a perspective-projection camera with a fixed field of view for 3D visualization. The camera is defined by the following parameters:
View Center
The 3D point the camera is "focused" on. Changing the camera orientation will rotate the entire view around this point.
Camera Orientation
The position of the camera on a sphere surrounding the view center (measured in angles alpha and beta), and the rotation of the camera view around the view direction.
View Distance
The distance between the camera position and the view center. By changing the view distance, the camera view appears to zoom in/out. When a new protein is loaded/created, or the "Center View" menu entry is selected, the view center will be set to the protein's center point, the camera will look along the negative z-axis with the y-axis pointing up, and the view distance will be calculated such that the entire protein is visible.
Figure 1: ProteinShop's camera model. The perspective projection, fixed field-of-view camera moves on the surface of a sphere around the current view center.

Trackball Interface

ProteinShop supports a trackball interface that allows direct manipulation of the displayed image to change view center, camera orientation and view distance.

Rotating

The main display window in ProteinShop is overlayed with a "virtual trackball," an imaginary sphere that can be rotated by dragging it with the mouse. The trackball is grabbed by pressing the left mouse button (without holding down any modifier keys), and can be dragged by moving the mouse as long as the mouse button is depressed. The effect of dragging on camera orientation depends on the position of the mouse cursor when the left mouse button was pressed. If the mouse cursor was close to the display window's center, dragging left/right will rotate the view around the vertical axis and dragging up/down will rotate the view around the horizontal axis; if the mouse cursor was close to the window's boundaries, dragging in a circular motion around the window's center will rotate the view around the window's center.

If the left mouse button is released while the mouse is still being moved, ProteinShop will keep the display spinning according to the mouse's movement direction and speed at the moment the mouse button was released. Spinning will stop as soon as any mouse button is depressed again.

Panning

Panning allows to move the view center in a plane perpendicular to the current view direction. Panning is started by pressing the middle mouse button (without holding down any modifier keys), and continues as long as the middle mouse button is depressed.

Zooming

Zooming, or, more precisely, dollying, changes the view distance. After pressing both the left and middle mouse buttons, view distance can be increased ("zooming out") by moving the mouse upwards, and can be decreased ("zooming in") by moving the mouse downwards, as long as both mouse buttons are depressed.

View Recentering

The trackball interface described above works well to examine entire protein structures, and smaller details, from all sides. Examination is most convenient when the view center is close to the structure being examined; in that case rotating and zooming work most intuitively. ProteinShop provides shortcuts that move the view center to points of interest.

Show Entire Protein

ProteinShop's camera can be reset to its default position - showing the current protein in its entirety - by selecting the "Center View" entry in the "View" menu, or by pressing the <Alt>-c hotkey. This will set the view center to the protein's center point, set the camera to view along the negative z-axis with the y-axis pointing up, and calculate a view distance such that the entire current protein is visible.

Center View on Atom

The trackball interface described above only directly supports moving the view center in a plane perpendicular to the current viewing direction. The view center can be moved in 3D by sequences of rotating and panning interactions, but setting the view center to a position of interest inside a protein can be tedious. Therefore, ProteinShop supports to move the view center to any atom inside the current protein by first pressing the Z hotkey, and then clicking the left mouse button on any atom currently visible in the display window. ProteinShop will then show a short animation as the view center moves from its current to the requested position. ProteinShop determines which atom was selected by the atoms' van-der-Waals radii. In other words, when the current rendering mode is set to display van-der-Waals spheres, the view center will move to the atom whose sphere was underneath the mouse cursor when the left mouse button was clicked.