private Shape[] getArrow(int s, int d, int y) {
    s += Math.signum(d - s) * data.boxWidth / 2;
    d -= Math.signum(d - s) * data.boxWidth / 2;
    Shape[] shapes = new Shape[2];
    shapes[0] = new Line2D.Double(s, y, d, y);
    Polygon polygon = new Polygon();
    polygon.addPoint(d, y);
    polygon.addPoint((int) (d - Math.signum(d - s) * data.messageArrowSize), (int) (y - data.messageArrowSize));
    polygon.addPoint((int) (d - Math.signum(d - s) * data.messageArrowSize), (int) (y + data.messageArrowSize));
    shapes[1] = polygon;
    return shapes;
  }
Gets horizontal arrow on y height from x=s to x=d

@param s
@param d
@param y
@return
olv-core/src/main/java/pl/otros/logview/uml/UMLModel.java