From db334f20fd9ada7539efde5952135ddfc901a2f4 Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Wed, 13 Jun 2018 14:26:37 +0200 Subject: [PATCH] #3196 creaMaracasVisu Feature New Normal - update ImageActor --- bbtk/src/bbmaracasvisuImageActor.cxx | 109 +++++++++++++++--- bbtk/src/bbmaracasvisuImageActor.h | 23 ++-- .../widgets/vtkClipping3DDataViewer.cxx | 3 +- 3 files changed, 113 insertions(+), 22 deletions(-) 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(); } diff --git a/bbtk/src/bbmaracasvisuImageActor.h b/bbtk/src/bbmaracasvisuImageActor.h index 26c34d3..a37515a 100644 --- a/bbtk/src/bbmaracasvisuImageActor.h +++ b/bbtk/src/bbmaracasvisuImageActor.h @@ -36,6 +36,7 @@ #include #include #include +#include namespace bbcreaMaracasVisu @@ -49,6 +50,9 @@ class bbcreaMaracasVisu_EXPORT ImageActor BBTK_DECLARE_INPUT(In,vtkImageData*); BBTK_DECLARE_INPUT(Transform,vtkLinearTransform*); BBTK_DECLARE_INPUT(Renderer,vtkRenderer*); + BBTK_DECLARE_INPUT(Opacity,double); + BBTK_DECLARE_INPUT(LookupTable,vtkScalarsToColors*); +// BBTK_DECLARE_INPUT(Type,int); BBTK_DECLARE_OUTPUT(Out,vtkProp3D*); BBTK_PROCESS(Process); void Process(); @@ -58,14 +62,17 @@ class bbcreaMaracasVisu_EXPORT ImageActor }; BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageActor,bbtk::AtomicBlackBox); -BBTK_NAME("ImageActor"); -BBTK_AUTHOR("InfoDev CREATIS-LRMN"); -BBTK_DESCRIPTION("put image in a 3D univers"); -BBTK_CATEGORY(""); -BBTK_INPUT(ImageActor,In,"Image input",vtkImageData*,""); -BBTK_INPUT(ImageActor,Transform,"Transform",vtkLinearTransform*,""); -BBTK_INPUT(ImageActor,Renderer,"Renderer",vtkRenderer*,""); -BBTK_OUTPUT(ImageActor,Out,"Output vtk actor",vtkProp3D*,""); + BBTK_NAME("ImageActor"); + BBTK_AUTHOR("InfoDev CREATIS"); + BBTK_DESCRIPTION("put image in a 3D univers"); + BBTK_CATEGORY(""); + BBTK_INPUT(ImageActor,In,"Image input",vtkImageData*,""); +// BBTK_INPUT(ImageActor,Type,"0 (default) vtkImageShiftScale Unsigned Char, 1 ColorTable",int,""); + BBTK_INPUT(ImageActor,Transform,"Transform",vtkLinearTransform*,""); + BBTK_INPUT(ImageActor,Renderer,"Renderer",vtkRenderer*,""); + BBTK_INPUT(ImageActor,Opacity,"Opacity [0-1]",double,""); + BBTK_INPUT(ImageActor,LookupTable,"LookupTable [vtkScalarsToColors]",vtkScalarsToColors*,""); + BBTK_OUTPUT(ImageActor,Out,"Output vtk actor",vtkProp3D*,""); BBTK_END_DESCRIBE_BLACK_BOX(ImageActor); } // EO namespace bbcreaMaracasVisu diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx index a888215..cde27ec 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx @@ -31,7 +31,8 @@ vtkClipping3DDataViewer::vtkClipping3DDataViewer() { int i; - for (i=0; i