/******************************************************************************* * Copyright (c) 2006-2012 * Software Technology Group, Dresden University of Technology * DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026 * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Software Technology Group - TU Dresden, Germany; * DevBoost GmbH - Berlin, Germany * - initial API and implementation ******************************************************************************/ /* * @(#)LineDecoration.java 2.1 2007-05-20 * * Copyright (c) 1996-2007 by the original authors of JHotDraw * and all its contributors. * All rights reserved. * * The copyright of this software is owned by the authors and * contributors of the JHotDraw project ("the copyright holders"). * You may not use, copy or modify this software, except in * accordance with the license agreement you entered into with * the copyright holders. For details see accompanying license terms. */ package org.jhotdraw.draw; import java.awt.*; import java.awt.geom.*; import java.util.*; import java.io.*; /** * Decorate the start or end Point2D.Double of a line or poly line figure. * LineDecoration is the base class for the different line decorations. * * @author Werner Randelshofer * @version 2.1 2007-05-20 Renamed getDrawBounds to getDrawingArea. * <br>2.0 2006-01-14 Changed to support double precison coordinates. * <br>1.0 2003-12-01 Derived from JHotDraw 5.4b1. */ public interface LineDecoration extends Cloneable, Serializable { /** * Draws the decoration in the direction specified by the two Points. */ public void draw(Graphics2D g, Figure f, Point2D.Double p1, Point2D.Double p2); /** * Returns the radius of the decorator. * This is used to crop the end of the line, to prevent it from being * drawn it over the decorator. */ public abstract double getDecorationRadius(Figure f); /** * Returns the drawing bounds of the decorator. */ public Rectangle2D.Double getDrawingArea(Figure f, Point2D.Double p1, Point2D.Double p2); }