sheaf
a9adcba8eb
fix some errors in polynomial code
2021-02-26 01:52:52 +01:00
sheaf
c6694e4e2f
fix bug in reverseSpline
2021-02-25 14:04:54 +01:00
sheaf
212ac4fded
use STRefs to hold cached outline data
2021-02-24 22:52:26 +01:00
sheaf
c1cae2b69f
compute outline data concurrently
2021-02-23 20:58:53 +01:00
sheaf
b32499cc68
GHC 9.0 compatibility
2021-02-23 13:16:26 +01:00
sheaf
ab3a12c983
use assertions instead of errors, minor linting
2020-11-15 06:28:48 +01:00
sheaf
393ef6f06e
Implement programmable brush framework
2020-11-12 17:34:46 +00:00
sheaf
58ca70c1bd
optimise root-finding functions
...
* use PrimArray to represent polynomials
* add some strictness annotations
* turn on some optimisation flags
* use quadratic formula for quadratic polynomials
2020-09-19 00:43:07 +02:00
sheaf
eb8e7012aa
curve dragging support
2020-09-18 19:17:40 +02:00
sheaf
40d10b6a8e
add backend implementation of curve dragging
2020-09-17 05:47:53 +02:00
sheaf
2e9c437bd4
fix incorrect brush join computation
...
* also add some curvature calculations (unused at the moment)
2020-09-16 23:56:19 +02:00
sheaf
1c6f751a2b
improve offset tangent calculation
2020-09-15 19:07:22 +02:00
sheaf
808e37b1b3
fix issue with incorrect subdivision in fit
...
* was using `Max ( Arg t sq_dist )` instead of `Max ( Arg sq_dist t )`
2020-09-14 06:28:35 +02:00
sheaf
e3d920573d
add debug mode to visualise fitting algorithm
2020-09-14 06:03:45 +02:00
sheaf
a459467ed0
add parallelism for brush outline computation
...
* also enable varying the fitting parameters (UI todo)
2020-09-07 17:38:22 +02:00
sheaf
031d72a69b
create/move/delete guides: drag from ruler area
2020-09-06 00:40:56 +02:00
sheaf
930fa0ebf9
don't attempt to draw outline when brush is empty
2020-09-05 15:35:01 +02:00
sheaf
db4115c634
hook up menu to actions, + some refactors
2020-09-02 22:49:50 +02:00
sheaf
8a6b4f5391
encode/decode documents to JSON using waargonaut
2020-08-31 22:28:30 +02:00
sheaf
9c5f8b1198
use correct applicative operation for brush lerp
2020-08-31 01:59:14 +02:00
sheaf
dfa446254a
adjust what is rendered in different modes
2020-08-29 20:50:02 +02:00
sheaf
9bde44ed42
fix brush stroke point order for open brush path
...
* also: add some preset brushes
2020-08-29 19:41:07 +02:00
sheaf
62bb1451c5
curve fitting: implement recursive subdivision
2020-08-29 18:26:11 +02:00
sheaf
d4561ad549
use the correct tangent vector for stroke joins
2020-08-29 16:34:51 +02:00
sheaf
3916fe2656
compute and render brush stroke outlines
2020-08-29 03:03:29 +02:00
sheaf
b3941a2834
use hmatrix for least squares solving
...
* this fixes the convergence problems of cubic Bézier curve fitting
2020-08-26 00:41:34 +02:00
sheaf
f16ac3fa93
fitting a cubic Bézier to a sequence of points
...
* WIP: current code exhibits convergence issues / instability
2020-08-24 10:55:39 +02:00
sheaf
e8c77befd6
split out stroke code to library
2020-08-19 23:34:43 +02:00
sheaf
e044b1b06c
stroking: compute offset given tangent vector
2020-08-19 17:41:15 +02:00
sheaf
107b27ebca
implement deletion of selection
2020-08-19 05:28:47 +02:00
sheaf
596821222f
implement drawing with the pen tool
2020-08-17 00:09:16 +02:00
sheaf
91e1431306
add selection UI
2020-08-14 00:47:10 +02:00
sheaf
8d50c92ca9
highlight points for hover/selection
2020-08-13 19:58:54 +02:00
sheaf
2bd6847e78
add root solving code, coalesce event handling
2020-08-12 22:43:47 +02:00
sheaf
07f9981c41
update infobar, mouse focus zoom, module refactor
2020-08-11 00:07:09 +02:00
sheaf
9fc7b8acb3
basic rendering, mousewheel scrolling
2020-08-10 16:38:27 +02:00
sheaf
f224c6b738
add MenuBar
2020-08-05 22:23:16 +02:00
sheaf
c9e702e660
WIP
2020-08-04 08:43:25 +02:00