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

Function findDuplicateGradient

src/js/svgcanvas.js:6921–6975  ·  view source on GitHub ↗
(grad)

Source from the content-addressed store, hash-verified

6919// Returns:
6920// The existing gradient if found, null if not
6921var findDuplicateGradient = function(grad) {
6922 var defs = findDefs();
6923 var existing_grads = $(defs).find("linearGradient, radialGradient");
6924 var i = existing_grads.length;
6925 var rad_attrs = ['r','cx','cy','fx','fy'];
6926 while (i--) {
6927 var og = existing_grads[i];
6928 if(grad.tagName == "linearGradient") {
6929 if (grad.getAttribute('x1') != og.getAttribute('x1') ||
6930 grad.getAttribute('y1') != og.getAttribute('y1') ||
6931 grad.getAttribute('x2') != og.getAttribute('x2') ||
6932 grad.getAttribute('y2') != og.getAttribute('y2'))
6933 {
6934 continue;
6935 }
6936 } else {
6937 var grad_attrs = $(grad).attr(rad_attrs);
6938 var og_attrs = $(og).attr(rad_attrs);
6939
6940 var diff = false;
6941 $.each(rad_attrs, function(i, attr) {
6942 if(grad_attrs[attr] != og_attrs[attr]) diff = true;
6943 });
6944
6945 if(diff) continue;
6946 }
6947
6948 // else could be a duplicate, iterate through stops
6949 var stops = grad.getElementsByTagNameNS(svgns, "stop");
6950 var ostops = og.getElementsByTagNameNS(svgns, "stop");
6951
6952 if (stops.length != ostops.length) {
6953 continue;
6954 }
6955
6956 var j = stops.length;
6957 while(j--) {
6958 var stop = stops[j];
6959 var ostop = ostops[j];
6960
6961 if (stop.getAttribute('offset') != ostop.getAttribute('offset') ||
6962 stop.getAttribute('stop-opacity') != ostop.getAttribute('stop-opacity') ||
6963 stop.getAttribute('stop-color') != ostop.getAttribute('stop-color'))
6964 {
6965 break;
6966 }
6967 }
6968
6969 if (j == -1) {
6970 return og;
6971 }
6972 } // for each gradient in defs
6973
6974 return null;
6975};
6976
6977function reorientGrads(elem, m) {
6978 var bb = svgedit.utilities.getBBox(elem);

Callers 1

svgcanvas.jsFile · 0.85

Calls 2

findDefsFunction · 0.85
$Function · 0.85

Tested by

no test coverage detected