]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx
2315 creaMaracasVisu Feature New Normal Color Layer synchronisation
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / ThresholdImageView / LayerImageBase.cxx
index d340e7f71f0ff5c13a83bad8da12ac0e03b7796a..0a2ccf959eab243e9f9b3b602fe1fca641fa28d9 100644 (file)
@@ -30,6 +30,9 @@
 
 #include "LayerImageBase.h"
 
+#include "wxVtk2DBaseView.h"
+#include "wxVTKRenderWindowInteractor.h"
+
 
 //---------------------------------------------------------------------------------------------
 //---------------------------------------------------------------------------------------------
@@ -37,7 +40,9 @@
 
 ColorLayerImageBasevtkInteractor::ColorLayerImageBasevtkInteractor(LayerImageBase* layerImageBase)
 {
+    _state=false;
     _layerImageBase=layerImageBase;
+
 }
 
 //---------------------------------------------------------------------------------------------
@@ -47,15 +52,56 @@ ColorLayerImageBasevtkInteractor::~ColorLayerImageBasevtkInteractor()
 
 
 //---------------------------------------------------------------------------------------------
-bool ColorLayerImageBasevtkInteractor::OnMouseMove()
+bool ColorLayerImageBasevtkInteractor::OnMouseMove()   // vitual
 {
        printf("EED ColorLayerImageBasevtkInteractor::OnMouseMove \n");
-    if  (_vtkInteractorStyleBaseView->GetRefresh_waiting()==true)
-    {
-        _layerImageBase->GetvtkImageReslice()->Modified();
-    }
+       
+       if (_state==true)
+       {
+
+               wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*) _vtkInteractorStyleBaseView->GetWxVtk2DBaseView();
+               wxVTKRenderWindowInteractor *wxVTKiren = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor();
+               int px, py;
+               wxVTKiren->GetEventPosition(px, py);
 
-    return true;
+//        int     typeView = 1;
+               double X = (double) px;
+               double Y = (double) py;
+               double Z = wxvtk2Dbaseview->GetActualSlice();
+//             wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true, typeView);
+               wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z, true);
+
+//             _manualPaintControler->PaintImage((int) X, (int) Y, (int) Z);
+
+               _layerImageBase->SetZ( (int)Z );
+               _layerImageBase->onThreshold();
+//             _layerImageBase->Refresh();
+
+
+               this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
+
+               if  (_vtkInteractorStyleBaseView->GetRefresh_waiting()==true)
+               {
+                               _layerImageBase->GetvtkImageReslice()->Modified();
+               }
+       printf("EED ColorLayerImageBasevtkInteractor::YESSSSSS \n");
+       }
+       return true;
+}
+
+
+bool  ColorLayerImageBasevtkInteractor::OnRightButtonDown() // virtual
+{
+       printf("EED ColorLayerImageBasevtkInteractor::OnRightButtonDown \n");
+       _state=true;
+       return true;
+}
+
+bool  ColorLayerImageBasevtkInteractor::OnRightButtonUp()  // virtual
+{
+       printf("EED ColorLayerImageBasevtkInteractor::OnRightButtonUp \n");
+       _state=false;
+       return true;
 }
 
 
@@ -173,12 +219,19 @@ int LayerImageBase::CleanZ(int z)
 //----------------------------------------------------------------------------
 void LayerImageBase::onThreshold()
 {
-       
+
        printf("EED LayerImageBase::onThreshold start \n");
        
        if ((_image!=NULL) && (_baseView!=NULL))
        {
-               int z=CleanZ( GetZ() );
+               double spc[3];
+               GetImage()-> GetSpacing(spc);
+               double  z = CleanZ( GetZ() );
+                       z = z*spc[2];
+
+       printf("EED LayerImageBase::onThreshold z = %d   spcZ%f\n" , z, spc[2]);
+               
+
 
                if (!GetActorPresent())
                {
@@ -225,7 +278,7 @@ void LayerImageBase::onThreshold()
                
                
                } // _image
-       printf("EED LayerImageBase::onThreshold end");
+       printf("EED LayerImageBase::onThreshold end \n");
 }