View Issue Details

IDProjectCategoryView StatusLast Update
0001318Slicer4Core: GUIpublic2014-03-06 05:59
Reporterkikinis Assigned Toalexy  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product VersionSlicer 4.0.0 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0001318: modified resolution, pan and zoom behavior in 3D windows
Description

normally slices displayed in a 3D view have the zoom, pan and resolution of the parents in the slice views. With the advent of the widescreen layouts, often the 2d slice viewers are very small. It would be good to have an option to display cross-sections in the 3D viewers at full resolution. This should be an option in the pop-up

TagsNo tags attached.

Activities

pieper

pieper

2011-09-09 05:43

administrator   ~0002955

I have done some experiments with this, but the changes would need more testing -- I don't see this happening in the RSNA timeframe.

2011-09-10 12:18

 

UglyVoxels.PNG (659,505 bytes)
UglyVoxels.PNG (659,505 bytes)

2011-09-10 12:18

 

PrettyVoxels.PNG (818,775 bytes)
PrettyVoxels.PNG (818,775 bytes)
kikinis

kikinis

2011-09-10 12:22

developer   ~0002962

I have uploaded two images. The top one shows the extent that I want, the bottom one shows the quality that I want. I do not have enough screen real estate to keep the sliceviewers at the size needed.

A kludge is as follows: choose red slice layout only, then switch to 3d viewer only layout. If the cross section displayed is the red viewer, I get my resolution.

kikinis

kikinis

2011-12-10 02:30

developer   ~0003433

Post RSNA is now. Using full resolution of the image data and inheriting only pan and zoom from the slice viewer should be the default. I have gotten several complaints about this in the meantime.

pieper

pieper

2012-01-31 10:13

administrator   ~0003583

Alex is working on this - probably another week or so until he has a working version.

alexy

alexy

2012-12-18 05:49

developer   ~0007520

This functionality has been added some time ago. You can use FOV, Spacing matches volume option to display full size slice in 3D.

kikinis

kikinis

2012-12-30 09:39

developer   ~0007601

-what is missing is a fourth option: FOV match volume, spacing match 2D.
-Spacing matches volume is not interpolated. It should be by default. Interpolation is controlled in the pop up and by a check box in the volumes module. If I uncheck the check box in the volume module, the icon in the slice viewer pop up is not updated. See attached screenshot

2012-12-30 09:39

 

finetjul

finetjul

2013-01-09 07:10

administrator   ~0007635

Interpolation issue could be linked to 0001926, 0002682, 0001926, 0001935

kikinis

kikinis

2013-03-22 04:38

developer   ~0008198

How about that fourth option that I requested?

alexy

alexy

2013-03-22 08:05

developer   ~0008201

I traced interpolation issue to blocking Qt signals in the
qMRMLSliceControllerWidgetPrivate::updateWidgetFromMRMLSliceCompositeNode() method when a volume is loaded:

line 889:
// Update "foreground layer" node selector
wasBlocked = this->ForegroundComboBox->blockSignals(true);
this->ForegroundComboBox->setCurrentNode(
q->mrmlScene()->GetNodeByID(this->MRMLSliceCompositeNode->GetForegroundVolumeID()));
this->ForegroundComboBox->blockSignals(wasBlocked);

This prevents from setting observers on vtkMRMLVolumeDisplayNode in
qMRMLSliceControllerWidgetPrivate::onForegroundLayerNodeSelected(vtkMRMLNode * node) which is not called because of signal blockage.

I am not sure what the is the reason for blocking signals. Julien or JC could you comment on this?

finetjul

finetjul

2013-03-22 08:12

administrator   ~0008202

As it is mentioned in 0001926, all those issues are due to: http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19320
You might want to see with Jim.
I vote against using those blocksignals. I believe they are the root cause of the issues I listed in (0007635).

alexy

alexy

2013-03-22 08:15

developer   ~0008203

Additional information on my previous note:
if I change the code above to not block the signal, the interpolation button gets synced between different 2D view controllers and Volume module.

