Skip to content

DetectorScene improvements + fixed integration regions

Zamaan Raza requested to merge fixed-integration-region into main
  • Refactored DetectorScene extensively: removed unused members broke up over-nested functions, moved functionality into different classes.
  • Move all methods that generate PeakCollection-related graphics from DetectorScene to new class PeakCollectionGraphics
  • Move all methods that generate DataSet-related graphics from DetectorScene to new class DetectorSceneGraphics
  • Removed MaskHandler class since lifetime of mask graphic objects was unpredictable and causing segfaults.
  • Fixed issues with masks, graphical masks were not reflected correctly in core algorithms.
  • Added separate parameters for fixed integration regions to avoid confusion
  • Removed RegionType::FixedSphere, I can't imagine it ever being useful.
  • No longer store pointers to subclassed QGraphicsItems when they are in the DetectorScene, since their lifetimes are too unpredictable.
  • Handle failure to generate graphical items for DetectorScene with std::optional.
  • Greatly reduced number of DetectorScene parameters, added many to new DetectorSceneParams header.
  • New base class for BoxMaskItem and EllipseMaskItem, MaskItem, to facilitate adding/removing them from scene.
  • Removed all code for generating graphics from Subframe classes, move to PeakCollectionGraphics/DataSetGraphics.
  • Added name of DataSet associated with a PeakCollection to relevant SubframeHome table.
  • Fixed bug in MaskImporter (arguments of AABB, lower and upper bounds were reversed).

Resolves #582 (closed), #581 (closed), #228 (closed), #578 (closed) and #583 (closed)

Edited by Zamaan Raza

Merge request reports