Class RMGradientFill
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.rm.graphics.RMFill
-
- com.inductiveautomation.rm.graphics.RMGradientFill
-
- All Implemented Interfaces:
Archivable,RMPropertyChanger,java.lang.Cloneable
- Direct Known Subclasses:
RMRadialGradientFill
public class RMGradientFill extends RMFill
This class represents a fill that draws a linear gradient between an arbitrary list of colors.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRMGradientFill.ColorStopSimple static class to represent a stop (they're immutable).
-
Constructor Summary
Constructors Constructor Description RMGradientFill()Creates an uninitialized gradient fill.RMGradientFill(RMColor aColor1, RMColor aColor2, float aRotation)Creates a gradient fill from the given start color to the given end color with the given roll.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RMGradientFillclone()Standard clone implementation.RMGradientFillderiveGradient(boolean isRadial)Returns a new gradient which is a copy of this gradient but of a different type.RMGradientFillderiveGradient(float aRoll)Returns a new gradient which is a copy of this gradient but with a different roll value.booleanequals(java.lang.Object anObj)Standard equals implementation.java.lang.ObjectfromXML(RXArchiver anArchiver, RXElement anElement)XML unarchival.RMColorgetColor()Returns the color associated with this fill.RMGradientFill.ColorStopgetColorStop(int anIndex)Returns the individual color stop at given index.intgetColorStopCount()Returns the number of color stops in the gradientjava.util.List<RMGradientFill.ColorStop>getColorStops()Returns the list of color stops.voidgetGradientAxis(RMRect aRect, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)Returns the 2 points, in the shape's coordinate system, which define the gradient.voidgetGradientAxis(RMShape aShape, RMPath aPath, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)Returns the 2 points, in the shape's coordinate system, which define the gradient.java.awt.geom.Rectangle2DgetGradientBounds(java.awt.Shape aShape)Returns the gradient bounds for a given shape which is the bounds required to encompass the entire shape in the coordinates of the gradient rotation (effectively the bounds of the shape rotated by opposite gradient rotation).java.awt.PaintgetPaint(float startx, float starty, float endx, float endy)Returns a java.awt.Paint instance to draw this gradient.floatgetRoll()Returns the gradient's rotation.RMColorgetStopColor(int index)Returns the color of the stop at the given index.floatgetStopPosition(int index)Returns the position (in the range {0-1}) for the given stop index.booleanhasAlpha()Returns true if any of the colors in the gradient have alphaintinsertColorStop(RMColor aColor, float position)Adds a new color stop at the given position.booleanisRadial()Returns whether gradient is radial.voidpaint(RMShapePainter aPntr, RMShape aShape)Render this fill in a shape painter.voidremoveColorStop(int index)Removes the stop at the given index.voidreverseColors()Reverse the order of the color stopsvoidsetColor(RMColor aColor)Sets color of first stop.voidsetColorStop(int index, RMColor aColor, float position)Sets the color & position of the stop at the given index.protected voidsetRoll(float aRoll)Sets the gradient's rotation.voidsetStops(java.util.List<RMGradientFill.ColorStop> newStops)Resets all the stops from the new list.java.lang.StringtoString()Standard to string implementation.RXElementtoXML(RXArchiver anArchiver)XML archival.-
Methods inherited from class com.inductiveautomation.rm.graphics.RMFill
deriveFill, getBounds, getName, readAttributes
-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Method Detail
-
getColorStopCount
public int getColorStopCount()
Returns the number of color stops in the gradient
-
getColorStop
public RMGradientFill.ColorStop getColorStop(int anIndex)
Returns the individual color stop at given index.
-
getColorStops
public java.util.List<RMGradientFill.ColorStop> getColorStops()
Returns the list of color stops.
-
setColorStop
public void setColorStop(int index, RMColor aColor, float position)Sets the color & position of the stop at the given index.
-
removeColorStop
public void removeColorStop(int index)
Removes the stop at the given index.
-
setStops
public void setStops(java.util.List<RMGradientFill.ColorStop> newStops)
Resets all the stops from the new list.
-
insertColorStop
public int insertColorStop(RMColor aColor, float position)
Adds a new color stop at the given position. Returns the index of the new stop.
-
reverseColors
public void reverseColors()
Reverse the order of the color stops
-
getRoll
public float getRoll()
Returns the gradient's rotation.
-
setRoll
protected void setRoll(float aRoll)
Sets the gradient's rotation.
-
isRadial
public boolean isRadial()
Returns whether gradient is radial.
-
deriveGradient
public RMGradientFill deriveGradient(float aRoll)
Returns a new gradient which is a copy of this gradient but with a different roll value.
-
deriveGradient
public RMGradientFill deriveGradient(boolean isRadial)
Returns a new gradient which is a copy of this gradient but of a different type.
-
getGradientBounds
public java.awt.geom.Rectangle2D getGradientBounds(java.awt.Shape aShape)
Returns the gradient bounds for a given shape which is the bounds required to encompass the entire shape in the coordinates of the gradient rotation (effectively the bounds of the shape rotated by opposite gradient rotation). The gradient should be defined in these bounds so that rendered shapes completely utilizes the color range.
-
getGradientAxis
public void getGradientAxis(RMShape aShape, RMPath aPath, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
Returns the 2 points, in the shape's coordinate system, which define the gradient.
-
getGradientAxis
public void getGradientAxis(RMRect aRect, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
Returns the 2 points, in the shape's coordinate system, which define the gradient.
-
getColor
public RMColor getColor()
Returns the color associated with this fill.
-
setColor
public void setColor(RMColor aColor)
Sets color of first stop.
-
getStopColor
public RMColor getStopColor(int index)
Returns the color of the stop at the given index.
-
getStopPosition
public float getStopPosition(int index)
Returns the position (in the range {0-1}) for the given stop index.
-
hasAlpha
public boolean hasAlpha()
Returns true if any of the colors in the gradient have alpha
-
getPaint
public java.awt.Paint getPaint(float startx, float starty, float endx, float endy)Returns a java.awt.Paint instance to draw this gradient.
-
paint
public void paint(RMShapePainter aPntr, RMShape aShape)
Render this fill in a shape painter.
-
equals
public boolean equals(java.lang.Object anObj)
Standard equals implementation.
-
clone
public RMGradientFill clone()
Standard clone implementation.
-
toXML
public RXElement toXML(RXArchiver anArchiver)
XML archival.- Specified by:
toXMLin interfaceArchivable- Overrides:
toXMLin classRMFill
-
fromXML
public java.lang.Object fromXML(RXArchiver anArchiver, RXElement anElement)
XML unarchival.- Specified by:
fromXMLin interfaceArchivable- Overrides:
fromXMLin classRMFill
-
-