I will wait for Julien or JC to comment on this before committing my changes.

millerjv

millerjv

2013-03-22 09:26

developer   ~0008205

Take a look at the commit log that Julien identified.

The problem was that if you switched into the ViewControllers module, new controllers may be constructed and configured to match the scene. When these controllers are configured with the FG and BG images, they trigger all the callbacks. If linking is on, this can cause the content of the visible 2D Viewers to switch. Block signals addresses this issue. The basic problem is that we cannot tell when the ComboxBox is changed by the user or changed programmatically.

I think this commit predates the SliceLinkLogic which may be another way to handle the problem.

alexy

alexy

2013-03-22 10:02

developer   ~0008207

Jim, I am not sure I understand all the considerations related to linking but would the following addition to the code cause problems?:

// Update "foreground layer" node selector
wasBlocked = this->ForegroundComboBox->blockSignals(true);
this->ForegroundComboBox->setCurrentNode(
q->mrmlScene()->GetNodeByID(this->MRMLSliceCompositeNode->GetForegroundVolumeID()));
this->ForegroundComboBox->blockSignals(wasBlocked);
this->onForegroundLayerNodeSelected(q->mrmlScene()->GetNodeByID(this->MRMLSliceCompositeNode->GetForegroundVolumeID()));

alexy

alexy

2013-03-23 06:10

developer   ~0008216

Since the original issue is different from the "interpolation" sync problem, I created a separate issue:
http://na-mic.org/Mantis/view.php?id=3028
Please use it for farther communication.

alexy

alexy

2013-04-02 10:39

developer   ~0008293

Added FOV based on Volumes, resolution based on 2D View mode into reslice functionality. It is available in 2D slice controller widget pop-up.

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21857

Issue History

Date Modified Username Field Change
2011-08-04 09:00 kikinis New Issue
2011-08-04 09:05 finetjul Status new => assigned
2011-08-04 09:05 finetjul Assigned To => pieper
2011-08-25 09:34 finetjul Target Version => Slicer 4.0 RSNA
2011-09-09 05:43 pieper Note Added: 0002955
2011-09-09 05:43 pieper Target Version Slicer 4.0 RSNA => Slicer 4.0 post RSNA
2011-09-10 12:18 kikinis File Added: UglyVoxels.PNG
2011-09-10 12:18 kikinis File Added: PrettyVoxels.PNG
2011-09-10 12:22 kikinis Note Added: 0002962
2011-12-10 02:30 kikinis Note Added: 0003433
2012-01-31 10:13 pieper Note Added: 0003583
2012-01-31 10:13 pieper Assigned To pieper => alexy
2012-10-22 07:36 jcfr Target Version Slicer 4.0.1 => Slicer 4.3.0
2012-12-18 05:49 alexy Note Added: 0007520
2012-12-18 05:49 alexy Status assigned => resolved
2012-12-18 05:49 alexy Resolution open => fixed
2012-12-30 09:39 kikinis Note Added: 0007601
2012-12-30 09:39 kikinis Status resolved => feedback
2012-12-30 09:39 kikinis Resolution fixed => reopened
2012-12-30 09:39 kikinis File Added: Screen Shot 2012-12-30 at 2.35.33 PM.png
2013-01-09 07:10 finetjul Note Added: 0007635
2013-03-22 04:38 kikinis Note Added: 0008198
2013-03-22 08:05 alexy Note Added: 0008201
2013-03-22 08:12 finetjul Note Added: 0008202
2013-03-22 08:15 alexy Note Added: 0008203
2013-03-22 09:26 millerjv Note Added: 0008205
2013-03-22 10:02 alexy Note Added: 0008207
2013-03-23 06:10 alexy Note Added: 0008216
2013-04-02 10:39 alexy Note Added: 0008293
2013-04-02 10:39 alexy Status feedback => resolved
2013-04-03 06:26 kikinis Status resolved => closed
2013-04-03 06:26 kikinis Resolution reopened => fixed
2014-03-06 05:59 jcfr Fixed in Version => Slicer 4.3.0