org.jhotdraw.samples.odg.geom
Class EnhancedPath
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.ArrayList<EnhancedPath.Segment>
-
- org.jhotdraw.samples.odg.geom.EnhancedPath
-
- All Implemented Interfaces:
- java.awt.Shape, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<EnhancedPath.Segment>, java.util.Collection<EnhancedPath.Segment>, java.util.List<EnhancedPath.Segment>, java.util.RandomAccess
public class EnhancedPath extends java.util.ArrayList<EnhancedPath.Segment> implements java.awt.Shape
Represents an ODG Enhanced Path.The coordinates of a EnhancedPath.Segment can reference a formula or a modifier.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classEnhancedPath.SegmentDefines a vertex (node) of the bezier path.static classEnhancedPath.SegType
-
Constructor Summary
Constructors Constructor and Description EnhancedPath()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidarcTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3, java.lang.Object x4, java.lang.Object y4)(x1, y1) and (x2, y2) is defining the bounding box of a ellipse.voidclockwiseArcTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3, java.lang.Object x4, java.lang.Object y4)voidclose()Closes the current path segment.booleancontains(double x, double y)booleancontains(double x, double y, double w, double h)booleancontains(java.awt.geom.Point2D p)booleancontains(java.awt.geom.Rectangle2D r)voidcurveTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3)Adds a cubic curve to the current path segment.voidellipseTo(java.lang.Object x, java.lang.Object y, java.lang.Object w, java.lang.Object h, java.lang.Object t0, java.lang.Object t1)Draws a segment of an ellipse.java.awt.RectanglegetBounds()java.awt.geom.Rectangle2DgetBounds2D()java.awt.geom.PathIteratorgetPathIterator(java.awt.geom.AffineTransform at)java.awt.geom.PathIteratorgetPathIterator(java.awt.geom.AffineTransform at, double flatness)intgetWindingRule()Gets winding rule for filling the bezier path.booleanintersects(double x, double y, double w, double h)booleanintersects(java.awt.geom.Rectangle2D r)voidinvalidatePath()This must be called after the EnhancedPath has been changed.voidlineTo(java.lang.Object x1, java.lang.Object y1)Adds a line to the current path segment.voidmoveTo(java.lang.Object xm1, java.lang.Object ym1)Opens a new path segment at the specified position.voidquadrantXTo(java.lang.Object x, java.lang.Object y)voidquadrantYTo(java.lang.Object x, java.lang.Object y)voidquadTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2)Adds a quadratic curve to the current path segment.voidsetWindingRule(int newValue)Sets winding rule for filling the bezier path.java.awt.geom.Path2D.DoubletoGeneralPath()Converts the EnhancedPath into a Path2D.Double.voidvalidatePath()Recomputes the EnhancedPath, if it is invalid.-
Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, forEach, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
-
-
-
-
Method Detail
-
getBounds
public java.awt.Rectangle getBounds()
- Specified by:
getBoundsin interfacejava.awt.Shape
-
getBounds2D
public java.awt.geom.Rectangle2D getBounds2D()
- Specified by:
getBounds2Din interfacejava.awt.Shape
-
contains
public boolean contains(double x, double y, double w, double h)- Specified by:
containsin interfacejava.awt.Shape
-
contains
public boolean contains(java.awt.geom.Point2D p)
- Specified by:
containsin interfacejava.awt.Shape
-
contains
public boolean contains(double x, double y)- Specified by:
containsin interfacejava.awt.Shape
-
contains
public boolean contains(java.awt.geom.Rectangle2D r)
- Specified by:
containsin interfacejava.awt.Shape
-
intersects
public boolean intersects(java.awt.geom.Rectangle2D r)
- Specified by:
intersectsin interfacejava.awt.Shape
-
intersects
public boolean intersects(double x, double y, double w, double h)- Specified by:
intersectsin interfacejava.awt.Shape
-
getPathIterator
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at)
- Specified by:
getPathIteratorin interfacejava.awt.Shape
-
getPathIterator
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at, double flatness)- Specified by:
getPathIteratorin interfacejava.awt.Shape
-
validatePath
public void validatePath()
Recomputes the EnhancedPath, if it is invalid.
-
invalidatePath
public void invalidatePath()
This must be called after the EnhancedPath has been changed.
-
toGeneralPath
public java.awt.geom.Path2D.Double toGeneralPath()
Converts the EnhancedPath into a Path2D.Double.
-
moveTo
public void moveTo(java.lang.Object xm1, java.lang.Object ym1)Opens a new path segment at the specified position.
-
lineTo
public void lineTo(java.lang.Object x1, java.lang.Object y1)Adds a line to the current path segment. This is only allowed, when the current path segment is open.
-
close
public void close()
Closes the current path segment. This is only allowed, when the current path segment is open.
-
quadTo
public void quadTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2)Adds a quadratic curve to the current path segment. This is only allowed, when the current path segment is open.
-
curveTo
public void curveTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3)Adds a cubic curve to the current path segment. This is only allowed, when the current path segment is open.
-
arcTo
public void arcTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3, java.lang.Object x4, java.lang.Object y4)(x1, y1) and (x2, y2) is defining the bounding box of a ellipse. A line is then drawn from the current point to the start angle of the arc that is specified by the radial vector of point (x3, y3) and then counter clockwise to the end-angle that is specified by point (x4, y4).
-
clockwiseArcTo
public void clockwiseArcTo(java.lang.Object x1, java.lang.Object y1, java.lang.Object x2, java.lang.Object y2, java.lang.Object x3, java.lang.Object y3, java.lang.Object x4, java.lang.Object y4)
-
ellipseTo
public void ellipseTo(java.lang.Object x, java.lang.Object y, java.lang.Object w, java.lang.Object h, java.lang.Object t0, java.lang.Object t1)Draws a segment of an ellipse. The ellipse is specified by the center(x, y), the size(w, h) and the start-angle t0 and end-angle t1.
-
quadrantXTo
public void quadrantXTo(java.lang.Object x, java.lang.Object y)
-
quadrantYTo
public void quadrantYTo(java.lang.Object x, java.lang.Object y)
-
setWindingRule
public void setWindingRule(int newValue)
Sets winding rule for filling the bezier path.- Parameters:
newValue- Must be Path2D.Double.WIND_EVEN_ODD or Path2D.Double.WIND_NON_ZERO.
-
getWindingRule
public int getWindingRule()
Gets winding rule for filling the bezier path.- Returns:
- Path2D.Double.WIND_EVEN_ODD or Path2D.Double.WIND_NON_ZERO.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG