Gsk.PathBuilder¶
Fields¶
None
Methods¶
class |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Details¶
- class Gsk.PathBuilder¶
An auxiliary object for constructing
GskPath
objects.A path is constructed like this:
GskPath * construct_path (void) { GskPathBuilder *builder; builder = gsk_path_builder_new (); // add contours to the path here return gsk_path_builder_free_to_path (builder);
Adding contours to the path can be done in two ways. The easiest option is to use the
gsk_path_builder_add_*
group of functions that add predefined contours to the current path, either common shapes like [method`Gsk`.PathBuilder.add_circle] or by adding from other paths like [method`Gsk`.PathBuilder.add_path].The
gsk_path_builder_add_*
methods always add complete contours, and do not use or modify the current point.The other option is to define each line and curve manually with the
gsk_path_builder_*_to
group of functions. You start with a call to [method`Gsk`.PathBuilder.move_to] to set the starting point and then use multiple calls to any of the drawing functions to move the pen along the plane. Once you are done, you can call [method`Gsk`.PathBuilder.close] to close the path by connecting it back with a line to the starting point.This is similar to how paths are drawn in Cairo.
Note that
GskPathBuilder
will reduce the degree of added Bézier curves as much as possible, to simplify rendering.New in version 4.14.
- classmethod new()¶
- Returns:
a new
GskPathBuilder
- Return type:
Create a new
GskPathBuilder
object.The resulting builder would create an empty
GskPath
. Use addition functions to add types to it.New in version 4.14.
- add_cairo_path(path)¶
- Parameters:
path (
cairo.Path
) – a path
Adds a Cairo path to the builder.
You can use
cairo.Context.copy_path
() to access the path from a Cairo context.New in version 4.14.
- add_circle(center, radius)¶
- Parameters:
center (
Graphene.Point
) – the center of the circleradius (
float
) – the radius of the circle
Adds a circle as a new contour.
The path is going around the circle in clockwise direction.
If radius is zero, the contour will be a closed point.
New in version 4.14.
- add_layout(layout)¶
- Parameters:
layout (
Pango.Layout
) – the pango layout to add
Adds the outlines for the glyphs in layout to the builder.
New in version 4.14.
- add_path(path)¶
- Parameters:
path (
Gsk.Path
) – the path to append
Appends all of path to the builder.
New in version 4.14.
- add_rect(rect)¶
- Parameters:
rect (
Graphene.Rect
) – the rectangle to create a path for
Adds a rectangle as a new contour.
The path is going around the rectangle in clockwise direction.
If the the width or height are 0, the path will be a closed horizontal or vertical line. If both are 0, it’ll be a closed dot.
New in version 4.14.
- add_reverse_path(path)¶
- Parameters:
path (
Gsk.Path
) – the path to append
Appends all of path to the builder, in reverse order.
New in version 4.14.
- add_rounded_rect(rect)¶
- Parameters:
rect (
Gsk.RoundedRect
) – the rounded rect
Adds a rounded rectangle as a new contour.
The path is going around the rectangle in clockwise direction.
New in version 4.14.
- add_segment(path, start, end)¶
- Parameters:
path (
Gsk.Path
) – the path to take the segment tostart (
Gsk.PathPoint
) – the point on path to start atend (
Gsk.PathPoint
) – the point on path to end at
Adds a segment of a path to the builder.
If start is equal to or after end, the path will first add the segment from start to the end of the path, and then add the segment from the beginning to end. If the path is closed, these segments will be connected.
Note that this method always adds a path with the given start point and end point. To add a closed path, use [method`Gsk`.PathBuilder.add_path].
New in version 4.14.
- arc_to(x1, y1, x2, y2)¶
- Parameters:
Adds an elliptical arc from the current point to x2, y2 with x1, y1 determining the tangent directions.
After this, x2, y2 will be the new current point.
Note: Two points and their tangents do not determine a unique ellipse, so GSK just picks one. If you need more precise control, use [method`Gsk`.PathBuilder.conic_to] or [method`Gsk`.PathBuilder.svg_arc_to].
<picture> <source srcset=”arc-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Arc To” src=”arc-light.png”> </picture>
New in version 4.14.
- close()¶
Ends the current contour with a line back to the start point.
Note that this is different from calling [method`Gsk`.PathBuilder.line_to] with the start point in that the contour will be closed. A closed contour behaves differently from an open one. When stroking, its start and end point are considered connected, so they will be joined via the line join, and not ended with line caps.
New in version 4.14.
- conic_to(x1, y1, x2, y2, weight)¶
- Parameters:
Adds a conic curve from the current point to x2, y2 with the given weight and x1, y1 as the control point.
The weight determines how strongly the curve is pulled towards the control point. A conic with weight 1 is identical to a quadratic Bézier curve with the same points.
Conic curves can be used to draw ellipses and circles. They are also known as rational quadratic Bézier curves.
After this, x2, y2 will be the new current point.
<picture> <source srcset=”conic-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Conic To” src=”conic-light.png”> </picture>
New in version 4.14.
- cubic_to(x1, y1, x2, y2, x3, y3)¶
- Parameters:
Adds a cubic Bézier curve from the current point to x3, y3 with x1, y1 and x2, y2 as the control points.
After this, x3, y3 will be the new current point.
<picture> <source srcset=”cubic-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Cubic To” src=”cubic-light.png”> </picture>
New in version 4.14.
- get_current_point()¶
- Returns:
the current point
- Return type:
Gets the current point.
The current point is used for relative drawing commands and updated after every operation.
When the builder is created, the default current point is set to
0, 0
. Note that this is different from cairo, which starts out without a current point.New in version 4.14.
- html_arc_to(x1, y1, x2, y2, radius)¶
- Parameters:
Implements arc-to according to the HTML Canvas spec.
A convenience function that implements the HTML arc_to functionality.
After this, the current point will be the point where the circle with the given radius touches the line from x1, y1 to x2, y2.
New in version 4.14.
- line_to(x, y)¶
-
Draws a line from the current point to x, y and makes it the new current point.
<picture> <source srcset=”line-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Line To” src=”line-light.png”> </picture>
New in version 4.14.
- move_to(x, y)¶
-
Starts a new contour by placing the pen at x, y.
If this function is called twice in succession, the first call will result in a contour made up of a single point. The second call will start a new contour.
New in version 4.14.
- quad_to(x1, y1, x2, y2)¶
- Parameters:
Adds a quadratic Bézier curve from the current point to x2, y2 with x1, y1 as the control point.
After this, x2, y2 will be the new current point.
<picture> <source srcset=”quad-dark.png” media=”(prefers-color-scheme: dark)”> <img alt=”Quad To” src=”quad-light.png”> </picture>
New in version 4.14.
- ref()¶
- Returns:
the given path builder with its reference count increased
- Return type:
Acquires a reference on the given builder.
This function is intended primarily for language bindings.
GskPathBuilder
objects should not be kept around.New in version 4.14.
- rel_arc_to(x1, y1, x2, y2)¶
- Parameters:
Adds an elliptical arc from the current point to x2, y2 with x1, y1 determining the tangent directions.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.arc_to].
New in version 4.14.
- rel_conic_to(x1, y1, x2, y2, weight)¶
- Parameters:
Adds a conic curve from the current point to x2, y2 with the given weight and x1, y1 as the control point.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.conic_to].
New in version 4.14.
- rel_cubic_to(x1, y1, x2, y2, x3, y3)¶
- Parameters:
Adds a cubic Bézier curve from the current point to x3, y3 with x1, y1 and x2, y2 as the control points.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.cubic_to].
New in version 4.14.
- rel_html_arc_to(x1, y1, x2, y2, radius)¶
- Parameters:
Implements arc-to according to the HTML Canvas spec.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.html_arc_to].
New in version 4.14.
- rel_line_to(x, y)¶
-
Draws a line from the current point to a point offset from it by x, y and makes it the new current point.
This is the relative version of [method`Gsk`.PathBuilder.line_to].
New in version 4.14.
- rel_move_to(x, y)¶
-
Starts a new contour by placing the pen at x, y relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.move_to].
New in version 4.14.
- rel_quad_to(x1, y1, x2, y2)¶
- Parameters:
Adds a quadratic Bézier curve from the current point to x2, y2 with x1, y1 the control point.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.quad_to].
New in version 4.14.
- rel_svg_arc_to(rx, ry, x_axis_rotation, large_arc, positive_sweep, x, y)¶
- Parameters:
Implements arc-to according to the SVG spec.
All coordinates are given relative to the current point.
This is the relative version of [method`Gsk`.PathBuilder.svg_arc_to].
New in version 4.14.
- svg_arc_to(rx, ry, x_axis_rotation, large_arc, positive_sweep, x, y)¶
- Parameters:
Implements arc-to according to the SVG spec.
A convenience function that implements the SVG arc_to functionality.
After this, x, y will be the new current point.
New in version 4.14.
- to_path()¶
- Returns:
the newly created path with all the contours added to the builder
- Return type:
Creates a new path from the given builder.
The given
GskPathBuilder
is reset once this function returns; you cannot call this function multiple times on the same builder instance.This function is intended primarily for language bindings. C code should use [method`Gsk`.PathBuilder.free_to_path].
New in version 4.14.
- unref()¶
Releases a reference on the given builder.
New in version 4.14.