summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/cross_faded_property_evaluator.hpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-04-27 14:33:00 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-05-03 08:30:17 -0700
commitd5f4d0f05fcb8490984649d78d6c026f87a77f4e (patch)
treedea3b08a7c1d6f29a0f75d37cb2ee54a2429e6b4 /src/mbgl/renderer/cross_faded_property_evaluator.hpp
parent6c7730ee7c2d9e63df526965bb511b2f43ee82b7 (diff)
downloadqtlocation-mapboxgl-d5f4d0f05fcb8490984649d78d6c026f87a77f4e.tar.gz
[core] Move render-related sources out of style directory/namespace
Moves the following to the renderer directory and out of the style namespace: * CascadeParameters * PropertyEvaluationParameters * UpdateParameters * PropertyEvaluator * DataDrivenPropertyEvaluator * CrossFadedPropertyEvaluator * PaintPropertyBinder * PaintProperyStatistics * PossiblyEvaluatedPropertyValue * TransitioningLight * EvaluatedLight
Diffstat (limited to 'src/mbgl/renderer/cross_faded_property_evaluator.hpp')
-rw-r--r--src/mbgl/renderer/cross_faded_property_evaluator.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/mbgl/renderer/cross_faded_property_evaluator.hpp b/src/mbgl/renderer/cross_faded_property_evaluator.hpp
new file mode 100644
index 0000000000..40ecba5d93
--- /dev/null
+++ b/src/mbgl/renderer/cross_faded_property_evaluator.hpp
@@ -0,0 +1,45 @@
+#pragma once
+
+#include <mbgl/style/property_value.hpp>
+#include <mbgl/renderer/property_evaluation_parameters.hpp>
+#include <mbgl/util/interpolate.hpp>
+
+namespace mbgl {
+
+template <typename T>
+class Faded {
+public:
+ T from;
+ T to;
+ float fromScale;
+ float toScale;
+ float t;
+};
+
+template <typename T>
+class CrossFadedPropertyEvaluator {
+public:
+ using ResultType = Faded<T>;
+
+ CrossFadedPropertyEvaluator(const PropertyEvaluationParameters& parameters_, T defaultValue_)
+ : parameters(parameters_),
+ defaultValue(std::move(defaultValue_)) {}
+
+ Faded<T> operator()(const style::Undefined&) const;
+ Faded<T> operator()(const T& constant) const;
+ Faded<T> operator()(const style::CameraFunction<T>&) const;
+
+private:
+ Faded<T> calculate(const T& min, const T& mid, const T& max) const;
+
+ const PropertyEvaluationParameters& parameters;
+ T defaultValue;
+};
+
+namespace util {
+template <typename T>
+struct Interpolator<Faded<T>>
+ : Uninterpolated {};
+} // namespace util
+
+} // namespace mbgl