X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkVecIsoSurfaceExtractor.cxx;h=b3b39fbd2fc72630bb4667f57211990413e4ef0e;hb=49cb3ed3b5b7e58ab54dd3b6eb4ad8adee824ef2;hp=d175944fe51920685d507355e3363950b149389f;hpb=22eae0242d8e2c1eb8a25a735289f609b17e103f;p=bbtk.git diff --git a/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx index d175944..b3b39fb 100644 --- a/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx +++ b/packages/vtk/src/bbvtkVecIsoSurfaceExtractor.cxx @@ -1,3 +1,30 @@ +/* + # --------------------------------------------------------------------- + # + # 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. + # ------------------------------------------------------------------------ */ + + #include "bbvtkVecIsoSurfaceExtractor.h" #include "bbvtkPackage.h" @@ -9,156 +36,150 @@ namespace bbvtk BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,VecIsoSurfaceExtractor) BBTK_BLACK_BOX_IMPLEMENTATION(VecIsoSurfaceExtractor,bbtk::AtomicBlackBox); -void VecIsoSurfaceExtractor::Process() -{ - double r,g,b; - vtkMarchingCubes *marchingcubes; - vtkPolyDataMapper *polydatamapper; - vtkActor *vtkactor; - - int i,size; - - - size = VecVtkactor.size(); - for( i=0 ; i colour; + // 1- red + colour.push_back(1.0); + colour.push_back(0.0); + colour.push_back(0.0); + // 2- blue + colour.push_back(0.0); + colour.push_back(0.0); + colour.push_back(1.0); + // 3- yellow + colour.push_back(1.0); + colour.push_back(1.0); + colour.push_back(0.0); + // 4- green + colour.push_back(0.0); + colour.push_back(1.0); + colour.push_back(0.0); + // 5- + colour.push_back(0.0); + colour.push_back(1.0); + colour.push_back(1.0); + + // 6- + colour.push_back(0.5); + colour.push_back(0.5); + colour.push_back(0.5); + + bbSetInputColour(colour); + bbSetInputTransform(NULL); + bbSetInputOpacity(1); + + bbSetInputRenderer(NULL); + bbSetInputIsovalue(128); + bbSetInputOpacity(1); + } + + //----------------------------------------------------------- + void VecIsoSurfaceExtractor::bbUserInitializeProcessing() + + { + // bbSetInputIn(NULL); + // bbSetInputInVtkObject(NULL); +//EED std::cout << "================================VecIsoSurfaceExtractor::bbUserInitializeProcessing()" << std::endl; + } + + //----------------------------------------------------------- + void VecIsoSurfaceExtractor::bbUserFinalizeProcessing() + { +//EED std::cout << "================================VecIsoSurfaceExtractor::bbUserFinalizeProcessing()" << std::endl; + int i,size = VecMarchingcubes.size(); + for (i=0;iRemoveActor( VecVtkactor[i] ); VecMarchingcubes[i]->Delete(); VecPolydatamapper[i]->Delete(); VecVtkactor[i]->Delete(); } + VecMarchingcubes.clear(); + VecPolydatamapper.clear(); + VecVtkactor.clear(); } - VecMarchingcubes.clear(); - VecPolydatamapper.clear(); - VecVtkactor.clear(); - - - size = bbGetInputIn().size(); - for( i=0 ; iSetInput(marchingcubes->GetOutput()); - vtkactor->SetMapper(polydatamapper); - - polydatamapper->ScalarVisibilityOff(); - polydatamapper->ImmediateModeRenderingOn(); - - VecMarchingcubes.push_back(marchingcubes); - VecPolydatamapper.push_back(polydatamapper); - VecVtkactor.push_back(vtkactor); - } // for i - + + //----------------------------------------------------------- + void VecIsoSurfaceExtractor::Process() + { +//EED std::cout <<"================================VecIsoSurfaceExtractor::Process()" << std::endl; + double r,g,b; + vtkMarchingCubes *marchingcubes; + vtkPolyDataMapper *polydatamapper; + vtkActor *vtkactor; - for( i=0 ; iSetInput( bbGetInputIn()[i] ); - marchingcubes->SetValue(0, bbGetInputIsovalue() ); - marchingcubes->Update(); - - if ( (i*3+1)<(int)(bbGetInputColour().size()) ){ - r = bbGetInputColour()[0+i*3]; - g = bbGetInputColour()[1+i*3]; - b = bbGetInputColour()[2+i*3]; - } else { - r = bbGetInputColour()[0]; - g = bbGetInputColour()[1]; - b = bbGetInputColour()[2]; - } - vtkactor->GetProperty()->SetColor( r,g,b ); - - vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); - - if ( bbGetInputTransform()!=NULL ) + size = VecVtkactor.size(); + for( i=0 ; iSetUserTransform( bbGetInputTransform() ); + if (bbGetInputRenderer()!=NULL ) + { + bbGetInputRenderer()->RemoveActor( VecVtkactor[i] ); + VecMarchingcubes[i]->Delete(); + VecPolydatamapper[i]->Delete(); + VecVtkactor[i]->Delete(); + } } - - // Interface Update - if (bbGetInputRenderer()!=NULL ) - { - bbGetInputRenderer()->AddActor( vtkactor ); - } - } // for i - - - bbSetOutputOut( VecVtkactor ); -} - -void VecIsoSurfaceExtractor::bbUserConstructor() -{ - Init(); - std::vector colour; - // 1- red - colour.push_back(1.0); - colour.push_back(0.0); - colour.push_back(0.0); - // 2- blue - colour.push_back(0.0); - colour.push_back(0.0); - colour.push_back(1.0); - // 3- yellow - colour.push_back(1.0); - colour.push_back(1.0); - colour.push_back(0.0); - // 4- green - colour.push_back(0.0); - colour.push_back(1.0); - colour.push_back(0.0); - // 5- - colour.push_back(0.0); - colour.push_back(1.0); - colour.push_back(1.0); - - // 6- - colour.push_back(0.5); - colour.push_back(0.5); - colour.push_back(0.5); - - - bbSetInputColour(colour); - bbSetInputTransform(NULL); - bbSetInputOpacity(1); -} - -void VecIsoSurfaceExtractor::bbUserCopyConstructor(bbtk::BlackBox::Pointer) -{ - Init(); -} - -void VecIsoSurfaceExtractor::bbUserDestructor() -{ - int i,size = VecMarchingcubes.size(); - for (i=0;iDelete(); - VecPolydatamapper[i]->Delete(); - VecVtkactor[i]->Delete(); + VecMarchingcubes.clear(); + VecPolydatamapper.clear(); + VecVtkactor.clear(); + + size = bbGetInputIn().size(); + for( i=0 ; iSetInput(marchingcubes->GetOutput()); + vtkactor->SetMapper(polydatamapper); + + polydatamapper->ScalarVisibilityOff(); + polydatamapper->ImmediateModeRenderingOn(); + + VecMarchingcubes.push_back(marchingcubes); + VecPolydatamapper.push_back(polydatamapper); + VecVtkactor.push_back(vtkactor); + } // for i + + for( i=0 ; iSetInput( bbGetInputIn()[i] ); + marchingcubes->SetValue(0, bbGetInputIsovalue() ); + marchingcubes->Update(); + + if ( (i*3+1)<(int)(bbGetInputColour().size()) ){ + r = bbGetInputColour()[0+i*3]; + g = bbGetInputColour()[1+i*3]; + b = bbGetInputColour()[2+i*3]; + } else { + r = bbGetInputColour()[0]; + g = bbGetInputColour()[1]; + b = bbGetInputColour()[2]; + } + vtkactor->GetProperty()->SetColor( r,g,b ); + + vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); + + if ( bbGetInputTransform()!=NULL ) + { + vtkactor->SetUserTransform( bbGetInputTransform() ); + } + + // Interface Update + if (bbGetInputRenderer()!=NULL ) + { + bbGetInputRenderer()->AddActor( vtkactor ); + } + } // for i + + bbSetOutputOut( VecVtkactor ); } - VecMarchingcubes.clear(); - VecPolydatamapper.clear(); - VecVtkactor.clear(); -} - - -void VecIsoSurfaceExtractor::Init() -{ -// bbSetInputIn(NULL); - // bbSetInputInVtkObject(NULL); - bbSetInputRenderer(NULL); - bbSetInputIsovalue(128); - bbSetInputOpacity(1); - -} - - } // EO namespace bbvtk - -