summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/data_driven_property_evaluator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/data_driven_property_evaluator.hpp')
-rw-r--r--src/mbgl/renderer/data_driven_property_evaluator.hpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/mbgl/renderer/data_driven_property_evaluator.hpp b/src/mbgl/renderer/data_driven_property_evaluator.hpp
index 79ecd0d495..f9452cc572 100644
--- a/src/mbgl/renderer/data_driven_property_evaluator.hpp
+++ b/src/mbgl/renderer/data_driven_property_evaluator.hpp
@@ -23,21 +23,18 @@ public:
return ResultType(constant);
}
- ResultType operator()(const style::CameraFunction<T>& function) const {
- if (!parameters.useIntegerZoom) {
- return ResultType(function.evaluate(parameters.z));
+ ResultType operator()(const style::PropertyExpression<T>& expression) const {
+ if (!expression.isFeatureConstant()) {
+ auto returnExpression = expression;
+ returnExpression.useIntegerZoom = parameters.useIntegerZoom;
+ return ResultType(returnExpression);
+ } else if (!parameters.useIntegerZoom) {
+ return ResultType(expression.evaluate(parameters.z));
} else {
- return ResultType(function.evaluate(floor(parameters.z)));
+ return ResultType(expression.evaluate(floor(parameters.z)));
}
}
- template <class Function>
- ResultType operator()(const Function& function) const {
- auto returnFunction = function;
- returnFunction.useIntegerZoom = parameters.useIntegerZoom;
- return ResultType(returnFunction);
- }
-
private:
const PropertyEvaluationParameters& parameters;
T defaultValue;