void update() {
updateEdge();
updateLabel();
updateArrowhead();
}
<BUG>private void updateArrowhead() {
double originX = getArrowheadOrigin(getCenterX(from), getCenterX(to));

double originY = getArrowheadOrigin(getCenterY(from), getCenterY(to));

double angle = Math.atan2(getCenterY(to) - getCenterY(from),
getCenterX(to) - getCenterX(from));</BUG>
double leftX = originX

void update() {
updateEdge();
updateLabel();
updateArrowhead();
}
private void updateArrowhead() {
double fromX = from.getCenterX();
double fromY = from.getCenterY();
double toX = to.getCenterX();
double toY = to.getCenterY();
double originX = getArrowheadOrigin(fromX, toX);
double originY = getArrowheadOrigin(fromY, toY);
double angle = Math.atan2(toY - fromY, toX - fromX);
double leftX = originX
