* Click node using click targets based
* Display graph transform based on state stored in Rust, fix zoom and pan.
* Migrate node selection logic
* Move click targets and transform to NodeNetwork
* Keep click targets in sync with changes to node shape
* Click targets for import/export, add dragging
* Basic wire dragging
* complete wire dragging
* Add node selection box when dragging
* Fix zoom operations and dragging nodes
* Remove click targets from serialized data, fix EnterNestedNetwork
* WIP: Auto connect node when dragged on wire
* Finish auto connect node when dragged on wire
* Add context menus
* Improve layer width calculations and state
* Improve context menu state, various other improvements
* Close menu on escape
* Cleanup Graph.svelte
* Fix lock/hide tool tip shortcuts
* Clean up editor_api.rs, fix lock/hide layers
* Start transferring network and node metadata from NodeNetwork to the editor
* Transfer click targets to NodeGraphMessageHandler
* Fix infinite canvas
* Fix undo/redo, scrollbars, and fix warnings
* Unicode-3.0 license and code cleanup
* License fix
* formatting issue
* Enable DomRect
* Fix layer move crash
* Remove tests
* Ignore test
* formatting
* remove white dot
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>
* add a basic tiff decoder in raw-rs
* cargo fmt
* add readme and license files
* add warning about being in-progress
* add testing framework for raw-rs
* add new type IFD and rename tag
* remove test_each and merge into single test
* cargo fmt
* make sure images folder stays in git
* rename image_length with image_height
* change name of test file
* Readme changes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* 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>
* initial attempt for area node
* allow node preview for more types
* make AreaNode sync and add CentroidNode
* cargo fmt
* preview of DVec2
* make the nodes async again
* use segment domain instead of region domain
* modify the check for linearity
* create a limit for area in centroid calculation
* cargo fmt
* reverse unnecessary changes
* add threshold to area calculation too.
* handle zero area edge case
* add todo comment
* implement 1D centroid and use it as fallback
* formatting floats to skip last zero
* add Centroid Type radio button to Centroid Node
* rename docs to use area and perimeter centroid
* add web demos for perimeter centroid
* add tests for perimeter centroid
* add fallback to use average of points
* Fix for broken area
* missing fixes
* Code review and rename Perimeter Centroid to Length Centroid
* Use dummy footprint in Area and Centroid nodes
* add doc and todo to clarify when `is_linear` fails
* use epsilon instead of zero
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Fix off by one in subpath code
* Fix crash with selected handles and anchor
* Sort the correct way I have no idea why the origional code was so overly verbose but it has caused significant confusion and wasted effort
- Reduces the default width from 1600px to 1200px of the web page and reduce the size of various elements and text. This fixes the problem that I designed the website assuming everyone is viewing from the same 2560px wide screen as I used to design it, which is a bad assumption. Most websites are around the 1200px mark.
- Removes the use of the EB Garamond font, replacing more headers with a bold Inter instead, leaving only Bona Nova for h1 headers at the tops of pages (except the home page, which might have further revamp soon).
- Adds nice flavor graphics to a redesigned volunteer page.
- Cleans up and organizes the Zola templating code and CSS style sheets.
- Improves image carousel to fade out images when dragged past the start or end.
* Update Git Attributes for `*.graphite`
Adds syntax highlighting on GitHub and treats the files as generated/binary.
* Mark test Graphite files as *not* generated
* dot grid
* fix warning: unreachable pattern
* grid color select
* add color for all grid types
* Dot grid checkbox and remove prefixed Color functions
* Display dot grid as grid aligned pixels
* Dashed line comment
* Code review and UI design widget placement updates
* Isometric dotted grid
* Early return when cos = 0
* Add spacing, x offset, and color to dot grids
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Move functions to messages to fix undo bugs for UnGroup and Group
* Copy+Paste for generalized layer nodes
* Fix MoveSelectedLayersTo and GroupSelectedLayers by extracting functions into messages
* Fix tests, replace FrontendMessage:TriggerPaste with PortfolioMessage::PasteIntoFolder
* Formatting
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* add code to calculate area and centroid of subpath
* change library to poly_it
* add a demo of area and centroid
* modify algorithm to consider negetive area as positive
* add code for manipulating polynomials in bezier-rs
* remove `poly_it` dependency and use custom Polynomial
* formatting floats to skip last zero
* add debug mechanism
* collect both intersection points instead of one
* fix test and cargo fmt
* apply minimum separation filtering in self_intersection and use better endpoint filtering algorithm
* remove debug mechanism and cargo fmt
* consider the subpath as closed for intersection calculation
* add documentation for polynomial.rs
* impl display for Polynomial
* make area always positive
* add missing docs
* fix test and cargo fmt
* Naming/formatting code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* DropdownInput support preview
* fix typo and rm logs
* Add previewable flag
* fix cr typos
* Improve color button history
* rename
* update dropdown preview behaviour
* Color picker preset color
* Another way to handle blend mode preview
* Apply suggestions from code review
* Use on_commit instead of on_update for some dropdowns
* Debugging progress
* add debug
* active not equal to highlight in some cases
* rm logs
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fix: remove folder #1595 when clicked, except for shallow select.
This should also fix other tools, like Fill tool which hook Lmb hints.
* TODO: shallow select is not working when interval clicks.
* TODO: shallow hover is showed same as deep hover.
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add locking layer feature
* Update locked state data to adjust the refactor
* Make the locked layer cannot be selected using pointer and select all key
* Make locked layer cannot be moved and disable bounding box
* Add locked status selected node on CopyBuffer
* Make locked layer cannot be selected when selected all layers, and disabled GRS and nudging operation on locked layer
* Add refresh document metadata before update button on visible and locked
* Updated from master
* Fix icon logic on panel locked layer
* Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked
* Revert "Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked"
This reverts commit 7c93259bc2bef492e203d6ac9c48852112e6c3a3.
* Revert "Fix icon logic on panel locked layer"
This reverts commit 33939f2e84431d64e6bc2bef07161eafcfba0c0e.
* Delete Make Lock button in the node graph top bar
* Add ToggleSelectedLocked to action_with_node_graph_open
* Fix parent and child locking behavior icon on panel
* Fix boolean operator on icon button locking layer
* Make bolean logic more readable in icon button locking layer
* Fix locking layer can be moved or resizing when selected with unlocking layer, disabled pivot widget on locking layer, disable all action on pivot point, alignment, flipping, and boolean operation for locking layer
* Fix axis align drag crash
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* Exclude hidden layer to be selected on Select All Layer
* Add hide layer action to history
* Fix error call the function
* Add hide layer action to history state
* Make hidden layer cannot be transform like G/R/S and nudges
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>