Page MenuHomePhabricator

Replace "use color" property by a new "Image Rendering.Mode" property
Closed, ResolvedPublic

Assigned To
None
Authored By
vanbruggen
May 30 2012, 4:05 PM
Referenced Files
F844: useColorOnColorRed.jpg
Oct 15 2012, 2:30 PM
F843: useColorOnColorWhite.jpg
Oct 15 2012, 2:30 PM
F842: useColorOffColorIgnored.jpg
Oct 15 2012, 2:29 PM

Description

This should be reversed in order to make sense.

Event Timeline

I agree that this same is stupid, however, it indicates that the color property of MITK is used to color images. If the color property is set to "white" (default), gray-scale images will be rendered gray.

Maybe we can rename this property to "use color property" or something...

MITK-1-0 keyword is obsolete, we use Target Milestones in the future.

This bug was discovered during testing of 2012-06, updating version. Target milestone is unspecified until general bug review, but feel free to fix it before.

The property name "use color" is insanely complicated. Trivial fix, but lots of discussion needed...

use color is off -> color property is ignored and a default (colored!) lookuptable is used

useColorOffColorIgnored.jpg (956×890 px, 101 KB)

use color is on -> color property is used (with color set to white!)

useColorOnColorWhite.jpg (952×890 px, 90 KB)

use color is on -> color property is used (with color set to red)

useColorOnColorRed.jpg (962×892 px, 78 KB)

I added 3 attachments to describe the problem.

We decided to remove the property "use color". As default the color property should be used, unless a "lookuptable" property is set by the user. If the user wants to save the "lookuptable" property, but also wants to use the color property for some reason, he can just rename the "lookuptable" property to "lookuptable.deactivated" and it will become inactive.

New remote branch pushed: bug-12056-RemoveUseColor

RFD: Do we want the level window slider to modify the range of a user-defined-lut?

Updating target milestone to upcoming release

We decided that we don't want the level window slider to modify a lookuptable which was set by the user. If there is such a lookuptable, the levelwindow slider should be deactivated/hidden. This GUI work will be continued in T14179.

New remote branch pushed: bug-12056-RemoveUseColorIntegration

Updated the core change request. Peter tested diffusion functions of this branch.

I will merge this bug today. The test will follow when we finished the problems with the rendering tests.

[3cb1e6]: Merge branch 'bug-12056-RemoveUseColorIntegration'

Merged commits:

2013-01-30 14:51:52 Thomas Kilgus [9dc431]
Setroperty -> SetImageProperty


2013-01-16 15:32:49 Thomas Kilgus [4fd93f]
Merge branch 'bug-12056-RemoveUseColor' into bug-12056-RemoveUseColorIntegration

Conflicts:
Core/Code/Testing/mitkImageVtkMapper2DColorTest.cpp


2013-01-16 15:24:02 Thomas Kilgus [1bfd72]
Adapted docu. Reverted the name change of the lut property.


2013-01-14 13:30:22 Thomas Kilgus [28e3f1]
Documention. Renamed property LookupTable in 2D image mapper to UserDefinedLookupTable.


2012-12-12 17:38:24 Thomas Kilgus [95ac72]
Removed use color.

The "LookupTable" property is in the VolumeMapper. It should be renamed to distinguish between Volume and 2D Image. Furthermore, it should be discussed if we want to set the user-defined lut range via the level window slider.

This bug should be tested for the next release. If nothing serious occurs, it can be closed.

[93d3c9]: Merge branch 'bug-12056-UseColorAndBinarys'

Merged commits:

2013-02-14 11:04:48 Thomas Kilgus [70fc27]
Style commit: using MITK-style guide whitespace in image mapper now.


2013-02-14 11:03:18 Thomas Kilgus [c9900f]
Fixed binary image rendering: color and crash.

I just figured out that this bug makes loading of old scene files hard. In the past, we used to ALWAYS set a default lookup table for each image. This lut (which was almost never used) used to be saved in every scene file as property for each image! Now, if you load old scene files, this property will be set and used due to our new policy of the LookuptableProperty.

We decided to implement a "Image Rendering Mode" property which switches between different modes. E.g. apply a LuT, apply the level window, apply a transfer function etc..

