summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/raster_layer_properties.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/layers/raster_layer_properties.hpp')
-rw-r--r--src/mbgl/style/layers/raster_layer_properties.hpp58
1 files changed, 48 insertions, 10 deletions
diff --git a/src/mbgl/style/layers/raster_layer_properties.hpp b/src/mbgl/style/layers/raster_layer_properties.hpp
index 08818c9fb3..d43ab78a95 100644
--- a/src/mbgl/style/layers/raster_layer_properties.hpp
+++ b/src/mbgl/style/layers/raster_layer_properties.hpp
@@ -44,16 +44,54 @@ struct RasterFadeDuration : PaintProperty<float> {
static float defaultValue() { return 300; }
};
-class RasterPaintProperties : public Properties<
- RasterOpacity,
- RasterHueRotate,
- RasterBrightnessMin,
- RasterBrightnessMax,
- RasterSaturation,
- RasterContrast,
- RasterResampling,
- RasterFadeDuration
-> {};
+class RasterPaintProperties {
+public:
+
+ class PossiblyEvaluated {
+ public:
+ float rasterOpacity;
+ float rasterHueRotate;
+ float rasterBrightnessMin;
+ float rasterBrightnessMax;
+ float rasterSaturation;
+ float rasterContrast;
+ RasterResamplingType rasterResampling;
+ float rasterFadeDuration;
+ };
+
+ class Unevaluated {
+ public:
+ style::Transitioning<PropertyValue<float>> rasterOpacity;
+ style::Transitioning<PropertyValue<float>> rasterHueRotate;
+ style::Transitioning<PropertyValue<float>> rasterBrightnessMin;
+ style::Transitioning<PropertyValue<float>> rasterBrightnessMax;
+ style::Transitioning<PropertyValue<float>> rasterSaturation;
+ style::Transitioning<PropertyValue<float>> rasterContrast;
+ style::Transitioning<PropertyValue<RasterResamplingType>> rasterResampling;
+ style::Transitioning<PropertyValue<float>> rasterFadeDuration;
+
+ bool hasTransition() const;
+ PossiblyEvaluated evaluate(const PropertyEvaluationParameters&) const;
+ };
+
+ class Transitionable {
+ public:
+ style::Transitionable<PropertyValue<float>> rasterOpacity;
+ style::Transitionable<PropertyValue<float>> rasterHueRotate;
+ style::Transitionable<PropertyValue<float>> rasterBrightnessMin;
+ style::Transitionable<PropertyValue<float>> rasterBrightnessMax;
+ style::Transitionable<PropertyValue<float>> rasterSaturation;
+ style::Transitionable<PropertyValue<float>> rasterContrast;
+ style::Transitionable<PropertyValue<RasterResamplingType>> rasterResampling;
+ style::Transitionable<PropertyValue<float>> rasterFadeDuration;
+
+ Unevaluated transitioned(const TransitionParameters&, Unevaluated&& prior) const;
+ Unevaluated untransitioned() const;
+
+ bool hasDataDrivenPropertyDifference(const Transitionable& other) const;
+ };
+};
+
} // namespace style
} // namespace mbgl