* Send path tool FSM to Dragging state on MouseDown if clicking selected point
* Cleanup
* Store selected point state before new selection is made and setup deselect logic
* update previously saved point data on every point selection
* Decide whether to deselect or select on extended_select if node not already selected, when DragStop state is reached instead of inside the mouse_down function.
* Fix broken merge and remove leftover debug statements
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Added initial logic for dragging
* Alt drag stop makes opposite handle back to its position
* Implement new requested behaviour
* Fix sharp point bug
* Apply suggestions from code review
* Add hints
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add Gradient tool test for dragging an endpoint sets the correct point in the viewport
* add canvas_zoom and transformset to verify correct viewport-space behavior
* added handle_types and refactored the handle_adjustments
* anchor move refactor
* code-todo-fix
* removed-draw-mode
* kind of works need to figure out snapping
* some refactoring
* refactor+overlays..need to fix the snapping and dragging
* added docs
* got stuck in space move
* fixed all issues
* comments and small fixes
* completed last issue and refactor
* major fixes and improv
* fixed edge cases
* edge cases fixed
* fix edge cases and add docs
* Code review pass
* rename ,bug fixes
* Add terminology diagram
* Add Ctrl "Lock Angle" hint
* Rename other hint
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix line overlays not showing up for horizontal/vertical line
* Fix spline tool transform
* Fix line tool transform
* Fix pivot following mouse even after confirm
* cargo fmt
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Have red be below quads
* Code review pt 1
* Skip rendering of pivot
* Code review pt 2
* Code review pt 3
* Cancel resize and its hints
* Remove the redundant placing message
* Dragging state for text tool fsm
* Cleanup
* Fix line tool undo and abort problems
* Code review
* 3px textbox overflow bottom
* Some more cleanup
* Fix reversed match arms that had been converted to if-else
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* fixed deep-select and overlays
* minor fix
* made minor fixes in filtering
* small fix
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Make sure that quick measure overlays are based on AABBs drawn in the viewport local space
* Draw overlays to visualise AABBs of selected and hovered shapes
* use pre-existing functions to render dashed lines
* Redraw selected bounds using existing BoundingBoxManager
* remove unused variables
* Render transform cage after overlay is drawn
* Bring overlay and transform cage render calls above(before) other gizmos
* Add line length tolerance and render single line for singal edge alignment with one axis overlap
* Comments
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* implemented space drag need to handle unwrap + clean snap cache
* completed the space drag need to refactor
* refactor
* small comment changes
* formating_fix
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix abortion while dragging
* Create function for text bounding box
* Reorder arms of text tool FSM
* add transform cage to textbox pt.1
* add transform cage pt.2
* Fix minor issue after merge
* Get bounding box working in place without action keys
* Add max_height and disable pivot drag
* Cleanup code and write doco for new utility function
* Minor change due to merge
* Add bottom overlay
* Get modifier keys to work pt.1
* Code cleanup
* cleanup
* Fix transform
* Minor improvements
* Undo debug statement!
* Add comments and keep original layer transformation
* Alt from centre
* Fix merge conflict
* Minor code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
* Just group
* Partly working but without transforms
* Remove Transform/TransformMut from GraphicElement and GraphicGroupTable
* Fix layers and flattening
* Fix transform group handling on the remaining nodes
* Change collect metadata
* Add transform on vector data. TODO: Remove duplicate transform
* Small code tidying-up
* Add concatenate node?
* Remove ignore_modifications which is always false
* Improve transforms
* Mostly fix the nested transform cage angle (except leaf layers and skew)
* WIP attempt to integrate skew
* Fix nesting bounding box
* Avoid setting the transform
* Fix stroke transforms
* Renderer cleanup
* Fix tests for repeated elements not given unique point IDs
* Suppress cargo-deny warning
* Fix upgrade code for graphic group data
* Work around rendering issue in Isometric Fountain
---------
Co-authored-by: Adam <adamgerhant@gmail.com>
Co-authored-by: hypercube <0hypercube@gmail.com>
* Fix fill tool on raster image temporarily breaks the graph
* Avoid vector filling raster layer via checking node category
* check raster image using input type instead
* Add additional check for TextureFrameTable
* Enable the ignore raster test
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
* disable "Colinear Handles" checkbox when only endpoint or its handle is selected
* small refactor
* ignore endpoints when calculating multiple selected points colinearity
---------
Co-authored-by: indierusty <priyaayadav@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Replace `.selected_nodes(&[])` with `.selected_nodes_in_nested_network()` and `.selected_nodes()`
* Replace `.network(&[])` with `.document_network()` and `.nested_network()`
* Replace `.network_metadata(&[])` with `.document_network_metadata()`
* Initial attempt
* Allow editing and display overlays
* Fix modifier keys
* Handles show up correctly when layer is transformed
* Add multi-layer editing support and cleanup
* Fix transform breaking the handles
* line between handles
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Enable free movement of edge during skew when ctrl is held
Fixes#2299
Follow-up to #2300
* Simplify code
* Change test along the lines of new behaviour
* Make the hint Title Case
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* refactor
* impl find_spline function
* impl merge_layers() to merge two spline layer to one spline layer
* impl merging spline to another spline which are not in the same layer
* impl merging of spline with path
* impl merge spline start endpoint and last endpoint
* fix naming
* fix handle transformation
* refactor
* fix merging with path with only one segment
* refactor
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fixed Pen extension having collienar handles
* Reformat a little
* handles being colinear for GRS
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Fix mouse states and priority order of operation
* Add metadata for tampered transform
* Add comments explaining details
* Improve comments
* Move out of bounds checks into rotate check
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* pen tool feature and other minor fixes
* ctrl done,need to improve handle_modifications
* completes collinear and ctrl for all cases,need to refactor
* more bug fix need to refactor
* fixed minor issues and refactor done
* Code review
* minor bug fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>