MCPcopy Index your code
hub / github.com/methodofaction/Method-Draw / reorientGrads

Function reorientGrads

src/js/svgcanvas.js:6977–7017  ·  view source on GitHub ↗
(elem, m)

Source from the content-addressed store, hash-verified

6975};
6976
6977function 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

Callers 1

svgcanvas.jsFile · 0.85

Calls 2

$Function · 0.85
findDefsFunction · 0.85

Tested by

no test coverage detected