------------------------------------------------------------------------------
| 801 | |
| 802 | //------------------------------------------------------------------------------ |
| 803 | void GeometryViewer::Internal::UpdateLUT() |
| 804 | { |
| 805 | auto mapper = this->Actor->GetMapper(); |
| 806 | if (!mapper) |
| 807 | { |
| 808 | return; |
| 809 | } |
| 810 | std::array<double, 2> scalarRange; |
| 811 | mapper->GetScalarRange(scalarRange.data()); |
| 812 | vtkNew<vtkColorTransferFunction> lut; |
| 813 | lut->SetColorSpaceToHSV(); |
| 814 | vtkNew<vtkColorSeries> colorSeries; |
| 815 | colorSeries->SetColorScheme(PresetNames.at(this->ColorMapPreset)); |
| 816 | auto numColors = colorSeries->GetNumberOfColors(); |
| 817 | for (int i = 0; i < numColors; ++i) |
| 818 | { |
| 819 | vtkColor3ub color = colorSeries->GetColor(i); |
| 820 | double dColor[3]; |
| 821 | dColor[0] = static_cast<double>(color[0]) / 255.0; |
| 822 | dColor[1] = static_cast<double>(color[1]) / 255.0; |
| 823 | dColor[2] = static_cast<double>(color[2]) / 255.0; |
| 824 | double t = |
| 825 | scalarRange[0] + (scalarRange[1] - scalarRange[0]) / (static_cast<double>(numColors) - 1) * i; |
| 826 | lut->AddRGBPoint(t, dColor[0], dColor[1], dColor[2]); |
| 827 | } |
| 828 | mapper->SetLookupTable(lut); |
| 829 | } |
| 830 | |
| 831 | //------------------------------------------------------------------------------ |
| 832 | void GeometryViewer::Internal::FetchAvailableDataArrays(vtkDataObject* dataObject) |
no test coverage detected