MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
transition_options.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <mbgl/util/chrono.hpp>
4 
5 #include <mapbox/compatibility/value.hpp>
6 
7 #include <optional>
8 
9 namespace mbgl {
10 namespace style {
11 
13 public:
14  std::optional<Duration> duration;
15  std::optional<Duration> delay;
17 
18  TransitionOptions(std::optional<Duration> duration_ = std::nullopt,
19  std::optional<Duration> delay_ = std::nullopt,
20  bool enablePlacementTransitions_ = true)
21  : duration(std::move(duration_)),
22  delay(std::move(delay_)),
23  enablePlacementTransitions(enablePlacementTransitions_) {}
24 
26  return {
27  duration ? duration : defaults.duration,
28  delay ? delay : defaults.delay,
30  };
31  }
32 
33  bool isDefined() const {
34  return duration || delay;
35  }
36 
38  mapbox::base::ValueObject result;
39  if (duration) {
40  result.emplace("duration", std::chrono::duration_cast<std::chrono::milliseconds>(*duration).count());
41  }
42  if (delay) {
43  result.emplace("delay", std::chrono::duration_cast<std::chrono::milliseconds>(*delay).count());
44  }
45  return result;
46  }
47 };
48 
49 } // namespace style
50 } // namespace mbgl
mapbox::base::Value serialize() const
TransitionOptions(std::optional< Duration > duration_=std::nullopt, std::optional< Duration > delay_=std::nullopt, bool enablePlacementTransitions_=true)
std::optional< Duration > delay
TransitionOptions reverseMerge(const TransitionOptions &defaults) const
std::optional< Duration > duration
Definition: actor.hpp:15
mapbox::base::Value Value
Definition: feature.hpp:11
Definition: tile_id.hpp:256