Jump to navigation Jump to search
- 1 SCIRun Qt Migration Project
- 1.1 Git Help
- 1.2 Deployment Help
- 1.3 User Suggestions
- 1.4 Basic GUI Redesign
- 1.5 Core
- 1.6 Dataflow
- 1.7 Graphics and Visualization
- 1.8 Externals
- 1.9 Build
- 1.10 Testing
- 1.11 Core
- 1.12 Modules
SCIRun Qt Migration Project
- Git community book
- Quick git reference site
- branching and merging and sharing with remote repositories are especially useful
OS X Bundles
Basic GUI Redesign
- Determine overall look and feel.
- Background color of network editor
- Placement of main window widgets--match current design at first?
- Redesigning major parts of the main window.
- Menu bar
- Context menus
- Status bar
- Configuration panel
- Module Search
- Module progress indicators
- Module general settings: port caching, info on ports, general info: available in "drawer" subwidget
- Command window
Major Development Milestones
Can add/delete module widgets
Can connect ports with connections in the GUI
Can execute dummy network (modules do nothing, stubbed with an execution time)
Can load/save srn file (using dummy module descriptions)
- → All menu options/preferences work
Can load/save srn file (using real module descriptions)
Can execute a basic network (file i/o, matrix math, no graphics)
- Question: to achieve this, do we need to hook up all current network plumbing, or just have a minimal set of code to get this working? Perhaps the latter can be step A, while the former is step B.
Can execute basic multithreaded network
Volume rendering == ViewScene module.
Can execute network with graphical output
- Can walk through entire SCIRun tutorial!
- At this point, all essential modules should be converted. Can begin converting other individual modules.
- Discuss memory model for Matrix/Arrays/etc.
- Move namespace SCIRunAlgo into SCIRun::Algo to remove need for using directives in headers.
- Replace Thread library with Boost.
- is there a way we can display a brief blurb describing file importer and exporter plugin information (i.e. show a short description of the file types supported, file extensions etc.)?
- change file importer and exporter plugin function pointer table to functors
- Execute all button in network editor: triggers execution even if network is currently executing. Queue (or block?) request for execution until current execution is done.
Graphics and Visualization
- Be able to select or click on objects in renderer and get information i.e. node index, position etc.
- move all OpenGL code into Core (and intermediate layer as needed)
is GLEW still needed for OpenGL support, and if so, which version?- handled through Spire
- verify that libpng and zlib are still needed, if so, update
- better XML parsing library (libxml2 is overly complex and buggy)
- Boost is an external project in the CMake build
- In case Boost needs to be built outside of SCIRun: Boost build notes
- merge all generated headers into a single generated header file
- Add regression testing feature to diff numerical output, either through text files or of matrix objects directly.
- Isosurface algorithm is very slow and should be rewritten
Error Handling and Exceptions
- SCIRun exceptions could use an overhaul.
- SCIRun assertions could also use an overhaul.
- The same kind of assertions need to be used throughout the code. Currently, we're using:
- assert from cassert
- SCIRun's custom ASSERT macros
- Boost static assert (perhaps it would be best to replace all other asserts with Boost assert utilities?)
Possible Problem Modules
- ShowMatrix: this module should be completely rewritten
- CreateMatrix: bug #327
- GeneratePointSamplesFromFieldOrWidget: spinner boxes in both tabs are not editable. This is really annoying if one wants to generate a large number of samples.
- GeneratePointSamplesFromField: The execution pattern for this module should be improved. Also, SCIRun test networks are using GeneratePointSamplesFromFieldOrWidget, so there are no tests for this module.
- CreateAndEditColorMap: the GUI is not very usable and can be difficult to navigate.
- See if it's possible to encapsulate common functionality in Matlab Importer modules in a parent class. Same with Exporter modules.