sheaf
71f42894f8
pen + brush mode = no op
2024-10-21 10:43:13 +02:00
sheaf
61a33e30d2
proper fix for brush widget action applying to all strokes
2024-10-20 17:49:26 +02:00
sheaf
2e05731ffa
add visible/locked layer icons
2024-10-20 17:49:10 +02:00
sheaf
b0a17c80ec
allow brush widget to modify different strokes
2024-10-20 10:27:29 +02:00
sheaf
3fe46fc029
don't deselect selection after brush widget update
2024-10-19 16:14:33 +02:00
sheaf
5adcb34de6
synchronise brush widget change across selection
2024-10-19 15:51:45 +02:00
sheaf
0223c92a85
allow selection in brush mode
2024-10-19 11:50:25 +02:00
sheaf
53243621b5
implement stroke list popover menu functionality
2024-10-19 11:50:05 +02:00
sheaf
3a7b05d60d
make stroke popover menu appear on right click
2024-10-19 11:49:45 +02:00
sheaf
bcd0b9fb13
add CSS for stroke popover menu
2024-10-17 18:54:15 +02:00
sheaf
60b65a38e1
remove stroke from list stores when deleting all stroke points
2024-10-16 12:41:19 +02:00
sheaf
fea6667114
hacky fix to cusp computation timeout
2024-10-12 16:48:48 +02:00
sheaf
47cf66c5dd
rename recomputeStrokes -> redrawStrokes
2024-10-12 16:48:21 +02:00
sheaf
1a8f4b5f5d
improvements to brush params when changing brush
2024-10-12 15:41:52 +02:00
sheaf
c1d6dd4151
brush list view: first steps
2024-10-09 16:57:08 +02:00
sheaf
b5b29f124a
Farey sum for curve subdivision
2024-09-28 15:45:07 +02:00
sheaf
f7a4b02e90
fix stroke cache issues
2024-09-28 13:07:56 +02:00
sheaf
3886dca483
improvements to draw anchor
2024-09-28 12:10:36 +02:00
sheaf
3d36b39541
fix brush rotation widget
2024-09-28 11:17:33 +02:00
sheaf
a41c6235ae
anchor position is not static
2024-09-28 03:12:23 +02:00
sheaf
66490b87aa
fix draw anchor curve indexing
2024-09-28 01:32:03 +02:00
sheaf
264e04555b
add header to warning dialog
2024-09-28 00:38:32 +02:00
sheaf
23cc439ff2
update list model upon undo/redo
2024-09-27 23:53:33 +02:00
sheaf
24f182feec
add stroke layer view
2024-09-27 23:36:33 +02:00
sheaf
0eb0724dde
Refactors in preparation for stroke hierarchy
2024-09-27 17:21:24 +02:00
sheaf
e2e4ae6bfe
UI: use GTK Window instead of MessageDialog
2024-09-07 11:28:07 +02:00
sheaf
fc2f25cfa6
UI: use GTK4 FileDialog API
2024-09-06 18:48:04 +02:00
sheaf
9ff25a25aa
cleanups
2024-08-29 01:46:50 +02:00
sheaf
7bb28f8c96
brush widget UI: don't allow 0 width or height
2024-05-28 10:36:26 +02:00
sheaf
56939ce01a
GTK 4.14 compatibility
2024-05-28 10:24:47 +02:00
sheaf
300fbf92c0
fixes to brush widget UI
2024-05-25 17:04:08 +02:00
sheaf
1ec2af6dcc
WIP: add brush widget UI
2024-05-21 19:40:22 +02:00
sheaf
63b9703faf
UI tweaks
2024-04-25 21:53:53 +02:00
sheaf
c89fba7fd2
Improve specialisation + add degree computation
2024-04-25 21:53:27 +02:00
sheaf
1338d7ddbe
Improve intervallic rotation computations
...
This commit bakes in a certain kind of representation for brush strokes:
c(t,s) = p(t) + R(theta(t)) b(t,s)
This representation allows us to cancel out some rotation terms when
computing the envelope equation, improving the efficiency of the
cusp-finding methods.
2024-04-20 18:28:41 +02:00
sheaf
55470d1f0e
make cusp-finding algorithm choice more configurable
2024-04-03 18:46:08 +02:00
sheaf
2289468a84
Fixes and restructuring
2024-02-28 17:20:34 +01:00
sheaf
d1b3765335
Split out benchmark for cusp finding
2024-02-23 17:03:28 +01:00
sheaf
b70f7ba133
Add mechanisms to log envelope equation data
2024-02-19 16:46:09 +01:00
sheaf
6b658acedd
Restructure project & update bounds
2024-02-17 13:58:40 +01:00
sheaf
1368825103
improve outline computation using divMod'
2024-01-08 11:31:18 +01:00
sheaf
f10fbd9810
remove traces & minor cleanups
2024-01-06 18:18:14 +01:00
sheaf
326487942e
fix orientation computation
2023-08-30 17:40:47 +02:00
sheaf
92efc4127c
add teardrop shaped brush
2023-07-15 16:40:59 +02:00
sheaf
7eb16b4782
tiny build fixes
2023-06-15 00:39:03 +02:00
sheaf
96aa38b3c3
improve rotations in interval arithmetic
...
Computing a rotation in interval arithmetic can lose tightness.
Instead of computing
a cos phi + b sin phi
which doesn't account for the difference in phase in the two sinusoids,
it is better to use
sqrt (a² + b²) * cos ( phi - atan2(a,b) )
which correctly estimates the maximum amplitude of the sum to be
sqrt(a²+b²) instead of abs(a) + abs(b).
This seems to worsen the performance of the interval Newton method
at the moment, possibly due to the complexity of the new formula,
which involves computing atan(b/a). Further investigation is needed.
2023-05-14 21:38:25 +02:00
sheaf
50d99e1e4b
improve intervallic Bézier evaluation
...
Now we evaluate Bézier curves using an AABB computation. This results
in tighter intervals, which means that the cusp-finding algorithm
is better behaved.
2023-04-25 23:07:18 +02:00
sheaf
7db3cbef33
more work into observability
2023-03-13 22:09:15 +01:00
sheaf
52420a1169
experiment: FMA backend for interval arithmetic
...
also includes the start of a way to observe which equations
are being solved, which should help with improving the performance of
the interval Newton method
2023-03-12 19:15:58 +01:00
sheaf
4cd11fa02f
add export to SVG functionality
2023-02-03 14:16:57 +01:00