java.awt.geom
Class FlatteningPathIterator

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.awt.geom.FlatteningPathIterator
All Implemented Interfaces:
PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator

public class FlatteningPathIterator
extends Object sample code for java.lang.Object definition code for java.lang.Object
implements PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator

The FlatteningPathIterator class returns a flattened view of another PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator object. Other Shape sample code for java.awt.Shape definition code for java.awt.Shape classes can use this class to provide flattening behavior for their paths without having to perform the interpolation calculations themselves.


Field Summary
 
Fields inherited from interface java.awt.geom.PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator
SEG_CLOSE sample code for java.awt.geom.PathIterator.SEG_CLOSE definition code for java.awt.geom.PathIterator.SEG_CLOSE , SEG_CUBICTO sample code for java.awt.geom.PathIterator.SEG_CUBICTO definition code for java.awt.geom.PathIterator.SEG_CUBICTO , SEG_LINETO sample code for java.awt.geom.PathIterator.SEG_LINETO definition code for java.awt.geom.PathIterator.SEG_LINETO , SEG_MOVETO sample code for java.awt.geom.PathIterator.SEG_MOVETO definition code for java.awt.geom.PathIterator.SEG_MOVETO , SEG_QUADTO sample code for java.awt.geom.PathIterator.SEG_QUADTO definition code for java.awt.geom.PathIterator.SEG_QUADTO , WIND_EVEN_ODD sample code for java.awt.geom.PathIterator.WIND_EVEN_ODD definition code for java.awt.geom.PathIterator.WIND_EVEN_ODD , WIND_NON_ZERO sample code for java.awt.geom.PathIterator.WIND_NON_ZERO definition code for java.awt.geom.PathIterator.WIND_NON_ZERO
 
Constructor Summary
FlatteningPathIterator sample code for java.awt.geom.FlatteningPathIterator.FlatteningPathIterator(java.awt.geom.PathIterator, double) definition code for java.awt.geom.FlatteningPathIterator.FlatteningPathIterator(java.awt.geom.PathIterator, double) (PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator  src, double flatness)
          Constructs a new FlatteningPathIterator object that flattens a path as it iterates over it.
FlatteningPathIterator sample code for java.awt.geom.FlatteningPathIterator.FlatteningPathIterator(java.awt.geom.PathIterator, double, int) definition code for java.awt.geom.FlatteningPathIterator.FlatteningPathIterator(java.awt.geom.PathIterator, double, int) (PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator  src, double flatness, int limit)
          Constructs a new FlatteningPathIterator object that flattens a path as it iterates over it.
 
Method Summary
 int currentSegment sample code for java.awt.geom.FlatteningPathIterator.currentSegment(double[]) definition code for java.awt.geom.FlatteningPathIterator.currentSegment(double[]) (double[] coords)
          Returns the coordinates and type of the current path segment in the iteration.
 int currentSegment sample code for java.awt.geom.FlatteningPathIterator.currentSegment(float[]) definition code for java.awt.geom.FlatteningPathIterator.currentSegment(float[]) (float[] coords)
          Returns the coordinates and type of the current path segment in the iteration.
 double getFlatness sample code for java.awt.geom.FlatteningPathIterator.getFlatness() definition code for java.awt.geom.FlatteningPathIterator.getFlatness() ()
          Returns the flatness of this iterator.
 int getRecursionLimit sample code for java.awt.geom.FlatteningPathIterator.getRecursionLimit() definition code for java.awt.geom.FlatteningPathIterator.getRecursionLimit() ()
          Returns the recursion limit of this iterator.
 int getWindingRule sample code for java.awt.geom.FlatteningPathIterator.getWindingRule() definition code for java.awt.geom.FlatteningPathIterator.getWindingRule() ()
          Returns the winding rule for determining the interior of the path.
 boolean isDone sample code for java.awt.geom.FlatteningPathIterator.isDone() definition code for java.awt.geom.FlatteningPathIterator.isDone() ()
          Tests if the iteration is complete.
 void next sample code for java.awt.geom.FlatteningPathIterator.next() definition code for java.awt.geom.FlatteningPathIterator.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.
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , toString sample code for java.lang.Object.toString() definition code for java.lang.Object.toString() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

FlatteningPathIterator sample code for java.awt.geom.FlatteningPathIterator(java.awt.geom.PathIterator, double) definition code for java.awt.geom.FlatteningPathIterator(java.awt.geom.PathIterator, double)

public FlatteningPathIterator(PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator  src,
                              double flatness)
Constructs a new FlatteningPathIterator object that flattens a path as it iterates over it. The iterator does not subdivide any curve read from the source iterator to more than 10 levels of subdivision which yields a maximum of 1024 line segments per curve.

Parameters:
src - the original unflattened path being iterated over
flatness - the maximum allowable distance between the control points and the flattened curve

FlatteningPathIterator sample code for java.awt.geom.FlatteningPathIterator(java.awt.geom.PathIterator, double, int) definition code for java.awt.geom.FlatteningPathIterator(java.awt.geom.PathIterator, double, int)

public FlatteningPathIterator(PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator  src,
                              double flatness,
                              int limit)
