Skip to content

Conversation

@jellybean2004
Copy link
Contributor

@jellybean2004 jellybean2004 commented Dec 19, 2025

Description

This PR introduces symmetry-linked wedge and sector slicers for 2D data.

Users can now specify a number of slicers (N), which are automatically generated as congruent slicers, evenly distributed in angle around the plot centre. One of these will be the 'master' slicer, which is the only directly modifiable slicer, and the others will change automatically based on this.

This also adds the documentation for #3758 and #3806

Fixes #3807 #3794 #3802

To add symmetric slicers:

  • Create a 2D plot
  • Right click on plot > Slicers > Slicer Parameters
  • You will find Symmetric Slicers at the bottom of the first tab
  • Select slicer and enter the number of slicers
  • Slicers will appear on the plot, with their stacked 1D plot
  • Adjust the master slicer to control the whole group.
Symmetric sector slicers example Symmetric sector slicers, N=3 Symmetric wedge slicers example Symmetric wedge slicer, N=3
## How Has This Been Tested?

Manually tested functionality using 2D data. Verified:

  • correct angular replication of slicers
  • real-time synchronization when modifying the master slicer
  • correct generation of stacked 1D outputs

Review Checklist:

[if using the editor, use [x] in place of [ ] to check a box]

Documentation (check at least one)

  • There is nothing that needs documenting
  • Documentation changes are in this PR
  • There is an issue open for the documentation (link?)

Installers

  • There is a chance this will affect the installers, if so
    • Windows installer (GH artifact) has been tested (installed and worked)
    • MacOSX installer (GH artifact) has been tested (installed and worked)
    • Wheels installer (GH artifact) has been tested (installed and worked)

Licensing (untick if necessary)

  • The introduced changes comply with SasView license (BSD 3-Clause)

@pmneves7
Copy link

I have played around with this on my macbook. The symmetric slicers seem to be working as intended, nice work!

Notes:
I can produce any number of sector or wedge slicers and interactively update them all based on the master slicer. It seems to work as intended. I have not experienced a crash or freeze.

Comments:
It can be a bit slow/laggy, sometimes taking a noticeable fraction of a second to update when I have six slicers. At 20 slicers it takes several seconds to update. This doesn't necessarily have to slow down the pull request, but I am surprised that it is this slow, given that none of the underlying calculations should be that intensive on the CPU. Do you know why this is the case?

Also, do we want to make a warning window every time someone wants to make more than a few slicers? It could be annoying to always be clicking "ok" whenever I want to make a symmetric set of slicers. Maybe it is better to just have a little warning in the "Slice Parameters" GUI that adding more than 4 slicers could be slow.

Future Work:
For hard matter SANS, the next steps (beyond the scope of this pull request) are to allow the user to (1) add together many 2D plots to make one new 2D plot, then do any slicer operation on the summed 2D plot, and (2) allow users to take a series of 2D plots and then plot the sum of a sector as a function of some metadata parameter, creating a 1D dataset. You should also be able to do this with multi-slicers, either summing all the slicer sums together, or plotting each as its own 1D dataset on the same plot.

@jellybean2004 jellybean2004 linked an issue Dec 23, 2025 that may be closed by this pull request
@jellybean2004 jellybean2004 linked an issue Dec 24, 2025 that may be closed by this pull request
@jellybean2004
Copy link
Contributor Author

@smk78, I added docs for the wedge slicers as well as screenshots for each slicer as you stated in your issue. Please let me know if this is all okay.

@pmneves7
Copy link

Comments: It can be a bit slow/laggy, sometimes taking a noticeable fraction of a second to update when I have six slicers. At 20 slicers it takes several seconds to update. This doesn't necessarily have to slow down the pull request, but I am surprised that it is this slow, given that none of the underlying calculations should be that intensive on the CPU. Do you know why this is the case?

Would it be faster if, above a certain number of slicers, you can only update via the GUI interface? i.e., is the major slowdown happening in the interactive plot elements, the rendering, or the calculations? If it is the interactive plot elements slowing things down, a GUI-only control may be better.

Copilot AI review requested due to automatic review settings January 5, 2026 09:56

This comment was marked as resolved.

@smk78
Copy link
Contributor

smk78 commented Jan 5, 2026

@smk78, I added docs for the wedge slicers as well as screenshots for each slicer as you stated in your issue. Please let me know if this is all okay.

Read the documentation generated by CI build #5326 . Looks good to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentation for Slicer Plot Stacking Update graph_help.rst for new slicers Documentation for multiple slicers

5 participants