|
|
@ -208,14 +208,14 @@ tree.Definition.prototype.toXML = function(env, existing) {
|
|
|
|
return xml;
|
|
|
|
return xml;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
tree.Definition.prototype.toJS = function() {
|
|
|
|
tree.Definition.prototype.toJS = function(env) {
|
|
|
|
var shaderAttrs = {};
|
|
|
|
var shaderAttrs = {};
|
|
|
|
|
|
|
|
|
|
|
|
// merge conditions from filters with zoom condition of the
|
|
|
|
// merge conditions from filters with zoom condition of the
|
|
|
|
// definition
|
|
|
|
// definition
|
|
|
|
var zoom = "(" + this.zoom + " & (1 << ctx.zoom))";
|
|
|
|
var zoom = "(" + this.zoom + " & (1 << ctx.zoom))";
|
|
|
|
var frame_offset = this.frame_offset;
|
|
|
|
var frame_offset = this.frame_offset;
|
|
|
|
var _if = this.filters.toJS();
|
|
|
|
var _if = this.filters.toJS(env);
|
|
|
|
var filters = [zoom];
|
|
|
|
var filters = [zoom];
|
|
|
|
if(_if) filters.push(_if);
|
|
|
|
if(_if) filters.push(_if);
|
|
|
|
if(frame_offset) filters.push('ctx["frame-offset"] === ' + frame_offset);
|
|
|
|
if(frame_offset) filters.push('ctx["frame-offset"] === ' + frame_offset);
|
|
|
@ -230,19 +230,19 @@ tree.Definition.prototype.toJS = function() {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if (_if) {
|
|
|
|
if (_if) {
|
|
|
|
r.js = "if(" + _if + "){" + rule.value.toJS() + "}"
|
|
|
|
r.js = "if(" + _if + "){" + rule.value.toJS(env) + "}"
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
r.js = rule.value.toJS();
|
|
|
|
r.js = rule.value.toJS(env);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
r.constant = rule.value.ev().is !== 'field';
|
|
|
|
r.constant = rule.value.ev(env).is !== 'field';
|
|
|
|
r.filtered = !!_if;
|
|
|
|
r.filtered = !!_if;
|
|
|
|
|
|
|
|
|
|
|
|
shaderAttrs[rule.name].push(r);
|
|
|
|
shaderAttrs[rule.name].push(r);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
throw new Error("Ruleset not supported");
|
|
|
|
throw new Error("Ruleset not supported");
|
|
|
|
//if (rule instanceof tree.Ruleset) {
|
|
|
|
//if (rule instanceof tree.Ruleset) {
|
|
|
|
//var sh = rule.toJS();
|
|
|
|
//var sh = rule.toJS(env);
|
|
|
|
//for(var v in sh) {
|
|
|
|
//for(var v in sh) {
|
|
|
|
//shaderAttrs[v] = shaderAttrs[v] || [];
|
|
|
|
//shaderAttrs[v] = shaderAttrs[v] || [];
|
|
|
|
//for(var attr in sh[v]) {
|
|
|
|
//for(var attr in sh[v]) {
|
|
|
|