summaryrefslogtreecommitdiff
path: root/src/mbgl/style/property_evaluator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/property_evaluator.hpp')
-rw-r--r--src/mbgl/style/property_evaluator.hpp46
1 files changed, 4 insertions, 42 deletions
diff --git a/src/mbgl/style/property_evaluator.hpp b/src/mbgl/style/property_evaluator.hpp
index a0bce2f499..ca4962d948 100644
--- a/src/mbgl/style/property_evaluator.hpp
+++ b/src/mbgl/style/property_evaluator.hpp
@@ -1,66 +1,28 @@
#pragma once
#include <mbgl/style/property_value.hpp>
-#include <mbgl/util/interpolate.hpp>
+#include <mbgl/style/property_evaluation_parameters.hpp>
namespace mbgl {
namespace style {
-class CalculationParameters;
-
template <typename T>
class PropertyEvaluator {
public:
using ResultType = T;
- PropertyEvaluator(const CalculationParameters& parameters_, T defaultValue_)
+ PropertyEvaluator(const PropertyEvaluationParameters& parameters_, T defaultValue_)
: parameters(parameters_),
defaultValue(std::move(defaultValue_)) {}
T operator()(const Undefined&) const { return defaultValue; }
T operator()(const T& constant) const { return constant; }
- T operator()(const Function<T>&) const;
+ T operator()(const Function<T>& fn) const { return fn.evaluate(parameters.z); }
private:
- const CalculationParameters& parameters;
- T defaultValue;
-};
-
-template <typename T>
-struct Faded {
- T from;
- T to;
- float fromScale;
- float toScale;
- float t;
-};
-
-template <typename T>
-class CrossFadedPropertyEvaluator {
-public:
- using ResultType = Faded<T>;
-
- CrossFadedPropertyEvaluator(const CalculationParameters& parameters_, T defaultValue_)
- : parameters(parameters_),
- defaultValue(std::move(defaultValue_)) {}
-
- Faded<T> operator()(const Undefined&) const;
- Faded<T> operator()(const T& constant) const;
- Faded<T> operator()(const Function<T>&) const;
-
-private:
- Faded<T> calculate(const T& min, const T& mid, const T& max) const;
-
- const CalculationParameters& parameters;
+ const PropertyEvaluationParameters& parameters;
T defaultValue;
};
} // namespace style
-
-namespace util {
-template <typename T>
-struct Interpolator<style::Faded<T>>
- : Uninterpolated {};
-} // namespace util
-
} // namespace mbgl