X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer2D.cxx;h=929147e12b02085c35ee26a838b39b21adee96ed;hb=dcd0daa8375b06efaf723f38ee9e074b5f9bb306;hp=bfd066f277843e2b840cac91b4ed7401041937d9;hpb=de4f00808180c3479351de1ba2e9fa25b03c48d4;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index bfd066f..929147e 100644 --- a/packages/wxvtk/src/bbwxvtkViewer2D.cxx +++ b/packages/wxvtk/src/bbwxvtkViewer2D.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer2D.cxx,v $ Language: C++ - Date: $Date: 2008/06/25 15:36:19 $ - Version: $Revision: 1.11 $ + Date: $Date: 2008/12/03 13:35:35 $ + Version: $Revision: 1.27 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -54,13 +54,13 @@ namespace bbwxvtk wxvtkrenderwindowinteractor->UseCaptureMouseOn(); imageViewer = vtkImageViewer2::New(); - imageViewer->SetSlice( 1 ); + imageViewer->SetSlice( 1 ); imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor ); mDefaultImage = vtkImageData::New(); int dim[3]; dim[0] = dim[1] = 32 ; - dim[2] = 2; + dim[2] = 2; mDefaultImage->SetDimensions ( dim ); mDefaultImage->SetSpacing(1,1,1); mDefaultImage->SetExtent(0,dim[0]-1,0,dim[1]-1,0,dim[2]-1); @@ -84,11 +84,18 @@ namespace bbwxvtk mUpdateCamera = true; wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); - sizer -> Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0); - panel -> SetSizer(sizer); - panel -> SetAutoLayout(true); - panel -> Layout(); - + sizer-> Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0); + panel-> SetSizer(sizer); + panel-> SetAutoLayout(true); + panel-> Layout(); + + + // wxvtkrenderwindowinteractor->Refresh(); + // wxvtkrenderwindowinteractor->Render(); + // imageViewer->GetRenderer()->ResetCameraClippingRange(); + + imageViewer->GetRenderer()->SetBackground(0.1,0.1,0.2); + } //------------------------------------------------------------------------- @@ -132,6 +139,7 @@ namespace bbwxvtk mUpdateCamera = true; } else if ( ( mBox->bbGetInputIn() != NULL ) && + // (true) ) // (backImageData != mBox->bbGetInputIn()) ) { backImageData = mBox->bbGetInputIn(); @@ -147,29 +155,51 @@ namespace bbwxvtk backImageData->GetSpacing(spx,spy,spz); backImageData->GetExtent (x1,x2,y1,y2,z1,z2); + double *range = backImageData->GetScalarRange(); + imageViewer->SetColorWindow(range[1] - range[0]); + imageViewer->SetColorLevel(0.5 * (range[1] + range[0])); + + imageViewer->GetRenderer()->ResetCamera(); + double bounds[6]; + imageViewer->GetRenderer()->ComputeVisiblePropBounds(bounds); + imageViewer->GetRenderer()->ResetCameraClippingRange(bounds); + // bbtkMessage("Output",2,"Viewer2D '"<bbGetName()<<"' - Image :"<GetRenderer()->GetActiveCamera(); - camera->SetViewUp ( spx*0, -spy*1, spz*0 ); - camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, -spz*10000000 ); - 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*10000000 ); + camera->SetFocalPoint( spx*(x1+x2)/2, spy*(y1+y2)/2, spz*0 ); camera->ComputeViewPlaneNormal(); camera->SetParallelScale( spx*(x2-x1)/2.0 ); // // imageViewer->GetRenderer()->ResetCamera(x1,x2,y1,y2,z1,z2); mUpdateCamera = false; - } + // std::cout << "Viewer2DWidget::UpdateView() passe par 3" << std::endl; + imageViewer->SetColorWindow(512); + imageViewer->SetColorLevel(256); + */ + /* + for (int i=0;i<10;i++) + for (int j=0;j<10;j++) + std::cout << mBox->bbGetInputIn()->GetScalarComponentAsFloat(i,j,0,0) + << std::endl; + */ + } // std::cout << "OW = "<< mBox->bbGetWindow() << std::endl; - // std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl; - // std::cout << "Sh = "<< mBox->bbIsShown() << std::endl; + // std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl; + // std::cout << "Sh = "<< mBox->bbIsShown() << std::endl; - - + int orientation = mBox->bbGetInputOrientation(); + if (orientation<0 || orientation>2) { + bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 "<bbIsShown() is necessary to be sure that the wxWindow is already // created and displayed. // Else when slice != 0 we get an X Window System error with wxGTK @@ -177,33 +207,49 @@ namespace bbwxvtk (backImageData!=NULL)&& (mBox->bbIsShown())) { - int z = mBox->bbGetInputSlice(); - // std::cout << "slice = "<GetWholeExtent(ext); - - // std::cout << "ext = "<ext[5]) { z=ext[5]; } - - -#if (VTK_MAJOR_VERSION >= 5) - imageViewer->SetSlice( z ); -#else - imageViewer->SetZSlice( z ); -#endif - - //imageViewer->UpdateDisplayExtent(); - wxvtkrenderwindowinteractor->Render(); - imageViewer->GetRenderer()->ResetCameraClippingRange(); + int z = mBox->bbGetInputSlice(); + // std::cout << "slice = "<GetWholeExtent(ext); + /* + std::cout << "ext = "<ext[1]) { z=ext[1]; } + + break; + + case 1: + if (zext[3]) { z=ext[3]; } + break; + + case 2: + if (zext[5]) { z=ext[5]; } + break; + + default: + bbtkMessage("Output", 2, "Viewer2D : Orientation was not 0< <2 (shouldn't arrive here!"<UpdateView(); + // ((Viewer2DWidget*)bbGetOutputWidget())->Update(); + // ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); }