View Issue Details

IDProjectCategoryView StatusLast Update
0003808Slicer4Module LandmarkRegistrationpublic2018-11-27 16:10
Reportermatthieuheitz Assigned Tonicole  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.3.1 
Target VersionSlicer 4.4.0Fixed in VersionSlicer 4.4.0 
Summary0003808: Impossible to move landmarks, on one, two or three of the slices
Description

Example :

  • Start Slicer
  • Download MRHead, and MRBrainTumor1 sample datas
  • Select module Landmark Registration, and choose MRHead as Fixed, and MRBrainTumor1 as Moving.
  • Click "Add" for adding a first landmark (one of the eye for example), and then click on one of MRHead slices, and adjust in every view.
  • Add a 2nd landmark, and click on one of MRHead slices
    Now it's impossible to move the landmark, in all the slices of MRBrainTumor1
Additional Information

It has happened to me more than once with other datasets, but not sample ones.
There is always at least one view where you can't move the landmark.

TagsNo tags attached.

Relationships

related to 0003319 closednicole Markup fiducial coordinates are not updated when dragged near existing fiducials 
related to 0004634 closedsjh267 Most fiducials not selectable in LandmarkRegistration with latest VTK 

Activities

pieper

pieper

2014-08-18 12:00

administrator   ~0012395

Yes, I've seen this too. I'm assigning this over to Nicole since I believe it is an issue with the Markups themselves and not with their use in this module.

pieper

pieper

2014-08-18 12:01

administrator   ~0012396

Nicole, let me know what you think. This is one of the things I emailed about earlier.

nicole

nicole

2014-08-26 12:27

administrator   ~0012421

Last edited: 2014-08-26 12:28

After a first pass at debugging:
Disabling the picking manager for the interactors solves this problem, but that puts us back to having two old bugs reappear.
A workaround could be to disable the picking manager when you go into the landmarks module and reenable when you exit. I'd want to push the check/enable up from the fiducial displayable manager though, as I put it in a few places to make sure it stuck. Putting the picking manager enable in the init method of qMRMLSliceView would make it universal for Slicer.

jcfr

jcfr

2014-08-26 12:51

administrator   ~0012422

@Nicole: Thanks for investigating. Does that mean there is a bug with the picking manager ? I don't think it make sense to disable/enable picking to pick a fiducial.

May be you could create a simple VTK example to illustrate the problem ?

pieper

pieper

2014-09-02 10:11

administrator   ~0012450

As Nicole noticed, turning off the vtkPickingManager solves this bug, but brings back 0003319.

jcfr

jcfr

2014-09-02 10:56

administrator   ~0012451

Translating the view allow to select the fiducial.

pieper

pieper

2014-09-02 12:55

administrator   ~0012455

Interesting note: Translating the view allows you to move the fiducial, but it fails again when the fiducial is back at the exact center of the view!

This is reproducible with the Markups module: add a couple fiducials. In the Markups module enable Click to Jump Slices, then pick the Centered option. Some of the fiducials will be unmovable when centered.

I will try to make a pure-VTK example of this for testing.

pieper

pieper

2014-09-04 06:07

administrator   ~0012459

Okay - I figured out what is wrong. It is an issue I will be able to reproduce in pure VTK. I have a work-in-progress patch to VTK that we can put in Slicer/VTK for use with 4.4 until something adequate is available in VTK proper.

The essence of the issue is between that way vtkWidgetHandles do picking vs the way the vtkPickingManager expects them to operate. That is even a widget that is not visible can be consider 'in front' for the purposes of the picking manager code.

This is simple to reproduce:

  • create two markup fiducial lists with one fiducial in each one. Make the scale big and make them different colors for convenience.

  • in the threeD view, rotate the camera so that one is in front of the other. Notice that with VTKv6, the one closer to you is always picked, which is due to the vtkPickingManager and is an improvement over VTKv5.

  • now turn off visibility of the nearer fiducial using the eye icon of the markup module. Now the remaining fiducial is not pickable!

The reason is that the vtkPickingManager performs a Pick operation on all pickers in the scene and finds that invisible widget. The widget handles have custom internal actors that are the 'real' objects in the scene so they are too clever to work with the vtkPickingManager as currently implemented.

@jcfr I'd like to review this all with you and come up with a strategy so we can cut the release with a working VTK version for slicer, while putting in motion the correct fix for inclusion in a future VTK release.

