renderer: add generic scalar field color path

This commit is contained in:
OpenAI Codex
2026-09-10 22:41:55 +08:00
parent 9dabb95e44
commit 09ead7f201
10 changed files with 125 additions and 56 deletions

View File

@@ -181,6 +181,9 @@ TEST(Layer, RasterParticleVisualProperties) {
TEST(Layer, WeatherColorUsesIndependentFixedOpacity) {
WeatherColorLayer layer{"weather-color", "raster-array"};
ASSERT_STREQ("weather-color", layer.getTypeInfo()->type);
EXPECT_EQ(FieldValueSource::VectorMagnitude, layer.getFieldValueSource());
layer.setFieldValueSource(FieldValueSource::Scalar);
EXPECT_EQ(FieldValueSource::Scalar, layer.getFieldValueSource());
EXPECT_FLOAT_EQ(0.62f, layer.getOpacity());
layer.setOpacity(0.35f);
EXPECT_FLOAT_EQ(0.35f, layer.getOpacity());
@@ -192,6 +195,7 @@ TEST(Layer, WeatherColorUsesIndependentFixedOpacity) {
EXPECT_EQ(layer.getColorStops(), valid);
EXPECT_FALSE(layer.setColorStops({{0.0f, {0, 0, 1, 1}}}));
EXPECT_FALSE(layer.setColorStops({{0.0f, {0, 0, 1, 1}}, {0.0f, {1, 0, 0, 1}}}));
EXPECT_TRUE(layer.setColorStops({{-2.0f, {0, 0, 1, 1}}, {3.0f, {1, 0, 0, 1}}}));
EXPECT_FALSE(layer.setColorStops({{0.0f, {0, 0, 1, 1}}, {10.0f, {std::numeric_limits<float>::quiet_NaN(), 0, 0, 1}}}));
EXPECT_FALSE(layer.setColorStops({{0.0f, {0, 0, 1, 1}}, {1.0f, {0, 0, 1, 1}}, {2.0f, {0, 0, 1, 1}},
{3.0f, {0, 0, 1, 1}}, {4.0f, {0, 0, 1, 1}}, {5.0f, {0, 0, 1, 1}},