Class PDFShapeCmd

java.lang.Object
com.sun.pdfview.PDFCmd
com.sun.pdfview.PDFShapeCmd

public class PDFShapeCmd extends PDFCmd
Encapsulates a path. Also contains extra fields and logic to check for consecutive abutting anti-aliased regions. We stroke the shared line between these regions again with a 1-pixel wide line so that the background doesn't show through between them.
  • Field Details

    • STROKE

      public static final int STROKE
      stroke the outline of the path with the stroke paint
      See Also:
    • FILL

      public static final int FILL
      fill the path with the fill paint
      See Also:
    • BOTH

      public static final int BOTH
      perform both stroke and fill
      See Also:
    • CLIP

      public static final int CLIP
      set the clip region to the path
      See Also:
    • gp

      private GeneralPath gp
      base path
    • style

      private int style
      the style
    • bounds

      private Rectangle2D bounds
      the bounding box of the path
    • againstroke

      BasicStroke againstroke
      the stroke style for the anti-antialias stroke
  • Constructor Details

    • PDFShapeCmd

      public PDFShapeCmd(GeneralPath gp, int style)
      create a new PDFShapeCmd and check it against the previous one to find any shared edges.
      Parameters:
      gp - the path
      style - the style: an OR of STROKE, FILL, or CLIP. As a convenience, BOTH = STROKE | FILL.
  • Method Details

    • execute

      public Rectangle2D execute(PDFRenderer state)
      perform the stroke and record the dirty region
      Specified by:
      execute in class PDFCmd
      Parameters:
      state - the current graphics state; may be modified during execution.
      Returns:
      the region of the page made dirty by executing this command or null if no region was touched. Note this value should be in the coordinates of the image touched, not the page.
    • checkOverlap

      private GeneralPath checkOverlap(PDFRenderer state)
      Check for overlap with the previous shape to make anti-aliased shapes that are near each other look good
    • getPoints

      private int getPoints(GeneralPath path, float[] mypoints)
      Get an array of 16 points from a path
      Returns:
      the number of points we actually got
    • getDetails

      public String getDetails()
      Get detailed information about this shape
      Overrides:
      getDetails in class PDFCmd