diff options
Diffstat (limited to 'include/mbgl/style/expression/dsl.hpp')
-rw-r--r-- | include/mbgl/style/expression/dsl.hpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/include/mbgl/style/expression/dsl.hpp b/include/mbgl/style/expression/dsl.hpp new file mode 100644 index 0000000000..b4e1ed436e --- /dev/null +++ b/include/mbgl/style/expression/dsl.hpp @@ -0,0 +1,63 @@ +#pragma once + +#include <mbgl/style/expression/value.hpp> +#include <mbgl/style/expression/expression.hpp> +#include <mbgl/style/expression/interpolator.hpp> + +#include <memory> + +namespace mbgl { +namespace style { +namespace expression { +namespace dsl { + +// This convenience API does little to no expression validation or type-checking, and is intended for +// use only by test and other non-production code. + +std::unique_ptr<Expression> literal(const char* value); +std::unique_ptr<Expression> literal(Value value); + +std::unique_ptr<Expression> number(std::unique_ptr<Expression>); +std::unique_ptr<Expression> string(std::unique_ptr<Expression>); + +std::unique_ptr<Expression> toColor(const char* value); +std::unique_ptr<Expression> toColor(std::unique_ptr<Expression>); + +std::unique_ptr<Expression> get(const char* value); +std::unique_ptr<Expression> get(std::unique_ptr<Expression>); + +std::unique_ptr<Expression> id(); +std::unique_ptr<Expression> zoom(); + +std::unique_ptr<Expression> eq(std::unique_ptr<Expression>, + std::unique_ptr<Expression>); +std::unique_ptr<Expression> ne(std::unique_ptr<Expression>, + std::unique_ptr<Expression>); +std::unique_ptr<Expression> gt(std::unique_ptr<Expression>, + std::unique_ptr<Expression>); +std::unique_ptr<Expression> lt(std::unique_ptr<Expression>, + std::unique_ptr<Expression>); + +Interpolator linear(); +Interpolator exponential(double base); +Interpolator cubicBezier(double x1, double y1, double x2, double y2); + +std::unique_ptr<Expression> interpolate(Interpolator interpolator, + std::unique_ptr<Expression> input, + double input1, std::unique_ptr<Expression> output1); + +std::unique_ptr<Expression> interpolate(Interpolator interpolator, + std::unique_ptr<Expression> input, + double input1, std::unique_ptr<Expression> output1, + double input2, std::unique_ptr<Expression> output2); + +std::unique_ptr<Expression> interpolate(Interpolator interpolator, + std::unique_ptr<Expression> input, + double input1, std::unique_ptr<Expression> output1, + double input2, std::unique_ptr<Expression> output2, + double input3, std::unique_ptr<Expression> output3); + +} // namespace dsl +} // namespace expression +} // namespace style +} // namespace mbgl |