X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fwxvtk%2Fsrc%2FbbwxvtkViewer3D.cxx;h=1d5fd58d97ee02fb2dcc677fd9e62856cfd9c10b;hb=9a0cff4a61edd2b20bc0d7d00f4509193b8c50b6;hp=6d1537f8a2cb852f862ca38b6920cc9ff2730070;hpb=8c690fedb5ea897b6a69584e1e237cb5dbad97a5;p=bbtk.git diff --git a/packages/wxvtk/src/bbwxvtkViewer3D.cxx b/packages/wxvtk/src/bbwxvtkViewer3D.cxx index 6d1537f..1d5fd58 100644 --- a/packages/wxvtk/src/bbwxvtkViewer3D.cxx +++ b/packages/wxvtk/src/bbwxvtkViewer3D.cxx @@ -1,19 +1,38 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + /*========================================================================= Program: bbtk Module: $RCSfile: bbwxvtkViewer3D.cxx,v $ Language: C++ - Date: $Date: 2009/05/28 08:12:18 $ - Version: $Revision: 1.17 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - + Date: $Date: 2012/11/16 08:52:36 $ + Version: $Revision: 1.23 $ + =========================================================================*/ /** * \file @@ -53,8 +72,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 +99,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); @@ -153,6 +184,11 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) bbSetOutputRenderer( NULL ); bbSetOutputInteractor( NULL ); bbSetOutputWidget(NULL); + std::vector bckgrndColor(3); + bckgrndColor[0] = 0.1; + bckgrndColor[1] = 0.1; + bckgrndColor[2] = 0.2; + bbSetInputBackgroundColor(bckgrndColor); } //----------------------------------------------------------------- @@ -210,12 +246,13 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) //-------------------------------------------------------------------------- void Viewer3D::Process() { + if (!bbIsShown()) return; //EED // Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); // if (w) w->Update(); - + Viewer3DWidget* w = (Viewer3DWidget*)bbGetOutputWidget(); if ((firsttime==true) && (w!=NULL)){ @@ -224,6 +261,7 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) vtkRenderWindowInteractor *interactor = w->GetInteractor(); if (interactor!=NULL) { + if (bbGetInputObs1()!=NULL) { bbGetInputObs1()->SetInteractor(interactor); @@ -255,9 +293,11 @@ void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect ) vtkRenderer *renderer = w->GetRenderer(); if (renderer!=NULL) { + std::vector bckgrndColor = bbGetInputBackgroundColor(); + renderer->SetBackground(bckgrndColor[0], bckgrndColor[1], bckgrndColor[2]); 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() ); } @@ -265,13 +305,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(); }