GraphiteEditor / Graphite

2D vector & raster editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow.
https://graphite.rs
Apache License 2.0
7.31k stars 387 forks source link

Add nondestructive vector editing #1676

Open 0HyperCube opened 3 months ago

0HyperCube commented 3 months ago

Closes #1162, closes #1800, closes #1736, closes #1180, closes #134, closes #1180, closes #999 (addresses the pen tool not the spline tool).

This MR is a very early work in progress.

ToDo:

Keavon commented 3 months ago

!build

github-actions[bot] commented 3 months ago
📦 Build Complete for fa96cbcf84202f007af97f875a04b96c9500a49c
https://45dbc014.graphite.pages.dev
0HyperCube commented 3 months ago

Closing as I can't be bothered to fix the merge conflicts @Keavon.

Keavon commented 3 months ago

@0HyperCube if you're ever blocked by something like merge conflicts, please let me know! I'm here to help make things run smoothly for you in any moment I'm able to help. Merge conflicts are almost always within my range of capabilities, so just give me a ping any moment that you'd rather I deal with them for you and I'd be most happy to. It's my goal to make sure you're happy with the work you're doing, so if there's busywork I can take on for you, please don't hesitate to throw it my way.

0HyperCube commented 3 months ago

non_destructive_spline.webm

Keavon commented 1 week ago

It's amazing to see this all coming together. I looked pretty hard and couldn't find many regressions at all, so I commend you on your thorough testing already. Here are just 3 (or maybe 4) rather minor issues I was able to find.

https://github.com/GraphiteEditor/Graphite/assets/4388688/a03b529f-67f0-4d44-a45a-055cee30d73f

https://github.com/GraphiteEditor/Graphite/assets/4388688/fed4a028-47e0-4799-96c6-7e1f0fad6e55

None of these are important enough to block merging this in the current state, so if you're not feeling down to fix these right now, no worries. This is a massive improvement now that we can modify shapes, even generated ones, non-destructively!

We'll need to update the demo artwork once again before the merge happens. Just so it's part of the Git history in this PR, would you mind also committing the upgrade script you wrote for the record? Thanks!