00001 00002 #include "manualInteractorWindowLevel.h" 00003 #include "wxVtk2DBaseView.h" 00004 //------------------------------------------------------------------- 00005 //------------------------------------------------------------------- 00006 //------------------------------------------------------------------- 00007 00008 manualInteractorWindowLevel::manualInteractorWindowLevel() 00009 { 00010 _stateWindowLevel = false; 00011 _backPx = 0; 00012 _backPy = 0; 00013 _backWindow = -1; 00014 _backLevel = -1; 00015 } 00016 00017 //------------------------------------------------------------------- 00018 00019 manualInteractorWindowLevel::~manualInteractorWindowLevel() 00020 { 00021 } 00022 00023 //------------------------------------------------------------------- 00024 00025 bool manualInteractorWindowLevel::OnMouseMove() // virtual 00026 { 00027 00028 if (_stateWindowLevel==true) 00029 { 00030 int tmpPx,tmpPy; 00031 wxVTKRenderWindowInteractor *wxVTKiren; 00032 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); 00033 wxVTKiren->GetEventPosition( tmpPx , tmpPy ); 00034 int colorWin=_backWindow - 2*( _backPx - tmpPx ); 00035 int colorLev=_backLevel + 2*( _backPy - tmpPy ); 00036 00037 if (colorWin<0) 00038 { 00039 colorWin=0; 00040 } 00041 if (colorWin>100000) 00042 { 00043 colorWin=100000; 00044 } 00045 00046 if (colorLev<0) 00047 { 00048 colorLev=0; 00049 } 00050 if (colorLev>100000) 00051 { 00052 colorLev=100000; 00053 } 00054 vtkImageViewer2 *vtkimageviewer2; 00055 vtkimageviewer2=((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2(); 00056 vtkimageviewer2->SetColorWindow(colorWin); 00057 vtkimageviewer2->SetColorLevel(colorLev); 00058 // vtkimageviewer2->Render(); 00059 } 00060 return true; 00061 } 00062 00063 //------------------------------------------------------------------- 00064 00065 bool manualInteractorWindowLevel::OnMiddleButtonDown() // virtual 00066 { 00067 if ((_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && 00068 (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ){ 00069 00070 _stateWindowLevel = true; 00071 wxVTKRenderWindowInteractor *wxVTKiren; 00072 wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); 00073 wxVTKiren->GetEventPosition( _backPx , _backPy ); 00074 00075 _backWindow = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorWindow()); 00076 _backLevel = (int)(((wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView())->_imageViewer2XYZ->GetVtkImageViewer2()->GetColorLevel()); 00077 } 00078 return true; 00079 } 00080 00081 //------------------------------------------------------------------- 00082 00083 bool manualInteractorWindowLevel::OnMiddleButtonUp() // virtual 00084 { 00085 if (_stateWindowLevel==true) 00086 { 00087 _stateWindowLevel=false; 00088 } 00089 return true; 00090 }