Section 4

Interactive Environment

 

 


4.1 Cell Modes: Fullscreen Mode, Stereo Mode

The IISS always starts in a mode in which multiple cells can be viewed. Any cell can be brought to the fore as a full screen window, by choosing the Full Screen button on the Options Panel and then picking a cell, or by selecting the pop-up menu item, Main->cell_disp->fullscreen , or by pressing the accelerator key z. Use the pop-up menu item, Main->cell_disp->sheet_view, or the a key to return to the multiple cell mode.

To access stereo, choose the Stereo button on the Options Panel and then pick two cells with the left mouse button, or pick just one with the middle mouse button. Frames will be paired up, with any singletons handled appropriately. The screen will enter stereo mode and display the stereo frame pairs, viewable with StereoGraphics hardware. Exit to the normal viewing mode as above.


4.2 Loop

Animation in the SpreadSheet is done within the context of a cell. The ordered set of frames in a cell can be looped in sequence, in several modes. This provides the user access to the third dimension in the SpreadSheet: depth within cells. When a frame is visible in a cell window, it is referred to as the current frame of the cell.

Loop control can be accessed via three methods. The Loop Panel can be opened by selecting Loop from the Options Panel, or by positioning the cursor inside a cell and then pressing the letter l key. Make sure the connection widget in the upper left corner of the form is set to the desired cell (see the Sheet overview for details on the connection widget). Direct access to loop control functionality is also available using keyboard accelerator keys or via the pop-up menu selections as shown below.


4.2.1 Linear Access

To advance one frame, press the > button in the Fine Control section of the Loop Panel. The keyboard equivalent is the right arrow key (to the left of the keypad 0 key), to be pressed when the cursor is inside the cell.

To back up one frame, click on the < button in the Fine Control section of the Loop Panel; the keyboard equivalent is the left arrow key. Looping will "wrap" when using these methods, so advancing from the last frame in a cell will result in the display of the first frame, and a backwards step from the first frame will bring up the last one.

Play once

To loop forward from the current frame, through all subsequent frames to the last, click on Play once and then the > button in the Animation section of the form; keyboard equivalent is the up-arrow. To loop backward to the first frame, select the < button under Animation (or down-arrow on the keyboard).

Cycle

To cycle repeatedly through the frame stack, click on Cycle and > or < under Animation. The keyboard accelerator is c (an on/off toggle), and the up-arrow and down-arrow keys will set the cycling to be increasing or decreasing order respectively.

Rock

To rock forwards and backwards repeatedly through the frame stack, click on Rock and > or < under Animation. The keyboard accelerator is r (an on/off toggle), and the up-arrow and down-arrow keys will set the rocking direction to be forward or backward respectively.

Blink

To alternate between the current frame and the frame immediately before or after it in the frame stack adjusting for the step size, click on Blink and > or < under Animation. The keyboard accelerator is b (an on/off toggle), and the partner frame is taken to be the next frame in the most recent direction of animation.

Stop

To stop animation, click on the square symbol (or s on the keyboard). Also, selecting the single frame advance or reverse, or any of the random access functions, will effectively stop an animation.


4.2.2 Animation Speed

To set the time delay between frames, use the slider labeled Delay in the Settings portion of the form. The interval delay can be varied between between 0.0 and 1.0 time units (seconds). When there is more than one cell looping simultaneously, whether grouped for synchronous animation or not, the delay will apply to all loops. The delay interval is a global setting since each cell does not support its own delay factor. On the keyboard, pressing i will cycle through preset delay intervals until the upper limit is reached after which the delay interval is reset to zero (fastest animation).


4.2.3 Step Size

To set the step size to be other than the default of one, edit the value in the Settings area labeled "Step size", and hit return. All animation henceforth will be over the subsequence of frames defined by [ current_index +/- (step*i) ] where i=0,1,2,... For example if the current frame index is 5 and the step size is set to be 2, the subsequence of all odd frames will be ready for animation; if the original frame instead were index 6, the subsequence of frames would have been all the even frames. In general, for each step size n, there are n different possible subsequences, called phases (consider the phase starting with frame 1, then the one starting with frame 2, then... starting with frame n-1). For an animation of monthly averages for example, a step size of 12 may prove to be of value. Note that if a random access method is used to call up a frame that is not in the subsequence, then the phase to which that frame belongs becomes the new effective subsequence; the step size remains unchanged.

