| 112 | } |
| 113 | |
| 114 | bool mitk::LookupTableProperty::FromJSON(const nlohmann::json& j) |
| 115 | { |
| 116 | auto lut = vtkSmartPointer<vtkLookupTable>::New(); |
| 117 | |
| 118 | lut->SetNumberOfTableValues(j["NumberOfColors"].get<int>()); |
| 119 | lut->SetScale(j["Scale"].get<int>()); |
| 120 | lut->SetScale(j["Ramp"].get<int>()); |
| 121 | |
| 122 | std::array<double, 2> range; |
| 123 | |
| 124 | j["HueRange"][0].get_to(range[0]); |
| 125 | j["HueRange"][1].get_to(range[1]); |
| 126 | lut->SetHueRange(range.data()); |
| 127 | |
| 128 | j["ValueRange"][0].get_to(range[0]); |
| 129 | j["ValueRange"][1].get_to(range[1]); |
| 130 | lut->SetValueRange(range.data()); |
| 131 | |
| 132 | j["SaturationRange"][0].get_to(range[0]); |
| 133 | j["SaturationRange"][1].get_to(range[1]); |
| 134 | lut->SetSaturationRange(range.data()); |
| 135 | |
| 136 | j["AlphaRange"][0].get_to(range[0]); |
| 137 | j["AlphaRange"][1].get_to(range[1]); |
| 138 | lut->SetAlphaRange(range.data()); |
| 139 | |
| 140 | j["TableRange"][0].get_to(range[0]); |
| 141 | j["TableRange"][1].get_to(range[1]); |
| 142 | lut->SetTableRange(range.data()); |
| 143 | |
| 144 | std::array<double, 4> rgba; |
| 145 | vtkIdType i = 0; |
| 146 | |
| 147 | for (const auto& value : j["Table"]) |
| 148 | { |
| 149 | for (size_t j = 0; j < 4; ++j) |
| 150 | value[j].get_to(rgba[j]); |
| 151 | |
| 152 | lut->SetTableValue(i++, rgba.data()); |
| 153 | } |
| 154 | |
| 155 | auto mitkLut = LookupTable::New(); |
| 156 | mitkLut->SetVtkLookupTable(lut); |
| 157 | this->SetLookupTable(mitkLut); |
| 158 | |
| 159 | return true; |
| 160 | } |
| 161 |
nothing calls this directly
no test coverage detected