#include #include #include "luts.h" // LGlyph tables vtkSmartPointer buildComplementary() { // uses a modified navia colour map as base. // https://www.fabiocrameri.ch/colourmaps/ vtkNew lut; lut->SetNumberOfColors(100); lut->SetTableRange(0, 99); lut->SetScaleToLinear(); lut->Build(); vtkNew colorTransferFunction; colorTransferFunction->AddRGBPoint(0, 0.317647, 0.52549, 0.329412); colorTransferFunction->AddRGBPoint(49, 0.584, 0.584, 0.584); double c[3]; int idx=0; for (double notBeached=1; notBeached >= 0.5; notBeached-=0.5) { for (int i=0; i < 50; i++) { colorTransferFunction->GetColor(i, c); lut->SetTableValue(idx++, c[0], c[1], c[2], notBeached); } } lut->UseBelowRangeColorOn(); lut->SetBelowRangeColor(1,1,1,0); lut->SetNanColor(0.0,0,0,0); return lut; } vtkSmartPointer buildDesaturated() { // uses the grayC colour map. // https://www.fabiocrameri.ch/colourmaps/ vtkNew lut; lut->SetNumberOfColors(100); lut->SetTableRange(0, 99); lut->SetScaleToLinear(); lut->Build(); vtkNew colorTransferFunction; colorTransferFunction->AddRGBPoint(0, 0.313725, 0.313725, 0.313725); colorTransferFunction->AddRGBPoint(49, 0.909804, 0.909804, 0.909804); double c[3]; int idx=0; for (double notBeached=1; notBeached >= 0.5; notBeached-=0.5) { for (int i=0; i < 50; i++) { colorTransferFunction->GetColor(i, c); lut->SetTableValue(idx++, c[0], c[1], c[2], notBeached); } } lut->UseBelowRangeColorOn(); lut->SetBelowRangeColor(1,1,1,0); lut->SetNanColor(0.0,0,0,0); return lut; } // ECol tables vtkSmartPointer buildCyclicComplementary() { // uses the corkO cyclic colour map // https://www.fabiocrameri.ch/colourmaps/ vtkNew lut; lut->SetNumberOfColors(100); lut->SetTableRange(0, 99); lut->SetScaleToLinear(); lut->Build(); int idx=0; for (double opacity=0.1; opacity <= 1.0; opacity+=0.1) { lut->SetTableValue(idx++, 0.247059, 0.243137, 0.227451, opacity); lut->SetTableValue(idx++, 0.243137, 0.266667, 0.364706, opacity); lut->SetTableValue(idx++, 0.329412, 0.431373, 0.580392, opacity); lut->SetTableValue(idx++, 0.517647, 0.619608, 0.729412, opacity); lut->SetTableValue(idx++, 0.678431, 0.768627, 0.784314, opacity); lut->SetTableValue(idx++, 0.631373, 0.768627, 0.65098, opacity); lut->SetTableValue(idx++, 0.45098, 0.639216, 0.435294, opacity); lut->SetTableValue(idx++, 0.309804, 0.45098, 0.231373, opacity); lut->SetTableValue(idx++, 0.262745, 0.309804, 0.172549, opacity); lut->SetTableValue(idx++, 0.247059, 0.243137, 0.227451, opacity); } lut->SetNanColor(0.0,0,0,0); return lut; } vtkSmartPointer buildCyclicContrasting() { // uses the romaO cyclic colour map. // https://www.fabiocrameri.ch/colourmaps/ vtkNew lut; lut->SetNumberOfColors(100.0); lut->SetTableRange(0.0, 99); lut->SetScaleToLinear(); lut->Build(); int idx=0.0; for (double opacity=0.1; opacity <= 1.0; opacity+=0.1) { lut->SetTableValue(idx++, 0.45098, 0.223529, 0.341176, opacity); lut->SetTableValue(idx++, 0.529412, 0.25098, 0.215686, opacity); lut->SetTableValue(idx++, 0.639216, 0.403922, 0.172549, opacity); lut->SetTableValue(idx++, 0.764706, 0.639216, 0.294118, opacity); lut->SetTableValue(idx++, 0.839216, 0.847059, 0.576471, opacity); lut->SetTableValue(idx++, 0.705882, 0.870588, 0.776471, opacity); lut->SetTableValue(idx++, 0.454902, 0.733333, 0.803922, opacity); lut->SetTableValue(idx++, 0.309804, 0.533333, 0.72549, opacity); lut->SetTableValue(idx++, 0.360784, 0.32549, 0.545098, opacity); lut->SetTableValue(idx++, 0.447059, 0.223529, 0.34902, opacity); } lut->SetNanColor(0.0,0,0,0); return lut; } vtkSmartPointer buildCyclicMonochromatic() { // uses a slightly modified 9-class blues // https://colorbrewer2.org/#type=sequential&scheme=Blues&n=9 vtkNew lut; lut->SetNumberOfColors(100.0); lut->SetTableRange(0.0, 99); lut->SetScaleToLinear(); lut->Build(); int idx=0.0; for (double opacity=0.1; opacity <= 1.0; opacity+=0.1) { lut->SetTableValue(idx++, 0.258824, 0.572549, 0.776471, opacity); lut->SetTableValue(idx++, 0.129412, 0.443137, 0.709804, opacity); lut->SetTableValue(idx++, 0.031373, 0.317647, 0.611765, opacity); lut->SetTableValue(idx++, 0.031373, 0.188235, 0.419608, opacity); lut->SetTableValue(idx++, 0.968627, 0.984314, 1.0, opacity); lut->SetTableValue(idx++, 0.870588, 0.921569, 0.968627, opacity); lut->SetTableValue(idx++, 0.776471, 0.858824, 0.937255, opacity); lut->SetTableValue(idx++, 0.619608, 0.792157, 0.882353, opacity); lut->SetTableValue(idx++, 0.419608, 0.682353, 0.839216, opacity); lut->SetTableValue(idx++, 0.180392, 0.494118, 0.698039, opacity); } lut->SetNanColor(0.0,0,0,0); return lut; } vtkSmartPointer buildCyclicDesaturated() { // uses a modified brocO colour map // https://www.fabiocrameri.ch/colourmaps/ vtkNew lut; lut->SetNumberOfColors(100.0); lut->SetTableRange(0.0, 99); lut->SetScaleToLinear(); lut->Build(); int idx=0.0; for (double opacity=0.1; opacity <= 1.0; opacity+=0.1) { lut->SetTableValue(idx++, 44, 44, 44, opacity); lut->SetTableValue(idx++, 56, 56, 56, opacity); lut->SetTableValue(idx++, 85, 85, 85, opacity); lut->SetTableValue(idx++, 114, 114, 114, opacity); lut->SetTableValue(idx++, 149, 149, 149, opacity); lut->SetTableValue(idx++, 146, 146, 146, opacity); lut->SetTableValue(idx++, 110, 110, 110, opacity); lut->SetTableValue(idx++, 78, 78, 78, opacity); lut->SetTableValue(idx++, 52, 52, 52, opacity); lut->SetTableValue(idx++, 45, 45, 45, opacity); } lut->SetNanColor(0.0,0,0,0); return lut; } // LCol tables vtkSmartPointer buildDensityComplementary() { vtkNew lut; return lut; } vtkSmartPointer buildDensityContrasting() { vtkNew lut; return lut; } vtkSmartPointer buildDensityMonochromatic() { vtkNew lut; return lut; } vtkSmartPointer buildDensityDesaturated() { vtkNew lut; return lut; }