Additionally, the step size can be escaped by holding the shift key. For instance, if the step size is 12 as in the example above, holding the shift key while pressing the arrow keys will step through the frames by one. This allows stepping though the frames one-by-one without requiring the loop parameters to be modified.

A temporary step size can be set by specifying a numeric value while holding the shift key. This behavior is similar to the random access explained below, but allows the step size to be escaped by an arbitrary number of frames. To achieve this behavior, enter an offset while holding the shift and then use the arrows to step by that amount. The shift key must be held both while entering the new offset and while using the arrow keys. When the shift key is released, the step size is returned to the step size as specified by the loop parameters. Of note, the offset continues to gather digits while the shift key is held. For instance, if 2 is pressed while holding the shift key and the arrow keys are used to jump, and then a 3 is pressed without first releasing the shift key, the temporary step size becomes 23. To prevent this the shift key should be released, and then held again before setting the offset to 3.


4.2.4 Paging Through Frames

Use the Page Up and Page Down selections on the form or the keyboard to step forward or backward through the frame sequence by one page size. A page size is 10% of the sequence length, or 10 frames, whichever is higher. Paging does not wrap from one end of the frame sequence to the other. If step size induces a proper subsequence of frames, paging will be restrained to operate within the subsequence.


4.2.5 Direct access

Individual frames within a cell can be displayed in directly in a random access fashion. In order to view the first frame in the subsequence within a frame-stack, click on First in the Loop Panel, or press Home on the keyboard. The last frame in a frame-stack (sub)sequence can be displayed by clicking on Last, or by pressing the End key on the keyboard.


4.2.6 Random Access

To access any frame in a sequence, edit the numeric input field in the Fine Control area of the form, and hit return. Also the slider can be positioned as desired; when a step size greater than one is in effect, the slider value will be snapped to the closest index within the current subsequence.

The first ten frames in a sequence can be displayed in random order, by pressing the corresponding numeric key on the top row of the main keyboard. Two additional frames frame 11 and frame 12 can be accessed using the - and = keys respectively. These twelve keys are sometimes referred to as the piano keys.

To access any frame without the aid of the Loop Panel, use the shift key: hold down the Shift key while entering a multi-digit frame index, then release the shift key to signal completion of the frame number.


4.2.7 Stereo

Some graphics hardware and monitors support stereo display. If your hardware is stereo-enabled then a cell can be put into stereo mode in several ways:

  1. Select Stereo button from Options Panel and select two frames using the Left and Middle Mouse Buttons to place data into stereo mode. The stereo pair datasets can be in two different cells in this method.
  2. Select from the pop-up menu: Main menu->cell disp->cell stereo
  3. Type the q-key inside the cell to place cell contents into stereo mode.

Note that in order for the stereo display to make sense, your dataset must have already been processed for stereo display. That is two images one for the left eye and another for the right eye should be in appropriate frames. If all the required frames are in one cell, the stereo pairs should alternate between left and right images for a time sequence of stereo datasets. Or if the stereo pairs are in two different cells then the left and right images should match up in the right animation order.

When in stereo mode, use only the keyboard interface to control animation and frame access. (The connection widget in the Loop form does not support linkage to the transient "stereo cell", and forms in general are not designed for stereo display.)


4.2.8 Stack and Group Dynamics for Loop

Looping commands are propagated to all members of a cell group. Most looping commands are absolute, in that they enforce precise values upon execution, e.g. random frame access, first frame, last frame, animation modes and step size. A few commands are relative; they affect a cell's parameters based on the cell's state, e.g. the single frame forward will increase the current frame index by one. Relative commands affect each cell group member based on that member's state; e.g. if grouped cells A1 and B2 start with current frame indices 5 and 22, after a single frame advance the indices will be 6 and 23 (in the absence of wrapping).

