X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkScalarsToColors.cxx;h=17780e12aba3d08fa9263c52e0a951141be5a448;hb=a58b0ef3e9adb0fd28caeb807b7fd2c904c4363a;hp=871319a1f1b6ecc7e1121cee11612110a26cc9eb;hpb=a6e13b99c7b4544afb8ed38460de8a80ca3760df;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx index 871319a..17780e1 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkScalarsToColors.cxx @@ -227,85 +227,94 @@ void ScalarsToColors::Process() // std::cout << "Output value = " <SetRange( bbGetInputRange()[0],bbGetInputRange()[1]); // colorLookupTable->SetTableRange( bbGetInputRange()[0],bbGetInputRange()[1]); + colorLookupTable->UseBelowRangeColorOn(); + colorLookupTable->UseAboveRangeColorOn(); } else { colorLookupTable->SetRange(0,255); } - colorLookupTable->SetNumberOfTableValues(1000); + 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(1,1,1,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]); +// colorLookupTable->SetTableRange( bbGetInputRange()[0],bbGetInputRange()[1]); ???????? +// colorLookupTable->SetBelowRangeColor(1,1,1,1); // White transparent +// colorLookupTable->SetAboveRangeColor(1,1,1,1); // White transparent + 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(1,1,1,1); // White transparent + colorLookupTable->SetAboveRangeColor(1,1,1,1); // White transparent + } } else { colorLookupTable->SetRange(0,255); } @@ -313,12 +322,17 @@ printf("EED ScalarsToColors::Process Start\n"); 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,7 +352,7 @@ printf("EED ScalarsToColors::Process Start\n"); } // If Type 3 - } // firsttime +// } // firsttime double rgb[3]; std::vectorcolorRGB; _scalarstocolors->GetColor( bbGetInputScalarValue() , rgb ); @@ -348,8 +362,6 @@ printf("EED ScalarsToColors::Process Start\n"); bbSetOutputColor( colorRGB ); bbSetOutputLookupTable( _scalarstocolors ); -printf("EED ScalarsToColors::Process End\n"); - } //===== @@ -366,7 +378,8 @@ void ScalarsToColors::bbUserSetDefaultValues() range.push_back( 1 ); bbSetInputRange(range); bbSetInputScalarValue(0); - firsttime = true; + bbSetInputBelowAboveRangeTransparence(true); +// firsttime = true; _scalarstocolors = NULL; } //=====