]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx
#3513 ColorLayerImageView2
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / ThresholdImageView / ColorLayerImageViewPanel.cxx
index 358817a627caa9457475defe4ea33b7d7fc6b8b4..b5287a88fb8fc11978152a291dde0d0dd229d2e6 100644 (file)
@@ -238,6 +238,7 @@ ColorLayerImageViewManager* ColorLayerImageViewPanel::GetColorLayerImageViewMana
    return _colorLayerImageViewManager;
 }
 
+/*
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
 {
@@ -247,7 +248,9 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
                {
                        _histogramMinMaxLevel->Configure( img );
                }
         _colorLayerImageViewManager->SetImage( img );
         double         spcOriginalLayer[3];
         int    dimensionOriginalLayer[3];
         double         spcBase[3];
@@ -317,7 +320,6 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
                 newSpc[1] = spcOriginalLayer[1];
                 newSpc[2] = spcOriginalLayer[2];
                } // spc !_spcBase   dim!__dimBase
-
                GetColorLayerImageViewManager()->SetNewSpacingLayer(newSpc);
 
     } // img
@@ -327,9 +329,63 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
            _colorLayerImageViewManager->onThreshold();
         if (img==NULL)        _colorLayerImageViewManager->onThresholdRemove( );
                RefreshView();
-       } // _ative     
+       } // _active
+}
+*/
+
+//----------------------------------------------------------------------------
+void ColorLayerImageViewPanel::SetImage(vtkImageData *img)
+{
+//    if (img!=NULL)
+//    {
+        if (_histogramMinMaxLevel!=NULL)
+        {
+            _histogramMinMaxLevel->Configure( img );
+        }
+
+        _colorLayerImageViewManager->SetImageStep1( img );
+
+        double      spcBase[3];
+        double      spcOriginalLayer[3];
+        int         dimensionBase[3];
+        int         dimensionOriginalLayer[3];
+  //      double      newSpc[3];
+        GetColorLayerImageViewManager()->GetSpcOriginalLayer(0,spcOriginalLayer);
+        GetColorLayerImageViewManager()->GetDimensionOriginalLayer(0,dimensionOriginalLayer);
+        GetColorLayerImageViewManager()->GetSpcBase(0,spcBase);
+        GetColorLayerImageViewManager()->GetDimensionBase(0,dimensionBase);
+        GetColorLayerImageViewManager()->GetDimensionOriginalLayer(0,dimensionOriginalLayer);
+        if (_sl_SliceImageX!=NULL)
+        {
+            _sl_SliceImageX->SetRange( 0 , dimensionOriginalLayer[0] );
+            _sl_SliceImageY->SetRange( 0 , dimensionOriginalLayer[1] );
+            _sl_SliceImageZ->SetRange( 0 , dimensionOriginalLayer[2] );
+        }
+
+    int typeOfTransformation;
+    if (_fitting_mode == -1)
+    {
+        bool transformOkDlg;
+        wxString msg = _T("The image resolution of both images are not compatible. How do you want to tranform it? ");
+        wxDlgTransformByDimensionBySpacingByPixel dlg;
+        dlg.GetTransformType(this , spcBase , spcOriginalLayer , dimensionBase ,dimensionOriginalLayer ,msg,typeOfTransformation,transformOkDlg);
+        // CM Reset the default value (Pixel i.e. 3) if the dialog box returned an inappropriate value.
+        if (transformOkDlg == false)
+        {
+            typeOfTransformation = 3;
+        }
+     } else {
+         typeOfTransformation = _fitting_mode;
+    } // _fitting_mode -1
+    
+    _colorLayerImageViewManager->SetFittingMode( typeOfTransformation );
+    _colorLayerImageViewManager->SetImageStep2( img );
+
+//    } // img
+
 }
 
+//----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::RefreshView()
 {
 //EED01        _colorLayerImageView->Refresh();
@@ -364,9 +420,9 @@ void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event)
 //      w.ShowModal();
        printf("EED ColorLayerImageViewPanel::onReadImage ....WARNING... Read dlg. all images creaImageIO ... ???\n");
 
