path.add(p1);
path.add(p2);
path.add(end_);
path.add(link.end);
link.label.setPosition(p1.add(p2.sub(p1).stretch(0.5)).shift(0, -LABEL_OFFSET));
} else {
Vector2D ab = end_.sub(link.start);
Vector2D p1 = new Vector2D(link.start.x, link.start.y+ab.y*0.5);
Vector2D p2 = new Vector2D(p1.x+ab.x, p1.y);
Vector2D p3 = new Vector2D(p2.x, end_.y);