(elem, m)
| 6975 | }; |
| 6976 | |
| 6977 | function reorientGrads(elem, m) { |
| 6978 | var bb = svgedit.utilities.getBBox(elem); |
| 6979 | for(var i = 0; i < 2; i++) { |
| 6980 | var type = i === 0 ? 'fill' : 'stroke'; |
| 6981 | var attrVal = elem.getAttribute(type); |
| 6982 | if(attrVal && attrVal.indexOf('url(') === 0) { |
| 6983 | var grad = getRefElem(attrVal); |
| 6984 | if(grad.tagName === 'linearGradient') { |
| 6985 | var x1 = grad.getAttribute('x1') || 0; |
| 6986 | var y1 = grad.getAttribute('y1') || 0; |
| 6987 | var x2 = grad.getAttribute('x2') || 1; |
| 6988 | var y2 = grad.getAttribute('y2') || 0; |
| 6989 | |
| 6990 | // Convert to USOU points |
| 6991 | x1 = (bb.width * x1) + bb.x; |
| 6992 | y1 = (bb.height * y1) + bb.y; |
| 6993 | x2 = (bb.width * x2) + bb.x; |
| 6994 | y2 = (bb.height * y2) + bb.y; |
| 6995 | |
| 6996 | // Transform those points |
| 6997 | var pt1 = transformPoint(x1, y1, m); |
| 6998 | var pt2 = transformPoint(x2, y2, m); |
| 6999 | |
| 7000 | // Convert back to BB points |
| 7001 | var g_coords = {}; |
| 7002 | |
| 7003 | g_coords.x1 = (pt1.x - bb.x) / bb.width; |
| 7004 | g_coords.y1 = (pt1.y - bb.y) / bb.height; |
| 7005 | g_coords.x2 = (pt2.x - bb.x) / bb.width; |
| 7006 | g_coords.y2 = (pt2.y - bb.y) / bb.height; |
| 7007 | |
| 7008 | var newgrad = grad.cloneNode(true); |
| 7009 | $(newgrad).attr(g_coords); |
| 7010 | |
| 7011 | newgrad.id = getNextId(); |
| 7012 | findDefs().appendChild(newgrad); |
| 7013 | elem.setAttribute(type, 'url(#' + newgrad.id + ')'); |
| 7014 | } |
| 7015 | } |
| 7016 | } |
| 7017 | } |
| 7018 | |
| 7019 | // Function: setPaint |
| 7020 | // Set a color/gradient to a fill/stroke |
no test coverage detected