blob: a23c34918879186ef7516d4870533808ae4f95b1 [file] [log] [blame]
var EffectsExpressionInterface = (function (){
var ob = {
createEffectsInterface: createEffectsInterface
};
function createEffectsInterface(elem, propertyGroup){
if(elem.effects){
var effectElements = [];
var effectsData = elem.data.ef;
var i, len = elem.effects.effectElements.length;
for(i=0;i<len;i+=1){
effectElements.push(createGroupInterface(effectsData[i],elem.effects.effectElements[i],propertyGroup));
}
return function(name){
var effects = elem.data.ef, i = 0, len = effects.length;
while(i<len) {
if(name === effects[i].nm || name === effects[i].mn || name === effects[i].ix){
return effectElements[i];
}
i += 1;
}
}
}
}
function createGroupInterface(data,elements, propertyGroup){
var effectElements = [];
var i, len = data.ef.length;
for(i=0;i<len;i+=1){
if(data.ef.ty === 5){
effectElements.push(createGroupInterface(data.ef[i],elements.effectElements[i],propertyGroup));
} else {
effectElements.push(createValueInterface(elements.effectElements[i]));
}
}
return function(name){
var effects = data.ef, i = 0, len = effects.length;
// console.log('effects:',effects);
while(i<len) {
if(name === effects[i].nm || name === effects[i].mn || name === effects[i].ix){
if(effects[i].ty === 5){
return effectElements[i];
} else {
return effectElements[i]();
}
}
i += 1;
}
return effectElements[0]();
}
}
function createValueInterface(element){
return function(){
if(element.p.k){
element.p.getValue();
}
if(typeof element.p.v === 'number'){
return element.p.v;
}
var i, len = element.p.v.length;
var arr = Array.apply(null,{length:len});
for(i=0;i<len;i+=1){
arr[i] = element.p.v[i];
}
return arr;
}
}
return ob;
}());