To synchronize loops in grouped cells, use the pop-up menu, Main->synch_view->frame_number. The current frame number, in the cell in which the command was issued, will be propagated to the other cells.

A note about forms operating in "auto-set" mode: when the connection widget features a green arrow pointing left, it means that changes to the form will immediately be sent to the cell or frame displayed in the widget. This does not mean however that all parameters in the form will be enforced among all cells and frames connected to it by linkage, frame stack and grouping propagation. Only the settings altered interactively will be distributed under "auto-set" operation. In "manual-set" mode there is a left arrow button; clicking on it does enforce all form parameters over the linked frames or cells.


4.3 Roam and Zoom

Adjustments to the scale and position of an image in a cell window is controlled at the frame level. Current limitations imposed by the GL library include: (i) fractional zoom not supported on the Indigo; (ii) viewing more than 2K x 2K pixels in a cell window can cause spurious data to be displayed.

There is no Zoom Panel in the current release of IISS.


4.3.1 Initial Viewing Region

The default viewing region for a new frame is initialized to be the lower left corner of the image.


4.3.2 Roam

Position the cursor inside the cell window, and drag the left mouse button (depress it and hold it down while moving the mouse). The frame will be continually redrawn, such that the image point beneath the cursor remains the same. Drag the mouse to the left, to see more of the image on the right, and vice versa. Release the mouse button to stop roaming. Even if the mouse is dragged out of the window, roaming will still continue.

A frame can be shifted by a single image pixel using the arrow keys on the auxiliary numeric keypad. Keys 4 and 6 will shift the image left and right, while 8 and 2 will shift the image up and down.

Accessing the corners of a frame's image can be accomplished easily, via keys on the auxiliary numeric keypad: The 1-key sets the image, at its current scaling factor, so that its bottom left corner is flush with the corresponding window edges. The 7-key accesses the upper left, 9 accesses upper right, and 3 accesses lower right.


4.3.3 Zoom

The initial zoom factor for a frame is 1, so each image pixel occupies one screen pixel. To increase the zoom i.e. the ratio of screen pixels to image pixels in one dimension, use the "+" key on the auxiliary numeric keypad. This will increase the zoom (scale) by a predetermined amount: by a percentage (15%) on machines which support fractional zoom, and by an increment (+1) on all other machines. To reduce the zoom, use the "-" key or equivalently the "Enter" key, on the auxiliary keypad. When the zoom factor is changed, the image is redrawn, and the point at the center of the cell window is preserved. All other points move in toward (or out from) the center. The center may appear to change position slightly during changes in scale, but this is only an artifact in the rendering process, due to drawing a complete image pixel in the lower left corner of the window.

The center point is also maintained when the cell window changes size i.e. when it goes to full screen.

To set the zoom factor to 1 while preserving the center point, press the "." key on the auxiliary numeric keypad.

To reset the zoom factor to 1 and view the bottom left corner of the frame, press the 0-key on the keypad.


4.3.4 Stack and Group Dynamics for Zoom

Zooming commands are propagated to all frames in a stack or cell group. The following commands are absolute, i.e. they enforce a precise viewing region upon execution: cornering (keys 1, 3, 7, 9), reset (key 0), and in part the reset-scale command ( key ".") . The rest of the commands are relative, i.e. the state of a frame prior to the command influences the state of the frame after the command.

To synchronize frames within a cell or group, use the pop-up menus, Main->synch_view->translation (or scale or roi). The frame in the window of invocation will be the source of the absolute coordinates (center point and scale factor) which will be propagated to the other frames. Several display parameters can be synchronized simultaneously as shown below using menu options.

At the time of frame creation, the viewing region defaults to the lower left corner at a zoom of 1. Thereafter it may be changed using any available methods, even prior to its formulaic evaluation; once a formula has been evaluated and image data is available to be drawn, the ROV parameters which have accumulated will be used. So for example in view-driven mode, zooming on the top frame of a frame stack and then advancing to an un-evaluated frame will result in (evaluation followed by) the new image being drawn with a viewing region matching the previous frame's viewing region.


