public class RMPath extends RMObject implements java.awt.Shape
Modifier and Type | Field and Description |
---|---|
static byte |
CLOSE |
static byte |
CURVE_TO |
static byte |
LINE_TO |
static byte |
LineCapButt |
static byte |
LineCapProjectingSquare |
static byte |
LineCapRound |
static byte |
LineJoinBevel |
static byte |
LineJoinMiter |
static byte |
LineJoinRound |
static byte |
MOVE_TO |
static byte |
QUAD_TO |
static RMPath |
unitRectPath |
static byte |
WIND_EVEN_ODD |
static byte |
WIND_NON_ZERO |
Constructor and Description |
---|
RMPath()
Creates an empty path.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Standard clone implementation.
|
void |
closePath()
Adds a Close element to the given path.
|
boolean |
contains(double x,
double y)
Returns whether the given xy coordinate is inside the path.
|
boolean |
contains(double x,
double y,
double w,
double h)
Returns whether the interior of the shape entirely contains the specified rectangular area.
|
boolean |
contains(java.awt.geom.Point2D aPoint)
Returns whether the given point is inside the path.
|
boolean |
contains(java.awt.geom.Rectangle2D aRect)
Returns whether the interior of the shape entirely contains the specified rectangular area.
|
RMPath |
createTransformedPath(java.awt.geom.AffineTransform aTransform)
Returns a transformed version of this path.
|
void |
curveTo(double cp1x,
double cp1y,
double cp2x,
double cp2y,
double px,
double py)
Adds a CurveTo element to the path for the given point and control points.
|
void |
curveTo(RMPoint cp1,
RMPoint cp2,
RMPoint p)
Adds a CurveTo element to the path for the given point and control points.
|
boolean |
equals(java.lang.Object anObj)
Standard equals implementation.
|
java.lang.Object |
fromXML(RXArchiver anArchiver,
RXElement anElement)
XML unarchival.
|
java.awt.Rectangle |
getBounds()
Returns the bounds for the path as an integer rect.
|
java.awt.geom.Rectangle2D |
getBounds2D()
Returns the bounds for the path.
|
RMRect |
getBoundsRM()
Returns the bounds for the path.
|
byte |
getElement(int anIndex)
Returns the element type at the given index.
|
byte |
getElement(int anIndex,
RMPoint[] points)
Returns the element type at the given index and its associated points (returned in the given point array).
|
int |
getElementCount()
Returns the number of elements in this path.
|
int |
getElementIndexForPointIndex(int index)
Returns the element index for the given point index.
|
byte |
getElementLast()
Returns the last element.
|
int |
getElementPointIndex(int anIndex)
Returns the point index for a given element.
|
double |
getHeight()
Returns the height of the path.
|
RMHitInfo |
getHitInfo(RMBezier aBezier,
boolean findFirstHit)
Returns the hit info for the given bezier curve against this path.
|
RMHitInfo |
getHitInfo(RMLine aLine,
boolean findFirstHit)
Returns the hit info for the given line against this path.
|
RMPath |
getPathInRect(java.awt.geom.Rectangle2D aRect)
Returns a copy of the path scaled to exactly fit in the given rect.
|
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform aTransform)
Returns a path iterator for this path and the given transform.
|
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform aTransform,
double flatness)
Returns a path iterator for this path and the given transform and flatness.
|
java.awt.geom.PathIterator |
getPathIteratorInRect(java.awt.geom.Rectangle2D aRect)
Returns a path iterator for the path transformted to be in the given rect.
|
RMPoint |
getPoint(int anIndex)
Returns the point at the given index.
|
int |
getPointCount()
Returns the number of points in the path.
|
RMPoint |
getPointLast()
Returns the last point in the path.
|
double |
getWidth()
Returns the width of the path.
|
byte |
getWindingRule()
Returns the winding rule which describes how inner path perimeters are filled and clipped.
|
double |
getX()
Returns the X of the path.
|
double |
getY()
Returns the Y of the path.
|
int |
handleAtPointForBounds(RMPoint aPoint,
RMRect aRect)
Returns the handle index for a given point against this path scaled to the given rect.
|
java.lang.Object |
initWithArchiver(RMArchiver anArchiver)
Legacy archival.
|
boolean |
intersects(double x,
double y,
double w,
double h)
Returns whether the interior of the path intersects the interior of a specified rectangular area.
|
boolean |
intersects(double x,
double y,
double w,
double h,
float lineWidth)
Returns whether path drawn with given linewidth is hit by given rect.
|
boolean |
intersects(java.awt.geom.Rectangle2D aRect)
Returns whether the interior of the path intersects the interior of a specified Rectangle2D.
|
boolean |
intersects(RMLine aLine)
Returns whether path is hit by a line.
|
boolean |
intersects(RMPath aPath,
float lineWidth)
Returns whether path drawn with given linewidth is hit by given path.
|
boolean |
intersects(RMPoint aPoint,
float lineWidth)
Returns whether path is hit by point for a path linewidth.
|
void |
lineTo(double px,
double py)
Adds a LineTo element to the path for the given point.
|
void |
lineTo(RMPoint p)
Adds a LineTo element to the path for the given point.
|
void |
moveTo(double px,
double py)
Adds a MoveTo element to the path for the given point.
|
void |
moveTo(RMPoint p)
Adds a MoveTo element to the path for the given point.
|
RMPoint |
pointInPathCoordsFromPoint(RMPoint aPoint,
RMRect aRect)
Returns the given point converted to path coords for given path bounds.
|
void |
quadTo(double cpx,
double cpy,
double px,
double py)
Adds a QuadTo element to the path for the given point and control point.
|
void |
quadTo(RMPoint cp,
RMPoint p)
Adds a QuadTo element to the path for the given point and control point.
|
void |
relativeCurveTo(RMPoint cp1,
RMPoint cp2,
RMPoint aPoint)
Adds a CurveTo element to the path for the given point offset from the path's current point.
|
void |
relativeLineTo(RMPoint aPoint)
Adds a LineTo element to the path for the given point offset from the path's current point.
|
void |
relativeMoveTo(RMPoint aPoint)
Adds a MoveTo element to the path for the given point offset from the path's current point.
|
void |
removeLastElement()
Removes the last element from the path.
|
void |
reset()
Resets the current path with no elements or points.
|
void |
setBounds(RMRect bounds)
Sets the bounds that the path is relative to.
|
void |
setPoint(int index,
RMPoint point)
Sets the path point at the given index to the given point.
|
void |
setPointStructured(int index,
RMPoint point)
Resets the point at the given index to the given point, while preserving something.
|
void |
setWindingRule(byte windingRule)
Sets the winding rule which describes how inner path perimeters are filled and clipped.
|
RXElement |
toXML(RXArchiver anArchiver)
XML archival.
|
void |
transformBy(RMTransform aTransform)
Transforms the points in the path by the given transform.
|
copy, didChange, didUndo, getAnimAttribute, getClassNameShort, undoClone, undoCopy, undoEquals
public static final byte LineCapButt
public static final byte LineCapRound
public static final byte LineCapProjectingSquare
public static final byte LineJoinMiter
public static final byte LineJoinRound
public static final byte LineJoinBevel
public static final byte WIND_NON_ZERO
public static final byte WIND_EVEN_ODD
public static final byte MOVE_TO
public static final byte LINE_TO
public static final byte QUAD_TO
public static final byte CURVE_TO
public static final byte CLOSE
public static final RMPath unitRectPath
public void moveTo(RMPoint p)
public void moveTo(double px, double py)
public void lineTo(RMPoint p)
public void lineTo(double px, double py)
public void quadTo(RMPoint cp, RMPoint p)
public void quadTo(double cpx, double cpy, double px, double py)
public void curveTo(RMPoint cp1, RMPoint cp2, RMPoint p)
public void curveTo(double cp1x, double cp1y, double cp2x, double cp2y, double px, double py)
public void closePath()
public void reset()
public void relativeMoveTo(RMPoint aPoint)
public void relativeLineTo(RMPoint aPoint)
public void relativeCurveTo(RMPoint cp1, RMPoint cp2, RMPoint aPoint)
public void transformBy(RMTransform aTransform)
public RMPath createTransformedPath(java.awt.geom.AffineTransform aTransform)
public byte getWindingRule()
public void setWindingRule(byte windingRule)
public double getX()
public double getY()
public double getWidth()
public double getHeight()
public java.awt.Rectangle getBounds()
getBounds
in interface java.awt.Shape
public java.awt.geom.Rectangle2D getBounds2D()
getBounds2D
in interface java.awt.Shape
public RMRect getBoundsRM()
public void setBounds(RMRect bounds)
public int getElementCount()
public byte getElement(int anIndex)
public byte getElement(int anIndex, RMPoint[] points)
public byte getElementLast()
public int getPointCount()
public RMPoint getPoint(int anIndex)
public RMPoint getPointLast()
public int getElementPointIndex(int anIndex)
public int getElementIndexForPointIndex(int index)
public RMPath getPathInRect(java.awt.geom.Rectangle2D aRect)
public boolean contains(java.awt.geom.Point2D aPoint)
contains
in interface java.awt.Shape
public boolean contains(double x, double y)
contains
in interface java.awt.Shape
public boolean contains(java.awt.geom.Rectangle2D aRect)
contains
in interface java.awt.Shape
public boolean contains(double x, double y, double w, double h)
contains
in interface java.awt.Shape
public boolean intersects(java.awt.geom.Rectangle2D aRect)
intersects
in interface java.awt.Shape
public boolean intersects(double x, double y, double w, double h)
intersects
in interface java.awt.Shape
public boolean intersects(RMPoint aPoint, float lineWidth)
public boolean intersects(RMLine aLine)
public boolean intersects(double x, double y, double w, double h, float lineWidth)
public boolean intersects(RMPath aPath, float lineWidth)
public RMHitInfo getHitInfo(RMLine aLine, boolean findFirstHit)
public RMHitInfo getHitInfo(RMBezier aBezier, boolean findFirstHit)
public int handleAtPointForBounds(RMPoint aPoint, RMRect aRect)
public RMPoint pointInPathCoordsFromPoint(RMPoint aPoint, RMRect aRect)
public void removeLastElement()
public void setPoint(int index, RMPoint point)
public void setPointStructured(int index, RMPoint point)
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform aTransform)
getPathIterator
in interface java.awt.Shape
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform aTransform, double flatness)
getPathIterator
in interface java.awt.Shape
public java.awt.geom.PathIterator getPathIteratorInRect(java.awt.geom.Rectangle2D aRect)
public boolean equals(java.lang.Object anObj)
equals
in class java.lang.Object
public java.lang.Object clone()
public RXElement toXML(RXArchiver anArchiver)
public java.lang.Object fromXML(RXArchiver anArchiver, RXElement anElement)
public java.lang.Object initWithArchiver(RMArchiver anArchiver)
initWithArchiver
in interface RMArchiver.Archiving
initWithArchiver
in class RMObject