#include "vtkLookupTableManager.h" #include vtkCxxRevisionMacro(vtkLookupTableManager, "$Revision: 1.0 $"); vtkStandardNewMacro(vtkLookupTableManager); #include "lut/Spectrum.h" #include "lut/HotMetal.h" #include "lut/GEColor.h" #include "lut/Flow.h" #include "lut/LONI.h" #include "lut/LONI2.h" #include "lut/Asymmetry.h" vtkLookupTableManager::vtkLookupTableManager() {} vtkLookupTableManager::~vtkLookupTableManager() {} std::vector vtkLookupTableManager::GetAvailableLookupTables() { std::string lutNames[]={"B/W", "B/W Inverse", "Spectrum", "HotMetal", "GEColor", "Flow", "LONI", "LONI2", "Asymmetry", "P-Value"}; std::vector v_lutNames; for( int i=0; i<10; i++) { v_lutNames.push_back(lutNames[i]); } return v_lutNames; } vtkLookupTable* vtkLookupTableManager::GetLookupTable(const int& n) { vtkLookupTable* lut = 0; switch(n) { case 0: lut = vtkLookupTableManager::GetBWLookupTable(); break; case 1: lut = vtkLookupTableManager::GetBWInverseLookupTable(); break; case 2: lut = vtkLookupTableManager::GetSpectrumLookupTable(); break; case 3: lut = vtkLookupTableManager::GetHotMetalLookupTable(); break; case 4: lut = vtkLookupTableManager::GetGEColorLookupTable(); break; case 5: lut = vtkLookupTableManager::GetFlowLookupTable(); break; case 6: lut = vtkLookupTableManager::GetLONILookupTable(); break; case 7: lut = vtkLookupTableManager::GetLONI2LookupTable(); break; case 8: lut = vtkLookupTableManager::GetAsymmetryLookupTable(); break; case 9: lut = vtkLookupTableManager::GetPValueLookupTable(); break; default: break; } return lut; } vtkLookupTable* vtkLookupTableManager::GetBWLookupTable() { vtkLookupTable* bwLut = vtkLookupTable::New(); bwLut->SetTableRange (0, 1); bwLut->SetSaturationRange (0, 0); bwLut->SetHueRange (0, 0); bwLut->SetValueRange (0, 1); bwLut->Build(); return bwLut; } vtkLookupTable* vtkLookupTableManager::GetBWInverseLookupTable() { vtkLookupTable* bwLut = vtkLookupTable::New(); bwLut->SetTableRange (0, 1); bwLut->SetSaturationRange (0, 0); bwLut->SetHueRange (0, 0); bwLut->SetValueRange (1, 0); bwLut->Build(); return bwLut; } vtkLookupTable* vtkLookupTableManager::GetSpectrumLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Spectrum[i]/255.0, (double)Spectrum[256+i]/255.0, (double)Spectrum[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetHotMetalLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for( int i=0; i<256; i++) { lut->SetTableValue(i, (double)HotMetal[i]/255.0, (double)HotMetal[256+i]/255.0, (double)HotMetal[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetGEColorLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for( int i=0; i<256; i++) { lut->SetTableValue(i, (double)GEColor[i]/255.0, (double)GEColor[256+i]/255.0, (double)GEColor[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetFlowLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Flow[i]/255.0, (double)Flow[256+i]/255.0, (double)Flow[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLONILookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(203); lut->Build(); for( int i=0; i<203; i++) { lut->SetTableValue(i, (double)LONI[i][0], (double)LONI[i][1], (double)LONI[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLONI2LookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(120); lut->Build(); for( int i=0; i<120; i++) { lut->SetTableValue(i, (double)LONI2[i][0], (double)LONI2[i][1], (double)LONI2[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetAsymmetryLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for( int i=0; i<256; i++) { lut->SetTableValue(i, (double)AsymmetryLUT[i][0], (double)AsymmetryLUT[i][1], (double)AsymmetryLUT[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetPValueLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetTableRange (0, 1); lut->SetSaturationRange (1.0, 1.5); lut->SetHueRange (0.666, 0.8333); //lut->SetHueRange (0.666, 0.0); lut->SetValueRange (0.5, 1.0); lut->Build(); return lut; }