Class ClipPathSvgNodeRenderer

All Implemented Interfaces:
IBranchSvgNodeRenderer, ISvgNodeRenderer

public class ClipPathSvgNodeRenderer extends AbstractBranchSvgNodeRenderer
This renderer represents a collection of elements (simple shapes and paths). The elements are not drawn visibly, but the union of their shapes will be used to only show the parts of the drawn objects that fall within the clipping path.

In PDF, the clipping path operators use the intersection of all its elements, not the union (as in SVG); thus, we need to draw the clipped elements multiple times if the clipping path consists of multiple elements.

  • Constructor Details

    • ClipPathSvgNodeRenderer

      public ClipPathSvgNodeRenderer()
  • 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
    • getObjectBoundingBox

      public Rectangle getObjectBoundingBox (SvgDrawContext context)
      Description copied from interface: ISvgNodeRenderer
      Calculates the current object bounding box.
      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
    • doDraw

      protected void doDraw (SvgDrawContext context)
      Description copied from class: AbstractBranchSvgNodeRenderer
      Method that will set properties to be inherited by this branch renderer's children and will iterate over all children in order to draw them.
      Overrides:
      doDraw in class AbstractBranchSvgNodeRenderer
      Parameters:
      context - the object that knows the place to draw this element and maintains its state
    • drawClippedRenderer

      public void drawClippedRenderer (SvgDrawContext context)
      Draw the clipped renderer.
      Parameters:
      context - the context on which clipped renderer will be drawn
    • setClippedRenderer

      public void setClippedRenderer (AbstractSvgNodeRenderer clippedRenderer)
      Sets the clipped renderer.
      Parameters:
      clippedRenderer - the clipped renderer
    • isHidden

      protected boolean isHidden()
      Description copied from class: AbstractSvgNodeRenderer
      Check if this renderer should draw the element based on its attributes (e.g. visibility/display)
      Overrides:
      isHidden in class AbstractSvgNodeRenderer
      Returns:
      true if element won't be drawn, false otherwise