Class Path2D.Iterator

Object
Iterator
All Implemented Interfaces:
PathIterator
Enclosing class:
Path2D

public static class Path2D.Iterator extends Object implements PathIterator
Adapted from java.awt.geom.PathIterator, merged with Path2D Iterator and CopyIterator. Constants moved to Path2D and made more GWT friendly.
Since:
1.6
Author:
Jim Graham, Christoph Hauert Adapted from java.awt.geom.Path2D, merged with PathIterator and stripped to the bare bones. In particular, all the Shape stuff and AffineTransform removed. Generally made more GWT friendly for use in EvoLudo project.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) static final int[]
    Number of coordinates used by each segment type.
    (package private) double[]
    Coordinate storage used by the iterator.
    (package private) Path2D
    Path being iterated.
    (package private) int
    Index of the current coordinate pair.
    (package private) int
    Index of the current segment type.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new path iterator object from an arbitrary Path2D object.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    currentSegment(double[] coords)
    Returns the coordinates and type of the current path segment in the iteration.
    int
    Returns the winding rule for determining the interior of the path.
    boolean
    Tests if the iteration is complete.
    void
    Moves the iterator to the next segment of the path forwards along the primary direction of traversal as long as there are more points in that direction.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • typeIdx

      int typeIdx
      Index of the current segment type.
    • pointIdx

      int pointIdx
      Index of the current coordinate pair.
    • path

      Path2D path
      Path being iterated.
    • curvecoords

      static final int[] curvecoords
      Number of coordinates used by each segment type.
    • doubleCoords

      double[] doubleCoords
      Coordinate storage used by the iterator.
  • Constructor Details

    • Iterator

      Iterator(Path2D path)
      Constructs a new path iterator object from an arbitrary Path2D object.
      Parameters:
      path - the path to iterate over its segments
  • Method Details

    • currentSegment

      public int currentSegment(double[] coords)
      Returns the coordinates and type of the current path segment in the iteration. The return value is the path-segment type: SEG_MOVETO, SEG_LINETO, SEG_QUADTO, SEG_CUBICTO, or SEG_CLOSE. A double array of length 6 must be passed in and can be used to store the coordinates of the point(s). Each point is stored as a pair of double x,y coordinates. SEG_MOVETO and SEG_LINETO types returns one point, SEG_QUADTO returns two points, SEG_CUBICTO returns 3 points and SEG_CLOSE does not return any points.
      Specified by:
      currentSegment in interface PathIterator
      Parameters:
      coords - an array that holds the data returned from this method
      Returns:
      the path-segment type of the current path segment.
      See Also:
    • getWindingRule

      public int getWindingRule()
      Returns the winding rule for determining the interior of the path.
      Specified by:
      getWindingRule in interface PathIterator
      Returns:
      the winding rule.
      See Also:
    • isDone

      public boolean isDone()
      Tests if the iteration is complete.
      Specified by:
      isDone in interface PathIterator
      Returns:
      true if all the segments have been read; false otherwise.
    • next

      public void next()
      Moves the iterator to the next segment of the path forwards along the primary direction of traversal as long as there are more points in that direction.
      Specified by:
      next in interface PathIterator