| 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; |
| while(i){ |
| i -= 1; |
| if(this.processedElements[i].elem === elem){ |
| this.processedElements[i].pos = pos; |
| break; |
| } |
| } |
| if(i === 0){ |
| 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; |
| } |
| }; |