Feature #1936

GUI: provide specular instrument type in GUI

Added by pospelov almost 3 years ago. Updated almost 3 years ago.

Status:ResolvedStart date:17 Jan 2018
Priority:NormalDue date:
Assignee:dmitry% Done:


Target version:Sprint 36


#1 Updated by pospelov almost 3 years ago

Here are rough steps:

  • Create SpecularInstrumentItem, add it to ItemCatalogue.

See GISASInsturmentItem

  • 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.

See InstrumentViewActions::onAddInstrument()

  • Provide building of domain SpecularSimulation object.

See DomainSimulationBuilder::createSimulation()

  • 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.

#2 Updated by dmitry almost 3 years ago

  • Assignee set to dmitry

#3 Updated by dmitry almost 3 years ago

  • Status changed from Sprint to Resolved

Also available in: Atom PDF