UNPKG

lite-pathfindings

Version:

Simple, intuitive and lightweight pathfinding algorithms

49 lines (43 loc) 1.29 kB
"use strict"; module.exports = { edgeMapToMatrix: function edgeMapToMatrix(edgeMap) { var matrix = []; var edges = {}; var mapKeys = Object.keys(edgeMap); for (var i = 0; i < mapKeys.length; i++) { edges[mapKeys[i]] = i; } for (var _i = 0; _i < mapKeys.length; _i++) { edges[mapKeys[_i]] = _i; var matrixLine = new Array(mapKeys.length).fill(Number.POSITIVE_INFINITY); matrixLine[_i] = 0; for (var edge in edgeMap[mapKeys[_i]]) { matrixLine[this.getEdgeNumber(edges, edge)] = edgeMap[mapKeys[_i]][edge]; } matrix.push(matrixLine); } return { matrix: matrix, edges: edges }; }, getEdgeNumber: function getEdgeNumber(edges, edge) { return edges[edge]; }, getEdgeName: function getEdgeName(edges, number) { for (var edge in edges) { if (edges[edge] == number) return edge; } }, getNamedPath: function getNamedPath(path, edges) { var _this = this; return path.map(function (edgeNumber) { return _this.getEdgeName(edges, edgeNumber); }); }, edgeMapContainNegativeValue: function edgeMapContainNegativeValue(edgeMap) { for (var edge in edgeMap) { for (var vertex in edgeMap[edge]) { return true; } } return false; } };