X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer2D.cxx;h=929147e12b02085c35ee26a838b39b21adee96ed;hb=dcd0daa8375b06efaf723f38ee9e074b5f9bb306;hp=e28a457f7951757d72c3da2ef4d0f74e086191f4;hpb=2c60c89f749008a00df6d24b34b4774b806979f6;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index e28a457..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/11/20 16:32:41 $ - Version: $Revision: 1.20 $ + 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 @@ -90,11 +90,12 @@ namespace bbwxvtk panel-> Layout(); - wxvtkrenderwindowinteractor->Refresh(); - wxvtkrenderwindowinteractor->Render(); - imageViewer->GetRenderer()->ResetCameraClippingRange(); + // wxvtkrenderwindowinteractor->Refresh(); + // wxvtkrenderwindowinteractor->Render(); + // imageViewer->GetRenderer()->ResetCameraClippingRange(); + + imageViewer->GetRenderer()->SetBackground(0.1,0.1,0.2); - } //------------------------------------------------------------------------- @@ -138,6 +139,7 @@ namespace bbwxvtk mUpdateCamera = true; } else if ( ( mBox->bbGetInputIn() != NULL ) && + // (true) ) // (backImageData != mBox->bbGetInputIn()) ) { backImageData = mBox->bbGetInputIn(); @@ -153,10 +155,19 @@ 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 ); @@ -168,7 +179,17 @@ namespace bbwxvtk // // 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; @@ -176,7 +197,7 @@ namespace bbwxvtk 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 @@ -190,9 +211,12 @@ namespace bbwxvtk // std::cout << "slice = "<GetWholeExtent(ext); - - // std::cout << "ext = "<Update(); - wxvtkrenderwindowinteractor->Render(); - imageViewer->GetRenderer()->ResetCameraClippingRange(); - -/* - #if (VTK_MAJOR_VERSION >= 5) - imageViewer->SetSlice( z ); - #else - imageViewer->SetZSlice( z ); - #endif -*/ - imageViewer->SetSliceOrientation (orientation); - imageViewer->SetSlice( z ); - - //imageViewer->UpdateDisplayExtent(); - } + bbtkDebugMessage("Output",3,"Viewer2D : slice = "<SetSliceOrientation (orientation); + wxvtkrenderwindowinteractor->Render(); + imageViewer->SetSlice( z ); - -} + } + + + } vtkRenderer * Viewer2DWidget::GetRenderer() @@ -256,15 +270,14 @@ namespace bbwxvtk void Viewer2D::Process() { - // LG : Bug on Linux (wxGTK) when initial slice != 0 on first time - // (see wxvtk/bbs/appli/ExampleSimpleSlicer) - // I think there is a problem with rendering before window - // has been reparented ... we have to check this - - ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); + Viewer2DWidget* w = (Viewer2DWidget*)bbGetOutputWidget(); + if (w) + { + w->UpdateView(); + bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); + } bbSetOutputOut( bbGetInputSlice() ); - bbSetOutputRenderer( ((Viewer2DWidget*)bbGetOutputWidget())->GetRenderer() ); - + } @@ -272,7 +285,8 @@ namespace bbwxvtk { bbSetInputIn(NULL); bbSetInputSlice(0); - bbSetInputOrientation(0); + bbSetOutputWidget(0); + bbSetInputOrientation(2); } /** @@ -280,32 +294,20 @@ namespace bbwxvtk * * */ - void Viewer2D::CreateWidget() + void Viewer2D::CreateWidget(wxWindow* parent) { - bbtkDebugMessageInc("Core",9,"Viewer2D::CreateWidget()"<Refresh(); - ((Viewer2DWidget*)bbGetOutputWidget())->Update(); - ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); -#endif - /* - // BUGS ON LINUX !! - ((Viewer2DWidget*)bbGetOutputWidget())->Update(); - ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); - */ + // ((Viewer2DWidget*)bbGetOutputWidget())->Update(); + // ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView(); }