* Added Pan,Tilt,Zoom to View menu + Tilt shortcut changes
* formating
* fixed menus, added action for when dispatch happens from menu
* set key mappings to spec
* fix labels for navigation tool
* fix some spacing
* add action that locks spacebar for navigation when using it as a modifier so the node overlay does not toggle
* escape from the node-graph-overlay, set toggle to ctrl+space, fix demo art
* move all transform state into an enum
* rename confusing flag
* fix demo art and tests
---------
Co-authored-by: Ezbaze <rybitwamateusz3@gmail.com>
* Added select all points method to ShapeState struct
* Map select_all_points functions to shortcut
* Make SelectAllPoints action relevant in the current context only
* Refactor select_all_points to only select anchors
* Fix(editor): enable selected point update after selection change via clicking
* fix: avoid deleting inner network's input nodes
* [wip]feat: set primary input on node deletion
- set input's input value to deleted node's primary input
* fix: check deleting node's output is used by other node(s)
* feat: enable conditionally reconnecting input
- user can press a key to avoid reconnecting nodes during deletion
* refactor: improve and restructure code
- make code quality improvements
- add NodeGraphHandlerData struct to replace big tuple
* fix: avoid deleting inner network's input nodes
* [wip]feat: set primary input on node deletion
- set input's input value to deleted node's primary input
* fix: check deleting node's output is used by other node(s)
* feat: enable conditionally reconnecting input
- user can press a key to avoid reconnecting nodes during deletion
* refactor: improve and restructure code
- make code quality improvements
- add NodeGraphHandlerData struct to replace big tuple
* Remove unnecessary recursion
* Code review cleanup
---------
Co-authored-by: 0hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Create node (no implementation)
* Resampling - WIP
* use bezier::from_linear_dvec2
* Use from anchors instead of Bezier
* Tidy up anchor collection & subpath creation
* Add Spline from Points node (not implemented)
* Add spline from points node implementation
* Update resampling
* Update minimum density 0.01 -> 1.0
* Add a way to create a custom vector network
* Add spline from points node to spline tool
* Fix crash when no points
* Add anchor method to subpath
* Exact start and end point
* Fix compile errors from rebase
* Fix spline tool
* Rename 'Density' to 'Spacing'
* Fix transforms
* Only close subpaths with >1 anchor
* Fix compile
* Fix compile error
* Fix from points with many subpaths
* Fix new_cubic_spline crash with one point
* Rename to resample as polyline
* Fix div zero
* Fix missing file
* Fix resample
* Rename to resample points
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add Boolean Operations Nodes
Adds OR AND XOR and NOT operators
* Fix operand naming
Inputs to the 'Min' 'Max' 'Equality' and boolean operations nodes were
previously named 'First' and 'Second' and are now called 'Operand A' and
'Operand B'
* Rename Equality to Equals
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Don't include the document node path in the stable node id by default
Make the inclusion of the document path for the stable node id optional
and only enable it for the MonitorNode for now
* Fix tests
* Create ValueMapperNode and use it for brightness/contrast
* move spline code into seperate module
* Add GenerateCurvesNode
* add a `LuminanceMut`-trait
* add `lerp` to `Channel`
* Add frontend code to handle the curves widget's inputs
* Rename spline module to curve
* Make messages in CurveInput pass
* Improve curves widget design and fix sizing issue
* Implement proper bezier handling
* Use bezier_rs's intersections function instead of own cubic root solver
* Debounce CurveInput events and change how debouncer works
the first event issued to the debouncer was unneccessarily delayed.
Instead now the debouncer fires it instantaneously but blocks events
that come in until a timeout was reached.
* Make curve editing more user friendly
* Change code to use project terminology
* sample -> manipulator group or manipulator
* marker -> handle
* Fix small documentation mistake in bezier-rs
* Add find_tvalues_for_x function to bezier-rs
also integrate the function into curves node
* Add tests for find_tvalues_for_x in bezier-rs
* Fix formatting
* Revert BrightnessContrastNode changes
* Frontend cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add bounding box node
Generates a rectangle based on the bounding box of the input vector data
* Remove redundant <>
* Fix formatting
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add Circular Repeat Node
Repeats a given set of Vector Data in a circular pattern a specified
amount of times.
* Remove debug statement from RepeatNode
* Add Input Nodes and additional Math Nodes
* Add add node to node registry
* Update node-graph/gcore/src/ops.rs
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Fix Color Input Node
Wrong input type
* Remove non Parameter variants
* Remove non Parameter variants
* Remove non Parameter variants
* Apply suggestions from code review
* mod to modulo
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>