diff options
Diffstat (limited to 'src/mbgl/style/layers/raster_layer_properties.hpp')
-rw-r--r-- | src/mbgl/style/layers/raster_layer_properties.hpp | 58 |
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 |