X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer3D.cxx;h=7345f82040f181afdf2c95222acbfcdd96e2f0fb;hb=bf1bdd88621c0556024de37768c2d17d12f2a265;hp=f155e9ab1a15adeb4498cc8951233fcf8cc3b943;hpb=17ac9460f5ea5600d1065fbe3ee4ad826d7bb4fc;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer3D.cxx b/packages/wxvtk/src/bbwxvtkViewer3D.cxx index f155e9a..7345f82 100644 --- a/packages/wxvtk/src/bbwxvtkViewer3D.cxx +++ b/packages/wxvtk/src/bbwxvtkViewer3D.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbwxvtkViewer3D.cxx,v $ Language: C++ - Date: $Date: 2009/05/15 14:58:08 $ - Version: $Revision: 1.16 $ + Date: $Date: 2012/05/30 17:17:02 $ + Version: $Revision: 1.22 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -53,8 +53,18 @@ namespace bbwxvtk if (stereo==true){ renderwindow->SetStereoCapableWindow(1); - //renderwindow->SetStereoTypeToCrystalEyes(); - renderwindow->SetStereoTypeToRedBlue(); + +// renderwindow->SetStereoTypeToCrystalEyes(); +// renderwindow->SetStereoTypeToRedBlue(); // OK 2. + + renderwindow->SetAnaglyphColorMask(4,3); + renderwindow->SetAnaglyphColorSaturation(0.65); + renderwindow->SetStereoTypeToAnaglyph(); // OK 1. + +// renderwindow->SetStereoTypeToInterlaced(); // ?? +// renderwindow->SetStereoTypeToCheckerboard(); +// renderwindow->SetStereoTypeToDresden(); + renderwindow->SetStereoRender(1); } @@ -70,6 +80,8 @@ namespace bbwxvtk 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->SetParallelScale( spx*(x2-x1)/2.0 ); renderer->ResetCamera(x1,x2,y1,y2,z1,z2); @@ -87,6 +99,8 @@ namespace bbwxvtk //------------------------------------------------------------------------- Viewer3DWidget::~Viewer3DWidget() { + mBox->DisableObservers(); + mBox->bbSetOutputWidget(NULL); renderwindow->Delete(); renderer->Delete(); interactorstyle->Delete(); @@ -160,13 +174,56 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) //----------------------------------------------------------------- void Viewer3D::bbUserFinalizeProcessing() - { - } + { + DisableObservers(); + } + + void Viewer3D::DisableObservers() + { + Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); + if (w!=NULL) + { + vtkRenderWindowInteractor *interactor = w->GetInteractor(); + if (interactor!=NULL) + { + if (bbGetInputObs1()!=NULL) + { + if (bbGetInputObs1()->GetInteractor()!=NULL) + bbGetInputObs1()->EnabledOff(); + } + if (bbGetInputObs2()!=NULL) + { + if (bbGetInputObs2()->GetInteractor()!=NULL) + //bbGetInputObs2()->SetInteractor(NULL); + bbGetInputObs2()->EnabledOff(); + } + if (bbGetInputObs3()!=NULL) + { + if (bbGetInputObs3()->GetInteractor()!=NULL) + //bbGetInputObs3()->SetInteractor(NULL); + bbGetInputObs3()->EnabledOff(); + } + if (bbGetInputObs4()!=NULL) + { + if (bbGetInputObs4()->GetInteractor()!=NULL) + //bbGetInputObs4()->SetInteractor(NULL); + bbGetInputObs4()->EnabledOff(); + } + if (bbGetInputObs5()!=NULL) + { + if (bbGetInputObs5()->GetInteractor()!=NULL) + //bbGetInputObs5()->SetInteractor(NULL); + bbGetInputObs5()->EnabledOff(); + } + } + } + } //-------------------------------------------------------------------------- void Viewer3D::Process() { + if (!bbIsShown()) return; //EED // Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); // if (w) w->Update(); @@ -180,6 +237,7 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) vtkRenderWindowInteractor *interactor = w->GetInteractor(); if (interactor!=NULL) { + if (bbGetInputObs1()!=NULL) { bbGetInputObs1()->SetInteractor(interactor); @@ -213,7 +271,7 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) { bbSetOutputRenderer( renderer ); - if (bbGetInputIn1()!=NULL) {renderer->AddActor( bbGetInputIn1() ); } + /*if (bbGetInputIn1()!=NULL) {renderer->AddActor( bbGetInputIn1() ); } if (bbGetInputIn2()!=NULL) {renderer->AddActor( bbGetInputIn2() ); } if (bbGetInputIn3()!=NULL) {renderer->AddActor( bbGetInputIn3() ); } if (bbGetInputIn4()!=NULL) {renderer->AddActor( bbGetInputIn4() ); } @@ -221,13 +279,27 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) renderer->ResetCamera(); double bounds[6]; renderer->ComputeVisiblePropBounds(bounds); - renderer->ResetCameraClippingRange(bounds); + renderer->ResetCameraClippingRange(bounds);*/ } // renderer } // w && firsttime + if(bbGetOutputRenderer()!=NULL){ + vtkRenderer *renderer = w->GetRenderer(); + if (bbGetInputIn1()!=NULL) {renderer->AddActor( bbGetInputIn1() ); } + if (bbGetInputIn2()!=NULL) {renderer->AddActor( bbGetInputIn2() ); } + if (bbGetInputIn3()!=NULL) {renderer->AddActor( bbGetInputIn3() ); } + if (bbGetInputIn4()!=NULL) {renderer->AddActor( bbGetInputIn4() ); } + if (bbGetInputIn5()!=NULL) {renderer->AddActor( bbGetInputIn5() ); } + renderer->ResetCamera(); + double bounds[6]; + renderer->ComputeVisiblePropBounds(bounds); + renderer->ResetCameraClippingRange(bounds); + + } + if (w!=NULL) w->Update(); } @@ -243,11 +315,12 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) bbtkDebugMessageInc("Core",9,"Viewer3D::CreateWidget()"<Update(); - //... + Viewer3DWidget* w = new Viewer3DWidget(this, + parent, + //bbGetWxParent(), + bbGetInputStereo()); + //EED w->Update(); + //... bbSetOutputWidget(w); @@ -259,7 +332,7 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) // when window is shown void Viewer3D::OnShowWidget() { - + Process(); // Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); // if (w) w->Update(); }