X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuImageActor.cxx;h=c016625aaa4adce9f58c5b179487733cf7e057f6;hb=4b2a99534d79424c7892e09160a1488604741064;hp=3d54751919513861682490cd1b3327f3ccd2da4b;hpb=1a8a3ec53282897cf506adeee7b49e5e2c0fe9f5;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuImageActor.cxx b/bbtk/src/bbmaracasvisuImageActor.cxx index 3d54751..c016625 100644 --- a/bbtk/src/bbmaracasvisuImageActor.cxx +++ b/bbtk/src/bbmaracasvisuImageActor.cxx @@ -1,7 +1,37 @@ +/*# --------------------------------------------------------------------- +# +# 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 "bbmaracasvisuImageActor.h" #include "bbcreaMaracasVisuPackage.h" #include "vtkImageShiftScale.h" +#include +#include +#include +#include +#include namespace bbcreaMaracasVisu { @@ -10,53 +40,137 @@ BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ImageActor) BBTK_BLACK_BOX_IMPLEMENTATION(ImageActor,bbtk::AtomicBlackBox); void ImageActor::Process() { - //JCP 04/04/09 vtkRenderer *render = bbGetInputRenderer(); vtkImageData *img = bbGetInputIn(); vtkLinearTransform* transform = bbGetInputTransform(); + + + if(img != NULL) + { + if (bbGetInputLookupTable()==NULL) + { +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + imageactor->SetInput( img ); +#else + imageactor->SetInputData( img ); +#endif + } else { +/* + vtkLookupTable *table = vtkLookupTable::New(); + table->SetRange(0, 1000); // image intensity range + table->SetValueRange(0.0, 1.0); // from black to white + table->SetSaturationRange(0.0, 0.0); // no color saturation + table->SetRampToLinear(); + table->Build(); + double rgba[4]; + table->GetTableValue(0,rgba); + rgba[3]=0; + table->SetTableValue(0,rgba); +*/ + + +/* + vtkLookupTable *table = vtkLookupTable::New(); + table->SetTableRange (0, 2000); + table->SetHueRange (1, 0); + table->SetSaturationRange (1, 1); + table->SetValueRange (1, 1); + table->Build(); //effective built +*/ + +/* +vtkColorTransferFunction *table = vtkColorTransferFunction::New(); +table->SetColorSpaceToHSV(); + table->HSVWrapOff(); + table->AddHSVSegment(0.0, 0.6, 1.0, 1.0, + 1.0, 0.0, 1.0, 1.0); + table->SetNanColor(1.0, 0.0, 1.0); +*/ + +/* +printf("EED ImageActor::Process Warnning ***************************Not here this code *"); +vtkLookupTable *table = vtkLookupTable::New(); + table->SetNumberOfTableValues(1000); + table->SetRange(0, 1000); + table->Build(); + double rgba1[4]; + double rgba2[4]; + for (int iLookTable = 0; iLookTable<500; iLookTable++) + { + table->GetTableValue( iLookTable, rgba1); + table->GetTableValue(1000-1-iLookTable, rgba2); + table->SetTableValue(1000-1-iLookTable , rgba1[0],rgba1[1],rgba1[2],rgba1[3]); + table->SetTableValue( iLookTable , rgba2[0],rgba2[1],rgba2[2],rgba2[3]); + } // for iLookTable + double rgba[4]; + table->GetTableValue(0,rgba); + rgba[3]=0; + table->SetTableValue(0,rgba); +*/ + vtkImageMapToColors *color = vtkImageMapToColors::New(); + color->SetLookupTable( bbGetInputLookupTable() ); +// color->SetLookupTable( table ); + color->PassAlphaToOutputOn(); - if(img != NULL){ - - imageshiftscale->SetInput( img ); - imageshiftscale->SetOutputScalarTypeToUnsignedChar(); - imageactor->SetInput( imageshiftscale->GetOutput() ); - if (transform!=NULL){ +// imageshiftscale->SetInput( img ); +// imageshiftscale->SetOutputScalarTypeToUnsignedChar(); + +// color->SetInput( imageshiftscale->GetOutput() ); + + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + color->SetInput( img ); + color->Update(); + imageactor->GetMapper()->SetInput( color->GetOutput() ); +#else + color->SetInputData( img ); + color->Update(); + imageactor->GetMapper()->SetInputData( color->GetOutput() ); +#endif + imageactor->GetProperty()->SetInterpolationTypeToNearest(); + } + + if (transform!=NULL) + { imageactor->SetUserTransform( transform ); } // transform - if(render != NULL ){ - render->AddActor( imageactor ); + if(render != NULL ) + { +// render->AddActor( imageactor ); } // render bbSetOutputOut(imageactor); } // img - - + // Interface Update if ((firsttime==true) && (bbGetInputRenderer()!=NULL )) { firsttime=false; bbGetInputRenderer()->AddActor( imageactor ); } - - bbSetOutputOut(imageactor); - + imageactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); + bbSetOutputOut(imageactor); } + void ImageActor::bbUserSetDefaultValues() { - firsttime = true; - imageactor = NULL; - + firsttime = true; + imageactor = NULL; bbSetInputIn(NULL); +// bbSetInputType(0); + bbSetInputOpacity(1); bbSetInputTransform(NULL); bbSetInputRenderer(NULL); - + bbSetInputLookupTable(NULL); } //----------------------------------------------------------------- void ImageActor::bbUserInitializeProcessing() { - imageactor = vtkImageActor::New(); + imageactor = vtkImageActor::New(); imageshiftscale = vtkImageShiftScale::New(); }