Keavon Chambers
e28e841e3b
Format demo artwork's nodes in layer chains
2024-08-11 16:22:40 -07:00
adamgerhant
8041b1237c
Fix regressions from network interface PR ( #1906 )
...
* Fix regressions
* Remove unnecessary graph render in box selection
* Improve stack positioning
* Store layer stacks as absolute position
* Improve automatically creating chains
* Improve group selection
* Increase horizontal layer spacing by 1
* Fix export crash and demo artwork
* Improve inserting node onto wire, fix spline crash
* Remove comment
2024-08-07 01:03:12 -07:00
adamgerhant
0dbbabe73e
Add layer node chains, import/export edge connectors, and refactor graph editing to go thru a NodeNetworkInterface ( #1794 )
...
* WIP: NodeNetworkInterface
* Organize ModifyInputsContext to use network interface
* Improve ClickTarget and Position state
* Rework ClickTarget state
* Continue fixing NodeGraphMessageHandler
* Restructure network_metadata
* Final(?) NodeNetworkInterface struct
* Final(??) NodeNetworkInterface
* Final(???) NodeNetworkInterface. Separated persistent and transient data
* Final NodeNetworkInterface data structure. Implemented all basic getters
* Continue migrating functionality to network interface
* Migrate all NodeGraphMessage's to use network interface
* Fix all helper functions in NodeGraphMessageHandler
* Move document metadata to network interface, remove various cached fields
* Move all editor only NodeNetwork implementations to NodeNetworkInterface
* Fix all DocumentNodeDefinitions
* Rework and migrate GraphOperationMessages to network interface
* Continue migration to NodeNetworkInterface
* Save point before merging master
* Fix all errors in network_interface
* 850 -> 160 errors
* Fix all errors :D
* Render default document
* Visualize click targets
* merge conflicts
* Cache transient metadata separately, store entire interface in document history
* Start migration to storing selected nodes for each network
* Remove selected nodes from document message handler
* Move outward wires and all nodes bounding box to transient metadata
* Fix connecting/disconnecting nodes
* Layer stack organization for disconnecting/connecting nodes
* Basic chain locking
* Improve chain positioning
* Add copy/pasting
* Move upstream nodes on shift+drag
* merge conflict fixes
* Improve Graph.svelte code quality
* Final improvements to Graph.svelte
* Fix layer panel
* Performance optimizations
* Bug fixes and derived PTZ
* Chain organization improvement and bug fixes
* Bug fixes, remove all warnings
* Automatic file upgrade
* Final code review
* Fix editor tests
* Fix compile errors
* Remove select tool intersection check when panning
* WIP: Import/Exports
* Fix JS issues
* Finish simplified import/export UI
* Import/Export viewport edge UI
* Remove minimum y bound on import/export ports
* Improve performance while panning graph
* cargo fmt
* Fix CI code build
* Format the demo artwork graph with chains
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: dennis@kobert.dev <dennis@kobert.dev>
2024-08-04 06:47:13 -07:00
Keavon Chambers
a17ed68008
Disable snapping by default as a bug mitigation, and assorted cleanup
2024-07-10 02:34:37 -07:00
James Lindsay
1652c713a6
Add nondestructive vector editing ( #1676 )
...
* Initial vector modify node
* Initial extraction of data from monitor nodes
* Migrate to point id
* Start converting to modify node
* Non destructive spline tool (tout le reste est cassé)
* Fix unconnected modify node
* Fix freehand tool
* Pen tool
* Migrate demo art
* Select points
* Fix the demo artwork
* Fix the X and Y inputs for path tool
* G1 continous toggle
* Delete points
* Fix test
* Insert point
* Improve robustness of handles
* Fix GRS shortcuts on path
* Dragging points
* Fix build
* Preserve opposing handle lengths
* Update demo art and snapping
* Fix polygon tool
* Double click end anchor
* Improve dragging
* Fix text shifting
* Select only connected verts
* Colinear alt
* Cleanup
* Fix imports
* Improve pen tool avoiding handle placement
* Improve disolve
* Remove pivot widget from Transform node properties
* Fix demo art
* Fix bugs
* Re-save demo artwork
* Code review
* Serialize hashmap as tuple vec to enable deserialize_inputs
* Fix migrate
* Add document upgrade function to editor_api.rs
* Finalize document upgrading
* Rename to the Path node
* Remove smoothing from Freehand tool
* Upgrade demo artwork
* Propertly disable raw-rs tests
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Adam <adamgerhant@gmail.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2024-07-05 13:42:40 -07:00
Keavon Chambers
a9a4b5cd19
Move gradient picking into the color picker ( #1778 )
...
* Gradient picker
* Fix up color picker layout CSS problems
* Begin hooking up SpectrumInput for gradient in the ColorPicker
* Working gradient picking on the frontend only
* Plumb FillColorChoice into the backend
* Hook everything else up, just with a weird bug remaining
* Fix some svelty reactivity issues
* Add and remove stops
* Cleanup
* Rename type
* Fill node document format upgrading
* Fix lint
* Polish the color picker UX and fix a bug
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-06-09 22:55:13 -07:00
adamgerhant
6d74abb4de
Node network subgraph editing ( #1750 )
...
* Breadcrumb visualization, nested network consistency, create definitions for Merge internal nodes
* Add index to network inputs, remove imports usage from flatten network
* Replace NodeOutput with NodeInput::Node
* Fully remove imports field, remove unnecessary identity nodes, move Output node to encapsulating network
* Replace previous_outputs with root_node, fix adding artboard/layer to empty network
* Import/Export UI nodes
* Display input/output types dynamically from compiled network
* Add LayerNodeIdentifer::ROOT_PARENT
* Prevent .to_node() on ROOT_PARENT
* Separate NodeGraphMessage and GraphOperationMessage
* General bug fixes with nested networks
* Change layer color, various bug fixes and improvements
* Fix disconnect and set node input for proto nodes and UI export node
* Dashed line to export for previewed node
* Fix deleting proto nodes and nodes that feed into export
* Allow modifications to nodes outside of nested network
* Get network from Node Id parameter
* Change root_node to previous_root_node
* Get TaggedValue from proto node implementation type when disconnecting
* Improve preview functionality and state
* Artboard position and delete children fix
* Name inputs/outputs based on DocumentNodeDefinition or type, fix new artboard/layer insertion
* replace "Link" with "Wire", adjust previewing
* Various bug fixes and improvements
* Modify Sample and Poisson-Disk points, fix incorrect input index and deleting currently viewed node
* Open demo artwork
* Fix opening already upgraded documents and refactor FrontendGraphDataType usages
* Fix deleting within network and other bugs
* Get default node input from compiled network when copying, fix previews, tests, demo artwork
* Code cleanup
* Hide EditorApi and add a comment describing unresolved Import node input types
* Code review
* Replace placeholder ROOT_PARENT NodeId with std::u64::MAX
* Breadcrumb padding
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-06-02 08:01:56 +00:00
Keavon Chambers
6b0822d318
Add Isometric Fountain demo artwork
2024-05-08 19:00:31 -07:00
adamgerhant
8d83fa7079
Generalize layers as merge nodes to enable adjustment layers ( #1712 )
...
* WIP, backward traversal issues
* Fix some tool issues
* Remove debugging
* Change some indices
* WIP: new artboard node
* WIP: add artboard node
* WIP: Artboard node and create_artboard
* WIP: Artboard node implementation complete
* WIP: Artboards input for output node
* Complete Artboard node
* Generalize LayerNodeIdentifier, monitor_nodes support for Artboard node, adjust ResizeArtboard/ClearArtboards, move alias validation to Rust
* Fix misaligned artboard click targets
* Generalize/clarify create_layer and insert_between
* non-negative dimensions for resize_artboard
* Show artboards in layer panel
* Generalize create_layer for layer output node
* Generalize delete_layer/delete_artboard to NodeGraphMessage::DeleteNodes. Fixed upstream flow Iter
* remove old primary_input function
* Vertical node visuals, remove is_layer function, rename Layer node to Merge node, toggle display as layer
exposed_value_count type fix
Vertical node visuals, remove is_layer function, rename Layer node to Merge node, toggle display as layer
* Fix demo artwork
* Layer display context menu
* Automatically select artboard, fix warnings
* Improvements to context menu and layer invariant enforcement
* Remove display_as_layer and update load_structure
* Improve load_structure to show more layers, improve FlowIter, improve layer naming, layer rearrangement validation.
* Clean up demo artwork using generalized layers
* Improve design of Layers panel and graph nodes
* MoveSelectedLayersTo rewrite to support generalized layer nodes
* Include artboards in deepest_common_ancestor, fix resize_artboard/delete_artboard, sync artboard tool to layer panel
* MoveSelectedLayersTo adjustments
* Sync non layer node visibility with metadata
* Include non layer nodes when moving/creating layer
* Fix group layers and get_post_node_with_index
* Include non layer nodes in UngroupSelectedLayers
* GroupSelected for all selected nodes, UnGroupSelected position adjustments
* Add grouping for layers in different folders
* Fix hidden layers
* Prevent node from connecting to itself, fix undo automatic node insertion,
* Fix undo CreateEmptyFolder, fix grouping nested layer nodes
* Formatting
* Remove test and check if node is layer from network
* Fix undo group layers
* Check off roadmap
* MoveUpstreamSiblingsToChild adjustments
* Replace tabs with spaces, remove mut from argument
* Final code review pass
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-04-30 23:03:42 -07:00
Keavon Chambers
fd54cda445
Rename NodeNetwork inputs/outputs to imports/exports
2024-03-11 00:13:01 -07:00
Keavon Chambers
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
0HyperCube
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
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
12e16b9a4e
Add Red Dress demo artwork
2024-02-05 14:41:07 -08:00