diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-03-06 14:22:11 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-03-18 01:26:22 +0200 |
commit | 4909169996b333bdb004508544d4b97da1c45412 (patch) | |
tree | 9e03d3e63f03015307c878dbfdb26de53532d056 /src/mbgl/style/paint_property.hpp | |
parent | 94de5d7f4afdee7391b93e562438feff48b30add (diff) | |
download | qtlocation-mapboxgl-4909169996b333bdb004508544d4b97da1c45412.tar.gz |
[core] Added user-defined transition properties when modifying classes
Diffstat (limited to 'src/mbgl/style/paint_property.hpp')
-rw-r--r-- | src/mbgl/style/paint_property.hpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/mbgl/style/paint_property.hpp b/src/mbgl/style/paint_property.hpp index 18cf0192aa..e742b2c109 100644 --- a/src/mbgl/style/paint_property.hpp +++ b/src/mbgl/style/paint_property.hpp @@ -64,23 +64,24 @@ public: } } - void cascade(const StyleCascadeParameters& parameters) { - Duration delay = *parameters.userDefinedTransition.delay; - Duration duration = *parameters.userDefinedTransition.duration; + void cascade(const StyleCascadeParameters& params) { + const bool overrideTransition = !params.transition.delay && !params.transition.duration; + Duration delay = params.transition.delay.value_or(Duration::zero()); + Duration duration = params.transition.duration.value_or(Duration::zero()); - for (auto classID : parameters.classes) { + for (const auto classID : params.classes) { if (values.find(classID) == values.end()) continue; - if (transitions.find(classID) != transitions.end()) { + if (overrideTransition && transitions.find(classID) != transitions.end()) { const PropertyTransition& transition = transitions[classID]; if (transition.delay) delay = *transition.delay; if (transition.duration) duration = *transition.duration; } cascaded = std::make_unique<CascadedValue>(std::move(cascaded), - parameters.now + delay, - parameters.now + delay + duration, + params.now + delay, + params.now + delay + duration, values.at(classID)); break; |