From: guigues Date: Tue, 17 Jun 2008 11:12:03 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: r0.6.1~26 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=3b14f0c4fe66a15679b08327f38fd4958a35c8f5;p=bbtk.git *** empty log message *** --- diff --git a/packages/wxvtk/src/bbwxvtkViewer2D.cxx b/packages/wxvtk/src/bbwxvtkViewer2D.cxx index a42cff3..9db6a27 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/05/15 08:02:37 $ - Version: $Revision: 1.7 $ + Date: $Date: 2008/06/17 11:12:03 $ + Version: $Revision: 1.8 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -51,16 +51,32 @@ namespace bbwxvtk wxvtkrenderwindowinteractor = new wxVTKRenderWindowInteractor(panel,-1); wxvtkrenderwindowinteractor->UseCaptureMouseOn(); + + imageViewer = vtkImageViewer2::New(); + imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor ); + + mDefaultImage = vtkImageData::New(); + int dim[3]; + dim[0] = dim[1] = dim[2] = 1; + mDefaultImage->SetDimensions ( dim ); + mDefaultImage->SetSpacing(1,1,1); + + mDefaultImage->SetScalarTypeToUnsignedChar(); + mDefaultImage->AllocateScalars(); + for (int i=0;iSetScalarComponentFromFloat(i,j,0,0,0); + + backImageData = mDefaultImage; + imageViewer->SetInput( backImageData ); + mUpdateCamera = true; + wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); sizer -> Add( wxvtkrenderwindowinteractor , 1, wxEXPAND, 0); panel -> SetSizer(sizer); panel -> SetAutoLayout(true); panel -> Layout(); - backImageData = NULL; - imageViewer = NULL; - - } //------------------------------------------------------------------------- @@ -72,6 +88,8 @@ namespace bbwxvtk // we want to force its destruction without taking care of vtk ref counting // on the contrary the following vtk objects are deleted with vtk Delete // std::cout << "Viewer2DWidget::~Viewer2DWidget()" << std::endl; + mDefaultImage->Delete(); + if (backImageData) { // backImageData->UnRegister(NULL); @@ -94,65 +112,53 @@ namespace bbwxvtk // std::cout << "Viewer2DWidget::UpdateView() "<bbGetFullName() << std::endl; // std::cout << "slice="<bbGetInputSlice()<bbGetInputIn()!=NULL) && - (backImageData != mBox->bbGetInputIn()) ) + if ( ( mBox->bbGetInputIn() == NULL ) && + ( backImageData != mDefaultImage ) ) + { + backImageData = mDefaultImage; + mUpdateCamera = true; + } + else if ( ( mBox->bbGetInputIn() != NULL ) && + (backImageData != mBox->bbGetInputIn()) ) { - if (imageViewer==NULL) - { - imageViewer = vtkImageViewer2::New(); - imageViewer->SetupInteractor ( wxvtkrenderwindowinteractor ); - } - - // std::cout << "V2D b="<bbGetName()<<"' - Image :"<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->ComputeViewPlaneNormal(); camera->SetParallelScale( spx*(x2-x1)/2.0 ); - // imageViewer->GetRenderer()->ResetCamera(x1,x2,y1,y2,z1,z2); + // + // imageViewer->GetRenderer()->ResetCamera(x1,x2,y1,y2,z1,z2); + mUpdateCamera = false; } - // std::cout << "update"<