jcfr

jcfr

2014-09-04 08:21

administrator   ~0012460

@Steve: Great investigative work ! :) I was able to reproduce the problem. We can definitively push a fix/hack in our Slicer/VTK fork while we are maturing a more suitable solution in Gerrit. That way, the 4.4 release won't be on hold waiting for the fix to be integrated into upstream VTK.

2014-09-04 08:21

 

vtkPickingManagerBug.py (2,795 bytes)
pieper

pieper

2014-09-04 08:22

administrator   ~0012461

Thanks @jcfr!

See the attached sscce.

pieper

pieper

2014-09-05 12:02

administrator   ~0012462

I believe this is all fixed now - the details are in the pull request here:

https://github.com/Slicer/Slicer/pull/179

jcfr

jcfr

2014-09-05 13:32

administrator   ~0012463

Thanks @ Steve. Great work on figuring our the problem and improving VTK infrastructure.

Have a good weekend.

jcfr

jcfr

2014-09-05 13:33

administrator   ~0012464

Commit r23648 should fix that problem.
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23648

johan.andruejol

johan.andruejol

2018-03-22 10:58

manager   ~0015610

A fix was merged into VTK master that should address this: https://gitlab.kitware.com/vtk/vtk/commit/8e4f2f7c3a2e87e4567e5d1ff5fe93a32da8f1f0

sjh267

sjh267

2018-11-27 15:58

administrator   ~0016206

@johan.andruejol

The fix merged into VTK master seems to have caused this exact same regression to reappear: https://issues.slicer.org/view.php?id=4634

Any thoughts?

jcfr

jcfr

2018-11-27 16:10

administrator   ~0016207

My understanding is that the fix integrated in VTK addresses the problem for 3D, I think test for 2D viewer should be added in VTK.

Related Changesets

Import 2017-06-07 23:51:09: master 10f84b0a

2014-09-05 17:30:31

jcfr

Details Diff
COMP: Update VTK to reference updated Slicer/VTK fork. Issue 0003808

Steve changes related to issue 0003808 have been integrated into the
Slicer/VTK fork and this commit updates the external project accordingly.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23650 3bd1e089-480b-0410-8dfb-8563597acbee
mod - SuperBuild/External_VTKv6.cmake Diff File

Issue History

Date Modified Username Field Change
2014-08-18 10:42 matthieuheitz New Issue
2014-08-18 10:42 matthieuheitz Status new => assigned
2014-08-18 10:42 matthieuheitz Assigned To => pieper
2014-08-18 12:00 pieper Note Added: 0012395
2014-08-18 12:00 pieper Status assigned => confirmed
2014-08-18 12:01 pieper Status confirmed => assigned
2014-08-18 12:01 pieper Assigned To pieper => nicole
2014-08-18 12:01 pieper Note Added: 0012396
2014-08-26 12:27 nicole Note Added: 0012421
2014-08-26 12:28 nicole Note Edited: 0012421
2014-08-26 12:30 nicole Relationship added related to 0003319
2014-08-26 12:49 jcfr Target Version => Slicer 4.4.0
2014-08-26 12:51 jcfr Note Added: 0012422
2014-09-02 10:11 pieper Note Added: 0012450
2014-09-02 10:56 jcfr Note Added: 0012451
2014-09-02 12:55 pieper Note Added: 0012455
2014-09-04 06:07 pieper Note Added: 0012459
2014-09-04 08:21 jcfr Note Added: 0012460
2014-09-04 08:21 pieper File Added: vtkPickingManagerBug.py
2014-09-04 08:22 pieper Note Added: 0012461
2014-09-05 12:02 pieper Note Added: 0012462
2014-09-05 13:32 jcfr Note Added: 0012463
2014-09-05 13:33 jcfr Note Added: 0012464
2014-09-05 13:33 jcfr Status assigned => resolved
2014-09-05 13:33 jcfr Fixed in Version => Slicer 4.4.0
2014-09-05 13:33 jcfr Resolution open => fixed
2017-06-10 08:51 jcfr Changeset attached => Slicer master 10f84b0a
2018-03-02 11:06 jcfr Status resolved => closed
2018-03-22 10:58 johan.andruejol Note Added: 0015610
2018-10-15 20:46 jcfr Relationship added related to 0004634
2018-11-27 15:58 sjh267 Note Added: 0016206
2018-11-27 16:10 jcfr Note Added: 0016207