PHP Classes

File: vendors/echarts/src/chart/helper/createGraphFromNodeMatrix.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/echarts/src/chart/helper/createGraphFromNodeMatrix.js   Download  
File: vendors/echarts/src/chart/helper/createGraphFromNodeMatrix.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 3 years ago
Size: 2,992 bytes
 

Contents

Class file image Download
define(function (require) { var List = require('../../data/List'); var Graph = require('../../data/Graph'); var linkList = require('../../data/helper/linkList'); var completeDimensions = require('../../data/helper/completeDimensions'); var CoordinateSystem = require('../../CoordinateSystem'); var zrUtil = require('zrender/core/util'); var createListFromArray = require('./createListFromArray'); /** * ??????? * ``` * TARGET * -1--2--3--4--5- * 1| x x x x x * 2| x x x x x * 3| x x x x x SOURCE * 4| x x x x x * 5| x x x x x * ``` * * @param {Array.<Object>} nodes ???? * @param {Array} matrix ???? * @param {module:echarts/model/Series} * @param {boolean} directed ?????? * @return {module:echarts/data/Graph} */ return function (nodes, matrix, hostModel, directed) { var graph = new Graph(directed); for (var i = 0; i < nodes.length; i++) { graph.addNode(zrUtil.retrieve( // Id, name, dataIndex nodes[i].id, nodes[i].name, i ), i); } var size = matrix.length; var links = []; var linkCount = 0; for (var i = 0; i < size; i++) { for (var j = 0; j < size; j++) { var val = matrix[i][j]; if (val === 0) { continue; } var n1 = graph.nodes[i]; var n2 = graph.nodes[j]; var edge = graph.addEdge(n1, n2, linkCount); if (edge) { linkCount++; links.push({ value: val }); } } } var coordSys = hostModel.get('coordinateSystem'); var nodeData; if (coordSys === 'cartesian2d' || coordSys === 'polar') { nodeData = createListFromArray(nodes, hostModel, hostModel.ecModel); } else { // FIXME var coordSysCtor = CoordinateSystem.get(coordSys); // FIXME var dimensionNames = completeDimensions( ((coordSysCtor && coordSysCtor.type !== 'view') ? (coordSysCtor.dimensions || []) : []).concat(['value']), nodes ); nodeData = new List(dimensionNames, hostModel); nodeData.initData(nodes); } var edgeData = new List(['value'], hostModel); edgeData.initData(links); linkList({ mainData: nodeData, struct: graph, structAttr: 'graph', datas: {node: nodeData, edge: edgeData}, datasAttr: {node: 'data', edge: 'edgeData'} }); // Update dataIndex of nodes and edges because invalid edge may be removed graph.update(); return graph; }; });