jvm.VMLPathElement = function(config, style){ var scale = new jvm.VMLElement('skew'); jvm.VMLPathElement.parentClass.call(this, 'shape', config, style); this.node.coordorigin = "0 0"; scale.node.on = true; scale.node.matrix = '0.01,0,0,0.01,0,0'; scale.node.offset = '0,0'; this.node.appendChild(scale.node); }; jvm.inherits(jvm.VMLPathElement, jvm.VMLShapeElement); jvm.VMLPathElement.prototype.applyAttr = function(attr, value){ if (attr === 'd') { this.node.path = jvm.VMLPathElement.pathSvgToVml(value); } else { jvm.VMLShapeElement.prototype.applyAttr.call(this, attr, value); } }; jvm.VMLPathElement.pathSvgToVml = function(path) { var result = '', cx = 0, cy = 0, ctrlx, ctrly; path = path.replace(/(-?\d+)e(-?\d+)/g, '0'); return path.replace(/([MmLlHhVvCcSs])\s*((?:-?\d*(?:\.\d+)?\s*,?\s*)+)/g, function(segment, letter, coords, index){ coords = coords.replace(/(\d)-/g, '$1,-') .replace(/^\s+/g, '') .replace(/\s+$/g, '') .replace(/\s+/g, ',').split(','); if (!coords[0]) coords.shift(); for (var i=0, l=coords.length; i