]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx
no message
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtk2DBaseView.cxx
index 45a387a363f244dc823acce94a70a3ccb5bb518b..b587d760697b15c38da2f51ba2d7e1e8786e17b9 100644 (file)
@@ -75,7 +75,26 @@ void wxVtk2DBaseView::ResetView()
        _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
 
        _imageViewer2XYZ->GetVtkImageViewer2()->Render();
-       SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
+
+       //////////////
+       //RaC 04-2010 Look for the description of new changes in vtkInteractorStyleBaseView2D constructor.
+       //
+       // Previous version
+       // SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
+       //
+       // Actual version
+       vtkInteractorStyleBaseView2D *style2D = vtkInteractorStyleBaseView2D::New();
+
+       manualInteractorWindowLevel *_manualinteractorwindowlevel= new manualInteractorWindowLevel();
+       style2D->SetInteractorWindowLevel( _manualinteractorwindowlevel );
+
+       vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ();
+       style2D->SetInteractorScrollZ(_vtkInteractorScrollZ);
+
+       SetInteractorStyleImage( style2D );
+
+       // RaC
+       //////////////
        
 }
 
@@ -93,7 +112,26 @@ void wxVtk2DBaseView::Configure(bool okimage)
                _imageViewer2XYZ = new vtkImageViewer2_XYZ();
                wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
                _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
-               SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
+
+               //////////////
+               //RaC 04-2010 Look for the description of new changes in vtkInteractorStyleBaseView2D constructor.
+               //
+               // Previous version
+               // SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
+               //
+               // Actual version
+               vtkInteractorStyleBaseView2D *style2D = vtkInteractorStyleBaseView2D::New();
+
+               manualInteractorWindowLevel *_manualinteractorwindowlevel= new manualInteractorWindowLevel();
+               style2D->SetInteractorWindowLevel( _manualinteractorwindowlevel );
+
+               vtkInteractorScrollZ *_vtkInteractorScrollZ = new vtkInteractorScrollZ();
+               style2D->SetInteractorScrollZ(_vtkInteractorScrollZ);
+
+               SetInteractorStyleImage( style2D );
+
+               // RaC
+               //////////////
        }
 
 
@@ -105,19 +143,17 @@ void wxVtk2DBaseView::Configure(bool okimage)
                if (okimage==true){
                        imageData->GetSpacing (spx,spy,spz);
                        imageData->GetExtent (x1,x2,y1,y2,z1,z2);
-
-
                        _imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
                        _imageViewer2XYZ->SetExtentDimension(x1,x2,y1,y2,z1,z2);
                        double range[2];
-                         imageData->GetScalarRange(range);
-                         if (range[1]<20000){
+                       imageData->GetScalarRange(range);
+                       if (range[1]<20000){
                                 _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( (range[1]-range[0])/2 );
                                 _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( (range[1]+range[0])/4 );
-                         } else {
+                       } else {
                                 _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( 1000 );
                                 _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( 500 );
-                         }
+                       }
 // EED 31 Janvier 2007
 //vtkImageActor *vtkimageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor ();
 //vtkimageactor->InterpolateOff ();
@@ -154,16 +190,18 @@ void wxVtk2DBaseView::Configure(bool okimage)
                        camera->SetParallelScale( spx*(x2-x1)/3.0 );
                        
                        // text information over the graphic window
-                       _vtkIinfoTextImage              = new vtkInfoTextImage();
-                       _vtkIinfoTextImageInteractor    = new vtkInfoTextImageInteractor();
+                       if(_vtkIinfoTextImage == NULL){
+                               _vtkIinfoTextImage              = new vtkInfoTextImage();
+                               _vtkIinfoTextImageInteractor    = new vtkInfoTextImageInteractor();                             
+                               ((vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView())->AddInteractorStyleMaracas(_vtkIinfoTextImageInteractor);
+                       }
                        _vtkIinfoTextImage->SetWxVtk2DBaseView(this);
                        _vtkIinfoTextImage->SetMarImageData( GetVtkBaseData()->GetMarImageData() );
-                       _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage);     
+                       _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage);                             
                        _vtkIinfoTextImage->Configure();
-                       ((vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView())->AddInteractorStyleMaracas(_vtkIinfoTextImageInteractor);
+                       
                } // okimage
        } // imageData
-
 }
 
 //-------------------------------------------------------------------
@@ -241,3 +279,24 @@ void wxVtk2DBaseView::GetSpacing(double spc[3])  // virtual
    imageData->GetSpacing(spc);
 }
 
+void wxVtk2DBaseView::setColorTransferFunction(vtkColorTransferFunction* colortable){
+       if(_imageViewer2XYZ!=NULL){
+               _imageViewer2XYZ->setColorTransferFunction(colortable);
+               this->Refresh();
+       }
+}
+
+void wxVtk2DBaseView::setWindowLevel(double level){
+//     _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow(level);  
+
+       vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel();
+       imagemaptowindowlevel->SetWindow(level);
+       this->Refresh();
+}
+
+void wxVtk2DBaseView::setColorLevel(double level){
+//     _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel(level);
+       vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel();
+       imagemaptowindowlevel->SetLevel(level);
+       this->Refresh();
+}