static getRangeCore(allNodes, specificNodes = []) {
    let minY = 1e9,
      maxY = -1e9,
      minX = 1e9,
      maxX = -1e9,
      node;
    if (specificNodes.length > 0) {
      for (let i = 0; i < specificNodes.length; i++) {
        node = allNodes[specificNodes[i]];
        if (minX > node.x) {
          minX = node.x;
        }
        if (maxX < node.x) {
          maxX = node.x;
        }
        if (minY > node.y) {
          minY = node.y;
        } // top is negative, bottom is positive
        if (maxY < node.y) {
          maxY = node.y;
        } // top is negative, bottom is positive
      }
    }

    if (minX === 1e9 && maxX === -1e9 && minY === 1e9 && maxY === -1e9) {
      (minY = 0), (maxY = 0), (minX = 0), (maxX = 0);
    }
    return { minX: minX, maxX: maxX, minY: minY, maxY: maxY };
  }
Find the center position of the network
@param {Array.<Node>} allNodes
@param {Array.<Node>} [specificNodes]
@returns {{minX: number, maxX: number, minY: number, maxY: number}}
@static