Interface GeomFactory2ai<E extends PathElement2ai,P extends Point2D<? super P,? super V>,V extends Vector2D<? super V,? super P>,B extends Rectangle2ai<?,?,E,P,V,B>>
-
- Type Parameters:
E
- the types of the path elements.P
- is the type of the points.V
- is the type of the vectors.B
- is the type of the bounding boxes.
- All Superinterfaces:
GeomFactory2D<V,P>
,GeomFactoryBase
- All Known Implementing Classes:
GeomFactory2i
,GeomFactory2ifx
public interface GeomFactory2ai<E extends PathElement2ai,P extends Point2D<? super P,? super V>,V extends Vector2D<? super V,? super P>,B extends Rectangle2ai<?,?,E,P,V,B>> extends GeomFactory2D<V,P>
Factory of geometrical elements.- 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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default PathIterator2ai<?>
convert(PathIterator2D<?> iterator)
Replies thePathIterator2ai
that is corresponding to the given element.E
newArcPathElement(int startX, int startY, int targetX, int targetY, int radiusX, int radiusY, double xAxisRotation, boolean largeArcFlag, boolean sweepFlag)
Create an arc-to path element to the given point by following an ellipse arc.B
newBox()
Create an empty bounding box.B
newBox(int x, int y, int width, int height)
Create a bounding box.E
newClosePathElement(int lastPointX, int lastPointy, int firstPointX, int firstPointY)
Create a close path element.E
newCurvePathElement(int startX, int startY, int controlX, int controlY, int targetX, int targetY)
Create a quadratic curve path element to the given point through the given control point.E
newCurvePathElement(int startX, int startY, int controlX1, int controlY1, int controlX2, int controlY2, int targetX, int targetY)
Create a curve path element to the given point through the two given control points.E
newLinePathElement(int startX, int startY, int targetX, int targetY)
Create a line-to path element to the given point.E
newMovePathElement(int x, int y)
Create a move-to path element to the given point.MultiShape2ai<?,?,?,E,P,V,B>
newMultiShape()
Create an empty bounding box.Path2ai<?,?,E,P,V,B>
newPath(PathWindingRule rule)
Create an empty path with the given winding rule.Segment2ai<?,?,E,P,V,B>
newSegment(int x1, int y1, int x2, int y2)
Create a segment.-
Methods inherited from interface org.arakhne.afc.math.geometry.d2.GeomFactory2D
convertToPoint, convertToPoint, convertToVector, convertToVector, newPoint, newPoint, newPoint, newVector, newVector, newVector
-
Methods inherited from interface org.arakhne.afc.math.geometry.GeomFactoryBase
getSplineApproximationRatio, setSplineApproximationRatio
-
-
-
-
Method Detail
-
newPath
Path2ai<?,?,E,P,V,B> newPath(PathWindingRule rule)
Create an empty path with the given winding rule.- Parameters:
rule
- the rule.- Returns:
- the new path.
-
newSegment
Segment2ai<?,?,E,P,V,B> newSegment(int x1, int y1, int x2, int y2)
Create a segment.- Parameters:
x1
- the x coordinate of the first point of the segment.y1
- the y coordinate of the first point of the segment.x2
- the x coordinate of the second point of the segment.y2
- the y coordinate of the second point of the segment.- Returns:
- the new segment.
-
newBox
B newBox()
Create an empty bounding box.- Returns:
- the box.
-
newBox
B newBox(int x, int y, int width, int height)
Create a bounding box.- Parameters:
x
- the x coordinate of the lower corner.y
- the y coordinate of the lower corner.width
- the width of the box.height
- the height of the box.- Returns:
- the box.
-
newMultiShape
MultiShape2ai<?,?,?,E,P,V,B> newMultiShape()
Create an empty bounding box.- Returns:
- the box.
-
newMovePathElement
E newMovePathElement(int x, int y)
Create a move-to path element to the given point.- Parameters:
x
- x coordinate of the target point.y
- y coordinate of the target point.- Returns:
- the path element.
-
newLinePathElement
E newLinePathElement(int startX, int startY, int targetX, int targetY)
Create a line-to path element to the given point.- Parameters:
startX
- x coordinate of the start point.startY
- y coordinate of the start point.targetX
- x coordinate of the target point.targetY
- y coordinate of the target point.- Returns:
- the path element.
-
newClosePathElement
E newClosePathElement(int lastPointX, int lastPointy, int firstPointX, int firstPointY)
Create a close path element.- Parameters:
lastPointX
- x coordinate of the last point on the pathlastPointy
- y coordinate of the last point on the pathfirstPointX
- x coordinate of the first point on the path.firstPointY
- y coordinate of the first point on the path.- Returns:
- the path element.
-
newCurvePathElement
E newCurvePathElement(int startX, int startY, int controlX, int controlY, int targetX, int targetY)
Create a quadratic curve path element to the given point through the given control point.- Parameters:
startX
- x coordinate of the start point.startY
- y coordinate of the start point.controlX
- x coordinate of the control point.controlY
- y coordinate of the control point.targetX
- x coordinate of the target point.targetY
- y coordinate of the target point.- Returns:
- the path element.
-
newCurvePathElement
E newCurvePathElement(int startX, int startY, int controlX1, int controlY1, int controlX2, int controlY2, int targetX, int targetY)
Create a curve path element to the given point through the two given control points.- Parameters:
startX
- x coordinate of the start point.startY
- y coordinate of the start point.controlX1
- x coordinate of the control point.controlY1
- y coordinate of the control point.controlX2
- x coordinate of the control point.controlY2
- y coordinate of the control point.targetX
- x coordinate of the target point.targetY
- y coordinate of the target point.- Returns:
- the path element.
-
newArcPathElement
E newArcPathElement(int startX, int startY, int targetX, int targetY, int radiusX, int radiusY, double xAxisRotation, boolean largeArcFlag, boolean sweepFlag)
Create an arc-to path element to the given point by following an ellipse arc.- Parameters:
startX
- x coordinate of the start point.startY
- y coordinate of the start point.targetX
- x coordinate of the target point.targetY
- y coordinate of the target point.radiusX
- the X radius of the tilted ellipse.radiusY
- the Y radius of the tilted ellipse.xAxisRotation
- the angle of tilt of the ellipse.largeArcFlag
-true
iff the path will sweep the long way around the ellipse.sweepFlag
-true
iff the path will sweep clockwise around the ellipse.- Returns:
- the path element.
-
convert
default PathIterator2ai<?> convert(PathIterator2D<?> iterator)
Replies thePathIterator2ai
that is corresponding to the given element.If the given element is already a
PathIterator2ai
, returnsthis
.- Parameters:
iterator
- the iterator.- Returns:
- the iterator.
-
-