View Issue Details

IDProjectCategoryView StatusLast Update
0003718Slicer4Core: GUIpublic2018-03-02 11:06
Reporterungi Assigned Tonicole  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.4.0Fixed in VersionSlicer 4.4.0 
Summary0003718: Slice intersection do not appear unless slice shown in 3D view
Description

Slice intersections are only visible when the slices are visualized in the 3D view.

To reproduce:

  • Start Slicer
  • Load an image (e.g. from welcome module)
  • Turn on Slice intersections.
  • At this point slice intersections are not yet visible!
  • Toggle slice visibility in 3D view. This will toggle visibility of the slice intersections.

Slice intersection visibility should be independent of slice visibility in 3D view.

TagsNo tags attached.

Activities

pieper

pieper

2014-05-28 10:05

administrator   ~0011977

Alex, please have a look. Thanks

alexy

alexy

2014-06-10 06:37

developer   ~0012040

Nicole, the logic for this issue is in:
bool vtkMRMLModelSliceDisplayableManager::vtkInternal
::IsVisible(vtkMRMLDisplayNode* displayNode)

I am not sure about the reasoning behind this logic that you added, so I am reassigning to you

nicole

nicole

2014-07-22 12:20

administrator   ~0012221

My change[1] was to not show model slice intersections if the model wasn't visible.
The problem that's causing this bug is that the volume slice nodes are also MRML model nodes so they're getting checked with the same logic, so if the slice isn't set to be visible (in 3D), don't show the slice plane intersections.
The volume slice model nodes are tricky to distinguish from other model nodes, especially since in the isVisible check it's working soley on the display node (also the same class). I'd have to dig around in the logic (or add my own method) to find a way to determine if I have a volume slice model display node and to not make the extra visibility check in those cases.
Otherwise, I revert the change[1] and model slice intersections are visible when the model is not visible if that flag is on.

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Libs/MRML/DisplayableManager/vtkMRMLModelSliceDisplayableManager.cxx?r1=23021&r2=23098

nicole

nicole

2014-07-22 12:32

administrator   ~0012222

vtkMRMLSliceLogic has IsSliceModelNode
So would just need to go from the display node to the model node.

jcfr

jcfr

2014-07-29 11:28

administrator   ~0012272

That method is static, you should be able to call it without instantiating the logic:

https://github.com/Slicer/Slicer/blob/916b6e2f1b3742bee09cf08c121ef8c1c5fa3b61/Libs/MRML/Logic/vtkMRMLSliceLogic.h#L340

jcfr

jcfr

2014-07-29 11:34

administrator   ~0012273

Also check if it fixes 0003462
Thanks

nicole

nicole

2014-07-29 14:43

administrator   ~0012282

Working on setting an attribute on the display node, then checking for it in a new method on the slice logic before applying the visibility check.

jcfr

jcfr

2014-07-29 14:58

administrator   ~0012283

Make also sure that, when loaded, existing scene will set that attribute.

Otherwise, all existing MRB won't work as expected.

Instead, would it make sense to:

  • Get the list of all sliceNode
  • .. get the associated displayModelNode
  • .. return True if the ID you want to check belong to one of these ?
nicole

nicole

2014-07-29 15:08

administrator   ~0012284

Fixed in svn 23495:
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23495

nicole

nicole

2014-07-29 15:13

administrator   ~0012285

This doesn't fix 3462.

jcfr

jcfr

2014-07-29 15:21

administrator   ~0012287

@Nicole: Could you comment on http://na-mic.org/Mantis/view.php?id=3718#c12283 ? Thanks

nicole

nicole

2014-07-29 15:21

administrator   ~0012288

JC: didn't see your comment before my commit, have to run, will double check that first thing tomorrow.

nicole

nicole

2014-07-30 08:03

administrator   ~0012292

@jcfr: the nodes aren't saved with the scene, they're created on the fly when node added events are detected. Testing with legacy mrbs and mrml files shows it's working.

jcfr

jcfr

2014-07-30 08:04

administrator   ~0012293

