Class FlatteningPathIterator

java.lang.Object
com.itextpdf.awt.geom.FlatteningPathIterator
All Implemented Interfaces:
PathIterator

public class FlatteningPathIterator extends Object implements PathIterator
  • Field Details

    • BUFFER_SIZE

      private static final int BUFFER_SIZE
      The default points buffer size
      See Also:
    • BUFFER_LIMIT

      private static final int BUFFER_LIMIT
      The default curve subdivision limit
      See Also:
    • BUFFER_CAPACITY

      private static final int BUFFER_CAPACITY
      The points buffer capacity
      See Also:
    • bufType

      int bufType
      The type of current segment to be flat
    • bufLimit

      int bufLimit
      The curve subdivision limit
    • bufSize

      int bufSize
      The current points buffer size
    • bufIndex

      int bufIndex
      The inner cursor position in points buffer
    • bufSubdiv

      int bufSubdiv
      The current subdivision count
    • buf

      double[] buf
      The points buffer
    • bufEmpty

      boolean bufEmpty
      The indicator of empty points buffer
    • p

      The source PathIterator
    • flatness

      double flatness
      The flatness of new path
    • flatness2

      double flatness2
      The square of flatness
    • px

      double px
      The x coordinate of previous path segment
    • py

      double py
      The y coordinate of previous path segment
    • coords

      double[] coords
      The tamporary buffer for getting points from PathIterator
  • Constructor Details

    • FlatteningPathIterator

      public FlatteningPathIterator(PathIterator path, double flatness)
    • FlatteningPathIterator

      public FlatteningPathIterator(PathIterator path, double flatness, int limit)
  • Method Details

    • getFlatness

      public double getFlatness()
    • getRecursionLimit

      public int getRecursionLimit()
    • getWindingRule

      public int getWindingRule()
      Specified by:
      getWindingRule in interface PathIterator
    • isDone

      public boolean isDone()
      Specified by:
      isDone in interface PathIterator
    • evaluate

      void evaluate()
      Calculates flat path points for current segment of the source shape. Line segment is flat by itself. Flatness of quad and cubic curves evaluated by getFlatnessSq() method. Curves subdivided until current flatness is bigger than user defined and subdivision limit isn't exhausted. Single source segment translated to series of buffer points. The less flatness the bigger serries. Every currentSegment() call extract one point from the buffer. When series completed evaluate() takes next source shape segment.
    • next

      public void next()
      Specified by:
      next in interface PathIterator
    • currentSegment

      public int currentSegment(float[] coords)
      Specified by:
      currentSegment in interface PathIterator
    • currentSegment

      public int currentSegment(double[] coords)
      Specified by:
      currentSegment in interface PathIterator