PathBuilder
-
Cmn
class PathBuilder
PathBuilder provides a fluent API to creates a list of PathNode, used to describe a path.
Summary
Public constructors |
|
|---|---|
|
Cmn
|
Public functions |
||
|---|---|---|
PathBuilder |
arcTo(Add an elliptical arc from the last point to the position ( |
Cmn
|
PathBuilder |
arcToRelative(Add an elliptical arc by adding |
Cmn
|
PathBuilder |
close()Closes the current contour by adding a |
Cmn
|
PathBuilder |
Add a cubic Bézier from the last point to the position ( |
Cmn
|
PathBuilder |
Add a cubic Bézier by adding a |
Cmn
|
PathBuilder |
Add a line from the last point to the position ( |
Cmn
|
PathBuilder |
Add a line from the last point to the position ( |
Cmn
|
PathBuilder |
Add a line from the last point to the position ( |
Cmn
|
PathBuilder |
lineToRelative(dx: Float, dy: Float)Add a line from the last point to the offset ( |
Cmn
|
PathBuilder |
Start a new contour at position ( |
Cmn
|
PathBuilder |
moveToRelative(dx: Float, dy: Float)Start a new contour at the offset ( |
Cmn
|
PathBuilder |
Add a quadratic Bézier from the last point to the position ( |
Cmn
|
PathBuilder |
quadToRelative(dx1: Float, dy1: Float, dx2: Float, dy2: Float)Add a quadratic Bézier by adding a |
Cmn
|
PathBuilder |
reflectiveCurveTo(x1: Float, y1: Float, x2: Float, y2: Float)Add a cubic Bézier from the last point to the position ( |
Cmn
|
PathBuilder |
reflectiveCurveToRelative(dx1: Float, dy1: Float, dx2: Float, dy2: Float)Add a cubic Bézier by adding a |
Cmn
|
PathBuilder |
reflectiveQuadTo(x1: Float, y1: Float)Add a quadratic Bézier from the last point to the position ( |
Cmn
|
PathBuilder |
reflectiveQuadToRelative(dx1: Float, dy1: Float)Add a quadratic Bézier by adding a |
Cmn
|
PathBuilder |
verticalLineTo(y: Float)Add a line from the last point to the position ( |
Cmn
|
PathBuilder |
Add a line from the last point to the position ( |
Cmn
|
Public constructors
Public functions
arcTo
fun arcTo(
horizontalEllipseRadius: Float,
verticalEllipseRadius: Float,
theta: Float,
isMoreThanHalf: Boolean,
isPositiveArc: Boolean,
x1: Float,
y1: Float
): PathBuilder
Add an elliptical arc from the last point to the position (x1, y1) by adding PathNode.ArcTo to nodes. If no contour has been created by calling moveTo first, the origin of the arc is set to (0, 0).
The ellipse is defined by 3 parameters:
-
horizontalEllipseRadiusandverticalEllipseRadiusto define the size of the ellipse -
thetato define the orientation (as an X-axis rotation) of the ellipse
In most situations, there are four arc candidates that can be drawn from the origin to (x1, y1). Which of the arcs is used is influenced by isMoreThanHalf and isPositiveArc.
When isMoreThanHalf is set to true, the added arc will be chosen amongst the two candidates that represent an arc sweep greater than or equal to 180 degrees.
When isPositiveArc is set to true, the added arc will be chosen amongst the two candidates with a positive-angle direction (counter-clockwise)
| Parameters | |
|---|---|
horizontalEllipseRadius: Float |
The horizontal radius of the ellipse |
verticalEllipseRadius: Float |
The vertical radius of the ellipse |
theta: Float |
The rotation of the ellipse around the X-axis, in degrees |
isMoreThanHalf: Boolean |
Defines whether to use an arc candidate with a sweep greater than or equal to 180 degrees |
isPositiveArc: Boolean |
Defines whether to use an arc candidate that's counter-clockwise or not |
x1: Float |
The x coordinate of the end point of the arc |
y1: Float |
The y coordinate of the end point of the arc |
arcToRelative
fun arcToRelative(
a: Float,
b: Float,
theta: Float,
isMoreThanHalf: Boolean,
isPositiveArc: Boolean,
dx1: Float,
dy1: Float
): PathBuilder
Add an elliptical arc by adding PathNode.RelativeArcTo to nodes. If no contour has been created by calling moveTo first, the origin of the arc is set to (0, 0). The arc Bézier end point is defined by an offset relative to the last point.
The ellipse is defined by 3 parameters:
-
thetato define the orientation (as an X-axis rotation) of the ellipse
In most situations, there are four arc candidates that can be drawn from the origin to the end point. Which of the arcs is used is influenced by isMoreThanHalf and isPositiveArc.
When isMoreThanHalf is set to true, the added arc will be chosen amongst the two candidates that represent an arc sweep greater than or equal to 180 degrees.
When isPositiveArc is set to true, the added arc will be chosen amongst the two candidates with a positive-angle direction (counter-clockwise)
| Parameters | |
|---|---|
a: Float |
The horizontal radius of the ellipse |
b: Float |
The vertical radius of the ellipse |
theta: Float |
The rotation of the ellipse around the X-axis, in degrees |
isMoreThanHalf: Boolean |
Defines whether to use an arc candidate with a sweep greater than or equal to 180 degrees |
isPositiveArc: Boolean |
Defines whether to use an arc candidate that's counter-clockwise or not |
dx1: Float |
The x offset of the end point of the arc, relative to the last path position |
dy1: Float |
The y offset of the end point of the arc, relative to the last path position |
curveTo
fun curveTo(x1: Float, y1: Float, x2: Float, y2: Float, x3: Float, y3: Float): PathBuilder
Add a cubic Bézier from the last point to the position (x3, y3), approaching the control points (x1, y1) and (x2, y2), by adding a PathNode.CurveTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0).
| Parameters | |
|---|---|
x1: Float |
The x coordinate of the first control point of the cubic curve |
y1: Float |
The y coordinate of the first control point of the cubic curve |
x2: Float |
The x coordinate of the second control point of the cubic curve |
y2: Float |
The y coordinate of the second control point of the cubic curve |
x3: Float |
The x coordinate of the end point of the cubic curve |
y3: Float |
The y coordinate of the end point of the cubic curve |
curveToRelative
fun curveToRelative(
dx1: Float,
dy1: Float,
dx2: Float,
dy2: Float,
dx3: Float,
dy3: Float
): PathBuilder
Add a cubic Bézier by adding a PathNode.CurveTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0). The cubic Bézier control and end points are defined by offsets relative to the last point.
| Parameters | |
|---|---|
dx1: Float |
The x offset of the first control point of the cubic curve, relative to the last path position |
dy1: Float |
The y offset of the first control point of the cubic curve, relative to the last path position |
dx2: Float |
The x offset of the second control point of the cubic curve, relative to the last path position |
dy2: Float |
The y offset of the second control point of the cubic curve, relative to the last path position |
dx3: Float |
The x offset of the end point of the cubic curve, relative to the last path position |
dy3: Float |
The y offset of the end point of the cubic curve, relative to the last path position |
horizontalLineTo
fun horizontalLineTo(x: Float): PathBuilder
Add a line from the last point to the position (x, oy), where oy is the y coordinate of the last point, by adding a PathNode.HorizontalTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
| Parameters | |
|---|---|
x: Float |
The x coordinate of the end of the line |
horizontalLineToRelative
fun horizontalLineToRelative(dx: Float): PathBuilder
Add a line from the last point to the position (dx + ox, oy), where ox and oy are the x and y coordinates of the last point, by adding a PathNode.RelativeHorizontalTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
| Parameters | |
|---|---|
dx: Float |
The x offset of the end of the line, relative to the last path position |
lineTo
fun lineTo(x: Float, y: Float): PathBuilder
Add a line from the last point to the position (x, y) by adding a PathNode.LineTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
lineToRelative
fun lineToRelative(dx: Float, dy: Float): PathBuilder
Add a line from the last point to the offset (dx, dy) relative to the last point by adding a PathNode.RelativeLineTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
moveTo
fun moveTo(x: Float, y: Float): PathBuilder
Start a new contour at position (x, y) by adding a PathNode.MoveTo to nodes.
moveToRelative
fun moveToRelative(dx: Float, dy: Float): PathBuilder
Start a new contour at the offset (dx, dy) relative to the last path position by adding a PathNode.RelativeMoveTo to nodes.
quadTo
fun quadTo(x1: Float, y1: Float, x2: Float, y2: Float): PathBuilder
Add a quadratic Bézier from the last point to the position (x2, y2), approaching the control point (x1, y1), by adding a PathNode.QuadTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0).
quadToRelative
fun quadToRelative(dx1: Float, dy1: Float, dx2: Float, dy2: Float): PathBuilder
Add a quadratic Bézier by adding a PathNode.RelativeQuadTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0). The control point and end point of the curve are defined by offsets relative to the last point.
| Parameters | |
|---|---|
dx1: Float |
The x offset of the control point of the quadratic curve, relative to the last path position |
dy1: Float |
The y offset of the control point of the quadratic curve, relative to the last path position |
dx2: Float |
The x offset of the end point of the quadratic curve, relative to the last path position |
dy2: Float |
The y offset of the end point of the quadratic curve, relative to the last path position |
reflectiveCurveTo
fun reflectiveCurveTo(x1: Float, y1: Float, x2: Float, y2: Float): PathBuilder
Add a cubic Bézier from the last point to the position (x2, y2). The first control point is the reflection of the second control point of the previous command. If there is no previous command or the previous command is not a cubic Bézier, the first control point is set to the last path position. The second control point is defined by (x1, y1). Calling this method adds a PathNode.ReflectiveCurveTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0).
reflectiveCurveToRelative
fun reflectiveCurveToRelative(dx1: Float, dy1: Float, dx2: Float, dy2: Float): PathBuilder
Add a cubic Bézier by adding a PathNode.RelativeReflectiveCurveTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0). The cubic Bézier second control point and end points are defined by offsets relative to the last point. The reflective nature of the curve is described in reflectiveCurveTo.
| Parameters | |
|---|---|
dx1: Float |
The x offset of the second control point of the cubic curve, relative to the last path position |
dy1: Float |
The y offset of the second control point of the cubic curve, relative to the last path position |
dx2: Float |
The x offset of the end point of the cubic curve, relative to the last path position |
dy2: Float |
The y offset of the end point of the cubic curve, relative to the last path position |
reflectiveQuadTo
fun reflectiveQuadTo(x1: Float, y1: Float): PathBuilder
Add a quadratic Bézier from the last point to the position (x1, y1). The control point is the reflection of the control point of the previous command. If there is no previous command or the previous command is not a quadratic Bézier, the control point is set to the last path position. Calling this method adds a PathNode.ReflectiveQuadTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0).
reflectiveQuadToRelative
fun reflectiveQuadToRelative(dx1: Float, dy1: Float): PathBuilder
Add a quadratic Bézier by adding a PathNode.RelativeReflectiveQuadTo to nodes. If no contour has been created by calling moveTo first, the origin of the curve is set to (0, 0). The quadratic Bézier end point is defined by an offset relative to the last point. The reflective nature of the curve is described in reflectiveQuadTo.
verticalLineTo
fun verticalLineTo(y: Float): PathBuilder
Add a line from the last point to the position (ox, y), where ox is the x coordinate of the last point, by adding a PathNode.VerticalTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
| Parameters | |
|---|---|
y: Float |
The y coordinate of the end of the line |
verticalLineToRelative
fun verticalLineToRelative(dy: Float): PathBuilder
Add a line from the last point to the position (ox, dy + oy), where ox and oy are the x and y coordinates of the last point, by adding a PathNode.RelativeVerticalTo to nodes. If no contour has been created by calling moveTo first, the origin of the line is set to (0, 0).
| Parameters | |
|---|---|
dy: Float |
The y offset of the end of the line, relative to the last path position |