- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Sep 8 2021
Sep 7 2021
Ok I don't really understand what the changes did and what to expect from the modified code. I just need to react on a mouse pressed event inside a render window. Currently I don't see how this is possible.
I tested building with QtCreator to debug into the Qt-code but that didn't help.
Sep 6 2021
I edited the task description since most of the issues do not occur anymore, due to the changed introduced by D523.
However, the general problem remains: It is not possible to re-initialize / reset the view and camera of individual render windows which is important for the MxNMultiWidget in order to fully unleash its potential.
Sep 1 2021
Aug 31 2021
I dug deeper into this:
Using the working develop branch (4baa3ceec4) results in return QVTKOpenGLWidget::event(e); being called (line 198 of QmitkRenderWindow.cpp). This leads to this->InteractorAdaptor->ProcessEvent(evt, this->RenderWindow->GetInteractor()); being called (line 610 of QVTKOpenGLWidget).
Debugging inside void QmitkStdMultiWidget::mousePressEvent(QMouseEvent* e) shows that the call is coming from void QmitkRenderWindowWidget::MouseEvent(QMouseEvent * _t1) (the moced signal-function for QmitkRenderWindowWidget::MouseEvent, which is connected inside the QmitkRenderWindowWidget as connect(m_RenderWindow, &QVTKOpenGLWidget::mouseEvent, this, &QmitkRenderWindowWidget::MouseEvent);
Debugging into e.g. QmitkRenderWindow::event(QEvent* e) or void QmitkStdMultiWidget::mousePressEvent(QMouseEvent* e) shows that the current sender cannot be retrieved.
Using auto sender = this->sender(); returns a nullptr.
Aug 30 2021
This seemed to be introduced / not completely fixed with fbc49fc5c831. Fixed it by adding the QmitkRenderWindowWidget class name to explicitly define the border only for this class (as it was already partially done in the mentioned commit).
Aug 26 2021
This feature should have been merged into master with 70ff72dd6f36 resp. D212.
However, it is not working anymore, I guess this has something to do with b8b5dc64e48c. Just a quick guess, maybe @kislinsk can help.
If D538 is accepted, 146a8d8 needs to be considered and cherry-picked, too.
Aug 25 2021
This task / branch was never merged into master.
For reasons of cleanliness I will open a new branch / differential containing just the changes related to this task such that we can merge the new branch into develop and close this task.
@s434n will help me evaluate the relevance / validity of the changes.
Aug 24 2021
This task / branch was never merged into master; the mentioned BlackSwan task T26476 is still not contained in master / develop.
For reasons of cleanliness I will open a new branch / differential containing just the changes related to this task such that we can merge the new branch into develop and close this task.
@s434n will help me evaluate the relevance / validity of the changes.
This task / branch was never merged into master; the mentioned BlackSwan task T26476 is still not contained in master / develop.
For reasons of cleanliness I will open a new branch / differential containing just the changes related to this task such that we can merge the new branch into develop and close this task.
@s434n will help me evaluate the relevance / validity of the changes.
This task / branch was never merged into master; the mentioned BlackSwan task T26476 is still not contained in master / develop.
For reasons of cleanliness I will open a new branch / differential containing just the changes related to this task such that we can merge the new branch into develop and close this task.
@s434n will help me evaluate the relevance / validity of the changes.
I started working on T28142: [Segmentation] Remove plugin redundancy with MultiLabelSegmentation which makes this task and some mentioned bugs invalid. We can close this task, once D533 is landed. The "New"-button is correctly enabled / disabled using the mentioned changes / differential and some warning messages were removed / simplified.
I looked into this using the latest Develop-branch on Windows. Using the Debug build I was able to see the stack trace after a crash (using the small, cropped image):
Exception Unhandled: Unhandled exception at 0x00007FF96A63AFAC (ucrtbased.dll) in MitkWorkbench.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.
Aug 23 2021
Aug 19 2021
I refactored both views massively. What I did was to somehow bring both plugins in line with each other to see the differences and the similarities. This simplifies to understand how things are implemented and what needs to be done to remove redundancy. I will highlight some points that I find striking:
- the multilabel plugin view did not compare the world geometry to the selected segmentation node
- I was able to draw a mask which was then positioned somewhere else (jumped) because of this (e.g. using brain.nrrd)
- hiding the selected segmentation node disables the tools for the segmentation plugin but not for the multilabel segmentation plugin
- the auto selection mode for showing / hiding the selected / not selected nodes in the data manager / render windows if the node selection is changed does not work anymore for the segmentation plugin (was already mentioned in T28256: [Segmentation] Auto-selection preference was hijacked for something else)
- the multilabel segmentation plugin did not listen to render window part changes (no subclass of IRenderWindowPartListener)
- the multilabel segmentation plugin lists some segmentation tools that don't even exist (FastMarching2D, Two Thresholds Auto Threshold Multiple Otsu)
- the multilabel segmentation view plugin is not able to accept binary images as a segmentation
Aug 13 2021
T28650: [Selection concept] (Re)setting a data storage does not automatically check for matching nodes was opened during the review-process.
In T26172#227071, @floca wrote:For now, I wouldn't try to patch in multi-label support into the interpolation class. Instead I would ensure that only a label image (so an image that just contains the active label) is passed to the interpolation class.
I think that that is the most pragmatic approach to it, procure the current implementation will never work properly when multiple labels are present, due to the assumptions already stated by @kalali.
Aug 12 2021
Has been solved for the segmentation plugin and the multilabel segmentation plugin.
A general reformatting of the resetting-functionality will happen in T27613: Improve reinit behavior.
Aug 11 2021
So I'm trying to replace the ExtractImageFilter with the ExtractSliceFilter by doing the following:
const PlaneGeometry *planarFigurePlaneGeometry = m_PlanarFigure->GetPlaneGeometry();
We postpone this since currently we do not want to introduce new dependency or change the templated predicates to string-based predicates.
Aug 9 2021
Aug 2 2021
Ok I think I found something odd:
In mitk::ShapeBasedInterpolationAlgorithm::ComputeDistanceMap there are two lines (92 / 93), where the invert filter input is defined with
invertFilter->SetInput(binaryImage); invertFilter->SetMaximum(1);