diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-05-19 09:39:41 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-05-19 11:48:45 -0700 |
commit | bdff99c853431b89b56ac9a71dc73a65bc5515df (patch) | |
tree | 5ff632155d0b107566b745265330515dabfb2b8a /include/mbgl/style/function/interval_stops.hpp | |
parent | 895275d6fcba6e2181a2e836f274db7c12ee4f75 (diff) | |
download | qtlocation-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.hpp | 17 |
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; |