/* * Copyright (c) 2014 tabletoptool.com team. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: * rptools.com team - initial implementation * tabletoptool.com team - further development */ package com.t3.model.drawing; import java.awt.Graphics2D; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import com.t3.xstreamversioned.version.SerializationVersion; /** * An oval. */ @SerializationVersion(0) public class Oval extends Rectangle { /** * @param x * @param y */ public Oval(int x, int y, int width, int height) { super(x, y, width, height); } @Override protected void draw(Graphics2D g) { int minX = Math.min(startPoint.x, endPoint.x); int minY = Math.min(startPoint.y, endPoint.y); int width = Math.abs(startPoint.x - endPoint.x); int height = Math.abs(startPoint.y - endPoint.y); g.drawOval(minX, minY, width, height); } @Override protected void drawBackground(Graphics2D g) { int minX = Math.min(startPoint.x, endPoint.x); int minY = Math.min(startPoint.y, endPoint.y); int width = Math.abs(startPoint.x - endPoint.x); int height = Math.abs(startPoint.y - endPoint.y); g.fillOval(minX, minY, width, height); } @Override public Area getArea() { java.awt.Rectangle r = getBounds(); return new Area(new Ellipse2D.Double(r.x, r.y, r.width, r.height)); } }