(grad)
| 6919 | // Returns: |
| 6920 | // The existing gradient if found, null if not |
| 6921 | var 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 | |
| 6977 | function reorientGrads(elem, m) { |
| 6978 | var bb = svgedit.utilities.getBBox(elem); |
no test coverage detected