signal(params = {}) {
    const color = params.color || COLOR.black;
    const duration = params.duration || 2000;
    const size = params.size || 3;

    const srcNode = this.getNodeById(params.from);
    const destNode = this.getNodeById(params.to);

    const sX = Math.abs(destNode.x - srcNode.x) / (duration / 60);
    const sY = Math.abs(destNode.y - srcNode.y) / (duration / 60);
    const speedX = destNode.x > srcNode.x ? sX : -sX;
    const speedY = destNode.y > srcNode.y ? sY : -sY;

    this._signalQueues.push({
      x: srcNode.x,
      y: srcNode.y,
      destX: destNode.x,
      destY: destNode.y,
      speedX: speedX,
      speedY: speedY,
      color: color,
      size: size
    });
  }
Send a signal from source node to destination node
@param {object} params
@property {string} params.from
@property {string} params.to
@property {string} params.color
@property {number} params.duration
@property {number} params.size