Class Path2afp.FlatteningPathIterator<T extends PathElement2afp>
- java.lang.Object
-
- org.arakhne.afc.math.geometry.d2.afp.Path2afp.FlatteningPathIterator<T>
-
- Type Parameters:
T
- the type of the path elements.
- All Implemented Interfaces:
Cloneable
,Iterator<T>
,PathIterator2afp<T>
,PathIterator2D<T>
- Enclosing interface:
- Path2afp<ST extends Shape2afp<?,?,IE,P,V,B>,IT extends Path2afp<?,?,IE,P,V,B>,IE extends PathElement2afp,P extends Point2D<? super P,? super V>,V extends Vector2D<? super V,? super P>,B extends Rectangle2afp<?,?,IE,P,V,B>>
public static class Path2afp.FlatteningPathIterator<T extends PathElement2afp> extends Object implements PathIterator2afp<T>
A path iterator that is flattening the path. This iterator was copied from AWT FlatteningPathIterator.- Since:
- 13.0
- Version:
- 17.0 2020-01-04 14:41:43
- Author:
- Stéphane GALLAND
- Maven Group Id:
- org.arakhne.afc.core
- Maven Artifact Id:
- mathgeom
-
-
Constructor Summary
Constructors Constructor Description FlatteningPathIterator(PathIterator2afp<T> pathIterator, double flatness, int limit)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GeomFactory2afp<T,?,?,?>
getGeomFactory()
Replies the factory of geometrical elements.PathWindingRule
getWindingRule()
Replies the winding rule for the path.boolean
hasNext()
boolean
isCurved()
Replies the path contains a curve.boolean
isMultiParts()
Replies the path has multiple parts, i.e. multipleMOVE_TO
are inside.boolean
isPolygon()
Replies the path is composed only by oneMOVE_TO
, a sequence ofLINE_TO
orQUAD_TO
orCURVE_TO
orARC_TO
, and a singleCLOSE
primitives.boolean
isPolyline()
Replies the path is composed only by oneMOVE_TO
, and a sequence ofLINE_TO
primitives.T
next()
void
remove()
PathIterator2afp<T>
restartIterations()
Replies a reset instance of this iterator.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Constructor Detail
-
FlatteningPathIterator
public FlatteningPathIterator(PathIterator2afp<T> pathIterator, double flatness, int limit)
Constructor.- Parameters:
pathIterator
- is the path iterator that may be used to initialize the path.flatness
- the maximum allowable distance between the control points and the flattened curvelimit
- the maximum number of recursive subdivisions allowed for any curved segment
-
-
Method Detail
-
restartIterations
public PathIterator2afp<T> restartIterations()
Description copied from interface:PathIterator2D
Replies a reset instance of this iterator.The reset instance enables to restart iterations with the replied iterator.
- Specified by:
restartIterations
in interfacePathIterator2afp<T extends PathElement2afp>
- Specified by:
restartIterations
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
- the reset iterator.
-
hasNext
@Pure public boolean hasNext()
- Specified by:
hasNext
in interfaceIterator<T extends PathElement2afp>
-
next
public T next()
- Specified by:
next
in interfaceIterator<T extends PathElement2afp>
-
remove
public void remove()
- Specified by:
remove
in interfaceIterator<T extends PathElement2afp>
-
getWindingRule
@Pure public PathWindingRule getWindingRule()
Description copied from interface:PathIterator2D
Replies the winding rule for the path.- Specified by:
getWindingRule
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
- the winding rule for the path.
-
isPolyline
@Pure public boolean isPolyline()
Description copied from interface:PathIterator2D
Replies the path is composed only by oneMOVE_TO
, and a sequence ofLINE_TO
primitives.- Specified by:
isPolyline
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
true
if the path does not contain curve primitives,false
otherwise.
-
isCurved
@Pure public boolean isCurved()
Description copied from interface:PathIterator2D
Replies the path contains a curve.- Specified by:
isCurved
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
true
if the path contains curve primitives,false
otherwise.
-
isPolygon
@Pure public boolean isPolygon()
Description copied from interface:PathIterator2D
Replies the path is composed only by oneMOVE_TO
, a sequence ofLINE_TO
orQUAD_TO
orCURVE_TO
orARC_TO
, and a singleCLOSE
primitives.- Specified by:
isPolygon
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
true
if the path does not contain curve primitives,false
otherwise.
-
isMultiParts
@Pure public boolean isMultiParts()
Description copied from interface:PathIterator2D
Replies the path has multiple parts, i.e. multipleMOVE_TO
are inside. primitives.- Specified by:
isMultiParts
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
true
if the path has multiple move-to primitive,false
otherwise.
-
getGeomFactory
@Pure public GeomFactory2afp<T,?,?,?> getGeomFactory()
Description copied from interface:PathIterator2D
Replies the factory of geometrical elements.- Specified by:
getGeomFactory
in interfacePathIterator2afp<T extends PathElement2afp>
- Specified by:
getGeomFactory
in interfacePathIterator2D<T extends PathElement2afp>
- Returns:
- the factory.
-
-