X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuImageActor.cxx;fp=bbtk%2Fsrc%2FbbmaracasvisuImageActor.cxx;h=40b3f246fecf3c9d9592807c411964badde4d7f5;hb=db334f20fd9ada7539efde5952135ddfc901a2f4;hp=dcbac3431771099a0c8cc2018b7be9c631810391;hpb=8cb2e736dbd160649089afd44928db6d26febcca;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuImageActor.cxx b/bbtk/src/bbmaracasvisuImageActor.cxx index dcbac34..40b3f24 100644 --- a/bbtk/src/bbmaracasvisuImageActor.cxx +++ b/bbtk/src/bbmaracasvisuImageActor.cxx @@ -27,6 +27,11 @@ #include "bbcreaMaracasVisuPackage.h" #include "vtkImageShiftScale.h" +#include +#include +#include +#include +#include namespace bbcreaMaracasVisu { @@ -36,21 +41,93 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ImageActor,bbtk::AtomicBlackBox); void ImageActor::Process() { +printf("EED ImageActor::Process Start\n"); + //JCP 04/04/09 vtkRenderer *render = bbGetInputRenderer(); vtkImageData *img = bbGetInputIn(); vtkLinearTransform* transform = bbGetInputTransform(); - if(img != NULL){ - - imageshiftscale->SetInput( img ); - imageshiftscale->SetOutputScalarTypeToUnsignedChar(); - imageactor->SetInput( imageshiftscale->GetOutput() ); - if (transform!=NULL){ + if(img != NULL) + { + if (bbGetInputLookupTable()==NULL) + { + imageactor->SetInput( img ); + } 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(); + +// imageshiftscale->SetInput( img ); +// imageshiftscale->SetOutputScalarTypeToUnsignedChar(); + +// color->SetInput( imageshiftscale->GetOutput() ); + color->SetInput( img ); + color->Update(); + imageactor->GetMapper()->SetInput( color->GetOutput() ); + 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 @@ -63,25 +140,31 @@ void ImageActor::Process() bbGetInputRenderer()->AddActor( imageactor ); } + imageactor->GetProperty()->SetOpacity( bbGetInputOpacity() ); bbSetOutputOut(imageactor); + + +printf("EED ImageActor::Process End\n"); + } 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(); }