diff options
Diffstat (limited to 'src/net/sourceforge/plantuml/graph/GeneralPathFactory.java')
-rw-r--r-- | src/net/sourceforge/plantuml/graph/GeneralPathFactory.java | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java b/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java deleted file mode 100644 index 7fd54c2..0000000 --- a/src/net/sourceforge/plantuml/graph/GeneralPathFactory.java +++ /dev/null @@ -1,158 +0,0 @@ -/* ======================================================================== - * PlantUML : a free UML diagram generator - * ======================================================================== - * - * (C) Copyright 2009-2017, Arnaud Roques - * - * Project Info: http://plantuml.com - * - * If you like this project or if you find it useful, you can support us at: - * - * http://plantuml.com/patreon (only 1$ per month!) - * http://plantuml.com/paypal - * - * This file is part of PlantUML. - * - * PlantUML is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * PlantUML distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - * USA. - * - * - * Original Author: Arnaud Roques - * - * - */ -package net.sourceforge.plantuml.graph; - -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.GeneralPath; -import java.awt.geom.Point2D; - -import net.sourceforge.plantuml.cucadiagram.LinkType; -import net.sourceforge.plantuml.geom.Box; -import net.sourceforge.plantuml.geom.LineSegmentInt; -import net.sourceforge.plantuml.geom.PolylineBreakeable; - -public class GeneralPathFactory { - - private final LinkType linkType; - - public GeneralPathFactory(LinkType linkType) { - this.linkType = linkType; - } - - public Shape getLink(PolylineBreakeable polyline, Box b1, Box b2) { - final LineSegmentInt directSegment = new LineSegmentInt(b1.getCenterX(), b1.getCenterY(), b2.getCenterX(), b2 - .getCenterY()); - assert b1.intersect(directSegment).length == 1; - assert b2.intersect(directSegment).length == 1; - - // final Point2D.Double start = polyline.clipStart(b1); - // final Point2D.Double end = polyline.clipEnd(b2); - final GeneralPath generalPath = polyline.asGeneralPath(); - // addSymbol(generalPath, start, polyline.getFirst(), end, - // polyline.getLast()); - return generalPath; - - } - - private void addSymbol(GeneralPath generalPath, Point2D.Double firstPoint, LineSegmentInt firstSeg, - Point2D.Double lastPoint, LineSegmentInt lastSeg) { -// if (linkType.equals(LinkType.AGREGATION) || linkType.equals(LinkType.COMPOSITION)) { -// addSymbolDiamond(generalPath, lastPoint, lastSeg); -// } else if (linkType.equals(LinkType.AGREGATION_INV) || linkType.equals(LinkType.COMPOSITION_INV)) { -// addSymbolDiamondInv(generalPath, firstPoint, firstSeg); -// } else if (linkType.equals(LinkType.NAVASSOC) || linkType.equals(LinkType.NAVASSOC_DASHED)) { -// addSymbolNavasoc(generalPath, lastPoint, lastSeg); -// } else if (linkType.equals(LinkType.NAVASSOC_INV) || linkType.equals(LinkType.NAVASSOC_DASHED_INV)) { -// addSymbolNavasocInv(generalPath, firstPoint, firstSeg); -// } else if (linkType.equals(LinkType.EXTENDS_INV) || linkType.equals(LinkType.IMPLEMENTS_INV)) { -// addSymbolExtends(generalPath, firstPoint, firstSeg); -// } else if (linkType.equals(LinkType.EXTENDS) || linkType.equals(LinkType.IMPLEMENTS)) { -// addSymbolExtendsInv(generalPath, lastPoint, lastSeg); -// } else { -// assert linkType.equals(LinkType.ASSOCIED) || linkType.equals(LinkType.ASSOCIED_DASHED); -// } - } - - private void addSymbolDiamond(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(-10, 6); - arrow.addPoint(-20, 0); - arrow.addPoint(-10, -6); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void addSymbolDiamondInv(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(10, 6); - arrow.addPoint(20, 0); - arrow.addPoint(10, -6); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void addSymbolNavasocInv(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(13, -8); - arrow.addPoint(6, 0); - arrow.addPoint(13, 8); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void addSymbolNavasoc(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(-13, -8); - arrow.addPoint(-6, 0); - arrow.addPoint(-13, 8); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void addSymbolExtends(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(25, 7); - arrow.addPoint(25, -7); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void addSymbolExtendsInv(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg) { - final Polygon arrow = new Polygon(); - arrow.addPoint(0, 0); - arrow.addPoint(-25, 7); - arrow.addPoint(-25, -7); - - appendAndRotate(generalPath, point, seg, arrow); - } - - private void appendAndRotate(GeneralPath generalPath, Point2D.Double point, LineSegmentInt seg, final Shape shape) { - final AffineTransform at = AffineTransform.getTranslateInstance(point.x, point.y); - final double theta = seg.getAngle(); - at.rotate(theta); - - final Shape r = at.createTransformedShape(shape); - generalPath.append(r, false); - } - -} |