4.4 Display Parameters

Each frame possesses its own individual display settings, which affect the appearance of the frame when it is drawn in a cell. These settings include a colormap, and any drawing besides that of the base image. The options are described below.

The Display Panel can be opened by selecting Display from the Options Panel, or by positioning the cursor inside a cell and then pressing the d key. Make sure the connection widget in the upper left corner of the form is set to the desired frame (see the Sheet overview for details on the connection widget).


4.4.1 Toggles (on/off)

The following items can be toggled on/off from the Display Panel. Keyboard accelerators are listed when present.

Overlay
The overlay image is defined as part of a frame's formula; it consists of a binary image, containing values of 0 and 255. Overlay color is set on startup, and stored in any header file.
Keyboard accelerator: letter o
Pop-up menu: Main->frame_disp->overlay
Default: ON
Text
The text content is currently defined as part of a frame's formula, using the Read_text[] operator. Position and color are set on startup, and stored in any header file.
Keyboard accelerator: none
Pop-up menu: Main->frame_disp->text
Default: ON
Frame number
The index of the frame in the cell's frame stack is a single number during ordinary viewing, and during stereo viewing it includes a pair of frame references.
Keyboard accelerator: none
Pop-up menu: Main->frame_disp->frame_num
Default: ON
Evaluation Status
A frame's formula may be edited and saved without forcing a re-evaluation. In this situation, any previous data is retained and displayed, and the frame data is termed out-of-date with respect to its formula. The status indicator for this is a magenta circle in the upper left corner of the window. While a frame is being evaluated the status indicator is drawn in yellow. When a formula has been successfully evaluated, the frame is up-to-date and the indicator is green. A red status indicates that an error occurred during evaluation.
Keyboard accelerator: none
Pop-up menu: Main->frame_disp->eval'n_status
Default: ON
Color wedge
A color wedge (ramp) is a linear display of the range of colors in the associated image e.g. an 8-bit image would warrant a wedge with values 0 through 255. See below for more information.
Keyboard accelerator: w
Pop-up menu: Main->frame_disp->color_wedge
Default: OFF
Data probe
The data probe is a utility for performing queries on data values in a frame. See Section 4.6 for details.
Keyboard accelerator: p
Pop-up menu: Main->frame_disp->data_probe
Default: OFF

4.4.2 Colormap

The colormap browser in the Display Panel shows the frame's current colormap (when auto-get is active) and allows the user to change it. The colormap offset, controllable via a pull-down menu, determines which of the 16 colormap segments in the system color table is used. See Section 4.5 below.


4.4.3 Color Wedge

A rectangle displaying the entries in the colormap can be displayed with the image as described in Section 4.5 below.


4.4.4 Stereo Display

Use of the Display Panel while in stereo display is discouraged. When in stereo, use only the keyboard interface to control display parameters. The connection widget in the Display Panel does not support linkage to more than one frame at a time, and forms in general are not designed for stereo display.


4.4.5 Stack and Group Dynamics for Display Parameters

Display commands are propagated to all frames in a stack or cell group.

A note about forms operating in "auto-set" mode: when the connection widget features a green arrow pointing left, it means that changes to the form will immediately be sent to the cell or frame displayed in the widget. This does not mean however that all parameters in the form will be enforced among all cells and frames connected to it by linkage, frame stack and grouping propagation. Only the settings altered interactively will be distributed under "auto-set" operation. In "manual-set" mode there is a left arrow button; clicking on it does enforce all form parameters over the linked frames or cells.


4.5 Colormap

A frame containing a single channel of data (grayscale image) is frequently displayed in conjunction with a color look-up-table (LUT), in a process known as pseudo-color display. In this approach, each distinct image value is mapped to a distinct color; typically image values range between 0 and 255, while colors are expressed in their red, green and blue components, each as a number between 0 and 255. A sample set of colormaps are included with the SpreadSheet; others can be generated using the SGI utilities "showmap", "cedit", "interp" and "savemap"; colormaps saved using "savemap" should have a suffix of ".sgi", and should be put into the colormap directory.