This property simplifies the code in the image mapper and allows users to directly switch between lots of modes. Additionally, the scene IO can be adapted to be compatible to the new property. The disadvantage is, that nothing will happen if the user sets e.g. a LuT and does not change the rendering mode, however, a warning will appear if he changes the mode, but does not define a LuT.

This bug will be used to ensure an integration in our 2013-03 release.

New remote branch pushed: bug-12056-RenderingMode

I tested the branch on my mac: the MITK Workbench crashed when I tried to load an old scene file. It also crashed when I tried to load a scene file which I had just save (on this branch). Stacktrace is:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libMitk.dylib 0x0000000106c1d368 mitk::ImageVtkMapper2D::ApplyRenderingMode(mitk::BaseRenderer*) + 440 (mitkImageVtkMapper2D.cpp:541)
1 libMitk.dylib 0x0000000106c1a222 mitk::ImageVtkMapper2D::GenerateDataForRenderer(mitk::BaseRenderer*) + 4898 (mitkImageVtkMapper2D.cpp:379)
2 libMitk.dylib 0x0000000106c1ecf5 mitk::ImageVtkMapper2D::Update(mitk::BaseRenderer*) + 725 (mitkImageVtkMapper2D.cpp:654)
3 libMitk.dylib 0x0000000106c029ef mitk::VtkPropRenderer::Update(mitk::DataNode*) + 543 (mitkVtkPropRenderer.cpp:367)
4 libMitk.dylib 0x0000000106c02c02 mitk::VtkPropRenderer::Update() + 386 (mitkVtkPropRenderer.cpp:386)
5 libMitk.dylib 0x0000000106c020c2 mitk::VtkPropRenderer::PrepareMapperQueue() + 162 (mitkVtkPropRenderer.cpp:241)
6 libMitk.dylib 0x0000000106c01de3 mitk::VtkPropRenderer::Render(mitk::VtkPropRenderer::RenderType) + 131 (mitkVtkPropRenderer.cpp:183)
7 libMitk.dylib 0x0000000106c0c540 vtkMitkRenderProp::RenderOpaqueGeometry(vtkViewport*) + 48 (vtkMitkRenderProp.cpp:48)
8 libvtkRendering.5.10.dylib 0x000000010de8c2b4 vtkRenderer::UpdateGeometry() + 724 (vtkRenderer.cxx:630)
9 libvtkRendering.5.10.dylib 0x000000010dfe8ac5 vtkOpenGLRenderer::DeviceRender() + 181 (vtkOpenGLRenderer.cxx:250)

The branch does not contain any changes to scene IO (yet) and is not ready to be merged. Did you try the same tests on the current installer? I assume that there the same crash occurs and you should anyway grant the release fix flag, because the current status is unacceptable for the release :).

[f869e5]: Merge branch 'bug-12056-RenderingMode'

Merged commits:

2013-03-15 17:41:04 Thomas Kilgus [1f942e]
Added a workarround to support the deprecated use color property in scene IO including serialization of new Image Rendering.Mode.


2013-03-14 13:13:17 Thomas Kilgus [19a2a2]
Moved the special handling of binary images to the rendering mode function to solve rendering of binaries on top of other images.


2013-03-14 11:05:04 Thomas Kilgus [be28e0]
Added a property for changing the rendering mode. Added docu and adapted the transfer function test to use the property.

[930772]: Merge branch 'bug-12056-RenderingMode'

Merged commits:

2013-03-15 18:27:59 Thomas Kilgus [9dd5d4]
COMP: Fixed compiler error. (Suppress warning).

[40915a]: Merge branch 'bug-12056-FixForMissingUseColor'

Merged commits:

2013-03-26 15:01:35 Peter Neher [f6c1ae]
If no RenderingModeProperty is found in a scene file AND no use color property is found, we have to add a new RenderingModeProperty.

[465d58]: Merge branch 'bug-12056-DefaultValueForRenderingMode'

Merged commits:

2013-03-27 17:24:05 Thomas Kilgus [445d36]
Always check for 'use color' and replace it.


2013-03-27 17:19:25 Thomas Kilgus [51126a]
Added a default value for Image Rendering.Mode property.

Apparently fixed in the 2013.03 release - closing bug.