{"ast":null,"code":"/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as curveTool from 'zrender/lib/core/curve.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize } from './graphHelper.js';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n } // Assume the segment is monotone,Find root through Bisection method\n // At most 32 iteration\n\n\n for (var i = 0; i < 32; i++) {\n // let prev = t - interval;\n var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n } // let prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n} // Adjust edge to avoid\n\n\nexport default function adjustEdge(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original; // Quadratic curve\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n } // Copy back to layout\n\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } // Line\n else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/graph/adjustEdge.js"],"names":["curveTool","vec2","getSymbolSize","v1","v2","v3","quadraticAt","v2DistSquare","distSquare","mathAbs","Math","abs","intersectCurveCircle","curvePoints","center","radius","p0","p1","p2","d","Infinity","t","radiusSquare","interval","_t","diff","i","next","nextDiff","adjustEdge","graph","scale","tmp0","quadraticSubdivide","pts","pts2","v","eachEdge","edge","idx","linePoints","getLayout","fromSymbol","getVisual","toSymbol","__original","clone","push","originalPoints","copy","symbolSize","node1","node2","sub","normalize","scaleAndAdd"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as curveTool from 'zrender/lib/core/curve.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize } from './graphHelper.js';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n } // Assume the segment is monotone,Find root through Bisection method\n // At most 32 iteration\n\n\n for (var i = 0; i < 32; i++) {\n // let prev = t - interval;\n var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n } // let prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n} // Adjust edge to avoid\n\n\nexport default function adjustEdge(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original; // Quadratic curve\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n } // Copy back to layout\n\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } // Line\n else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}"]},"metadata":{},"sourceType":"module"}