Goals Summary:
The list below summarizes 3.x refactoring goals. Detailed description of these goals is available from: 3.0 Refactoring Goals.
3.1.1: Reuse GUI components where appropriate to improve consistency of look and feel of interface
3.1.2: Simplify the GUI: address usability issues arising from GUI complexity (too many buttons)
3.13: Adapt consistent error handling mechanism that avoids current problems such as too many popups.
3.1.4: Improve rendering control: currently there is no way to control when a re-render is triggered
3.1.5: Reduce/eliminate startup delays when working with large data or slow file systems
3.2.1: Facilitate addition of foreign data importers into vaporgui via the DataMgr
3.2.2: Facilitate addition of new renderers and associated GUI control
3.2.3: Facilitate the development of new OpenGL Shaders
3.2.4: Facilitate development of alternate UIs (e.g. scripting, web-based)
3.2.5: Facilitate GUI development by providing a GUI toolbox for complex and common interaction widgets
3.3.1: Native support for more general structured grids (e.g. curvilinear), and remove restriction that all data must reside on a single grid
3.3.2: Native support for unstructured grids (e.g. MPAS, ICON)
3.3.3: Enhance VDC to better support CF compliant data
3.3.4: Remove restriction that only single data set may be loaded at one time
3.3.5: Support rendering spherical data without projecting to Cartesian space
3.4.1: Provide centralized management and usage policies for OpenGL, and higher level drawing abstractions.
3.4.2: Improve code reuse and eliminate multiple implementations of common functions
3.4.3: Eliminate unnecessary task-level parallelism in GUI (e.g. animation support)
3.4.4: Improve code maintainability: remove dead code, better document, better adherence to C++ best practices
Goals Status
Item | Desc | prototype deliverable | 3.0 deliverable? | Status | Notes |
---|---|---|---|---|---|
3.1 | Improving Usability | ||||
3.1.1 | Reuse GUI components | N | Y | In progress | |
3.1.2 | Simplify GUI | Y | Y | In progress | |
3.1.3 | Error handling | N | Y | In progress | Need to incorporate into renderers. Elsewhere? Need to address user notification |
3.1.4 | Rendering control | N | Y | In progress | |
3.1.5 | Startup delays | N | ? | ?? | |
3.2 | Extensibility | ||||
3.2.1 | foreign data | Y | Y | In progress | Refactored DataMgr provides virtual class for developing new readers |
3.2.2 | new renderers | Y | Y | In progress | Need to review renderer class API Need to support GUI extensions |
3.2.3 | OpenGL Shaders | N | N | Not started | |
3.2.4 | enable alternate UIs | Y | Y | In progress | ControlExec provides primary interface for UIs |
3.2.5 | GUI toolbox | N | Y | In progress | |
3.3 | Limitations | ||||
3.3.1 | general structured grids | N | N | In progress | Support added in DataMgr and VDC DVR and Iso renderers need support added |
3.3.2 | unstructured grids | N | N | ||
3.3.3 | CF compliant data | Y | Y | In progress | VDC complete. DataMgr and renderer dev underway |
3.3.4 | single grid restriction | N | N | In progress | DataMgr defined, implementation underway |
3.3.5 | rendering spherical data | N | N | ||
3.4 | Maintainability | ||||
3.4.1 | OpenGL | N | N | Not started | |
3.4.2 | code reuse | N | Y | In progress | |
3.4.3 | task level parallelism | Y | Y | ?? | |
3.4.4 | code maintainability | N | Y | In progress | Mostly focused on APIs supporting 3rd party extension |