- java.lang.Object
-
- org.arakhne.afc.math.geometry.AbstractGeomFactoryBase
-
- org.arakhne.afc.math.geometry.d2.AbstractGeomFactory2D<Vector2d,Point2d>
-
- org.arakhne.afc.math.geometry.d2.d.GeomFactory2d
-
- All Implemented Interfaces:
GeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
,GeomFactory2D<Vector2d,Point2d>
,GeomFactoryBase
public class GeomFactory2d extends AbstractGeomFactory2D<Vector2d,Point2d> implements GeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
Factory of geometrical elements.- Since:
- 13.0
- Version:
- 17.0 2020-01-04 14:41:43
- Author:
- Stéphane GALLAND, Thomas PIOTROWSKI
- Maven Group Id:
- org.arakhne.afc.core
- Maven Artifact Id:
- mathgeom
-
-
Field Summary
Fields Modifier and Type Field Description static GeomFactory2d
SINGLETON
The singleton of the factory.
-
Constructor Summary
Constructors Constructor Description GeomFactory2d()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Point2d
convertToPoint(Point2D<?,?> pt)
Convert the given point if it is not of the right type.Point2d
convertToPoint(Vector2D<?,?> v)
Convert the given vector.Vector2d
convertToVector(Point2D<?,?> pt)
Convert the given point.Vector2d
convertToVector(Vector2D<?,?> v)
Convert the given vector.PathElement2d
newArcPathElement(double startX, double startY, double targetX, double targetY, double radiusX, double radiusY, double xAxisRotation, boolean largeArcFlag, boolean sweepFlag)
Create an arc-to path element to the given point by following an ellipse arc.Rectangle2d
newBox()
Create an empty bounding box.Rectangle2d
newBox(double x, double y, double width, double height)
Create a bounding box.PathElement2d
newClosePathElement(double lastPointX, double lastPointy, double firstPointX, double firstPointY)
Create a close path element.PathElement2d
newCurvePathElement(double startX, double startY, double controlX, double controlY, double targetX, double targetY)
Create a quadratic curve path element to the given point through the given control point.PathElement2d
newCurvePathElement(double startX, double startY, double controlX1, double controlY1, double controlX2, double controlY2, double targetX, double targetY)
Create a curve path element to the given point through the two given control points.PathElement2d
newLinePathElement(double startX, double startY, double targetX, double targetY)
Create a line-to path element to the given point.PathElement2d
newMovePathElement(double x, double y)
Create a move-to path element to the given point.MultiShape2d<?>
newMultiShape()
Create an empty multishape.Path2d
newPath(PathWindingRule rule)
Create an empty path with the given winding rule.Point2d
newPoint()
Create a point.Point2d
newPoint(double x, double y)
Create a point.Point2d
newPoint(int x, int y)
Create a point.Segment2d
newSegment(double x1, double y1, double x2, double y2)
Create a segment.Triangle2d
newTriangle(double x1, double y1, double x2, double y2, double x3, double y3)
Create a triangle.Vector2d
newVector()
Create a vector.Vector2d
newVector(double x, double y)
Create a vector.Vector2d
newVector(int x, int y)
Create a vector.-
Methods inherited from class org.arakhne.afc.math.geometry.AbstractGeomFactoryBase
getGlobalSplineApproximationRatio, getSplineApproximationRatio, setGlobalSplineApproximationRatio, setSplineApproximationRatio
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.arakhne.afc.math.geometry.d2.afp.GeomFactory2afp
convert
-
Methods inherited from interface org.arakhne.afc.math.geometry.GeomFactoryBase
getSplineApproximationRatio, setSplineApproximationRatio
-
-
-
-
Field Detail
-
SINGLETON
public static final GeomFactory2d SINGLETON
The singleton of the factory.
-
-
Method Detail
-
convertToPoint
public Point2d convertToPoint(Point2D<?,?> pt)
Description copied from interface:GeomFactory2D
Convert the given point if it is not of the right type.- Specified by:
convertToPoint
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
pt
- the point to convert.- Returns:
p
if it is of typeP
, or a copy ofp
.
-
convertToPoint
public Point2d convertToPoint(Vector2D<?,?> v)
Description copied from interface:GeomFactory2D
Convert the given vector.- Specified by:
convertToPoint
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
v
- the vector to convert.- Returns:
- the point.
-
convertToVector
public Vector2d convertToVector(Point2D<?,?> pt)
Description copied from interface:GeomFactory2D
Convert the given point.- Specified by:
convertToVector
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
pt
- the point to convert.- Returns:
- the vector.
-
convertToVector
public Vector2d convertToVector(Vector2D<?,?> v)
Description copied from interface:GeomFactory2D
Convert the given vector.- Specified by:
convertToVector
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
v
- the vector to convert.- Returns:
- the vector.
-
newPoint
public Point2d newPoint(double x, double y)
Description copied from interface:GeomFactory2D
Create a point.- Specified by:
newPoint
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
x
- x coordinate of the point.y
- y coordinate of the point.- Returns:
- the point.
-
newPoint
public Point2d newPoint(int x, int y)
Description copied from interface:GeomFactory2D
Create a point.- Specified by:
newPoint
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
x
- x coordinate of the point.y
- y coordinate of the point.- Returns:
- the point.
-
newPoint
public Point2d newPoint()
Description copied from interface:GeomFactory2D
Create a point.- Specified by:
newPoint
in interfaceGeomFactory2D<Vector2d,Point2d>
- Returns:
- the point.
-
newVector
public Vector2d newVector(double x, double y)
Description copied from interface:GeomFactory2D
Create a vector.- Specified by:
newVector
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
x
- x coordinate of the vector.y
- y coordinate of the vector.- Returns:
- the vector.
-
newVector
public Vector2d newVector(int x, int y)
Description copied from interface:GeomFactory2D
Create a vector.- Specified by:
newVector
in interfaceGeomFactory2D<Vector2d,Point2d>
- Parameters:
x
- x coordinate of the vector.y
- y coordinate of the vector.- Returns:
- the vector.
-
newVector
public Vector2d newVector()
Description copied from interface:GeomFactory2D
Create a vector.- Specified by:
newVector
in interfaceGeomFactory2D<Vector2d,Point2d>
- Returns:
- the vector.
-
newPath
public Path2d newPath(PathWindingRule rule)
Description copied from interface:GeomFactory2afp
Create an empty path with the given winding rule.- Specified by:
newPath
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- Parameters:
rule
- the rule.- Returns:
- the new path.
-
newBox
public Rectangle2d newBox()
Description copied from interface:GeomFactory2afp
Create an empty bounding box.- Specified by:
newBox
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- Returns:
- the box.
-
newBox
public Rectangle2d newBox(double x, double y, double width, double height)
Description copied from interface:GeomFactory2afp
Create a bounding box.- Specified by:
newBox
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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.
-
newMovePathElement
public PathElement2d newMovePathElement(double x, double y)
Description copied from interface:GeomFactory2afp
Create a move-to path element to the given point.- Specified by:
newMovePathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- Parameters:
x
- x coordinate of the target point.y
- y coordinate of the target point.- Returns:
- the path element.
-
newLinePathElement
public PathElement2d newLinePathElement(double startX, double startY, double targetX, double targetY)
Description copied from interface:GeomFactory2afp
Create a line-to path element to the given point.- Specified by:
newLinePathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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
public PathElement2d newClosePathElement(double lastPointX, double lastPointy, double firstPointX, double firstPointY)
Description copied from interface:GeomFactory2afp
Create a close path element.- Specified by:
newClosePathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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
public PathElement2d newCurvePathElement(double startX, double startY, double controlX, double controlY, double targetX, double targetY)
Description copied from interface:GeomFactory2afp
Create a quadratic curve path element to the given point through the given control point.- Specified by:
newCurvePathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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
public PathElement2d newCurvePathElement(double startX, double startY, double controlX1, double controlY1, double controlX2, double controlY2, double targetX, double targetY)
Description copied from interface:GeomFactory2afp
Create a curve path element to the given point through the two given control points.- Specified by:
newCurvePathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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
public PathElement2d newArcPathElement(double startX, double startY, double targetX, double targetY, double radiusX, double radiusY, double xAxisRotation, boolean largeArcFlag, boolean sweepFlag)
Description copied from interface:GeomFactory2afp
Create an arc-to path element to the given point by following an ellipse arc.- Specified by:
newArcPathElement
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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.
-
newTriangle
public Triangle2d newTriangle(double x1, double y1, double x2, double y2, double x3, double y3)
Description copied from interface:GeomFactory2afp
Create a triangle.- Specified by:
newTriangle
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- Parameters:
x1
- the x coordinate of the first point of the triangle.y1
- the y coordinate of the first point of the triangle.x2
- the x coordinate of the second point of the triangle.y2
- the y coordinate of the second point of the triangle.x3
- the x coordinate of the third point of the triangle.y3
- the y coordinate of the third point of the triangle.- Returns:
- the new triangle.
-
newSegment
public Segment2d newSegment(double x1, double y1, double x2, double y2)
Description copied from interface:GeomFactory2afp
Create a segment.- Specified by:
newSegment
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- 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.
-
newMultiShape
public MultiShape2d<?> newMultiShape()
Description copied from interface:GeomFactory2afp
Create an empty multishape.- Specified by:
newMultiShape
in interfaceGeomFactory2afp<PathElement2d,Point2d,Vector2d,Rectangle2d>
- Returns:
- the new multishape.
-
-