blob: 841b98553ff33c1bfafc14f5b775950d54230894 [file] [log] [blame]
function SVGMatte3Effect(filterElem, filterManager, elem){
this.initialized = false;
this.filterManager = filterManager;
this.filterElem = filterElem;
this.elem = elem;
elem.matteElement = document.createElementNS(svgNS,'g');
elem.matteElement.appendChild(elem.layerElement);
elem.matteElement.appendChild(elem.transformedElement);
elem.baseElement = elem.matteElement;
}
SVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {
var masker = document.createElementNS(svgNS,'mask');
masker.setAttribute('id',mask.layerId);
masker.setAttribute('mask-type','alpha');
masker.appendChild(mask.layerElement);
elem.setMatte(mask.layerId);
mask.data.hd = false;
var defs = elem.globalData.defs;
defs.appendChild(masker);
}
SVGMatte3Effect.prototype.initialize = function() {
var ind = this.filterManager.effectElements[0].p.v;
var i = 0, len = this.elem.comp.elements.length;
while(i < len) {
if(this.elem.comp.elements[i].data.ind === ind) {
this.setElementAsMask(this.elem, this.elem.comp.elements[i]);
}
i += 1;
}
this.initialized = true;
}
SVGMatte3Effect.prototype.renderFrame = function() {
if(!this.initialized) {
this.initialize();
}
}