Class StrategyBasedLinearGradientBuilder

All Implemented Interfaces:
IGradientBuilder

public class StrategyBasedLinearGradientBuilder extends AbstractLinearGradientBuilder
The linear gradient builder with automatic coordinates vector evaluation for the target filled area based on configured strategy
  • Constructor Details

    • StrategyBasedLinearGradientBuilder

      public StrategyBasedLinearGradientBuilder()
      Create a new instance of the builder
  • Method Details

    • setGradientDirectionAsCentralRotationAngle

      public StrategyBasedLinearGradientBuilder setGradientDirectionAsCentralRotationAngle (double radians)
      Set the strategy to use the minimal coordinates vector that passes through the central point of the target rectangle area, rotated by the specified amount of radians counter clockwise and covers the area to be filled. Zero angle corresponds to the vector from bottom to top.
      Parameters:
      radians - the radians value to rotate the coordinates vector
      Returns:
      the current builder instance
    • setGradientDirectionAsStrategy

      public StrategyBasedLinearGradientBuilder setGradientDirectionAsStrategy (StrategyBasedLinearGradientBuilder.GradientStrategy gradientStrategy)
      Set the strategy to predefined one
      Parameters:
      gradientStrategy - the strategy to set
      Returns:
      the current builder instance
    • getRotateVectorAngle

      public double getRotateVectorAngle()
      Get the last set rotate vector angle
      Returns:
      the last set rotate vector angle
    • getGradientStrategy

      Get the last set predefined strategy
      Returns:
      the last set predefined strategy
    • isCentralRotationAngleStrategy

      public boolean isCentralRotationAngleStrategy()
      Is the central rotation angle strategy was set last
      Returns:
      true if the last strategy that has been set is a custom rotation angle
    • getGradientVector

      protected Point[] getGradientVector (Rectangle targetBoundingBox, AffineTransform contextTransform)
      Returns the base gradient vector in gradient vector space. This vector would be set as shading coordinates vector and its length would be used to translate all color stops absolute offsets into the relatives.
      Specified by:
      getGradientVector in class AbstractLinearGradientBuilder
      Parameters:
      targetBoundingBox - the rectangle to be covered by constructed color in current space
      contextTransform - the current canvas transformation
      Returns:
      the array of exactly two elements specifying the gradient coordinates vector
    • getGradientVectorWithTransform

      protected Tuple2<Point[],AffineTransform> getGradientVectorWithTransform (Rectangle targetBoundingBox, AffineTransform contextTransform)
      Returns the base gradient vector in gradient vector space and the current space to gradient vector space transformations that should be applied to the shading color.

      The vector would be set as shading coordinates vector and its length would be used to translate all color stops absolute offsets into the relatives.

      The transformation should be invertible as the current target bounding box coordinates should be transformed into the resulted shading space coordinates.

      Overrides:
      getGradientVectorWithTransform in class AbstractGradientBuilder<Point>
      Parameters:
      targetBoundingBox - the rectangle to be covered by constructed color in current space
      contextTransform - the current canvas transformation
      Returns:
      the pair of the vector, which is an array of exactly two elements specifying the gradient coordinates vector, and the additional transformation to be concatenated to the current for resulted shading or null if no additional transformation is specified