]> Creatis software - creaMaracasVisu.git/commitdiff
Merge branch 'creaButtonContainer'
authordavila <eduardo.davila@creatis.insa-lyon.fr>
Wed, 27 May 2015 14:18:27 +0000 (16:18 +0200)
committerdavila <eduardo.davila@creatis.insa-lyon.fr>
Wed, 27 May 2015 14:18:27 +0000 (16:18 +0200)
Conflicts:
bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx

appli/BasicViewer/main.cxx
appli/CMakeLists.txt
bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx
bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx

index 462a57ed311ee9991906535b5e76409dd7682027..b71b6682625a0cbcc0834385353b06e0fd45fc81 100644 (file)
@@ -29,6 +29,9 @@
 #include "OpenImageDialog.h"
 #include "vtkImageData.h"
 
+#include <structBCPSettings.h>
+#include <buttonContainerSettings.h>
+#include <creaPanelButtonContainer.h>
 
 class MyApp:public wxApp
 {
@@ -66,10 +69,11 @@ bool MyApp::OnInit()
        MyFrame *frame = new MyFrame(wxT("CREATIS basic"));
 
        const int width = 600;
+
        const int height = 250;
 
        frame->SetSize(width,height);
-       
+
        frame->Show(true);
 
        return true;
index 197b3c507a8766673679927c310af5ac5365b3c8..7f4788158fb1a15b7dacb87f40cfaed974f20481 100644 (file)
@@ -24,7 +24,7 @@
 # ------------------------------------------------------------------------ */ 
 
 #ADD_SUBDIRECTORY(ManualPaint)
-#ADD_SUBDIRECTORY(BasicViewer)
+##ADD_SUBDIRECTORY(BasicViewer)
 
 IF(QT_USE_QTUITOOLS)
   ADD_SUBDIRECTORY(QtVTKViewer)
index de5de6edbd97182caa828fc6d789501380f860b3..160795d57f2fccc04eb444a651a4a69defa78f1b 100644 (file)
@@ -41,7 +41,7 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ColorLayerImageView,bbtk::WxBlackBox);
 //=====
 void ColorLayerImageView::Process()
 {
-
     ColorLayerImageViewPanel *clivp = (ColorLayerImageViewPanel*)bbGetOutputWidget();
 
     clivp->SetActive( bbGetInputActive() );
index b98efdd3cf714fecfad05e23edf5ae2fe85ffc7e..004b8dab40d2e312bf33d32e6fa57fcc225f5861 100644 (file)
@@ -42,11 +42,7 @@ PanelButtonContainer::Process( )
 {
        ButtonContainerSettings* settings = new ButtonContainerSettings( );
        printf("EED PanelButtonContainer::Process %d\n", bbGetInputIn( ).size() );
-
-
-         settings->InitModel(bbGetInputIn( ), bbGetInputType());
-
-       
+       settings->InitModel(bbGetInputIn( ), bbGetInputType());
        PBContainer* panel = new PBContainer( myPanel, settings, bbGetInputType() );
        wxBoxSizer* sizer  = new wxBoxSizer( wxHORIZONTAL );
        sizer->Add( panel, 1, wxEXPAND, 0 );
@@ -65,8 +61,8 @@ void PanelButtonContainer::CreateWidget( wxWindow* parent )
        this->myPanel = new wxPanel( parent, -1 );
        /// \TODO fix  warning: unused variable ww
        wxWindow* ww = bbCreateWidgetOfInput( "In", this->myPanel );
-       bbSetOutputWidget( myPanel);
-
+       ww=NULL;
+       bbSetOutputWidget( myPanel );
 }
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
index 515784ac9bafcd641b0e7ec0a7272af50b657dda..61bb9bb0f682cd3f17d323ec458d6f957a0277fd 100644 (file)
@@ -82,8 +82,6 @@ void ColorLayerImageView::SetZ2(int z2)
   _z2 = z2;
 }
 
