X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtk2DBaseView.cxx;h=a109665df029a051d7b844105f8720ff207de229;hb=2d120b4a381dd83c9bb9e3e05a8da23143f90108;hp=eba5e3e48aac346dce4f9862e18b638a2ab05bde;hpb=d653db1bd5d3650822d8c8f6febd9e1ab59cd701;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx index eba5e3e..a109665 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx @@ -15,20 +15,20 @@ wxVtk2DBaseView::wxVtk2DBaseView(wxWindow *parent) //EED 5mai2009 //------------------------------------------------------------------- wxVtk2DBaseView::~wxVtk2DBaseView() -{ - if (_vtkIinfoTextImage!=NULL) +{ + if (_vtkIinfoTextImage!=NULL) { - delete _vtkIinfoTextImage; + delete _vtkIinfoTextImage; } - if (_imageViewer2XYZ!=NULL) + if (_imageViewer2XYZ!=NULL) { - delete _imageViewer2XYZ; + delete _imageViewer2XYZ; } } //------------------------------------------------------------------- -void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double &Y, double &Z) // virtual +void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double &Y, double &Z) // virtual { //EEDx5 double spc[3]; @@ -42,7 +42,7 @@ void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double & spc[1] = 1; spc[2] = 1; } - + X = X / spc[0]; Y = Y / spc[1]; @@ -51,7 +51,7 @@ void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double & } //------------------------------------------------------------------- -void wxVtk2DBaseView::TransformCoordinate_spacing_ModelToView(double &X,double &Y, double &Z) // virtual +void wxVtk2DBaseView::TransformCoordinate_spacing_ModelToView(double &X,double &Y, double &Z) // virtual { //EEDx5 double spc[3]; @@ -78,7 +78,7 @@ void wxVtk2DBaseView::ResetView() double spx = 0,spy = 0,spz = 0; int x1 = 1,x2 = 1,y1 = 1,y2 = 1,z1 = 1,z2 = 1; wxVtkBaseView::Configure(); - + wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor(); vtkImageData *imageData = GetVtkBaseData()->GetImageData(); if(imageData){ @@ -90,10 +90,13 @@ void wxVtk2DBaseView::ResetView() imageData->GetExtent (x1,x2,y1,y2,z1,z2); } - + _imageViewer2XYZ -> SetExtentDimension(x1,x2,y1,y2,z1,z2); _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren ); +//EED 24oct2010 + _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified(); + _imageViewer2XYZ->GetVtkImageViewer2()->Render(); ////////////// @@ -115,7 +118,7 @@ void wxVtk2DBaseView::ResetView() // RaC ////////////// - + } @@ -157,6 +160,7 @@ void wxVtk2DBaseView::Configure(bool okimage) vtkImageData *imageData = GetVtkBaseData()->GetMarImageData()->GetImageData(); if (imageData!=NULL){ + imageData->UpdateInformation(); imageData->SetUpdateExtent( imageData->GetWholeExtent()); imageData->Update(); @@ -194,39 +198,39 @@ void wxVtk2DBaseView::Configure(bool okimage) vtkImageViewer2 *IV2=_imageViewer2XYZ->GetVtkImageViewer2(); vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera(); -//EED 17Avril2009 -/* +//EED 17Avril2009 +/* camera->SetViewUp ( spx*0 , -spy*1 , spz*0 ); - camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , -spz*10000 ); - camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); -*/ + camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , -spz*10000 ); + camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); +*/ camera->SetViewUp ( spx*0 , spy*1 , spz*0 ); - camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*10000 ); - camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); - - + camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*10000 ); + camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 ); + + camera->SetClippingRange( 0.01 , 1000000 ); camera->ComputeViewPlaneNormal(); camera->SetParallelScale( spx*(x2-x1)/3.0 ); - + // text information over the graphic window if(_vtkIinfoTextImage == NULL){ _vtkIinfoTextImage = new vtkInfoTextImage(); - _vtkIinfoTextImageInteractor = new vtkInfoTextImageInteractor(); + _vtkIinfoTextImageInteractor = new vtkInfoTextImageInteractor(); ((vtkInteractorStyleBaseView*)this->GetInteractorStyleBaseView())->AddInteractorStyleMaracas(_vtkIinfoTextImageInteractor); } _vtkIinfoTextImage->SetWxVtk2DBaseView(this); _vtkIinfoTextImage->SetMarImageData( GetVtkBaseData()->GetMarImageData() ); - _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage); + _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage); _vtkIinfoTextImage->Configure(); - + } // okimage } // imageData } //------------------------------------------------------------------- -int wxVtk2DBaseView::GetActualSlice() // virtual +int wxVtk2DBaseView::GetActualSlice() // virtual { return (int)(_vtkbasedata->GetZ()); } @@ -256,7 +260,10 @@ void wxVtk2DBaseView::SetVtkBaseData(vtkBaseData *vtkbasedata) void wxVtk2DBaseView::Refresh() { int z = (int)(GetVtkBaseData()->GetZ()); - _imageViewer2XYZ->SetZSlice( z ); + _imageViewer2XYZ->SetZSlice( z ); + +//EED 24oct2010 + _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified(); wxVtkBaseView::Refresh(); } @@ -270,7 +277,7 @@ void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *intera wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor(); interactorstylebaseview->SetInteractor ( iren ); iren->SetInteractorStyle(interactorstylebaseview); - interactorstylebaseview->SetwxVtkBaseView(this); + interactorstylebaseview->SetwxVtkBaseView(this); vtkMaracasImageViewer2Callback * cbk = vtkMaracasImageViewer2Callback::New(); cbk->IV = _imageViewer2XYZ->GetVtkImageViewer2(); @@ -281,7 +288,7 @@ void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *intera } //--------------------------------------------------------------------------- -vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual +vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual { return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer(); } @@ -292,37 +299,49 @@ vtkRenderWindow* wxVtk2DBaseView::GetRenWin() // virtual } //------------------------------------------------------------------- - void wxVtk2DBaseView::GetSpacing(double spc[3]) // virtual { vtkImageData *imageData = GetVtkBaseData()->GetImageData(); if(imageData){ imageData->GetSpacing(spc); }else{ - spc[0] = 0; + spc[0] = 0; spc[1] = 0; spc[2] = 0; } } -void wxVtk2DBaseView::setColorTransferFunction(vtkColorTransferFunction* colortable){ +//------------------------------------------------------------------- +void wxVtk2DBaseView::setColorTransferFunction(vtkColorTransferFunction* colortable) +{ if(_imageViewer2XYZ!=NULL){ _imageViewer2XYZ->setColorTransferFunction(colortable); this->Refresh(); } } -void wxVtk2DBaseView::setWindowLevel(double level){ -// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow(level); +//------------------------------------------------------------------- +void wxVtk2DBaseView::setWindowLevel(double level) +{ +// _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow(level); vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel(); imagemaptowindowlevel->SetWindow(level); this->Refresh(); } -void wxVtk2DBaseView::setColorLevel(double level){ +//------------------------------------------------------------------- +void wxVtk2DBaseView::setColorLevel(double level) +{ // _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel(level); vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel(); imagemaptowindowlevel->SetLevel(level); this->Refresh(); } + +//------------------------------------------------------------------- +int wxVtk2DBaseView::GetDirection() // virtual +{ + return 2; +} +