Selecting the LUT button in the Options Panel brings up the Colormaps Panel shown below. The Colormaps Panel can also be accessed using the Read Colormaps... button in the Display Panel shown above.

Each frame can store its own colormap; the colormap browser in the Display Form shows the frame's current colormap (when "auto-get" is active) and allows the user to change it. The colormap offset, controllable via a pull-down menu, determines the position in the system color table at which the colormap should be installed. The offsets represent multiples of 256. Offsets provide the user with a means of assigning frames to different segments of the system color table, so that up to 16 different colormaps can be simultaneously used, with no false color effects. On VGX systems, the user is encouraged to avoid offset 0, since this segment of the color table determines the colors for the forms interface, and often affects the window manager too. Happily, on VGX systems the graphics hardware can offset colormaps with virtually no impact on performance.

The special first entry of the colormap browser ("use current offset") indicates that no colormap is to be loaded for the frame, rather, it will make use of whatever colors are already in the color table.


4.5.1 Color wedge

A rectangle displaying the entries in the colormap can be imposed on the image. To set the display characteristics of the color wedge, use the widgets in the Color Wedge area of the Display Form. Direction can be set via the pull-down menu. Length and width are expressed as percentages of the cell window dimensions. Position can be set via the positioner widget; color wedges are restricted to staying inside the window boundaries. A color wedge will not change position when an image is roamed and zoomed.


4.6 Overlays

The IISS currently supports the display of image data in the hardware overlay planes. The overlay image may contain up to 15 different colors (i.e. maximum of 4-bits with the index value of zero reserved for transparent pixels) in the overlay planes. If the overlay image pixel values are in a range outside of 0 to 15 the IISS simply looks at the lowest 4 bits of the pixel value to assign colors. Since some hardware platforms support fewer than 4-bit overlays there is an option in the *.iss header file to specify the number of overlay planes to use.

Since the default number of overlay planes is 2 be careful to change the default value to 4 to make sure that your 4-bit overlay image looks correct. The example below shows the information from the iss header file that indicates that 4-bit overlays should be used and gives the RGB color values for each color index from 1 through 15 (since the zero value is reserved for transparent it is not specified).

overlay_planes( 4 )
overlay_colors( 210, 180, 139,
208, 252, 166,
0, 0, 255,
255, 255, 0,
82, 164, 5,
207, 249, 51,
255, 255, 224,
211, 211, 211,
0, 255, 0,
255, 255, 0,
0, 0, 255,
255, 0, 255,
0, 255, 255,
255, 255, 255,
0, 145, 255 )


4.7 Data Probe

The data probe is a utility for performing queries on data values in a frame. Currently there is one type of probe: a point probe. The point probe is activated by typing the p-key inside a frame. It is positioned via the middle mouse button; the image pixel nearest to the cursor becomes the probe parameter value, and the gray value or RGB values for that pixel are displayed. Probe settings are propagated via frame stacks and cell groups; there is an independent probe belonging to each frame. The data probe behaviour when several frames are grouped together is controlled by selecting menu options from the Main Menu as shown below. Data probe group dynamics can be based on absolute or relative coordinates. Other parameters that can be toggled are described in Section 4.4.


4.8 Surface Visualization

Surface visualization is supported through the Surface[ ] or equivalentaly the Flyby[ ] formula operators. Currently the Surface button in the Options Panel is not active and a Surface Panel is not yet available. Flyby header file information can be read including flightpath specifications. Controlling the motion along the flightpath can be done using keyboard controls as shown in Appendix D; for example, Alt-Right arrow to advance one step along the flightpath.


4.9 Volume Visualization

Volume visualization is supported through the Volume[ ] formula operator and the Volume Panel. The Volume Panel can be accessed by selecting the Volume button in the Options Panel using one of the mouse buttons or by typing the v-key inside a frame. The Volume Panel is shown below.