-
-
 //----------------------------------------------------------------------------
 int ColorLayerImageView::GetX() // virtual 
 {
@@ -208,17 +206,17 @@ void ColorLayerImageView::SetDefaultGreyLevelBoundary()
     }
          
   // Grey level extrema are set by default to the image grey level extrema.
-  int minTot = floor (_range[0]);
-  int maxTot = ceil (_range[1]);
+  double minTot = _range[0];
+  double maxTot = _range[1];
 
-  _grey_level_boundary.push_back((double)minTot);
+  _grey_level_boundary.push_back(minTot);
   
   // By default, the histogram is split into BaseColorNb areas of equal width.
   double delta = (maxTot - minTot)/GetBaseColorNb();
   for (int i = 1; i <= GetBaseColorNb() ; i ++)
   {
-               _grey_level_boundary.push_back((double)minTot + i * delta);
-  }
+               _grey_level_boundary.push_back(minTot + i * delta);
+  } // for
 }
 
 //----------------------------------------------------------------------------
@@ -247,152 +245,165 @@ void ColorLayerImageView::SetDefaultBaseColorAndGreyLevelBoundary()
       _range[1]=255;
     }
          
-  int minTot = floor (_range[0]);
-  int maxTot = ceil (_range[1]);
+  double minTot = floor (_range[0]);
+  double maxTot = ceil (_range[1]);
          
-  _grey_level_boundary.push_back((double)minTot);
+  _grey_level_boundary.push_back(minTot);
  
   // By default, the histogram is split into three areas of equal width.
   double delta = (maxTot - minTot)/3.0;
   _grey_level_boundary.push_back(minTot + delta);
   _grey_level_boundary.push_back(minTot + 2*delta);
 
-  _grey_level_boundary.push_back((double)maxTot);
+  _grey_level_boundary.push_back(maxTot);
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageView::ConfigLookupTable()  // virtual
 {
-  // CM
+  // CM 2014
+  // EED        28/01/2015 
+       
   // Grey level extrema retrieved from the image grey level extrema.
 
-
   GetImage()->GetScalarRange(_range);
-
-
+  double minRange = _range[0];
+  double maxRange = _range[1];
 
   // ------------------ Setting Default Values
   // Checks the size consistency of vectors _base_color and _grey_level_boundary.
   // In case of inconsistency, an exception should be thrown. Instead, the default values are set.
   if (GetBaseColorNb() == 0)
-    SetDefaultBaseColorAndGreyLevelBoundary();
-
-  // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined.
-  else
-    if (GetBaseColorNb() != (_grey_level_boundary.size() - 1) )
+       {
+               SetDefaultBaseColorAndGreyLevelBoundary();
+       }
+   else {  // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined.
+      if (GetBaseColorNb() != ((int)_grey_level_boundary.size() - 1) )
       {
-       std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() - 1 (=" << _grey_level_boundary.size() - 1 << ")." << std::endl;
-       std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl;
-       SetDefaultGreyLevelBoundary();     
+                       std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() - 1 (=" << _grey_level_boundary.size() - 1 << ")." << std::endl;
+                       std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl;
+                       SetDefaultGreyLevelBoundary();     
       }
+   }
   // ------------------ End Of Setting Default Values
 
-
   // ------------------ Defining the Threshold Table
   vtkLookupTable* thresholdTable = GetThresholdTable();
+  double thresholdTable_range[2];
+  double r1,r2,g1,g2,b1,b2;
+  int start,end;
 
   // CM Number of table values consistent with the effective number of values (see loop below).
-  double thresholdTable_range[2];
-  thresholdTable_range[1]= std::max( GetGreyLevelBoundaries( GetBaseColorNb() ), ceil(_range[1]) );
-  thresholdTable_range[0]= std::min( GetGreyLevelBoundaries(0), floor(_range[0]) );
-  thresholdTable->SetNumberOfTableValues(thresholdTable_range[1] - thresholdTable_range[0] + 1);
+  thresholdTable_range[1]= std::max(     GetGreyLevelBoundaries( _grey_level_boundary.size()-1 )      ,     ceil(_range[1])      );
+  thresholdTable_range[0]= std::min(     GetGreyLevelBoundaries(0)                                    ,     floor(_range[0])     );
+
   thresholdTable->SetTableRange(thresholdTable_range); 
   thresholdTable->SetAlphaRange(0, 1);
   thresholdTable->SetValueRange(0, 1);
 
-
   thresholdTable->SetSaturationRange(0, 0); 
   thresholdTable->SetRampToLinear( );
 
+  maxColorsThresholdTable = 1000;
+  thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable );
+
+
   // Defines the lookup table.
   // If the image has a degradation in one (or both) extremum (lower or higher),
   // sets the corresponding grey levels as transparent white in the lookup table.
