Class PatternSvgNodeRenderer

All Implemented Interfaces:
IBranchSvgNodeRenderer, INoDrawSvgNodeRenderer, ISvgNodeRenderer, ISvgPaintServer

public class PatternSvgNodeRenderer extends AbstractBranchSvgNodeRenderer implements ISvgPaintServer
Implementation for the svg <pattern> tag.
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • CONVERT_COEFF

      private static final double CONVERT_COEFF
      See Also:
  • Constructor Details

    • PatternSvgNodeRenderer

      public PatternSvgNodeRenderer()
  • Method Details

    • createDeepCopy

      public ISvgNodeRenderer createDeepCopy()
      Description copied from interface: ISvgNodeRenderer
      Creates a deep copy of this renderer, including it's subtree of children
      Specified by:
      createDeepCopy in interface ISvgNodeRenderer
      Specified by:
      createDeepCopy in class AbstractBranchSvgNodeRenderer
      Returns:
      deep copy of this renderer
    • createColor

      public Color createColor(SvgDrawContext context, Rectangle objectBoundingBox, float objectBoundingBoxMargin, float parentOpacity)
      Description copied from interface: ISvgPaintServer
      Creates the Color that represents the corresponding paint server for specified object box.
      Specified by:
      createColor in interface ISvgPaintServer
      Parameters:
      context - the current svg draw context
      objectBoundingBox - the coloring object bounding box without any adjustments (additional stroke width or others)
      objectBoundingBoxMargin - the objectBoundingBoxMargin of the object bounding box to be colored (for example - the part of stroke width that exceeds the object bounding box, i.e. the half of stroke width value)
      parentOpacity - current parent opacity modifier
      Returns:
      the created color
    • getObjectBoundingBox

      public Rectangle getObjectBoundingBox(SvgDrawContext context)
      Description copied from interface: ISvgNodeRenderer
      Calculates the current object bounding box.
      Specified by:
      getObjectBoundingBox in interface ISvgNodeRenderer
      Parameters:
      context - the current context, for instance it contains current viewport and available font data
      Returns:
      the Rectangle representing the current object's bounding box, or null if bounding box is undefined
    • createTilingPattern

      private PdfPattern.Tiling createTilingPattern(SvgDrawContext context, Rectangle objectBoundingBox)
    • calculateAppliedViewBox

      private Rectangle calculateAppliedViewBox(Rectangle viewBox, double xStep, double yStep)
    • drawPatternContent

      private void drawPatternContent(SvgDrawContext context, PdfPattern.Tiling pattern)
    • calculateOriginalPatternRectangle

      private Rectangle calculateOriginalPatternRectangle(SvgDrawContext context, boolean isObjectBoundingBoxInPatternUnits)
    • isObjectBoundingBoxInPatternUnits

      private boolean isObjectBoundingBoxInPatternUnits()
    • isObjectBoundingBoxInPatternContentUnits

      private boolean isObjectBoundingBoxInPatternContentUnits()
    • createColoredTilingPatternInstance

      private static PdfPattern.Tiling createColoredTilingPatternInstance(AffineTransform patternAffineTransform, Rectangle bbox, double xStep, double yStep)
    • setPatternMatrix

      private static void setPatternMatrix(PdfPattern.Tiling pattern, AffineTransform affineTransform)
    • getTransformToUserSpaceOnUse

      private static AffineTransform getTransformToUserSpaceOnUse(Rectangle objectBoundingBox)
    • xStepYStepAreValid

      private static boolean xStepYStepAreValid(double xStep, double yStep)
    • isViewBoxInvalid

      private static boolean isViewBoxInvalid(float[] viewBoxValues)
    • getPatternTransform

      private AffineTransform getPatternTransform()