Simon Bruder
1bd2d3a2a5
u02: Fix warnings by -Wall
...
This actually found one logic bug.
2023-05-20 11:39:26 +02:00
Simon Bruder
2290a6314d
u02/tests: Fix inverted logic in comment
2023-05-16 16:49:22 +02:00
Simon Bruder
085b8fcdb9
u02/tests: Fix edge case for invalid points
2023-05-16 16:49:22 +02:00
Simon Bruder
8f784ccf3e
u02/tests: Fix skipping behaviour
...
When the test runner only tests one case, it exits with a non-zero exit
code should that test invoke a skip (even if there are 1000+ successful
iterations).
This fixes this by falling back to a cheap message to stderr.
2023-05-16 16:49:22 +02:00
Simon Bruder
ad02a06db4
u02/tests: Fix floating point comparison
...
I didn’t really understand what WithinRel and WithinAbs do. Now I know
that for this use case WithinAbs is the better choice.
This also increases the allowed deviance for the average point of all
points of a star, because this would now fail for larger values.
2023-05-16 16:49:22 +02:00
Simon Bruder
d4794e1544
u02/tests: Add average point test for star
2023-05-16 16:49:22 +02:00
Simon Bruder
85e38a358d
u02/tests: Use floats for r/d in circle prop test
...
It does not improve the test’s accuracy, but it seems weird to first
convert the radius to an int and then save the distance as a double.
2023-05-16 16:49:22 +02:00
Simon Bruder
2226fb32af
u02: Implement star tool
2023-05-16 16:49:22 +02:00
Simon Bruder
7e8dbfabea
u02: Implement sweep line tool
2023-05-09 23:50:31 +02:00
Simon Bruder
49cd0f201a
u02/tests: Lower target precision for barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
1f6f079edf
u02: Test edge case for barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
8822dbe7df
u02: Extract slope function
2023-05-09 23:47:47 +02:00
Simon Bruder
7de6c3cae3
u02: Implement sorting for 3 points
2023-05-09 23:47:47 +02:00
Simon Bruder
04527ef711
u02: Implement barycentric coordinates
2023-05-09 23:47:47 +02:00
Simon Bruder
11da9a4d79
u02/tests: Add link to desmos for circle
2023-05-09 23:47:47 +02:00
Simon Bruder
e942c62ad6
u02: Implement bresenham circle tool
2023-05-09 23:47:47 +02:00
Simon Bruder
f81098f259
u02/tests: Use const where possible
2023-05-09 23:47:47 +02:00
Simon Bruder
b780d4b8c4
u02: Implement rectangle tool
2023-05-09 23:47:47 +02:00
Simon Bruder
5a1ba0ca93
u02: Replace fill test to use test shape
2023-05-09 23:47:47 +02:00
Simon Bruder
dfeb329a52
u02: Add property test for equality of fill tools
2023-05-09 23:47:47 +02:00
Simon Bruder
625c257f3f
u02: Implement non recursive fill tool
2023-05-09 23:47:47 +02:00
Simon Bruder
c851767445
u02: Implement recursive fill tool
2023-05-09 23:47:47 +02:00
Simon Bruder
649d5da18a
u02: Implement bresenham line tool
2023-05-09 23:47:47 +02:00
Simon Bruder
240d5435f2
u02: Improve test performance
2023-05-09 23:47:47 +02:00
Simon Bruder
708e501245
u02: Implement DDA line tool
2023-05-09 23:47:46 +02:00
Simon Bruder
fab356c308
u02: Implement transformation to standard case
2023-05-09 23:47:46 +02:00
Simon Bruder
18456541aa
u02: Implement transformation functions
2023-05-09 23:47:46 +02:00