blob: 2ee0e43cdc5fdfdcee4e9a21944b008b7f77834c [file] [log] [blame]
function BaseElement(){
}
BaseElement.prototype.checkMasks = function(){
if(!this.data.hasMask){
return false;
}
var i = 0, len = this.data.masksProperties.length;
while(i<len) {
if((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {
return true;
}
i += 1;
}
return false;
};
BaseElement.prototype.initExpressions = function(){
this.layerInterface = LayerExpressionInterface(this);
if(this.data.hasMask && this.maskManager) {
this.layerInterface.registerMaskInterface(this.maskManager);
}
var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this,this.layerInterface);
this.layerInterface.registerEffectsInterface(effectsInterface);
if(this.data.ty === 0 || this.data.xt){
this.compInterface = CompExpressionInterface(this);
} else if(this.data.ty === 4){
this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData,this.itemsData,this.layerInterface);
this.layerInterface.content = this.layerInterface.shapeInterface;
} else if(this.data.ty === 5){
this.layerInterface.textInterface = TextExpressionInterface(this);
this.layerInterface.text = this.layerInterface.textInterface;
}
};
BaseElement.prototype.blendModeEnums = {
1:'multiply',
2:'screen',
3:'overlay',
4:'darken',
5:'lighten',
6:'color-dodge',
7:'color-burn',
8:'hard-light',
9:'soft-light',
10:'difference',
11:'exclusion',
12:'hue',
13:'saturation',
14:'color',
15:'luminosity'
};
BaseElement.prototype.getBlendMode = function(){
return this.blendModeEnums[this.data.bm] || '';
};
BaseElement.prototype.setBlendMode = function(){
var blendModeValue = this.getBlendMode();
var elem = this.baseElement || this.layerElement;
elem.style['mix-blend-mode'] = blendModeValue;
};
BaseElement.prototype.initBaseData = function(data, globalData, comp){
this.globalData = globalData;
this.comp = comp;
this.data = data;
this.layerId = 'ly_'+randomString(10);
//Stretch factor for old animations missing this property.
if(!this.data.sr){
this.data.sr = 1;
}
// effects manager
this.effectsManager = new EffectsManager(this.data,this,this.dynamicProperties);
};
BaseElement.prototype.getType = function(){
return this.type;
};