Implement Expressions (#9439)
Ports https://github.com/mapbox/mapbox-gl-js/pull/4777 (and its several follow-ups)
This commit is contained in:
40
platform/node/src/node_expression.hpp
Normal file
40
platform/node/src/node_expression.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include <mbgl/style/conversion.hpp>
|
||||
#include <mbgl/style/expression/expression.hpp>
|
||||
#include <exception>
|
||||
#include <memory>
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#pragma GCC diagnostic ignored "-Wshadow"
|
||||
#include <nan.h>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
using namespace mbgl::style::expression;
|
||||
|
||||
namespace node_mbgl {
|
||||
|
||||
v8::Local<v8::Value> toJS(const Value&);
|
||||
|
||||
class NodeExpression : public Nan::ObjectWrap {
|
||||
public:
|
||||
static void Init(v8::Local<v8::Object>);
|
||||
|
||||
private:
|
||||
NodeExpression(std::unique_ptr<Expression> expression_) :
|
||||
expression(std::move(expression_))
|
||||
{};
|
||||
|
||||
static void New(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void Parse(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void Evaluate(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void GetType(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void IsFeatureConstant(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void IsZoomConstant(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static Nan::Persistent<v8::Function> constructor;
|
||||
|
||||
std::unique_ptr<Expression> expression;
|
||||
};
|
||||
|
||||
} // namespace node_mbgl
|
||||
Reference in New Issue
Block a user