|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjava.awt.geom.FlatteningPathIterator
public class FlatteningPathIterator
A PathIterator for approximating curved path segments by sequences
of straight lines. Instances of this class will only return
segments of type PathIterator.SEG_MOVETO, PathIterator.SEG_LINETO, and PathIterator.SEG_CLOSE.
The accuracy of the approximation is determined by two parameters:
QuadCurve2D.getFlatness() and CubicCurve2D.getFlatness() for drawings which illustrate the
meaning of flatness.PathIterator.SEG_LINETO segments will be created.Memory Efficiency: The memory consumption grows linearly with the recursion limit. Neither the flatness parameter nor the number of segments in the flattened path will affect the memory consumption.
Thread Safety: Multiple threads can safely work on separate instances of this class. However, multiple threads should not concurrently access the same instance, as no synchronization is performed.
| Field Summary |
|---|
| Fields inherited from interface java.awt.geom.PathIterator |
|---|
SEG_CLOSE, SEG_CUBICTO, SEG_LINETO, SEG_MOVETO, SEG_QUADTO, WIND_EVEN_ODD, WIND_NON_ZERO |
| Constructor Summary | |
|---|---|
FlatteningPathIterator(PathIterator src,
double flatness)
Constructs a new PathIterator for approximating an input PathIterator with straight lines. |
|
FlatteningPathIterator(PathIterator src,
double flatness,
int limit)
Constructs a new PathIterator for approximating an input PathIterator with straight lines. |
|
| Method Summary | |
|---|---|
int |
currentSegment(double[] coords)
Returns the coordinates of the next point(s), as well as the type of line segment. |
int |
currentSegment(float[] coords)
Returns the coordinates of the next point(s), as well as the type of line segment. |
double |
getFlatness()
Returns the maximally acceptable flatness. |
int |
getRecursionLimit()
Returns the maximum number of recursive curve subdivisions. |
int |
getWindingRule()
Returns the winding rule to determine which points are inside this path. |
boolean |
isDone()
Tests if the iterator is exhausted. |
void |
next()
Advance to the next segment in the iteration. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FlatteningPathIterator(PathIterator src,
double flatness)
There will not be more than 10 nested recursion steps, which
means that a single SEG_QUADTO or
SEG_CUBICTO segment is approximated by at most
210 = 1024 straight lines.
public FlatteningPathIterator(PathIterator src,
double flatness,
int limit)
| Method Detail |
|---|
public double getFlatness()
QuadCurve2D.getFlatness(),
CubicCurve2D.getFlatness()public int getRecursionLimit()
public int getWindingRule()
PathIterator
getWindingRule in interface PathIteratorPathIterator.WIND_EVEN_ODD,
PathIterator.WIND_NON_ZEROpublic boolean isDone()
PathIterator
isDone in interface PathIteratorpublic void next()
PathIterator
next in interface PathIteratorpublic int currentSegment(double[] coords)
PathIterator
currentSegment in interface PathIteratorcoords - the array to place the point coordinates in
PathIterator.SEG_MOVETO,
PathIterator.SEG_LINETO,
PathIterator.SEG_QUADTO,
PathIterator.SEG_CUBICTO,
PathIterator.SEG_CLOSEpublic int currentSegment(float[] coords)
PathIterator
currentSegment in interface PathIteratorcoords - the array to place the point coordinates in
PathIterator.SEG_MOVETO,
PathIterator.SEG_LINETO,
PathIterator.SEG_QUADTO,
PathIterator.SEG_CUBICTO,
PathIterator.SEG_CLOSE
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||