CH.ifa.draw.contrib
Class PolygonFigure
- java.lang.Object
-
- CH.ifa.draw.standard.AbstractFigure
-
- CH.ifa.draw.figures.AttributeFigure
-
- CH.ifa.draw.contrib.PolygonFigure
-
public class PolygonFigure extends AttributeFigure
A scalable, rotatable polygon with an arbitrary number of points- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface CH.ifa.draw.framework.Figure
POPUP_MENU
-
-
Constructor Summary
Constructors Constructor and Description PolygonFigure()PolygonFigure(int x, int y)PolygonFigure(java.awt.Polygon p)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidaddPoint(int x, int y)Adds a node to the list of points.voidbasicDisplayBox(java.awt.Point origin, java.awt.Point corner)Sets the display box of a figure.voidbasicMoveBy(int dx, int dy)Moves the figure.static java.awt.Rectanglebounds(java.awt.Polygon p)replacement for builtin Polygon.getBounds that doesn't always update?java.awt.Pointcenter()Gets the center of a figure.static java.awt.Pointcenter(java.awt.Polygon p)java.awt.Pointchop(java.awt.Point p)static java.awt.Pointchop(java.awt.Polygon poly, java.awt.Point p)ConnectorconnectorAt(int x, int y)Returns the Figures connector for the specified location.booleancontainsPoint(int x, int y)Checks if a point is inside the figure.java.awt.RectangledisplayBox()Gets the display box of a figure.static doubledistanceFromLine(int xa, int ya, int xb, int yb, int xc, int yc)compute distance of point from line segment, or Double.MAX_VALUE if perpendicular projection is outside segment; or If pts on line are same, return distance from pointvoiddrawBackground(java.awt.Graphics g)Draws the background of the figure.voiddrawFrame(java.awt.Graphics g)Draws the frame of the figure.intfindSegment(int x, int y)Gets the segment that is hit by the given point.java.awt.PolygongetPolygon()return a copy of the raw polygonjava.util.Vectorhandles()Returns the handles of a Figure that can be used to manipulate some of its attributes.voidinsertPointAt(java.awt.Point p, int i)Insert a node at the given point.booleanisEmpty()Checks if the figure is empty.static Locatorlocator(int pointIndex)Creates a locator for the point with the given index.java.awt.PointoutermostPoint()Return the point on the polygon that is furthest from the centerjava.awt.PointpointAt(int i)intpointCount()java.util.Enumerationpoints()voidread(StorableInput dr)Reads the Figure from a StorableInput.voidremovePointAt(int i)voidscaleRotate(java.awt.Point anchor, java.awt.Polygon originalPolygon, java.awt.Point p)Scale and rotate relative to anchorvoidsetPointAt(java.awt.Point p, int i)Changes the position of a node.voidsmoothPoints()Remove points that are nearly colinear with othersintsplitSegment(int x, int y)Splits the segment at the given point if a segment was hit.voidwrite(StorableOutput dw)Stores the Figure to a StorableOutput.-
Methods inherited from class CH.ifa.draw.figures.AttributeFigure
draw, getAttribute, getDefaultAttribute, getFillColor, getFrameColor, setAttribute
-
Methods inherited from class CH.ifa.draw.standard.AbstractFigure
addFigureChangeListener, addToContainer, canConnect, changed, clone, connectedTextLocator, connectionInsets, connectorVisibility, decompose, displayBox, displayBox, figures, findFigureInside, includes, invalidate, listener, moveBy, release, removeFigureChangeListener, removeFromContainer, size, willChange
-
-
-
-
Constructor Detail
-
PolygonFigure
public PolygonFigure()
-
PolygonFigure
public PolygonFigure(int x, int y)
-
PolygonFigure
public PolygonFigure(java.awt.Polygon p)
-
-
Method Detail
-
displayBox
public java.awt.Rectangle displayBox()
Description copied from class:AbstractFigureGets the display box of a figure.- Specified by:
displayBoxin interfaceFigure- Specified by:
displayBoxin classAbstractFigure- See Also:
Figure.basicDisplayBox(java.awt.Point, java.awt.Point)
-
isEmpty
public boolean isEmpty()
Description copied from class:AbstractFigureChecks if the figure is empty. The default implementation returns true if the width or height of its display box is < 3- Specified by:
isEmptyin interfaceFigure- Overrides:
isEmptyin classAbstractFigure- See Also:
Figure.isEmpty()
-
handles
public java.util.Vector handles()
Description copied from class:AbstractFigureReturns the handles of a Figure that can be used to manipulate some of its attributes.- Specified by:
handlesin interfaceFigure- Specified by:
handlesin classAbstractFigure- Returns:
- a Vector of handles
- See Also:
Handle
-
basicDisplayBox
public void basicDisplayBox(java.awt.Point origin, java.awt.Point corner)Description copied from class:AbstractFigureSets the display box of a figure. This is the method that subclassers override. Clients usually call displayBox.- Specified by:
basicDisplayBoxin interfaceFigure- Specified by:
basicDisplayBoxin classAbstractFigure- Parameters:
origin- the new origincorner- the new corner- See Also:
AbstractFigure.displayBox(java.awt.Point, java.awt.Point)
-
getPolygon
public java.awt.Polygon getPolygon()
return a copy of the raw polygon
-
center
public java.awt.Point center()
Description copied from class:AbstractFigureGets the center of a figure. A convenice method that is rarely overridden.- Specified by:
centerin interfaceFigure- Overrides:
centerin classAbstractFigure
-
points
public java.util.Enumeration points()
-
pointCount
public int pointCount()
-
basicMoveBy
public void basicMoveBy(int dx, int dy)Description copied from class:AbstractFigureMoves the figure. This is the method that subclassers override. Clients usually call displayBox.- See Also:
AbstractFigure.moveBy(int, int)
-
drawBackground
public void drawBackground(java.awt.Graphics g)
Description copied from class:AttributeFigureDraws the background of the figure.- See Also:
AttributeFigure.draw(java.awt.Graphics)
-
drawFrame
public void drawFrame(java.awt.Graphics g)
Description copied from class:AttributeFigureDraws the frame of the figure.- See Also:
AttributeFigure.draw(java.awt.Graphics)
-
containsPoint
public boolean containsPoint(int x, int y)Description copied from class:AbstractFigureChecks if a point is inside the figure.- Specified by:
containsPointin interfaceFigure- Overrides:
containsPointin classAbstractFigure
-
connectorAt
public Connector connectorAt(int x, int y)
Description copied from class:AbstractFigureReturns the Figures connector for the specified location. By default a ChopBoxConnector is returned.- Specified by:
connectorAtin interfaceFigure- Overrides:
connectorAtin classAbstractFigure- See Also:
ChopBoxConnector
-
addPoint
public void addPoint(int x, int y)Adds a node to the list of points.
-
setPointAt
public void setPointAt(java.awt.Point p, int i)Changes the position of a node.
-
insertPointAt
public void insertPointAt(java.awt.Point p, int i)Insert a node at the given point.
-
removePointAt
public void removePointAt(int i)
-
scaleRotate
public void scaleRotate(java.awt.Point anchor, java.awt.Polygon originalPolygon, java.awt.Point p)Scale and rotate relative to anchor
-
smoothPoints
public void smoothPoints()
Remove points that are nearly colinear with others
-
splitSegment
public int splitSegment(int x, int y)Splits the segment at the given point if a segment was hit.- Returns:
- the index of the segment or -1 if no segment was hit.
-
pointAt
public java.awt.Point pointAt(int i)
-
outermostPoint
public java.awt.Point outermostPoint()
Return the point on the polygon that is furthest from the center
-
findSegment
public int findSegment(int x, int y)Gets the segment that is hit by the given point.- Returns:
- the index of the segment or -1 if no segment was hit.
-
chop
public java.awt.Point chop(java.awt.Point p)
-
write
public void write(StorableOutput dw)
Description copied from class:AttributeFigureStores the Figure to a StorableOutput.- Specified by:
writein interfaceStorable- Overrides:
writein classAttributeFigure
-
read
public void read(StorableInput dr) throws java.io.IOException
Description copied from class:AttributeFigureReads the Figure from a StorableInput.- Specified by:
readin interfaceStorable- Overrides:
readin classAttributeFigure- Throws:
java.io.IOException
-
locator
public static Locator locator(int pointIndex)
Creates a locator for the point with the given index.
-
distanceFromLine
public static double distanceFromLine(int xa, int ya, int xb, int yb, int xc, int yc)compute distance of point from line segment, or Double.MAX_VALUE if perpendicular projection is outside segment; or If pts on line are same, return distance from point
-
bounds
public static java.awt.Rectangle bounds(java.awt.Polygon p)
replacement for builtin Polygon.getBounds that doesn't always update?
-
center
public static java.awt.Point center(java.awt.Polygon p)
-
chop
public static java.awt.Point chop(java.awt.Polygon poly, java.awt.Point p)
-
-
DataMelt 3.0 © DataMelt by jWork.ORG