blob: fcde274912e10e355aca97c7dcc9fd1ff6c2ea27 [file] [log] [blame]
function IShapeElement(){
}
IShapeElement.prototype = {
addShapeToModifiers: function(data) {
var i, len = this.shapeModifiers.length;
for(i=0;i<len;i+=1){
this.shapeModifiers[i].addShape(data);
}
},
renderModifiers: function() {
if(!this.shapeModifiers.length){
return;
}
var i, len = this.shapes.length;
for(i=0;i<len;i+=1){
this.shapes[i].reset();
}
len = this.shapeModifiers.length;
for(i=len-1;i>=0;i-=1){
this.shapeModifiers[i].processShapes(this._isFirstFrame);
}
},
lcEnum: {
'1': 'butt',
'2': 'round',
'3': 'square'
},
ljEnum: {
'1': 'miter',
'2': 'round',
'3': 'butt'
},
searchProcessedElement: function(elem){
var i = 0, len = this.processedElements.length;
while(i < len){
if(this.processedElements[i].elem === elem){
return this.processedElements[i].pos;
}
i += 1;
}
return 0;
},
addProcessedElement: function(elem, pos){
var i = this.processedElements.length, found = false;
while(i){
i -= 1;
if(this.processedElements[i].elem === elem){
this.processedElements[i].pos = pos;
found = true;
break;
}
}
if(!found){
this.processedElements.push(new ProcessedElement(elem, pos));
}
},
prepareFrame: function(num) {
this.prepareRenderableFrame(num);
this.prepareProperties(num, this.isInRange);
},
buildShapeString: function(pathNodes, length, closed, mat) {
var i, shapeString = '';
for(i = 1; i < length; i += 1) {
if (i === 1) {
shapeString += " M" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);
}
shapeString += " C" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + " " + mat.applyToPointStringified(pathNodes.i[i][0], pathNodes.i[i][1]) + " " + mat.applyToPointStringified(pathNodes.v[i][0], pathNodes.v[i][1]);
}
if (length === 1) {
shapeString += " M" + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);
}
if (closed && length) {
shapeString += " C" + mat.applyToPointStringified(pathNodes.o[i - 1][0], pathNodes.o[i - 1][1]) + " " + mat.applyToPointStringified(pathNodes.i[0][0], pathNodes.i[0][1]) + " " + mat.applyToPointStringified(pathNodes.v[0][0], pathNodes.v[0][1]);
shapeString += 'z';
}
return shapeString;
}
};