Matthias Clasen
9c159cf129
path: Tweak printing a bit more
...
We are dealing with floats here, so using
g_ascii_dtostr isn't really the best.
Update affected tests.
2023-09-17 22:35:33 -04:00
Matthias Clasen
957d494090
contour: Make circles and rounded rects match
...
Make sure that we print the weights in the
same way (as floats).
Update affected tests.
2023-09-17 20:32:32 -04:00
Matthias Clasen
f67c57b1f8
path: Fix parsing rounded rects
...
We were messing up the bottom left corner.
Test included.
2023-09-17 17:01:44 -04:00
Matthias Clasen
ecfc661054
Adapt tests to new path builder behavior
...
Some tests were expecting to get elevated curves
from GskPathBuilder. But they won't, anymore.
2023-09-17 08:53:10 -04:00
Matthias Clasen
f0bd0c3e50
contour: Add more tests for circles
...
Cover the radius 0 case, in particular.
2023-09-16 08:31:52 -04:00
Matthias Clasen
4d71ff6da1
contour: Fixes for circles
...
Make circle contours use 'foreach coordinates' for
its points. This works here, but not for general
conics. As with the other custom contours, avoid
emitting collapsed conics.
2023-09-16 08:27:18 -04:00
Matthias Clasen
6d16776e27
tests: Cosmetics
2023-09-16 08:27:08 -04:00
Matthias Clasen
2dd8e3b0eb
contour: Add more tests for rounded rects
...
This is covering special cases where some
of the curves are omitted.
2023-09-15 16:46:23 -04:00
Matthias Clasen
eb6ca8f39a
contour: Add more tests for rects
...
Spot-check the special cases:
rects with zero height or width.
2023-09-15 16:31:09 -04:00
Matthias Clasen
827bbc0cc1
Change gsk_path_get_closest_point to return distance
...
We already compute it, so lets return it.
Bindings seems fine with this change - they
already return (success, point) as a tuple
anyway.
2023-08-28 11:22:30 -04:00
Matthias Clasen
2e24a9ece4
Make GskPathPoint public
...
The contents are still /*< private >*/, but we
let our tests and the debugger see them, which
helps.
2023-08-28 00:07:50 -04:00
Matthias Clasen
0dbff14555
Allow circles with radius of zero
...
Not very useful, but we allow rects with
width and height of zero, so lets be consistent.
Curvature is infinite for such contours.
Tests included.
2023-08-28 00:07:50 -04:00
Matthias Clasen
0a28a5d53a
Add a rectangle contour
...
Add a contour that optimizes some things for
rectangles. Also add rectangle detection to the
path parser, and add tests similar to what we
have for the other special contours.
2023-08-27 12:36:56 -04:00
Matthias Clasen
ddd4855bbc
Add a test for rectangle segments
2023-08-27 12:36:30 -04:00
Matthias Clasen
78c5aff956
Test special contours harder
...
Check that the start- and endpoint work
as expected and verify that their winding
numbers match the ones of the standard contour,
and are negated when the contour is reversed.
2023-08-27 11:47:40 -04:00
Matthias Clasen
ead88c36ec
path: Add circle tests
2023-08-26 23:42:52 -04:00
Matthias Clasen
46a8f57735
Add tests for path length
2023-08-25 20:16:49 -04:00
Matthias Clasen
2e5639a077
Add a circle test
2023-08-25 20:16:49 -04:00
Matthias Clasen
25e6231a88
path: Switch back to conics
...
Arcs were appealing, but they have a fatal flaw: we can't
split our arcs without changing the ellipse they trace.
That could be fixed by adding an extra parameter, but then
it is no longer any better than conics.
So switch back to conics, which have the advantage that they
are used elsewhere.
2023-08-25 07:33:16 -04:00
Matthias Clasen
e1faf28310
Make curvature api more flexible
...
Add an extra direction argument to get_curvature to
allow picking the limit on either side, for sharp turns.
Update all callers.
2023-08-24 14:32:33 -04:00
Matthias Clasen
0f7b9e686c
Add a rounded rect test
...
This checks that our path-in-fill computations
agree with rounded_rect_contains_point. Sadly,
they don't do that, 100%.
2023-08-23 12:43:52 -04:00
Matthias Clasen
d33ed4f9ab
path: Add elliptical arcs
...
Add a new curve type for elliptical arcs
and use it for rounded rectangles and circles.
We use the 'E' command to represent elliptical
arcs in serialized paths.
2023-08-23 12:43:52 -04:00
Matthias Clasen
87430be658
Fix up a testcase
...
I had gotten the path direction enum mixed up here.
2023-08-14 15:59:45 -04:00
Matthias Clasen
a85ab3585e
Revise gsk_path_point_get_tangent
...
Update the directions enum to allow all four
tangents to be obtained. Add an illustration
to the docs for clarity.
Update all callers.
2023-08-14 14:58:22 -04:00
Matthias Clasen
6ace4b60d8
pathpoint: Revise argument order
...
In order for introspection and documentation to
not be confused, we need to have the GskPathPoint
be the first argument.
Update all callers.
2023-08-14 13:20:34 -04:00
Matthias Clasen
44bc5a139c
Add rounded rects to the tests
2023-08-12 16:09:31 -04:00
Matthias Clasen
83d692e2d3
path: Add tests for gsk_path_builder_add methods
...
Check that they all end the current contour.
Fixes : #6011
2023-08-11 07:24:19 -04:00
Matthias Clasen
421365cfc3
Add more path point tests
2023-08-09 23:55:08 -04:00
Matthias Clasen
59c5b41f3d
Cosmetics
2023-08-09 23:48:50 -04:00
Matthias Clasen
77def95659
Add path fill tests
...
These used to live with the measure tests, but
path_in_fill no longer involves a measure.
2023-08-09 21:50:29 -04:00
Matthias Clasen
2bcc998e90
Add tests for gsk_path_builder_add_segment
...
Test at least some of the special cases:
- start and end point on the same contour
- start and end point on the same segment
- end before start
2023-08-09 07:01:01 -04:00
Matthias Clasen
dbcbf0523b
Add tests for GskPathPoint
...
As always, untested code doesn't work...
2023-08-07 08:33:05 -04:00
Matthias Clasen
785b9541f6
gsk: Add tests for GskPath
2023-08-06 21:01:11 -04:00