-  for (int i = floor(_range[0]); i <= GetGreyLevelBoundaries(0); i++)
-    {
-      thresholdTable -> SetTableValue( i, 0, 0, 0, 0); 
-    }
-  for (int i = GetGreyLevelBoundaries( GetBaseColorNb() ) + 1 ; i <= ceil(_range[1]); i++)
-    {
-      thresholdTable -> SetTableValue( i, 0, 0, 0, 0); 
-    }
-       
-  int delta;
 
   // _color_type true, i.e. plain colors.
   // Sets the plain color for each grey level interval.
   if (_color_type)
-    {
-      for (int i = 0; i < GetBaseColorNb(); i++)
-       {
-         delta = GetGreyLevelBoundaries(i+1) - GetGreyLevelBoundaries(i);
-         for (int ii = 1; ii <= delta; ii++)
-           {
-             thresholdTable->SetTableValue(GetGreyLevelBoundaries(i) + ii,
-                                           GetBaseColors(i*3), 
-                                           GetBaseColors(i*3 + 1),
-                                           GetBaseColors(i*3 + 2),
-                                           1);
-           }
-       }
-    } // End Of if (_color_type)
+  {
+
+     if ( minRange<GetGreyLevelBoundaries(0) )
+         {
+                       start = 0;      
+                       end     = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(0) );  
+                       FillColorTable(start,end, 0,0,0, 0,0,0);
+     }
+
+     if ( maxRange>GetGreyLevelBoundaries(  _grey_level_boundary.size()-1   ) )
+         {
+                       start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries( _grey_level_boundary.size()-1 ) );  
+                       end     = GrayLevel_TO_colorTableIndex( maxRange );  
+                       FillColorTable(start,end, 0,0,0, 0,0,0);
+     }
+
+      for (int iColor = 0; iColor < GetBaseColorNb(); iColor++)
+               {
+                       r1              = GetBaseColors(iColor*3+0);
+                       g1              = GetBaseColors(iColor*3+1);
+                       b1              = GetBaseColors(iColor*3+2);
+                       start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor) );  
+                       end     = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor+1) );  
+                       FillColorTable(start,end, r1,g1,b1,r1,g1,b1);
+               } // for i
+       } // End Of if (_color_type)
 
-       
   // _color_type false, i.e. gradient color
   else
