6.3 The CoronaScope Application
6.3.3 Desktop User Interface Integration
Qt is a cross-platform desktop application development framework with an extensive graphical user interface (GUI) module [34]. Coupling Qt with VTK allows desktop-style widgets to be used to display and edit data, while benefiting from VTK’s visualization capabilities. A class is provided that wraps a vtkRenderWindow in a Qt widget for display, and synchronizes event mechanisms between the two frameworks. A key benefit of this approach is the ability to change parameters on VTK filters, or even reconfigure the pipeline during run-time. For example, a combo-box lists each of the available graph layout algorithms. When a new layout is selected by the user, an event is fired that ultimately causes the current graph layout strategy to be replaced with the new choice. Doing so invalidates the data flow in the pipeline so that the next time rendering triggers an update request, the graph layout will be recalculated using the new filter.
In the case of the list of layout algorithms described in the previous example, being a small amount of static data it is a simple matter to hard-code the possible choices.
Delegate Model View vtkDataObject Render Render Edit
Figure 6.6: The model/view architecture as implemented in Qt provides a clear separa- tion of concerns between managing data and updating the display. A model communi- cates with a data source and presents a standard interface to components that provide a view. The view obtains data via the model, and individual data items are rendered by a delegate object. Changes to the model are signalled to all registered views.
To maintain a table-view of current landmarks is more involved, since the data can be changed in several places: loading a new XML file via the user interface; editing the values using the table-view in Qt itself; and, interactively by making a vertex selection within VTK. For this situation Qt provides a model/view architecture to separate the data model from the view (see Figure 6.6). The benefit of this architecture is that changes to the underlying VTK data object are automatically reflected in the data model and any attached view is automatically updated to display the new values. Similarly, changes to the model by editing values in the table view are passed through to the underlying data object, causing the navigation pipelines to be updated. Figure 6.7 contains screen shots of the table of landmarks, and other GUI components used to control CoronaScope.
6.4
Summary
The rationale for choosing the Visualization Tool Kit as an information visualization development framework for this thesis was that it allowed the rapid construction of a generic network visualization pipeline that could be branched, with the advantage that additional navigation support could be provided as a distinct pipeline. From the user’s point of view, such tools can be easily incorporated in their own visualization designs by composing pipelines from the required components. I described the implementation of several new VTK filters, and those that were used to create the landmarks overlay have since been incorporated in the public release of the VTK library.
96
Some of the assumptions implicit in the pipeline design, as it was originally intended for scientific visualization led to difficulties, particularly the need to identify item-level data during picking. Otherwise, the modular design provided many of the facilities needed for this project, for example the network visualization pipeline, interaction and event handling mechanisms, and integration with Qt. The new scene-graph API being devel- oped for VTK may prove to be a superior choice for future information visualization applications, none the less the final result was the development of a fully operational network visualization tool.
Figure 6.7: Screen shots of the CoronaScope toolbox. The Graph panel contains options for layout and node/edge labelling; the Land-
marks panel is used to import, export, and edit sets of landmarks and acts as a colour-class legend; and, the CoronaScope panel provides
Chapter 7
Conclusion
In this final chapter I summarize the problem of network navigation, reflect on the strengths and limitations of the cognitive theory-based approach, and the resulting de- sign of an overlay of landmarks. In conclusion, I offer some recommendations for future directions arising from this work.
7.1
Network Navigation
Information visualization supports exploratory analysis of relational data by allowing the user to interactively reconfigure and refine the view. A network is a visual representation of a graph that is particularly effective for understanding paths formed by sequences of nodes and edges, and navigation is the act of selecting and following such paths. There are cognitive costs incurred during navigation, partly due to the potential confusion aris- ing from false nodes that appear where two distinct edges cross. Also, the limitations of display dimensions and resolution with respect to increasingly large networks mean that visual clutter is inevitable, with the potential for users to become lost in “desert fog”. To counter this problem, pan and zoom allows the user to adjust the view, zooming in to read the fine details of nodes and edges, and zooming out to understand these local features within the global context, though doing so entails the additional cognitive costs of maintaining object-association during movements. These costs add up to form a “gulf of evaluation” in comprehending the network, and a “gulf of formation” whereby the information needed to form conceptual goals, for example “where do I go next?”, is not available, leading to task breakdown.
100