Class RMGradientFill

All Implemented Interfaces:
Archivable, RMPropertyChanger, 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.
  • Constructor Details

    • RMGradientFill

      public RMGradientFill()
      Creates an uninitialized gradient fill.
    • RMGradientFill

      public 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 Details

    • 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 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(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 Rectangle2D getGradientBounds(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, Point2D p1, Point2D p2)
      Returns the 2 points, in the shape's coordinate system, which define the gradient.
    • getGradientAxis

      public void getGradientAxis(RMRect aRect, Point2D p1, 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.
      Overrides:
      getColor in class RMFill
    • setColor

      public void setColor(RMColor aColor)
      Sets color of first stop.
      Overrides:
      setColor in class RMFill
    • 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
      Overrides:
      hasAlpha in class RMFill
    • getPaint

      public 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.
      Overrides:
      paint in class RMFill
    • equals

      public boolean equals(Object anObj)
      Standard equals implementation.
      Overrides:
      equals in class RMFill
    • clone

      public RMGradientFill clone()
      Standard clone implementation.
      Overrides:
      clone in class RMFill
    • toXML

      public RXElement toXML(RXArchiver anArchiver)
      XML archival.
      Specified by:
      toXML in interface Archivable
      Overrides:
      toXML in class RMFill
    • fromXML

      public Object fromXML(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      Specified by:
      fromXML in interface Archivable
      Overrides:
      fromXML in class RMFill
    • toString

      public String toString()
      Standard to string implementation.
      Overrides:
      toString in class RMFill