X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtk2DBaseView.cxx;h=90f4bf030ed1c2c62eb97a144e18465405899d39;hb=f050938d3947f6b785289da6d58f8fec2da57421;hp=4203d27b4a45884df23c9a168dbec48283fbbcad;hpb=199d5048b6c5ac6663b8671f55289e4a0820f9cc;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtk2DBaseView.cxx index 4203d27..90f4bf0 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,7 +160,7 @@ void wxVtk2DBaseView::Configure(bool okimage) vtkImageData *imageData = GetVtkBaseData()->GetMarImageData()->GetImageData(); if (imageData!=NULL){ - + imageData->UpdateInformation(); imageData->SetUpdateExtent( imageData->GetWholeExtent()); imageData->Update(); @@ -195,39 +198,42 @@ void wxVtk2DBaseView::Configure(bool okimage) vtkImageViewer2 *IV2=_imageViewer2XYZ->GetVtkImageViewer2(); vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera(); -//EED 17Avril2009 -/* +//EED 17Avril2009 +//EED 21 mars 2012 FLIP problem ..PLOP.. + + // XY 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(); + _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(); - + } // okimage } // imageData } //------------------------------------------------------------------- -int wxVtk2DBaseView::GetActualSlice() // virtual +int wxVtk2DBaseView::GetActualSlice() // virtual { return (int)(_vtkbasedata->GetZ()); } @@ -257,7 +263,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(); } @@ -271,7 +280,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(); @@ -282,7 +291,7 @@ void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *intera } //--------------------------------------------------------------------------- -vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual +vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual { return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer(); } @@ -293,37 +302,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; +} +