Program: bbtk
Module: $RCSfile: bbwxvtkViewer2D.cxx,v $
Language: C++
- Date: $Date: 2008/03/03 13:14:27 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2008/03/10 12:28:44 $
+ Version: $Revision: 1.2 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
- void Viewer2DWidget::Update()
+ void Viewer2DWidget::UpdateView()
{
if (imageViewer==NULL){
// imageViewer->GetRenderer()->ResetCamera(x1,x2,y1,y2,z1,z2);
}
-
- if (backImageData!=NULL)
+ // std::cout << "update"<<std::endl;
+ // std::cout << "OW = "<< mBox->bbGetWindow() << std::endl;
+ // std::cout << "CW = "<< mBox->bbGetContainingWindow() << std::endl;
+ // std::cout << "Sh = "<< mBox->bbIsShown() << std::endl;
+
+ // mBox->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
+ if ((backImageData!=NULL)&&(mBox->bbIsShown()))
{
int z = mBox->bbGetInputSlice();
-
+ // std::cout << "slice = "<<z<<std::endl;
int ext[6];
backImageData->GetWholeExtent(ext);
+ // std::cout << "ext = "<<ext[4]<<" - "<<ext[5]<<std::endl;
if (z<ext[4]) { z=ext[4]; }
if (z>=ext[5]) { z=ext[5]-1; }
imageViewer->SetZSlice( z );
#endif
+
}
wxvtkrenderwindowinteractor->Render();
// wxvtkrenderwindowinteractor->Refresh();
- // Refresh();
+
+ //Refresh();
}
void Viewer2D::Process()
{
- ((Viewer2DWidget*)bbGetOutputWidget())->Update();
+ ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView();
bbSetOutputOut( bbGetInputSlice() );
}
bbtkDebugMessageInc("Core",9,"Viewer2D::CreateWidget()"<<std::endl);
Viewer2DWidget* w = new Viewer2DWidget(this,bbGetWxParent());
- w->Update();
bbSetOutputWidget(w);
bbtkDebugDecTab("Core",9);
}
+ // This callback is necessary to get actual processing of the view
+ // when window is shown
+ void Viewer2D::bbUserOnShow()
+ {
+ ((Viewer2DWidget*)bbGetOutputWidget())->UpdateView();
+ }
+
+
}//namespace bbtk
#endif