-    {
-      // First color:
-      // Creates a linear range from white to the first color.
-      delta = GetGreyLevelBoundaries(1) - GetGreyLevelBoundaries(0);
-      for (int ii = 1; ii <= delta ; ii++)
-       {
-         thresholdTable->SetTableValue( (GetGreyLevelBoundaries(0) + ii), GetBaseColors(0) * ii/delta,
-                                        GetBaseColors(1) * ii/delta, GetBaseColors(2) * ii/delta, 1);
-       }
-           
-      // If other colors exist:
-      // Creates linear ranges between one color and the following in the color vector.
+  {
+//EED 28/01/2015
       if (GetBaseColorNb() > 1)
-       {
-         for (int i = 1; i < GetBaseColorNb(); i++)
-           {
-             delta = GetGreyLevelBoundaries(i+1) - GetGreyLevelBoundaries(i);
-             for (int ii = 1; ii <= delta; ii++)
                {
-                 // Color computation : previous_color + (current_color - previous_color)/delta * ii
-                 thresholdTable->SetTableValue((GetGreyLevelBoundaries(i) + ii),
-                                               GetBaseColors((i-1)*3) + (GetBaseColors(i*3) - GetBaseColors((i-1)*3)) / delta * ii , 
-                                               GetBaseColors((i-1)*3 + 1) + (GetBaseColors(i*3 + 1) - GetBaseColors((i-1)*3 + 1)) / delta * ii ,
-                                               GetBaseColors((i-1)*3 + 2) + (GetBaseColors(i*3 + 2) - GetBaseColors((i-1)*3 + 2)) / delta * ii ,
-                                               1);
-               }
-           }
-       }
-    } //  End Of if (!_color_type)
-
-
-       
-   thresholdTable->SetRange(_range[0], _range[1]); // image intensity range
-   thresholdTable->SetValueRange(0.0, 1.0); // from black to white
-
+                       for (int iColor = 0; iColor < GetBaseColorNb(); iColor++)
+                  {
+                               if (iColor==0)
+                               {
+                                       r1              = 0;
+                                       g1              = 0;
+                                       b1              = 0;
+                               } else {
+                                       r1              = GetBaseColors((iColor-1)*3+0);
+                                       g1              = GetBaseColors((iColor-1)*3+1);
+                                       b1              = GetBaseColors((iColor-1)*3+2);
+                               } // if iColor == 0
+
+                               r2              = GetBaseColors(iColor*3+0);
+                               g2              = GetBaseColors(iColor*3+1);
+                               b2              = GetBaseColors(iColor*3+2);
+                               start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor) );  
+                               end     = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor+1) );  
+                               FillColorTable( start,end, r1,g1,b1, r2,g2,b2 );
+                       }// for 
+               } //if                          
+  } //  End Of if (!_color_type)
+
+  thresholdTable->SetRange( minRange, maxRange );
+  thresholdTable->SetValueRange( 0.0, 1.0 );
 
   thresholdTable->Build( );
 
+  //EO CM EED
+}
 
+//----------------------------------------------------------------------------
+int ColorLayerImageView::GrayLevel_TO_colorTableIndex( double VALUE )
+{
+  GetImage()->GetScalarRange(_range);
+  double minRange = _range[0];
+  double maxRange = _range[1];
+  return  maxColorsThresholdTable * (VALUE-minRange) / (maxRange-minRange);    
+}
 
-/*
-// Create a greyscale lookup table
+//----------------------------------------------------------------------------
+void ColorLayerImageView::FillColorTable(int start, int end, double r1, double g1, double b1, double r2, double g2, double b2)
+{
    vtkLookupTable* thresholdTable = GetThresholdTable();
-   thresholdTable->SetRange(0.5, 0.75); // image intensity range
-   thresholdTable->SetValueRange(0.0, 1); // from black to white
-   thresholdTable->SetHueRange(0.0, 1.0); // from black to white
-   thresholdTable->SetSaturationRange(0.0, 1.0); // no color saturation
-   thresholdTable->SetRampToLinear();
-   thresholdTable->Build();
-*/ 
+       int      iTable;
+       double delta    = end-start;
+       double dr               = (r2-r1)/delta;
+       double dg               = (g2-g1)/delta;
+       double db               = (b2-b1)/delta;
+       for (iTable=0; iTable<=delta; iTable++)
+       {
+               thresholdTable->SetTableValue(  iTable+start , r1+dr*iTable, g1+dg*iTable, b1+db*iTable,1);
+       } // for iTable
 
-  // ------------------ End Of Defining the Threshold Table
+       if (start==0) thresholdTable->SetTableValue(  start , r1, g1, b1,0);   // The first color in the table is transparent
 
-  //EO CM
 }
 
 // EOF
