This PR summarizes the ideas to implement for `coreg`: <details> <summary><b>Milestone 1.0</b></summary> - [x] increase fiducial picking performance (https://github.com/mne-tools/mne-python/pull/9689#issuecomment-951910957) - [x] add support for the `project_eeg` parameter - [x] add support for the `scale_by_distance` parameter - [x] add support for the `mark_inside` parameter - [x] console/status_bar idea to add to the UI whatever is printed in the terminal - [x] display dist estimation in mm. - [x] add units to UI (Omit more explicit message) - [x] display axes - [x] add tooltips as much as possible on widgets - [x] add support for the scaling parameters (https://github.com/mne-tools/mne-python/pull/10117) Bonus territory: - [x] checkbox for the MEG helmet - [x] add a slider to control transparency - [x] add a button to save the fiducials (https://github.com/mne-tools/mne-python/issues/10208#issuecomment-1016402749) - [x] rename "Transform" groupbox into "HEAD <> MRI Transform" - [x] find a better name for the "Digitization Source" section (which could be confusing) - [x] show a dialog to save if `trans` is not saved (https://github.com/mne-tools/mne-python/issues/10236) - [x] add a prompt check name already exists "overwrite or not" </details> <details open> <summary><b>Milestone 1.1</b></summary> - [x] add legend to plot alignment / coreg to see what colored points are etc. - [x] add support for (qdarkstyle) dark theme - [x] 📁 icon for file button widgets (instead of "Load") - [ ] multiple threads should block window exit - [ ] add support for `object_fit='contain'` and `object_position='top'` (*ipywidgets*) (https://github.com/Kitware/ipyvtklink/issues/35, https://github.com/mwcraig/ipyevents/issues/71) </details> <details> <summary><b>Done</b></summary> - [ ] ~~add support for the `guess_mri_subject` parameter~~ (YAGNI) - [ ] ~~add support for the `head_inside` parameter~~ (YAGNI) - [x] Update `Coregistration()` to require parameters (https://mne.discourse.group/t/mne-coreg-based-on-ctf-data/3022/4) - [x] make the sections collapsible *(ipywidgets)* - [x] Decouple GUI code from model (suggested in https://github.com/mne-tools/mne-python/pull/6693#issuecomment-542364434, done in https://github.com/mne-tools/mne-python/pull/9516) - [x] Build a coreg GUI using `pyvista` (done in https://github.com/mne-tools/mne-python/pull/9689) </details> <details open> <summary><b>Bugs</b></summary> - [x] the parameter spin boxes force 2 updates consecutively even though only one interaction is done - [x] multi-line labels are not supported (*ipywidgets*) - [x] Qt crashes during `_configure_status_bar()` (*Windows*) - [x] the app is abnormally slow at loading `FIFF` (*Windows*) - [x] inconsistent behaviour of checkbox layout (*ipywidgets*) - [x] the status bar does not support dark theme (*qt*) (https://github.com/mne-tools/mne-python/pull/10238#issuecomment-1079155443) - [ ] the spin boxes are not updated during ICP with scaling (https://github.com/mne-tools/mne-python/pull/10377#issuecomment-1061901037) - [ ] the DigPoints are displayed with unlocked fiducials when switching subjects (https://github.com/mne-tools/mne-python/pull/10242#issuecomment-1023977033) - [ ] all HSPs become marked as inside the head surface on certain scaling values (https://github.com/mne-tools/mne-python/pull/10224#issuecomment-1017592043) - [ ] the app hangs when loading `trans` (*ipywidgets*) </details>
This PR summarizes the ideas to implement for
coreg:Milestone 1.0
project_eegparameterscale_by_distanceparametermark_insideparameterBonus territory:
transto mne.gui.coregistration() should automatically derive the MRI fiducials #10208 (comment))transis not saved (Coreg GUI should suggest to save fiducials and trans if not saved during interactive session #10236)Milestone 1.1
object_fit='contain'andobject_position='top'(ipywidgets) (How to get the correct event position when object_fit='contain'? Kitware/ipyvtklink#35, How to obtain the coordinates of a click on the image when object_fit='contain'? mwcraig/ipyevents#71)Done
add support for the(YAGNI)guess_mri_subjectparameteradd support for the(YAGNI)head_insideparameterCoregistration()to require parameters (https://mne.discourse.group/t/mne-coreg-based-on-ctf-data/3022/4)pyvista(done in ENH: Coreg GUI #9689)Bugs
_configure_status_bar()(Windows)FIFF(Windows)trans(ipywidgets)