Great. Thanks for checking.

nicole

nicole

2014-07-30 08:25

administrator   ~0012295

I did notice that the slice intersections weren't updating as I scrolled in one test.
Also: fixed a typo:
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23516

pieper

pieper

2014-07-31 03:36

administrator   ~0012309

@Nicole: when you say "did notice ... weren't" does that mean that the current trunk is broken or that it was broken before your recent fix?

nicole

nicole

2014-07-31 06:01

administrator   ~0012310

Broken before my fix, when checking bug 3462.

pieper

pieper

2014-07-31 06:13

administrator   ~0012311

Sorry, but to clarify: are you saying that the issue is now fixed or not (just trying to sort out the what is present tense and what is past tense)

nicole

nicole

2014-07-31 06:40

administrator   ~0012312

The issue is not fixed, it's still reproducible this morning - I did the steps to reproduce issue 3462, turning on slice intersections and showing the red slice in 3D before running model maker. As soon as model maker finished, the yellow and green slice intersections disappeared from 2d and the yellow and green slices don't show up when I toggle them on in 3d. Slicer is also leaking on exit now.

Related Changesets

Import 2017-06-07 23:51:09: master ef07eaa4

2014-07-29 18:57:32

naucoin

Details Diff
BUG: fix logic on showing slice intersections

Added an attribute (and a name) for the volume slice
model display nodes and check for it in a new slice
logic static method. If it's not a volume slice model
display node, use the visibility of the regular
model to determine if should show the slice intersections,
otherwise rely on the slice intersections visible flag.

Issue 0003718


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23495 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/DisplayableManager/vtkMRMLModelSliceDisplayableManager.cxx Diff File
mod - Libs/MRML/Logic/vtkMRMLSliceLogic.cxx Diff File
mod - Libs/MRML/Logic/vtkMRMLSliceLogic.h Diff File

Import 2017-06-07 23:51:09: master b90c5068

2014-07-30 12:13:41

naucoin

Details Diff
BUG: fix typo in volume slice model attribute

Issue 0003718


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23516 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/Logic/vtkMRMLSliceLogic.cxx Diff File

Issue History

Date Modified Username Field Change
2014-05-28 09:40 ungi New Issue
2014-05-28 10:04 pieper Status new => assigned
2014-05-28 10:04 pieper Assigned To => alexy
2014-05-28 10:05 pieper Note Added: 0011977
2014-06-03 10:38 jcfr Target Version => Slicer 4.4.0
2014-06-10 06:37 alexy Note Added: 0012040
2014-06-10 06:37 alexy Assigned To alexy => nicole
2014-07-22 12:20 nicole Note Added: 0012221
2014-07-22 12:32 nicole Note Added: 0012222
2014-07-29 11:28 jcfr Note Added: 0012272
2014-07-29 11:34 jcfr Note Added: 0012273
2014-07-29 14:43 nicole Note Added: 0012282
2014-07-29 14:58 jcfr Note Added: 0012283
2014-07-29 15:08 nicole Note Added: 0012284
2014-07-29 15:08 nicole Status assigned => resolved
2014-07-29 15:08 nicole Fixed in Version => Slicer 4.4.0
2014-07-29 15:08 nicole Resolution open => fixed
2014-07-29 15:13 nicole Note Added: 0012285
2014-07-29 15:21 jcfr Note Added: 0012287
2014-07-29 15:21 nicole Note Added: 0012288
2014-07-30 08:03 nicole Note Added: 0012292
2014-07-30 08:04 jcfr Note Added: 0012293
2014-07-30 08:25 nicole Note Added: 0012295
2014-07-31 03:36 pieper Note Added: 0012309
2014-07-31 06:01 nicole Note Added: 0012310
2014-07-31 06:13 pieper Note Added: 0012311
2014-07-31 06:40 nicole Note Added: 0012312
2017-06-10 08:51 Changeset attached => Slicer master b90c5068
2017-06-10 08:51 Changeset attached => Slicer master ef07eaa4
2018-03-02 11:06 jcfr Status resolved => closed