summaryrefslogtreecommitdiff
path: root/src/mbgl/style/applied_class_properties.hpp
blob: a33e2bd62b6f170706242cefadadfd3bf537f9e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef MBGL_STYLE_APPLIED_CLASS_PROPERTIES
#define MBGL_STYLE_APPLIED_CLASS_PROPERTIES

#include <mbgl/style/property_value.hpp>
#include <mbgl/style/class_dictionary.hpp>
#include <mbgl/util/chrono.hpp>

#include <list>

namespace mbgl {

class AppliedClassPropertyValue {
public:
    AppliedClassPropertyValue(ClassID class_id, const TimePoint& begin, const TimePoint& end, const PropertyValue &value);

public:
    const ClassID name;
    const TimePoint begin;
    const TimePoint end;
    const PropertyValue value;
};


class AppliedClassPropertyValues {
public:
    std::list<AppliedClassPropertyValue> propertyValues;

public:
    // Returns the ID of the most recent
    ClassID mostRecent() const;
    void add(ClassID class_id, const TimePoint& begin, const TimePoint& end, const PropertyValue &value);
    void cleanup(const TimePoint& now);
    bool hasTransitions() const;
    bool empty() const;
};

}

#endif