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
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
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
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
Dennis Kobert
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
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
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
0HyperCube
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
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
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
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
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
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
e868bf9532
Fix path tool neighbours for normal snapping ( #1570 )
2024-01-13 16:08:34 -08:00
0HyperCube
47b3355950
Remove FillType::None for the fill node ( #1572 )
...
* Remove FillType::None for the fill node
* Fix demo art
2024-01-13 15:52:10 -08:00
0HyperCube
e0adf1040f
Fix graph UI not rerendering ( #1568 )
2024-01-13 16:25:08 +00:00
0HyperCube
bf0ec2c9c8
Snapping improvements ( #1567 )
2024-01-13 08:10:24 -08:00
0HyperCube
456ca170a4
Layer and grid snapping systems ( #1521 )
...
* Grid overlays
* Rectangle tool basic snapping
* Fix bezier demos
* Fix bézier crate tests
* Constrained snapping for circle & shape tool
* Line tool snapping
* Pen tool snapping
* Path tool snapping
* Snapping whilst dragging layers (not constrained)
* Constrained drag
* Resize snapping
* Normal and tangent
* Cleanup
* Grid snapping
* Grid snapping
* Fix imports
* Fix bug in artboard tool
* Fix hang on 0 size grid spacing
* Fix NaN when scaling
* Polishing
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-01-13 14:32:10 +00:00
Keavon Chambers
78a1bb17cd
Move selected node list from DocumentMetadata to the document ( #1565 )
2024-01-13 04:52:47 -08:00
Keavon Chambers
aab0fcf84c
Update graph UI and improve simplicity and robustness of sending graph and layer panel updates ( #1564 )
...
* WIP
* Fix loading the structure of layers
* Fix broken indents
* Remove debugging stuff
* Fix displaying errors and node graph UI fixes/improvements
* Fix compilation failure
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-01-13 04:15:36 -08:00
0HyperCube
c14c6fbe93
Fix text tool broken by #1543 ( #1555 )
...
Text tool setting font as f32
2024-01-07 13:45:32 +00:00
0hypercube
cd61daf869
Fix issue with pasting an image in the centre
2024-01-07 05:16:01 -08:00
Keavon Chambers
7998947202
Remove GRAPHITE_DOCUMENT_VERSION
2024-01-06 17:25:05 -08:00
Keavon Chambers
121c1d2b9d
Sample Points node: employ caching and deduplication ( #1546 )
...
Sample Points node: split out expensive computation so it can be deduped
2024-01-06 16:07:45 -08:00
Keavon Chambers
c7fd9cfc21
New demo artwork: Procedural String Lights
2024-01-05 15:16:48 -08:00
Keavon Chambers
b3e4caec1a
Rename 'Resample Points' to 'Sample Points'
2024-01-05 05:24:16 -08:00
Dennis Kobert
6bfb2bf344
Change number inputs to be f32 instead of f64 for most nodes ( #1543 )
2024-01-05 13:13:26 +00:00
Keavon Chambers
ed82c5f20f
Copy to Points node: add Start/Stop Offset and Adaptive Spacing parameters
2024-01-03 06:11:42 -08:00
Keavon Chambers
1af6252f2d
Redesign the pivot overlay to a yellow crosshair
2023-12-30 18:34:51 -08:00
Keavon Chambers
134c10b543
Change default Text tool font to Cabin
2023-12-30 14:51:20 -08:00
Keavon Chambers
1cc23320a5
Hide the Cull node by integrating it into all generator nodes ( #1538 )
...
* Hide the Cull node by integrating it into all generator nodes
* Remove internal Cull node from Mandelbrot
2023-12-30 12:28:06 -08:00
Dennis Kobert
0e49388312
Make CopyToPoints node resolution aware ( #1536 )
...
* Make CopyToPoints node resolution aware
* Add unfinished code review as todo comment
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-30 11:56:50 +00:00
0HyperCube
947a131a4b
Add graph type error diagnostics to the UI ( #1535 )
...
* Fontend input types
* Fix index of errors / types
* Bug fixes, styling improvements, and code review
* Improvements to the error box
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-29 08:38:45 +00:00
Keavon Chambers
96b5d7b520
Many subtle improvements to the UI design system ( #1537 )
2023-12-28 04:35:20 -08:00
Keavon Chambers
34f952bad1
Convert u64 IDs to newtypes ( #1532 )
2023-12-22 03:24:13 -08:00
Keavon Chambers
7bfe0ce55b
Retire layer paths used throughout the code ( #1531 )
...
* Part 1
* Part 2
* Part 3
* Part 4
* Part 5
* Part 6
* Part 7
* Part 8
2023-12-21 19:32:46 -08:00
Keavon Chambers
5c7e04a725
Additional clean up and bug fixes after migrating document-legacy
2023-12-20 18:43:32 -08:00
0HyperCube
4733134b22
Fix serialising document ( #1526 )
...
* Fix serialising document
* Remove unused import
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-20 22:58:04 +00:00
Keavon Chambers
92203f3576
Remove the whole document-legacy crate ( #1524 )
...
Remove the whole document-legacy crate
Closes #1520
2023-12-20 05:45:54 -08:00
Keavon Chambers
dcd38f2e4c
Remove all references to legacy layers ( #1523 )
...
* Remove visible field from LegacyLayer
* Remove LegacyLayer wrapper around LegacyLayerType
* Remove FolderLegacyLayer and LayerLegacyLayer wrappers around their data
* Remove legacy layers
2023-12-19 20:50:45 -08:00
Keavon Chambers
9a7d7de8fa
Remove most of document-legacy ( #1519 )
...
* Remove boolean ops and unused doc-legacy Operations
* Remove Shape legacy layers
* Remove legacy layer Properties panel code
* Remove additional unused doc-legacy Operations
* Removed unused rendering-related legacy-layer code
* Upgrade dep so CI builds
* Remove various additional unused functions and messages
* Remove the LayerData trait
* Remove RenderData struct and usages
* Banish the Operations system
* Further removals
2023-12-19 04:36:19 -08:00
0HyperCube
c42d030f18
New overlay system ( #1516 )
...
* Port gradient tool overlays
* Fix tests
* Text tool
* Artboard tool and some of select tool
* Port select tool drawing box
* Pen and path tool
* Remove overlays document
* Show the overlay refactor as done on the website roadmap
* Select tool bounds in layer space (first layer)
* Code review and fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-12-18 11:17:43 +00:00