GUI: provide specular instrument type in GUI
|Status:||Resolved||Start date:||17 Jan 2018|
|Target version:||Sprint 36|
#1 Updated by pospelov about 2 years ago
Here are rough steps:
- Create SpecularInstrumentItem, add it to ItemCatalogue.
- Create SpecInstrumentEditor, add it to InstrumentPresenter
See GISASInstrumentEditor and all its components (GISASBeamEditor, GISASDetectorEditor)
Probably it will require creation of SpecularBeamItem and SpecularDetectorItem
- Add creation of SpecularInstrumentItem from InstrumentView toolbar.
- Provide building of domain SpecularSimulation object.
- Provide handling of SpecularInsturmentItem by the job system
Insert SpecularInstrumentItem as a child of JobItem (see its constructor)
Make sure that results of specular simulation are propagated to JobItem results (see JobItemUtils::setResults())
Now hard part¶
- Refactor IntensityDataItem to be able to handle one and two-dimensional data
Probably it will be necessary to have IntensityDataItem, Intensity1DDataItem and Intensity2DDataItem.
Also look at RealDataItem. It might be necessary to have OutputDataItem (or SimulationResultsItem) which will be direct child of JobItem and will have IntensityDataItems of various type as children.
- Implement widgets to display specular data
See JobResultsPresenter, IntensityDataWidget, IntensityDataCanvas, ColorMapCanvas and especially ColorMap as a general idea of organizing different presentations.
Also see HistogramPlot, ProjectionsWidget and ProjectionPlot - our current widgets for 1d data - as an example of qcustomplot usage.