Add proportional editing to the Path tool
Adds Proportional Editing Mode
Functionality similar to Blenders Proportional Edit tool ported to Graphites 2D implementation.
Alt + P to toggle Proportional Editing mode. Mouse Scroll Up/Down to increase/decrease Influence Radius. Integrate with GRS tool.
Introduces 8 falloff types:
- Constant
- Linear
- Sharp
- Root
- Sphere
- Smooth
- Random
- Inverse Square
Closes #2317
!build
| 📦 Build Complete for 3303996ed8ee42b2542fd07fca34d6764a46c8bd |
|---|
| https://ffda505b.graphite.pages.dev |
A few notes:
- It should work with G/R/S
- It should apply to the original drag starting location's range of points, not a continuously updating range of points (see comparison videos below)
- It should only show the influence circle when dragging, not always when the feature is enabled
https://files.keavon.com/-/MiniatureDisguisedScarletibis/capture_34_.mp4 vs. https://files.keavon.com/-/SlipperyStridentCaiman/capture_35_.mp4
!build
| 📦 Build Complete for 4c15feab6cb28d742e802d710642ce2b8010c7cd |
|---|
| https://8e2c8c2e.graphite.pages.dev |
Hi, Still working on the integration with transformation.rs for the GRS functionality.
!build
| 📦 Build Complete for d60f6ea295be4f621e87ffb301f94ebcfb98aaed |
|---|
| https://550fd3ac.graphite.pages.dev |
!build
| 📦 Build Complete for b35d2a1cf3cb8a35582d4e7bcaad78cd50e725b3 |
|---|
| https://86f25568.graphite.pages.dev |
!build
| 📦 Build Complete for f8a61c69e7f00b80c1019eadc379f99b432dc904 |
|---|
| https://28714f29.graphite.pages.dev |
!build
| 📦 Build Complete for 9e9effbb2c27d1ed8351ba93416d03e925456060 |
|---|
| https://22249c5c.graphite.pages.dev |
!build
| 📦 Build Complete for 075768b4397243b3e79fcff78599f6e07d0f9d9a |
|---|
| https://73457d87.graphite.pages.dev |
Outstanding issues as communicated in Discord:
-
[ ] With rotation, points seem to converge inwards:
https://github.com/user-attachments/assets/a1e03a44-45b5-4fd7-8098-44fbb6e68902
https://github.com/user-attachments/assets/73368523-fb99-4053-8afd-9ccae69f4ea8
-
[ ] Dragging a point with the Path tool, as opposed to using G/R/S, is pretty broken:
https://github.com/user-attachments/assets/85aca12f-46da-4245-a2e6-2e4b6a37f322
-
[ ] Performance really doesn't scale well, it gets super sluggish with a grid like in the video above
-
[ ] Your PR adds a lot of lines of code. I'll need you to break out most of the functionality into its own file dedicated to proportional editing, since this is too much specialized behavior in the path tool.
Hi, will start by restructuring the code into independent files first.