blob: 3ff7130c05d952a4059436c76c6bcd1435785594 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2010 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
* Alex Selkov - Fix for Bug# 22701
* Alexander Shatalin (Borland) - Contribution for Bug 238874
*******************************************************************************/
package org.eclipse.draw2d;
import org.eclipse.draw2d.geometry.Geometry;
/**
* Renders a {@link org.eclipse.draw2d.geometry.PointList} as a polygonal shape.
* This class is similar to Polyline, except the PointList is closed and can be
* filled in as a solid shape.
*
* @see Polyline
*/
public class Polygon extends Polyline {
/**
* Returns whether the point (x,y) is contained inside this polygon.
*
* @param x
* the X coordinate
* @param y
* the Y coordinate
* @return whether the point (x,y) is contained in this polygon
*/
public boolean containsPoint(int x, int y) {
if (!getBounds().contains(x, y))
return false;
return shapeContainsPoint(x, y) || childrenContainsPoint(x, y);
}
protected boolean shapeContainsPoint(int x, int y) {
return Geometry.polygonContainsPoint(points, x, y);
}
/**
* Fill the Polygon with the background color set by <i>g</i>.
*
* @param g
* the Graphics object
* @since 2.0
*/
protected void fillShape(Graphics g) {
g.fillPolygon(getPoints());
}
/**
* Draw the outline of the Polygon.
*
* @param g
* the Graphics object
* @since 2.0
*/
protected void outlineShape(Graphics g) {
g.drawPolygon(getPoints());
}
}