View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002584||Slicer4||Core: GUI||public||2012-10-01 03:09||2014-03-06 05:10|
|Product Version||Slicer 4.1.1|
|Target Version||Slicer 4.2.0||Fixed in Version||Slicer 4.2.0|
|Summary||0002584: Transform Widget: min/max setting changes the translation values when selecting a new transform|
When selecting an "Active Transform" using the Transforms module, the current min/max settings for translation are automatically applied to the transform being selected.
This is a problem, because when I load a transform from a file, the min/max setting will limit the values of the loaded transform if the translation values are outside the current min/max setting for translation. Thus, the act of merely selecting a transform using the Transforms module may automatically change the transforms values without me even knowing it. And I cannot know what the values of the transform are until after it is loaded, thus I have no way to ensure that my min/max value is large enough before loading a new transform from file.
The problem above can also happen for the case where I have two transforms with different min/max settings. If I'm currently editing a transform with smaller min/max setting, I have to remember to increase the min/max values before selecting the other transform with higher min/max setting. If I don't do this, the values of the other transform with a higher min/max will be automatically changed when that transform is selected.
I believe the desired fix is when selecting a new Active Transform, the translation values of that transform should be checked and compared to the current min/max setting for translation in the GUI. If the transforms values are larger than the min/max setting, the min/max setting could be increase to allow the large values.
Slicer Version: 4.1.0-2012-09-06 r20936
|Tags||No tags attached.|
Also, if one or more transforms exist in the current MRML tree, then choosing the "Transforms" module from the Modules drop-down box automatically selects one of these transforms as the active transform. This situation presents the same problem as described above. So to ensure that a transform stored in a file is not automatically changed within Slicer, I have to first set the min/max values in the Transform module large enough, even before adding any of those transforms to the MRML tree.
This seems to be similar to issue 2380. It has been resolved. You will have to build the latest Slicer HEAD to get that fix. It will be included in Slicer release version 4.2.0.
I've updated to the latest release, and the problem stated above has indeed been fixed.
However, the fix introduces a new problem for me. In the latest Slicer release, when selecting an active transform, the min/max values are automatically increased in magnitude as needed. However, the min/max change is applied to both the rotation and translation sliders. I wonder if this was intended? It seems that modifying the rotation min/max shouldn't be necessary since they don't limit the displayed transform values.
For my particular application, I require small min/max values on rotation, which I do by setting the default min/max to a small value in qMRMLTransformSliders.ui. I tried also controlling this by setting the min/max value controls to visible for rotation sliders in qSlicerTransformsModule.ui, but when I do this the following problems arise:
I noticed another problem with this fix:
Moving a translation slider past the min/max setting for the rotation sliders causes the min/max values for rotation to change. Default min/max for rotation is +/- 200. If you move a translation slider to -400 for example, the bars for rotation all move to the right, as the rotation min is changed to -400.
I agree with sbillin, the range of the rotation shouldn't change. And btw, it should probably be -180,+180.
Concerning the reset to 0 of the rotation slider when a translation slider move, it is done on purpose: the rotation sliders don't represent the current "rotation" of the transform matrix, but are actions: "rotate" around a given axis.
As it is a regression, it must be fixed for 4.2
Pushed topic here: https://github.com/sankhesh/Slicer/tree/2584-Transform-widget-sliders
This topic fixes the issue.
Made changes in this commit: https://github.com/sankhesh/Slicer/commit/bc12d72eeff9634e280ad5a5ead46ee212b39783
Closing resolved issues that have not been updated in more than 3 months
|2012-10-01 03:09||sbillin||New Issue|
|2012-10-01 03:09||sbillin||Status||new => assigned|
|2012-10-01 03:09||sbillin||Assigned To||=> kikinis|
|2012-10-01 04:06||sbillin||Note Added: 0006288|
|2012-10-02 09:22||finetjul||Assigned To||kikinis => sankhesh|
|2012-10-02 10:08||sankhesh||Relationship added||has duplicate 0002380|
|2012-10-02 10:08||sankhesh||Relationship deleted||has duplicate 0002380|
|2012-10-02 10:08||sankhesh||Relationship added||duplicate of 0002380|
|2012-10-02 10:12||sankhesh||Note Added: 0006334|
|2012-10-02 11:46||sbillin||Note Added: 0006337|
|2012-10-02 12:28||sbillin||Note Added: 0006341|
|2012-10-03 20:30||finetjul||Note Added: 0006376|
|2012-10-03 20:30||finetjul||Target Version||=> Slicer 4.2.0 - coming release|
|2012-10-15 07:48||sankhesh||Note Added: 0006534|
|2012-10-15 15:35||sankhesh||Note Added: 0006557|
|2012-10-16 08:57||sankhesh||Note Added: 0006568|
|2012-10-16 08:57||sankhesh||Status||assigned => resolved|
|2012-10-16 08:57||sankhesh||Fixed in Version||=> Slicer 4.2.0 - coming release|
|2012-10-16 08:57||sankhesh||Resolution||open => fixed|
|2012-12-10 07:02||sankhesh||Relationship added||related to 0002579|
|2014-03-06 05:08||jcfr||Note Added: 0010983|
|2014-03-06 05:10||jcfr||Status||resolved => closed|