X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkScalarsToColors.cxx;h=4aceca30aee008ced73ee882ba39ed697c223b28;hb=8a66dfc699643bfed05605c3683e7c36c02d8bc2;hp=d306ff39b5e9824781f14187ba1b509eb4cb20ef;hpb=64deda4b7a6e8cb5027c6e7d90fd25e06125c472;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx index d306ff3..4aceca3 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx @@ -227,99 +227,122 @@ void ScalarsToColors::Process() // std::cout << "Output value = " <SetRange( bbGetInputRange()[0],bbGetInputRange()[1]); // colorLookupTable->SetTableRange( bbGetInputRange()[0],bbGetInputRange()[1]); - } else { + } else if (bbGetInputWindowColorLevel().size()==2) { + double w = bbGetInputWindowColorLevel()[0] / 2; + double c = bbGetInputWindowColorLevel()[1]; + colorLookupTable->SetRange( c-w , c+w ); + }else { colorLookupTable->SetRange(0,255); } - colorLookupTable->SetNumberOfTableValues(1000); + + colorLookupTable->UseBelowRangeColorOn(); + colorLookupTable->UseAboveRangeColorOn(); + + int NumberOfColors=1000; + int NumberOfColorsHalf=NumberOfColors/2; + colorLookupTable->SetNumberOfTableValues( NumberOfColors ); colorLookupTable->Build(); double rgba1[4]; double rgba2[4]; int iLookTable; - for (iLookTable = 0; iLookTable<500; iLookTable++) + for (iLookTable = 0; iLookTableGetTableValue( iLookTable, rgba1); - colorLookupTable->GetTableValue(1000-1-iLookTable, rgba2); - colorLookupTable->SetTableValue(1000-1-iLookTable , rgba1[0],rgba1[1],rgba1[2],rgba1[3]); - colorLookupTable->SetTableValue( iLookTable , rgba2[0],rgba2[1],rgba2[2],rgba2[3]); + colorLookupTable->GetTableValue( iLookTable, rgba1 ); + colorLookupTable->GetTableValue(NumberOfColors-1-iLookTable, rgba2 ); + colorLookupTable->SetTableValue(NumberOfColors-1-iLookTable, rgba1[0],rgba1[1],rgba1[2],rgba1[3] ); + colorLookupTable->SetTableValue( iLookTable, rgba2[0],rgba2[1],rgba2[2],rgba2[3] ); } // for iLookTable - double rgba[4]; - colorLookupTable->GetTableValue(0,rgba); - rgba[3]=0; - colorLookupTable->SetTableValue(0,rgba); - int i,iMax; - iMax=(1000/16)*4; - for (i=0;iGetTableValue(500+i, rgba); - rgba[3]=(double)i/(double)iMax; - colorLookupTable->SetTableValue(500+i,rgba); - colorLookupTable->GetTableValue(500-i, rgba); - rgba[3]=(double)i/(double)iMax; - colorLookupTable->SetTableValue(500-i,rgba); - } // for -/* - iMax=100; - for (i=0;iGetTableValue(500+100+i, rgba); - rgba[3]=(double)i/(double)iMax; - _colorLookupTable->SetTableValue(500+100+i,rgba); - _colorLookupTable->GetTableValue(500-100-i, rgba); - rgba[3]=(double)i/(double)iMax; - _colorLookupTable->SetTableValue(500-100-i,rgba); - - } // for - - iMax=200; - for (i=0;iGetTableValue(500+i, rgba); - rgba[3]=0; - _colorLookupTable->SetTableValue(500+i,rgba); - _colorLookupTable->GetTableValue(500-i, rgba); + // First Element + double rgba[4]; + colorLookupTable->GetTableValue(0,rgba); rgba[3]=0; - _colorLookupTable->SetTableValue(500-i,rgba); - } // for -*/ + colorLookupTable->SetTableValue(0,rgba); + + colorLookupTable->UseBelowRangeColorOn(); + colorLookupTable->UseAboveRangeColorOn(); + if (bbGetInputBelowAboveRangeTransparence()==true) + { + colorLookupTable->SetBelowRangeColor(1,1,1,0); // White transparent + colorLookupTable->SetAboveRangeColor(1,1,1,0); // White transparent + } else { + colorLookupTable->SetBelowRangeColor(0,0,0,1); // White transparent + colorLookupTable->SetAboveRangeColor(1,1,1,1); // White transparent + } + + // Middle range + int i,iMax=(NumberOfColors/16)*4; + for (i=0;iGetTableValue(NumberOfColorsHalf+i, rgba); + rgba[3]=(double)i/(double)iMax; + colorLookupTable->SetTableValue(NumberOfColorsHalf+i,rgba); + colorLookupTable->GetTableValue(NumberOfColorsHalf-i, rgba); + rgba[3]=(double)i/(double)iMax; + colorLookupTable->SetTableValue(NumberOfColorsHalf-i,rgba); + } // for + } //if Type 0 + colorLookupTable->Modified(); _scalarstocolors = colorLookupTable; - } // if Type 0 + } // if Type 0 || 100 //EED 2018-06-8 ***********************ARDS Projet*********************************************** - if (bbGetInputType()==1) + if ((bbGetInputType()==1) || (bbGetInputType()==101) ) { vtkLookupTable *colorLookupTable = vtkLookupTable::New(); - if (bbGetInputRange().size()==2) - { - colorLookupTable->SetRange( bbGetInputRange()[0],bbGetInputRange()[1]); -// colorLookupTable->SetTableRange( bbGetInputRange()[0],bbGetInputRange()[1]); - } else { - colorLookupTable->SetRange(0,255); - } + if (bbGetInputRange().size()==2) + { + colorLookupTable->SetRange( bbGetInputRange()[0],bbGetInputRange()[1]); +// colorLookupTable->SetTableRange( bbGetInputRange()[0],bbGetInputRange()[1]); + } else if (bbGetInputWindowColorLevel().size()==2) { + double w = bbGetInputWindowColorLevel()[0] / 2; + double c = bbGetInputWindowColorLevel()[1]; + colorLookupTable->SetRange( c-w , c+w ); + }else { + colorLookupTable->SetRange(0,255); + } + + colorLookupTable->UseBelowRangeColorOn(); + colorLookupTable->UseAboveRangeColorOn(); + if (bbGetInputBelowAboveRangeTransparence()==true) + { + colorLookupTable->SetBelowRangeColor(1,1,1,0); // White transparent + colorLookupTable->SetAboveRangeColor(1,1,1,0); // White transparent + } else { + colorLookupTable->SetBelowRangeColor(0,0,0,1); // White transparent + colorLookupTable->SetAboveRangeColor(1,1,1,1); // White transparent + } + colorLookupTable->SetValueRange(0.0, 1.0); // from black to white colorLookupTable->SetSaturationRange(0.0, 0.0); // no color saturation colorLookupTable->SetRampToLinear(); colorLookupTable->Build(); - double rgba[4]; - colorLookupTable->GetTableValue(0,rgba); - rgba[3]=0; - colorLookupTable->SetTableValue(0,rgba); + // Transparency + if (bbGetInputType()==1) + { + // First Element + double rgba[4]; + colorLookupTable->GetTableValue(0,rgba); + rgba[3]=0; + colorLookupTable->SetTableValue(0,rgba); + } // if Type 1 _scalarstocolors = colorLookupTable; - } // If Type 1 + } // If Type 1 || 101 if (bbGetInputType()==2) // Direction Color Vector @@ -338,8 +361,7 @@ printf("EED ScalarsToColors::Process Start\n"); _scalarstocolors = _LutEED; } // If Type 3 - - } // firsttime +// } // firsttime double rgb[3]; std::vectorcolorRGB; _scalarstocolors->GetColor( bbGetInputScalarValue() , rgb ); @@ -348,54 +370,48 @@ printf("EED ScalarsToColors::Process Start\n"); colorRGB.push_back( rgb[2] ); bbSetOutputColor( colorRGB ); bbSetOutputLookupTable( _scalarstocolors ); - -printf("EED ScalarsToColors::Process End\n"); - - } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void ScalarsToColors::bbUserSetDefaultValues() { - // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 bbSetInputType(0); - std::vectorrange; - range.push_back( 0 ); - range.push_back( 1 ); - bbSetInputRange(range); +// std::vectorrange; +// range.push_back( 0 ); +// range.push_back( 1 ); +// bbSetInputRange(range); bbSetInputScalarValue(0); - firsttime = true; + bbSetInputBelowAboveRangeTransparence(true); +// firsttime = true; _scalarstocolors = NULL; } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void ScalarsToColors::bbUserInitializeProcessing() { - // THE INITIALIZATION METHOD BODY : // Here does nothing // but this is where you should allocate the internal/output pointers -// if any - - +// if any } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void ScalarsToColors::bbUserFinalizeProcessing() { - // THE FINALIZATION METHOD BODY : // Here does nothing // but this is where you should desallocate the internal/output pointers // if any - } -} -// EO namespace bbcreaVtk + +}// EO namespace bbcreaVtk