summaryrefslogtreecommitdiff
path: root/include/mbgl/style/function/interval_stops.hpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-05-19 09:39:41 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-05-19 11:48:45 -0700
commitbdff99c853431b89b56ac9a71dc73a65bc5515df (patch)
tree5ff632155d0b107566b745265330515dabfb2b8a /include/mbgl/style/function/interval_stops.hpp
parent895275d6fcba6e2181a2e836f274db7c12ee4f75 (diff)
downloadqtlocation-mapboxgl-bdff99c853431b89b56ac9a71dc73a65bc5515df.tar.gz
[core] Eliminate round-trip through Value in CameraFunction::evaluate
Diffstat (limited to 'include/mbgl/style/function/interval_stops.hpp')
-rw-r--r--include/mbgl/style/function/interval_stops.hpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/include/mbgl/style/function/interval_stops.hpp b/include/mbgl/style/function/interval_stops.hpp
index 50f2b48453..a482a6081c 100644
--- a/include/mbgl/style/function/interval_stops.hpp
+++ b/include/mbgl/style/function/interval_stops.hpp
@@ -18,18 +18,13 @@ public:
: stops(std::move(stops_)) {
}
- optional<T> evaluate(const Value& value) const {
+ optional<T> evaluate(float z) const {
if (stops.empty()) {
assert(false);
return {};
}
- optional<float> z = numericValue<float>(value);
- if (!z) {
- return {};
- }
-
- auto it = stops.upper_bound(*z);
+ auto it = stops.upper_bound(z);
if (it == stops.end()) {
return stops.rbegin()->second;
} else if (it == stops.begin()) {
@@ -39,6 +34,14 @@ public:
}
}
+ optional<T> evaluate(const Value& value) const {
+ optional<float> z = numericValue<float>(value);
+ if (!z) {
+ return {};
+ }
+ return evaluate(*z);
+ }
+
friend bool operator==(const IntervalStops& lhs,
const IntervalStops& rhs) {
return lhs.stops == rhs.stops;