Constructs a new FlatteningPathIterator object that flattens a path as it iterates over it. The limit parameter allows you to control the maximum number of recursive subdivisions that the iterator can make before it assumes that the curve is flat enough without measuring against the flatness parameter. The flattened iteration therefore never generates more than a maximum of (2^limit) line segments per curve.

Parameters:
src - the original unflattened path being iterated over
flatness - the maximum allowable distance between the control points and the flattened curve
limit - the maximum number of recursive subdivisions allowed for any curved segment
Throws:
IllegalArgumentException - if flatness or limit is less than zero
Method Detail

getFlatness sample code for java.awt.geom.FlatteningPathIterator.getFlatness() definition code for java.awt.geom.FlatteningPathIterator.getFlatness()

public double getFlatness()
Returns the flatness of this iterator.

Returns:
the flatness of this FlatteningPathIterator.

getRecursionLimit sample code for java.awt.geom.FlatteningPathIterator.getRecursionLimit() definition code for java.awt.geom.FlatteningPathIterator.getRecursionLimit()

public int getRecursionLimit()
Returns the recursion limit of this iterator.

Returns:
the recursion limit of this FlatteningPathIterator.

getWindingRule sample code for java.awt.geom.FlatteningPathIterator.getWindingRule() definition code for java.awt.geom.FlatteningPathIterator.getWindingRule()

public int getWindingRule()
Returns the winding rule for determining the interior of the path.

Specified by:
getWindingRule sample code for java.awt.geom.PathIterator.getWindingRule() definition code for java.awt.geom.PathIterator.getWindingRule() in interface PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator
Returns:
the winding rule of the original unflattened path being iterated over.
See Also:
PathIterator.WIND_EVEN_ODD sample code for java.awt.geom.PathIterator.WIND_EVEN_ODD definition code for java.awt.geom.PathIterator.WIND_EVEN_ODD , PathIterator.WIND_NON_ZERO sample code for java.awt.geom.PathIterator.WIND_NON_ZERO definition code for java.awt.geom.PathIterator.WIND_NON_ZERO

isDone sample code for java.awt.geom.FlatteningPathIterator.isDone() definition code for java.awt.geom.FlatteningPathIterator.isDone()

public boolean isDone()
Tests if the iteration is complete.

Specified by:
isDone sample code for java.awt.geom.PathIterator.isDone() definition code for java.awt.geom.PathIterator.isDone() in interface PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator
Returns:
true if all the segments have been read; false otherwise.

next sample code for java.awt.geom.FlatteningPathIterator.next() definition code for java.awt.geom.FlatteningPathIterator.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 sample code for java.awt.geom.PathIterator.next() definition code for java.awt.geom.PathIterator.next() in interface PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator

currentSegment sample code for java.awt.geom.FlatteningPathIterator.currentSegment(float[]) definition code for java.awt.geom.FlatteningPathIterator.currentSegment(float[])

public int currentSegment(float[] 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, or SEG_CLOSE. A float 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 float x,y coordinates. SEG_MOVETO and SEG_LINETO types return one point, and SEG_CLOSE does not return any points.

Specified by:
currentSegment sample code for java.awt.geom.PathIterator.currentSegment(float[]) definition code for java.awt.geom.PathIterator.currentSegment(float[]) in interface PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator
Parameters:
coords - an array that holds the data returned from this method
Returns:
the path segment type of the current path segment.
Throws:
NoSuchElementException - if there are no more elements in the flattening path to be returned.
See Also:
PathIterator.SEG_MOVETO sample code for java.awt.geom.PathIterator.SEG_MOVETO definition code for java.awt.geom.PathIterator.SEG_MOVETO , PathIterator.SEG_LINETO sample code for java.awt.geom.PathIterator.SEG_LINETO definition code for java.awt.geom.PathIterator.SEG_LINETO , PathIterator.SEG_CLOSE sample code for java.awt.geom.PathIterator.SEG_CLOSE definition code for java.awt.geom.PathIterator.SEG_CLOSE

currentSegment sample code for java.awt.geom.FlatteningPathIterator.currentSegment(double[]) definition code for java.awt.geom.FlatteningPathIterator.currentSegment(double[])

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, 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 return one point, and SEG_CLOSE does not return any points.

Specified by:
currentSegment sample code for java.awt.geom.PathIterator.currentSegment(double[]) definition code for java.awt.geom.PathIterator.currentSegment(double[]) in interface PathIterator sample code for java.awt.geom.PathIterator definition code for java.awt.geom.PathIterator
Parameters:
coords - an array that holds the data returned from this method
Returns:
the path segment type of the current path segment.
Throws:
NoSuchElementException - if there are no more elements in the flattening path to be returned.
See Also:
PathIterator.SEG_MOVETO sample code for java.awt.geom.PathIterator.SEG_MOVETO definition code for java.awt.geom.PathIterator.SEG_MOVETO , PathIterator.SEG_LINETO sample code for java.awt.geom.PathIterator.SEG_LINETO definition code for java.awt.geom.PathIterator.SEG_LINETO , PathIterator.SEG_CLOSE sample code for java.awt.geom.PathIterator.SEG_CLOSE definition code for java.awt.geom.PathIterator.SEG_CLOSE