-       int     ext[6];
-       double  spc[6];
-       double  origin[3];
+       int         ext[6];
+       double      spc[6];
+       double      origin[3];
        origin[0]       = 0;
        origin[1]       = 0;
        origin[2]       = 0;
@@ -383,7 +439,7 @@ void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event)
        change  -> Modified();          //important
        change  -> Update();            //important
        SetImage( change->GetOutput() );
-       _colorLayerImageViewManager->onThreshold();
+    GetColorLayerImageViewManager()->onThreshold();
        RefreshView();
 }
 
@@ -392,7 +448,7 @@ void ColorLayerImageViewPanel::onThresholdChange(wxCommandEvent& event)
 {
                if (_thresholdGo)
                {
-                _colorLayerImageViewManager->onThresholdChange();
+                GetColorLayerImageViewManager()->onThresholdChange();
                         RefreshView();
                //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal  << std::endl;
           } // _thresholdGo
@@ -405,9 +461,9 @@ void ColorLayerImageViewPanel::onThresholdShow(wxCommandEvent& event)
                        _active = _thresholdGo;
         if (_thresholdGo)
         {
-                   _colorLayerImageViewManager->onThreshold();
+            GetColorLayerImageViewManager()->onThreshold();
         }else{
-                   _colorLayerImageViewManager->onThresholdRemove( );
+            GetColorLayerImageViewManager()->onThresholdRemove( );
         }
             RefreshView();
 }
@@ -415,18 +471,18 @@ void ColorLayerImageViewPanel::onThresholdShow(wxCommandEvent& event)
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdStop()
 {
-               if (_thresholdGo)
-               {
-                   _colorLayerImageViewManager->onThresholdRemove( );
-                   _thresholdGo=false;
-               }
+    if (_thresholdGo)
+    {
+        GetColorLayerImageViewManager()->onThresholdRemove( );
+        _thresholdGo = false;
+       }
 }
 
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onThresholdInterpolation(wxCommandEvent& event)
 {
-          _colorLayerImageViewManager->onThresholdInterpolation(_interpolationCheckBox->GetValue());
-               RefreshView();
+    GetColorLayerImageViewManager()->onThresholdInterpolation(_interpolationCheckBox->GetValue());
+    RefreshView();
 }
 
 //----------------------------------------------------------------------------
@@ -436,9 +492,9 @@ void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
         _colorLayerImageViewManager->SetSliceFixDynamic( fixdin );
         if (fixdin==false)
         {
-            _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() );
-            _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() );
-            _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() );
+            GetColorLayerImageViewManager()->SetX2( _sl_SliceImageX->GetValue() );
+            GetColorLayerImageViewManager()->SetY2( _sl_SliceImageY->GetValue() );
+            GetColorLayerImageViewManager()->SetZ2( _sl_SliceImageZ->GetValue() );
         }
         _sl_SliceImageX->Enable(!fixdin);
         _sl_SliceImageY->Enable(!fixdin);
@@ -450,10 +506,10 @@ void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event)
 //----------------------------------------------------------------------------
 void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event)
 {
-   _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() );
-   _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() );
-   _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() );
-   _colorLayerImageViewManager->onThreshold();
+    GetColorLayerImageViewManager()->SetX2( _sl_SliceImageX->GetValue() );
+    GetColorLayerImageViewManager()->SetY2( _sl_SliceImageY->GetValue() );
+    GetColorLayerImageViewManager()->SetZ2( _sl_SliceImageZ->GetValue() );
+    GetColorLayerImageViewManager()->onThreshold();
        RefreshView();
 }
 
@@ -467,7 +523,7 @@ int ColorLayerImageViewPanel::GetOpacity()
 void ColorLayerImageViewPanel::ChangeOpacity()
 {
        int opacity = _opacity->GetValue();
-       _colorLayerImageViewManager->onThresholdChangeOpacity(opacity);
+    GetColorLayerImageViewManager()->onThresholdChangeOpacity(opacity);
        RefreshView();
 }
 
@@ -495,6 +551,7 @@ void ColorLayerImageViewPanel::SetActive(bool active)
        {
                _cb_ShowHide->SetValue( _active );
        }
+    GetColorLayerImageViewManager()->SetActive( _active );
 }