summaryrefslogtreecommitdiff
path: root/src/mbgl/style/paint_property.hpp
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-03-06 14:22:11 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-03-18 01:26:22 +0200
commit4909169996b333bdb004508544d4b97da1c45412 (patch)
tree9e03d3e63f03015307c878dbfdb26de53532d056 /src/mbgl/style/paint_property.hpp
parent94de5d7f4afdee7391b93e562438feff48b30add (diff)
downloadqtlocation-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.hpp15
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;