index e9adb4fcc3923beda564b2eb1dd837be6d9dba57..75c6e1a107c62ec04af4d204798cd4a7ad4d6cfa 100644 (file)
@@ -91,6 +91,12 @@ class  ColorLayerImageView : public LayerImageBase
           */
          int GetBaseColorNb();
 
+
+               void    FillColorTable(int start, int end, double r1, double g1, double b1, double r2, double g2, double b2);
+
+               int     GrayLevel_TO_colorTableIndex( double VALUE );
+
+
   private:
 
          int _x2, _y2, _z2;
@@ -98,6 +104,8 @@ class  ColorLayerImageView : public LayerImageBase
          void SetDefaultGreyLevelBoundary();
          void SetDefaultBaseColorAndGreyLevelBoundary();
          virtual void ConfigLookupTable();
+     int maxColorsThresholdTable;
+
 
          //! Range values in the colored image.
          double _range[2];
index ffabba162bf8ae6dbba8fbfd61921eb36bb1d96b..d6efc9123ee1ebbf4b0249a3c1d2370295f6592b 100644 (file)
@@ -59,7 +59,6 @@ void wxDlgTransformByDimensionBySpacingByPixel::GetTransformType(wxWindow *paren
        wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 3 , lstOptOperation,  3, wxRA_SPECIFY_COLS);
 
        dialSizer->Add( new wxStaticText(dial,-1,message)  , 0, wxGROW );
-       //      dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?"))  , 0, wxGROW );
        dialSizer->Add( new wxStaticText(dial,-1,_T(" "))  , 0, wxGROW );
        dialSizer->Add(radioOpts,0,wxGROW);
        dialSizer->Add( new wxStaticText(dial,-1,_T(" "))  , 0, wxGROW );
@@ -90,12 +89,10 @@ void wxDlgTransformByDimensionBySpacingByPixel::GetTransformType(wxWindow *paren
 ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, int max, int type)
 : wxPanel(parent, -1, wxDefaultPosition, wxSize(600,100), wxBORDER_SUNKEN)
 {
-       printf("EED ColorLayerImageViewPanel::ColorLayerImageViewPanel start \n");
 
        _spcBase[0] = _spcBase[1] = _spcBase[2] = 0;
        _dimBase[0] = _dimBase[1] = _dimBase[2] = 0;
 
-//EED01        _colorLayerImageView            = new ColorLayerImageView();
        _colorLayerImageViewManager     = new ColorLayerImageViewManager();
 
        _btn_ReadImage                  = new wxButton(this, wxID_ANY, _T("Read Image") );
@@ -189,26 +186,14 @@ ColorLayerImageViewPanel::~ColorLayerImageViewPanel()
 }
 
 
-//EED01  
-//EED01  //----------------------------------------------------------------------------
-//EED01  void ColorLayerImageViewPanel::SetColorLayerImageView(ColorLayerImageView* colorLayerImageView)
-//EED01  {
-//EED01        _colorLayerImageView = colorLayerImageView;
-//EED01  }
-//EED01  
-//EED01  //----------------------------------------------------------------------------
-//EED01  ColorLayerImageView* ColorLayerImageViewPanel::GetColorLayerImageView()
-//EED01  {
-//EED01        return _colorLayerImageView;
-//EED01  }
-
-
+//----------------------------------------------------------------------------
 ColorLayerImageViewManager* ColorLayerImageViewPanel::GetColorLayerImageViewManager()
 {
    return _colorLayerImageViewManager;
 }
 
 
+//----------------------------------------------------------------------------
 // This is the new spacing of the background image  (1,1,1)
 void ColorLayerImageViewPanel::SetBaseSpacing(double spc[3])
 {
@@ -221,6 +206,7 @@ void ColorLayerImageViewPanel::SetBaseSpacing(double spc[3])
        _spcBase[2] = 1;
 }
 
