Index: mitk/Core/Code/Rendering/mitkImageMapperGL2D.cpp =================================================================== --- mitk/Core/Code/Rendering/mitkImageMapperGL2D.cpp (revision 26476) +++ mitk/Core/Code/Rendering/mitkImageMapperGL2D.cpp (working copy) @@ -46,6 +46,7 @@ #include #include "vtkMitkThickSlicesFilter.h" +#include "itkRGBAPixel.h" int mitk::ImageMapperGL2D::numRenderer = 0; @@ -938,6 +939,7 @@ rendererInfo.m_TextureInterpolation = textureInterpolation; mitk::LevelWindow levelWindow; + mitk::LevelWindow opacLevelWindow; bool binary = false; this->GetDataNode()->GetBoolProperty( "binary", binary, renderer ); @@ -946,6 +948,7 @@ { image->setExtrema(0, 1); + image->setOpacityExtrema( 0.0, 255.0 ); image->setBinary(true); bool binaryOutline = false; @@ -977,7 +980,17 @@ this->GetLevelWindow( levelWindow, renderer ); } - image->setExtrema( levelWindow.GetLowerWindowBound(), levelWindow.GetUpperWindowBound() ); + image->setExtrema( levelWindow.GetLowerWindowBound(), levelWindow.GetUpperWindowBound() ); + + // obtain opacity level window + if( this->GetLevelWindow( opacLevelWindow, renderer, "opaclevelwindow" ) ) + { + image->setOpacityExtrema( opacLevelWindow.GetLowerWindowBound(), opacLevelWindow.GetUpperWindowBound() ); + } + else + { + image->setOpacityExtrema( 0.0, 255.0 ); + } } bool useColor = false; @@ -1239,6 +1252,15 @@ levWinProp->SetLevelWindow( levelwindow ); node->SetProperty( "levelwindow", levWinProp, renderer ); } + if(((overwrite) || (node->GetProperty("opaclevelwindow", renderer)==NULL)) + && *(image->GetPixelType().GetItkTypeId()) == typeid(itk::RGBAPixel)) + { + mitk::LevelWindow opaclevwin; + opaclevwin.SetRangeMinMax(0,255); + opaclevwin.SetWindowBounds(0,255); + mitk::LevelWindowProperty::Pointer prop = mitk::LevelWindowProperty::New(opaclevwin); + node->SetProperty( "opaclevelwindow", prop, renderer ); + } if((overwrite) || (node->GetProperty("LookupTable", renderer)==NULL)) { // add a default rainbow lookup table for color mapping