_getRotation(ctx) {
    const viaNode = this.edgeType.getViaNode();
    const point = this.edgeType.getPoint(0.5, viaNode);

    if (ctx !== undefined) {
      this.labelModule.calculateLabelSize(
        ctx,
        this.selected,
        this.hover,
        point.x,
        point.y
      );
    }

    const ret = {
      x: point.x,
      y: this.labelModule.size.yLine,
      angle: 0,
    };

    if (!this.labelModule.visible()) {
      return ret; // Don't even bother doing the atan2, there's nothing to draw
    }

    if (this.options.font.align === "horizontal") {
      return ret; // No need to calculate angle
    }

    const dy = this.from.y - this.to.y;
    const dx = this.from.x - this.to.x;
    let angle = Math.atan2(dy, dx); // radians

    // rotate so that label is readable
    if ((angle < -1 && dx < 0) || (angle > 0 && dx < 0)) {
      angle += Math.PI;
    }
    ret.angle = angle;

    return ret;
  }
Determine the rotation point, if any.
@param {CanvasRenderingContext2D} [ctx] if passed, do a recalculation of the label size
@returns {rotationPoint} the point to rotate around and the angle in radians to rotate
@private