// XAAL toolkit // Copyright (C) 2009 Ville Karavirta // // This program 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. // // This program is 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 program. If not, see . package xaal.objects.graphical; import xaal.objects.Xaal; /** * @author vkaravir * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class Ellipse extends GraphicalPrimitive { private Coordinate center; private Radius radius; /** * */ public Ellipse(Xaal xaalDoc) { super(xaalDoc); } public Ellipse(Xaal xaalDoc, String id) { super(xaalDoc, id); } /** * @return Returns the center. */ public Coordinate getCenter() { if (center == null) center = new Center(getXaal(), 0, 0); return center; } /** * @param center The center to set. */ public void setCenter(Coordinate center) { this.center = center; } /** * @return Returns the radius. */ public Radius getRadius() { if (radius == null) radius = new Radius(getXaal(), 0,0); return radius; } /** * @param radius The radius to set. */ public void setRadius(Radius radius) { this.radius = radius; } public boolean equalsIgnoreId(GraphicalPrimitive gp) { if (!(gp instanceof Ellipse) || !super.equalsIgnoreId(gp)) return false; Ellipse ep= (Ellipse) gp; //System.out.println("Comparing "+this+" with "+gp); if (ep.getCenter().equalsIgnoreId(getCenter()) && ep.getRadius().equalsIgnoreId(getRadius())) return true; return false; } public String toString() { return "ellipse("+getCenter().getX()+","+getCenter().getY()+","+getRadius().getX()+","+getRadius().getY()+")"; } public void addCoordinate(Coordinate c) { setCenter(c); } public java.awt.Rectangle getBounds() { java.awt.Rectangle bounds = new java.awt.Rectangle(); bounds.x = center.getAbsoluteX() - radius.getX(); bounds.y = center.getAbsoluteY() - radius.getY(); bounds.width = 2*radius.getX(); bounds.height = 2*radius.getY(); return bounds; } }