MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dsl.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 #include <mbgl/util/ignore.hpp>
7 
8 #include <initializer_list>
9 #include <memory>
10 #include <string>
11 
12 namespace mbgl {
13 namespace style {
14 namespace expression {
17 namespace dsl {
18 
19 template <class... Args>
20 std::vector<std::unique_ptr<Expression>> vec(Args... args) {
21  std::vector<std::unique_ptr<Expression>> result;
22  util::ignore({ (result.push_back(std::move(args)), 0)... });
23  return result;
24 }
25 
26 std::unique_ptr<Expression> createExpression(const char* expr);
27 std::unique_ptr<Expression> createExpression(const mbgl::style::conversion::Convertible& expr);
28 std::unique_ptr<Expression> error(std::string);
29 
30 std::unique_ptr<Expression> literal(const char* value);
31 std::unique_ptr<Expression> literal(const Value& value);
32 std::unique_ptr<Expression> literal(std::initializer_list<double> value);
33 std::unique_ptr<Expression> literal(std::initializer_list<const char*> value);
34 
35 std::unique_ptr<Expression> assertion(const type::Type&,
36  std::unique_ptr<Expression>,
37  std::unique_ptr<Expression> def = nullptr);
38 std::unique_ptr<Expression> number(std::unique_ptr<Expression>,
39  std::unique_ptr<Expression> def = nullptr);
40 std::unique_ptr<Expression> string(std::unique_ptr<Expression>,
41  std::unique_ptr<Expression> def = nullptr);
42 std::unique_ptr<Expression> boolean(std::unique_ptr<Expression>,
43  std::unique_ptr<Expression> def = nullptr);
44 
45 std::unique_ptr<Expression> toColor(std::unique_ptr<Expression>,
46  std::unique_ptr<Expression> def = nullptr);
47 std::unique_ptr<Expression> toString(std::unique_ptr<Expression>,
48  std::unique_ptr<Expression> def = nullptr);
49 std::unique_ptr<Expression> toFormatted(std::unique_ptr<Expression>,
50  std::unique_ptr<Expression> def = nullptr);
51 std::unique_ptr<Expression> toImage(std::unique_ptr<Expression>, std::unique_ptr<Expression> def = nullptr);
52 
53 std::unique_ptr<Expression> get(const char* value);
54 std::unique_ptr<Expression> get(std::unique_ptr<Expression>);
55 
56 std::unique_ptr<Expression> id();
57 std::unique_ptr<Expression> zoom();
58 
59 std::unique_ptr<Expression> eq(std::unique_ptr<Expression>, std::unique_ptr<Expression>);
60 std::unique_ptr<Expression> ne(std::unique_ptr<Expression>, std::unique_ptr<Expression>);
61 std::unique_ptr<Expression> gt(std::unique_ptr<Expression>, std::unique_ptr<Expression>);
62 std::unique_ptr<Expression> lt(std::unique_ptr<Expression>, std::unique_ptr<Expression>);
63 
64 std::unique_ptr<Expression> step(std::unique_ptr<Expression> input,
65  std::unique_ptr<Expression> output0,
66  double input1, std::unique_ptr<Expression> output1);
67 
70 Interpolator cubicBezier(double x1, double y1, double x2, double y2);
71 
72 std::unique_ptr<Expression> interpolate(Interpolator interpolator,
73  std::unique_ptr<Expression> input,
74  double input1, std::unique_ptr<Expression> output1);
75 
76 std::unique_ptr<Expression> interpolate(Interpolator interpolator,
77  std::unique_ptr<Expression> input,
78  double input1, std::unique_ptr<Expression> output1,
79  double input2, std::unique_ptr<Expression> output2);
80 
81 std::unique_ptr<Expression> interpolate(Interpolator interpolator,
82  std::unique_ptr<Expression> input,
83  double input1, std::unique_ptr<Expression> output1,
84  double input2, std::unique_ptr<Expression> output2,
85  double input3, std::unique_ptr<Expression> output3);
86 
87 std::unique_ptr<Expression> concat(std::vector<std::unique_ptr<Expression>> inputs);
88 
89 std::unique_ptr<Expression> format(const char* value);
90 std::unique_ptr<Expression> format(std::unique_ptr<Expression>);
91 
92 std::unique_ptr<Expression> image(const char* value);
93 std::unique_ptr<Expression> image(std::unique_ptr<Expression>);
94 
95 } // namespace dsl
96 } // namespace expression
97 } // namespace style
98 } // namespace mbgl
std::vector< std::unique_ptr< Expression > > vec(Args... args)
Definition: dsl.hpp:20
std::unique_ptr< Expression > interpolate(Interpolator interpolator, std::unique_ptr< Expression > input, double input1, std::unique_ptr< Expression > output1)
std::unique_ptr< Expression > error(std::string)
std::unique_ptr< Expression > image(const char *value)
std::unique_ptr< Expression > eq(std::unique_ptr< Expression >, std::unique_ptr< Expression >)
Interpolator cubicBezier(double x1, double y1, double x2, double y2)
std::unique_ptr< Expression > assertion(const type::Type &, std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > literal(const char *value)
std::unique_ptr< Expression > gt(std::unique_ptr< Expression >, std::unique_ptr< Expression >)
std::unique_ptr< Expression > format(const char *value)
std::unique_ptr< Expression > number(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > createExpression(const char *expr)
std::unique_ptr< Expression > ne(std::unique_ptr< Expression >, std::unique_ptr< Expression >)
std::unique_ptr< Expression > step(std::unique_ptr< Expression > input, std::unique_ptr< Expression > output0, double input1, std::unique_ptr< Expression > output1)
Interpolator exponential(double base)
std::unique_ptr< Expression > concat(std::vector< std::unique_ptr< Expression >> inputs)
std::unique_ptr< Expression > toString(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > toColor(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > string(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > zoom()
std::unique_ptr< Expression > boolean(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > get(const char *value)
std::unique_ptr< Expression > toImage(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > toFormatted(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
std::unique_ptr< Expression > lt(std::unique_ptr< Expression >, std::unique_ptr< Expression >)
std::unique_ptr< Expression > id()
variant< NullType, NumberType, BooleanType, StringType, ColorType, ObjectType, ValueType, mapbox::util::recursive_wrapper< Array >, CollatorType, FormattedType, ErrorType, ImageType > Type
Definition: type.hpp:108
variant< ExponentialInterpolator, CubicBezierInterpolator > Interpolator
void ignore(Ts &&...)
Definition: ignore.hpp:14
Definition: actor.hpp:15