%PDF- %PDF-
Direktori : /home/medipszd/www/bower_components/jvectormap/src/ |
Current File : //home/medipszd/www/bower_components/jvectormap/src/vml-path-element.js |
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 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<l; i++) { coords[i] = Math.round(100*coords[i]); } switch (letter) { case 'm': cx += coords[0]; cy += coords[1]; return 't'+coords.join(','); case 'M': cx = coords[0]; cy = coords[1]; return 'm'+coords.join(','); case 'l': cx += coords[0]; cy += coords[1]; return 'r'+coords.join(','); case 'L': cx = coords[0]; cy = coords[1]; return 'l'+coords.join(','); case 'h': cx += coords[0]; return 'r'+coords[0]+',0'; case 'H': cx = coords[0]; return 'l'+cx+','+cy; case 'v': cy += coords[0]; return 'r0,'+coords[0]; case 'V': cy = coords[0]; return 'l'+cx+','+cy; case 'c': ctrlx = cx + coords[coords.length-4]; ctrly = cy + coords[coords.length-3]; cx += coords[coords.length-2]; cy += coords[coords.length-1]; return 'v'+coords.join(','); case 'C': ctrlx = coords[coords.length-4]; ctrly = coords[coords.length-3]; cx = coords[coords.length-2]; cy = coords[coords.length-1]; return 'c'+coords.join(','); case 's': coords.unshift(cy-ctrly); coords.unshift(cx-ctrlx); ctrlx = cx + coords[coords.length-4]; ctrly = cy + coords[coords.length-3]; cx += coords[coords.length-2]; cy += coords[coords.length-1]; return 'v'+coords.join(','); case 'S': coords.unshift(cy+cy-ctrly); coords.unshift(cx+cx-ctrlx); ctrlx = coords[coords.length-4]; ctrly = coords[coords.length-3]; cx = coords[coords.length-2]; cy = coords[coords.length-1]; return 'c'+coords.join(','); } return ''; }).replace(/z/g, 'e'); };