+//----------------------------------------------------------------------------
 // This is the Original spacing of the background image
 void ColorLayerImageViewPanel::SetOriginalSpacing(double spc[3])
 {
@@ -229,6 +215,7 @@ void ColorLayerImageViewPanel::SetOriginalSpacing(double spc[3])
        _spcOrg[2] = spc[2];
 }
 
+//----------------------------------------------------------------------------
 // This is the size in pixels of the background image
 void ColorLayerImageViewPanel::SetBaseDimension(int dim[3])
 {
@@ -278,9 +265,6 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
          else
            typeOfTransformation = _fitting_mode;
          //EO CM
-
-         printf("EED ColorLayerImageViewPanel::onReadImage call dialog spc size,dim...???\n");
-
             if (typeOfTransformation==1)  // make dimensions equals
             {
                 printf("EED ColorLayerImageViewPanel::onReadImage ...WARNNING.... dif size image spc*dim ofnew image ...???\n");
@@ -306,15 +290,11 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
             img->SetSpacing(spc);
         } // spc !_spcBase   dim!__dimBase
 
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
-//EED01            _colorLayerImageView->onThreshold();
                if (_active==true)
                {
                    _colorLayerImageViewManager->onThreshold();
                 RefreshView();
                }
-//EED01        }
 
 
     }
@@ -362,72 +342,51 @@ void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event)
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdChange(wxCommandEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
                if (_thresholdGo)
                {
-//EED01                 _colorLayerImageView->onThresholdChange();
                 _colorLayerImageViewManager->onThresholdChange();
                 RefreshView();
                //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal  << std::endl;
           } // _thresholdGo
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdShow(wxCommandEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
         _thresholdGo = _cb_ShowHide->GetValue();
         if (_thresholdGo)
         {
-//EED01            _colorLayerImageView->onThreshold();
                    _colorLayerImageViewManager->onThreshold();
         }else{
-//EED01            _colorLayerImageView->onThresholdRemove( );
                    _colorLayerImageViewManager->onThresholdRemove( );
         }
             RefreshView();
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdStop()
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
                if (_thresholdGo)
                {
-//EED01                    _colorLayerImageView->onThresholdRemove( );
                    _colorLayerImageViewManager->onThresholdRemove( );
                    _thresholdGo=false;
                }
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdInterpolation(wxCommandEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
-//EED01                _colorLayerImageView->onThresholdInterpolation(_interpolationCheckBox->GetValue());
           _colorLayerImageViewManager->onThresholdInterpolation(_interpolationCheckBox->GetValue());
                RefreshView();
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
         bool fixdin = _cb_SliceFixDinamic->GetValue();
-//EED01        _colorLayerImageView->SetSliceFixDynamic( fixdin );
         _colorLayerImageViewManager->SetSliceFixDynamic( fixdin );
         if (fixdin==false)
         {
-//EED01            _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
             _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() );
             _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() );
             _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() );
@@ -435,38 +394,26 @@ void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
         _sl_SliceImageX->Enable(!fixdin);
         _sl_SliceImageY->Enable(!fixdin);
         _sl_SliceImageZ->Enable(!fixdin);
-//EED01        _colorLayerImageView->onThreshold();
         _colorLayerImageViewManager->onThreshold();
        RefreshView();
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
-//EED01        _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() );
-//EED01        _colorLayerImageView->onThreshold();
-//EED01        RefreshView();
-         _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() );
-         _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() );
-         _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() );
-         _colorLayerImageViewManager->onThreshold();
+   _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() );
+   _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() );
+   _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() );
+   _colorLayerImageViewManager->onThreshold();
        RefreshView();
-//EED01        }//_colorLayerImageView
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event)
 {
-//EED01        if (_colorLayerImageView!=NULL)
-//EED01        {
         int opacity = _opacity->GetValue();
-//EED01        _colorLayerImageView->onThresholdChangeOpacity(opacity);
         _colorLayerImageViewManager->onThresholdChangeOpacity(opacity);
        RefreshView();
-//EED01        }//_colorLayerImageView
 }