Mohamed Osama and Keavon Chambers
96e52c18eb
Fix external consistency of grouping layers so they don't jump to the top of the hierarchy ( #1627 )
...
* Calculate insert_index when grouping multiple layers
* no message
* Fix wrong commits
* no message
* restore frontend/package-lock.json
* Fix formatting matches
* Code review to make it idiomatic
* remove wrong line
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-28 15:01:23 -08:00
Elbert Ronnie
39401f0be0
Fix point translation bug in Path tool ( #1626 )
...
Fix point translation bug
2024-02-25 14:50:30 +00:00
Keavon Chambers
f652d9096e
Blog post: Graphite internships: announcing participation in GSoC 2024
2024-02-22 02:55:31 -08:00
Keavon Chambers
2437536316
Update GSoC project list and info
2024-02-21 04:48:26 -08:00
Keavon Chambers and Dennis Kobert
a02b162e30
Consolidate and rename Graphene data types, and add many comments ( #1620 )
...
* Document ProtoNodeInput
* More comments
* Comment improvements
* Comment and split ProtoNodeInput::NodeLambda from ProtoNodeInput::Node
* Combine NodeImplementation into DocumentNodeImplementation
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2024-02-20 17:53:04 -08:00
Comeza and Keavon Chambers
dc7de4d973
Save work periodically to reduce loss from crashes ( #1580 )
...
* Add auto saving
* Fix autosave dispatching message but not saving document
* Clamp set_timeout delay
* Auto save all documents instead of only the active
* Add with_editor to simplify code
* Update consts
* Simplify some more
* Fix typo
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-20 03:23:25 +00:00
Keavon Chambers
f265fa693e
Website dev guide fixes for Code Structure page
2024-02-19 00:12:30 -08:00
0HyperCube and Keavon Chambers
229b5dbb20
Use f64 not f32 throughout graph; add Vector2 value node ( #1618 )
...
* Use doubles in graph
* Format .graphite files onto one line
* Rename new node to Vector2
* No primary input
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-18 22:16:37 +00:00
0HyperCube
0e0e347435
Fix multiple dragged nodes snapping back sometimes ( #1619 )
...
Fix dragging a selection of nodes on one axis (in screen pixels) resetting the selection.
Fix dragging on one axis only
2024-02-18 13:56:40 -08:00
0HyperCube and Keavon Chambers
6f6fb3bcd4
Upgrade several Rust dependencies ( #1613 )
...
`specta` from Hypercube's fork commit to latest upstream commit
`wasm-bindgen` 0.2.87 -> 0.2.91
`spirv-std` from 0.9 to not-yet-merged commit in https://github.com/EmbarkStudios/rust-gpu/pull/1115
`wgpu` 0.17 -> 0.19
`winit` 0.28.6 -> 0.29
`vello` and `vello_svg` from latest upstream commit to not-yet-merged commit in https://github.com/linebender/vello/pull/427
`resvg` 0.36.0 -> 0.39
`glam` 0.24 -> 0.25
`rustybuzz` 0.8.0 -> 0.10.0
`js-sys` and `web-sys` 0.3.55 -> 0.3.67
`usvg` 0.36.0 -> 0.39
`spirv` 0.2.0 -> 0.3
* Update a couple of dependencies
* More test fixing…
* Use upstream Specta instead of fork
* Update comments in Cargo.toml
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-17 15:02:41 -08:00
0HyperCube
80bffd39bf
Node graph box selection when dragging ( #1616 )
...
* Node box selection
* Cancel box selection on rmb
2024-02-17 14:24:53 -08:00
Ezbaze
a50b6b0a09
Fix Subtract Node from adding instead of subtracting ( #1614 )
2024-02-17 03:06:21 +00:00
Keavon Chambers
15931d06b1
Hacky performance fix for caching slow nodes in demo artwork until #1607 is done
2024-02-15 16:33:04 -08:00
Keavon Chambers
fc8b41914b
Fix anti-aliasing in overlays by aligning everything with the pixel grid ( #1603 )
2024-02-13 20:47:16 -08:00
Keavon Chambers
b18822b1b4
Improve clarity of some complex CSS logic
2024-02-13 16:48:42 -08:00
Keavon Chambers
7453fe01a3
Finalize GSoC 2024 project idea list
2024-02-11 21:20:00 -08:00
Keavon Chambers
1bf62d92c2
Automatically include all demo artwork in test
2024-02-08 01:15:32 -08:00
Keavon Chambers
9edd9233db
Update website and add student project info
2024-02-06 09:22:26 -08:00
Keavon Chambers
12e16b9a4e
Add Red Dress demo artwork
2024-02-05 14:41:07 -08:00
zhiyuan
e1735ddf84
Fix Select tool's broken undo ( #1597 )
...
Fix select tool undo
2024-02-05 14:40:27 -08:00
Keavon Chambers
7e5069f638
Copy to Points node: Add "Random Scale Bias" parameter
2024-02-05 05:31:28 -08:00
zhiyuan and Keavon Chambers
9530e55ace
Split widget callbacks into update and commit so only the latter adds a history state ( #1584 )
...
* feat: split commit and update layout
* feat: add on_commit callback
* Code review
* fix: refactor
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-05 01:32:15 -08:00
Nikita-str and Keavon Chambers
f25038067e
Path tool: sliding point insertion ( #1581 )
...
* #1578 sliding point works(1st approx)
TODO:
* don't move too close to the side points
* double click works incorrect?
* do we need to jump from segment to segment?
* #1578 disallow move slide point too close to side points
* fix double click + ctrl insertion
* #1578 select insertion point (except `ctrl` case)
* #1578 far depends on line width & more accurate seg finding
* #1578 insert point on most top suitable selected layer
* #1581 draw insertion point by overlay + `Esc` abort
* #1581 sharp stay unchanged on double click
* #1581 fix incorrect handle of scaling
* #1581 `square` selection point & too close in px(instead of magic)
* #1581 bug fix: insertion point on unselection
* #1581 use `color: Option` instead of `SelectionType`
* Some code review, still need to review shape_editor.rs
* #1581 insert sharp point on a straight segment
Also correct insertion on quadratic segments
`ManipulatorGroup::have_handle` have such form because `handle = Some(self.anchor)` often used instead of `handle = None`
* Final code review pass
* Code review pass
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-05 08:45:25 +00:00
zhiyuan and Keavon Chambers
a412a77062
Support for deleting points to break path ( #1593 )
...
* feat: break closed curve
* feat: update hotkeys and handles
* feat: break an open path
* feat: elegantly handle breaking at multi points in a subpath
* feat: handle break at end points
* feat: ctrl+delete to remove segments and break path
* fix: rm unused
* First code review pass
* fix: closed eclipse handles after breaking path
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-04 21:02:09 -08:00
zhiyuan
a4a2680ac4
Freehand tool: Allow extension of existing paths ( #1594 )
...
* feat: extend freehand path
* fix: rm logs
* fix: rename variable
2024-02-04 13:36:25 -08:00
zhiyuan
05b4582cd7
Properly handle pen tool undo and redo ( #1587 )
...
feat: properly handle pen tool undo and redo
2024-02-04 19:23:48 +00:00
0HyperCube and Keavon Chambers
aed30d78b8
Fix floating point error with Poisson-disk points being sampled outside shape ( #1596 )
...
* Check opposite corner
* Commets and test
* Fix compiling
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-04 17:16:16 +00:00
0HyperCube and Keavon Chambers
5f72a6a8a1
Bezier-rs: Use nonzero winding order for Poisson-disk insideness test ( #1590 )
...
* Proper winding order for poisson dist
* More robust cubic solving
* Fix test expecting roots in a different order
* Manual sort impl
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-04 06:05:26 +00:00
Dennis Kobert and Keavon Chambers
349ec5da72
Add MemoizeImpure node and cache image base64 in graph ( #1595 )
...
* Cache base64 representation of images when converting to graphic group
* Fix build
* Fix build again
* Actually fix it this time
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-02-03 23:16:03 +01:00
Keavon Chambers and 0hypercube
8fa46ba63a
Copy to Points node: add scale/rotation randomization parameters ( #1592 )
...
* WIP, transforms broken with rot/scale
* Transform around bounding box centre
* Add units and tooltips
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com >
2024-02-01 12:20:35 -08:00
Keavon Chambers
51d6d4d30e
Remove Cull node from demo artwork, follow-on to #1538
2024-01-28 23:52:01 -08:00
Keavon Chambers
8a6854e55b
Fix long crash stack traces breaking the GitHub URL
2024-01-28 19:25:27 -08:00
Keavon Chambers
6b6accfb91
Add Poisson-disk sampling node and Bezier-rs 0.4 release ( #1586 )
...
* Add Poisson-disk sampling node and Bezier-rs 0.4 release
* Additional optimizations
* More performance optimizations with help from 0Hypercube
* Add comments
2024-01-28 02:25:46 -08:00
Keavon Chambers
a7bf6e2459
Fix triple graph evaluation on Windows by removing hash-based ExecutionRequest dedupe
2024-01-27 16:58:15 -08:00
Keavon Chambers
99c199a8f6
Add dev container configuration
2024-01-24 23:04:00 +00:00
Keavon Chambers
63cf31d7d8
Expand website with better proceduralism explanation and documentation
2024-01-20 04:09:53 -08:00
0HyperCube and Keavon Chambers
208e907fa4
Restore select tool functionality and shallow select mode ( #1583 )
...
* Restore select tool functionality
* UI tweak
* Change all of the things
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-01-18 22:28:45 +00:00
Keavon Chambers
5c9d3c5d75
UI refinements for radio buttons and the Snapping/Grid popovers
2024-01-18 05:03:43 -08:00
0HyperCube
2df329fc0e
Remove old subpath code ( #1582 )
2024-01-17 20:42:38 -08:00
Keavon Chambers
3f76526d6d
Update dependencies and reuse the same usvg version
2024-01-17 20:33:07 -08:00
Keavon Chambers
b4dccb8655
Add a workaround for a Safari rendering bug with floating menus
2024-01-17 00:58:07 -08:00
0HyperCube and Keavon Chambers
002151d9c0
SVG import ( #1579 )
...
* SVG import
* Fix error
* Transforms
* Code review nits
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-01-16 17:42:48 -08:00
Keavon Chambers
8eef96511e
Improve document tilt and reset
2024-01-15 04:05:36 -08:00
Keavon Chambers
d602603d46
Remove unused DocumentIsDirty
2024-01-15 02:51:40 -08:00
0HyperCube and Keavon Chambers
8df59be1d5
Display graph errors in the viewport ( #1577 )
...
* Display graph errors in the viewport
* Polish up the styling
* Clear click targets while graph can't be rendered
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-01-15 06:18:08 +00:00
0HyperCube and Keavon Chambers
484acbcde3
New node: Morph ( #1576 )
...
* Add morph node
* Range slider time parameter, better lerping
* Lerp more fill and stroke parameters
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2024-01-13 23:35:40 -08:00
0HyperCube
768bbe820d
Preserve group IDs in the Spline from Points node ( #1574 )
2024-01-14 00:49:52 +00:00
0HyperCube
c777d4d430
Work around the weird treatment of the primary input ( #1575 )
...
* Work around the weird treatment of the primary input
* take2
2024-01-14 00:35:45 +00:00
0HyperCube
e242ce26a0
Fix circular repeat node without bounding box ( #1571 )
2024-01-14 00:23:13 +00:00
0HyperCube
e868bf9532
Fix path tool neighbours for normal snapping ( #1570 )
2024-01-13 16:08:34 -08:00