Skip to content

Shape boolean operation improvements #547

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 75 commits into from
May 11, 2022
Merged
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
ca20282
changed path_intersection structure
caleb-ad Feb 13, 2022
80d9926
comment
caleb-ad Feb 13, 2022
ec5f67d
Removed do_if!
caleb-ad Feb 13, 2022
8416c3f
Create project website with near-complete home page
Keavon Feb 17, 2022
7e845b9
Added support for undoing
caleb-ad Feb 18, 2022
a6a2ed4
Website responsive resizing improvements
Keavon Feb 19, 2022
f973f01
Add newsletter signup to website
Keavon Feb 19, 2022
923261f
Pen tool fixes (#563)
otdavies Feb 21, 2022
9814f8b
Color Input (#565)
mfish33 Feb 22, 2022
9a881b1
Made the non-inclusive end of a pathseg less inclusive
caleb-ad Mar 2, 2022
691010e
changed how closepath works
caleb-ad Mar 3, 2022
879a66a
Add "New Folder"/"Delete Selected" buttons to layer panel
Keavon Mar 3, 2022
a2b5370
Update npm dependencies
Keavon Mar 3, 2022
d263fdb
Set text color based on its fill when it's being edited
Keavon Mar 4, 2022
6c4b4f6
Reorder tool icons, update favicon and logo, and other icon cleanup
Keavon Mar 4, 2022
8d1eb53
Bug Fix: Line-Line intersect origin wasn't being preserved
caleb-ad Mar 4, 2022
4bb423d
Bug Fix: proper assignment of t_values in overlapping_curve_intersect…
caleb-ad Mar 4, 2022
78a7491
Honestly, i don't even know what I was thinking when i wrote the logi…
caleb-ad Mar 5, 2022
7048757
Feature: overlapping rectangles behave properly, (except when interse…
caleb-ad Mar 5, 2022
e1bffb2
Remake node type icons (closes #483); color picker cleanup
Keavon Mar 5, 2022
62ba18d
Change tool shelf icon colors to use classes not style
Keavon Mar 6, 2022
97eca6d
Add Image node icon and rename node from Path to Shape
Keavon Mar 6, 2022
fec689e
Bug Fix: proper intersection construction in partial overlap case
caleb-ad Mar 7, 2022
6e44449
cleaned up log statements
caleb-ad Mar 7, 2022
5dffa4d
Add website revisions and many new pages
Keavon Mar 12, 2022
4420e6a
Add features page and fixes to website
Keavon Mar 13, 2022
0fc504e
Fix clippy lints and update packages (#568)
0HyperCube Mar 14, 2022
fca8f46
Fix type error in Brave browser (#569)
TrueDoctor Mar 15, 2022
563b849
Small website text improvements
Keavon Mar 15, 2022
cc1c31d
Various website fixes
Keavon Mar 17, 2022
cd1b83d
Adjusted constants
caleb-ad Mar 21, 2022
3518087
Changed BooleanOperation::SubtractBack to use SubtractFront
caleb-ad Mar 21, 2022
51211ad
Add node graph mockup to website
Keavon Mar 25, 2022
9e14fad
Differentiate between scale and dimensions (#570)
TrueDoctor Mar 27, 2022
332ed06
Add embedable images (#564)
0HyperCube Mar 27, 2022
c4cf3b9
Bump minimist from 1.2.5 to 1.2.6 in /frontend (#571)
dependabot[bot] Mar 31, 2022
be6a8ce
Fix panic dialogue when handling a message (#573)
0HyperCube Apr 2, 2022
570b1dd
Save: line_intersection
caleb-ad Apr 7, 2022
7f0eeae
Add documentation to many parts of the Rust codebase (#552)
simonwuelker Apr 9, 2022
e0f053e
Add additional stroke properties (#582)
0HyperCube Apr 9, 2022
610a95e
Bug Fix: .y not .x
caleb-ad Apr 13, 2022
87e723b
Expand upon the "Announcing Graphite alpha" blog post
Keavon Apr 14, 2022
8bc85bd
All shapes now have a Fill in the properties panel; color inputs are …
0HyperCube Apr 18, 2022
61fc11e
New blog post: "Distributed computing with the Graphene runtime"
Keavon Apr 16, 2022
ec61217
Fix gradient transformation (#588)
0HyperCube Apr 20, 2022
5a9c247
Add properties panel entries for artboards (#572)
mfish33 Apr 21, 2022
8811a54
Bug Fix: boolean union on multiple shapes
caleb-ad Apr 21, 2022
f02f7b0
Merge remote-tracking branch 'origin/master' into boolean_shape_opera…
caleb-ad Apr 21, 2022
a7431be
Font selection for text layers (#585)
0HyperCube Apr 21, 2022
d12219e
Improvements to the layer transform cage UX (#589)
0HyperCube Apr 21, 2022
2573c5e
Rename Crop tool to Artboard tool
Keavon Apr 21, 2022
b6c0a0c
Stop pointerdown event from properties panel (#600)
0HyperCube Apr 21, 2022
545c23b
Change stroke weight from ints to floats (#601)
Keavon Apr 21, 2022
861f261
cargo update
caleb-ad Apr 21, 2022
53f36b6
Bug fix: proper composite intersection behavior
caleb-ad Apr 21, 2022
950f687
Merge remote-tracking branch 'origin/master' into boolean_shape_opera…
caleb-ad Apr 21, 2022
96766e6
fix warnings
caleb-ad Apr 21, 2022
607c158
Improved ray casting and common intersection cases
caleb-ad Apr 22, 2022
966563d
fixed warnings
caleb-ad Apr 22, 2022
a9f1794
Fix properties deselect (#606)
0HyperCube Apr 22, 2022
6f0d632
cleanup messages
caleb-ad Apr 23, 2022
72d26fb
Draw the outlines of shapes on hover and selection (#609)
0HyperCube Apr 24, 2022
4901815
Update to use unreachable! instead of panic!
caleb-ad Apr 25, 2022
312380a
Upgrade vue-cli to version 5 (#594)
Keavon Apr 26, 2022
5ce980c
Merge remote-tracking branch 'origin/master' into boolean_shape_opera…
caleb-ad Apr 27, 2022
70ba704
Tidy up the full frontend codebase and use optional chaining where po…
Keavon Apr 30, 2022
8940f80
Add a hotkey to select a random primary color (#622)
FlorentCollin May 6, 2022
e6eba09
Move the Layer Tree panel's New Folder and Delete icons into the opti…
Keavon May 6, 2022
e8fdfd6
Migrate dialogs to Rust and add a New File dialog (#623)
0HyperCube May 7, 2022
87ecc77
Snapping system improvements and refactor (#621)
0HyperCube May 9, 2022
c225581
Add the File > Export dialog and PNG/JPG downloading (#629)
0HyperCube May 9, 2022
e61ff58
Merge branch 'old-master' into boolean_shape_operations
Keavon May 10, 2022
5e34141
Merge branch 'master' into boolean_shape_operations
Keavon May 10, 2022
a7ff0ef
Merge branch 'master' into boolean_shape_operations
Keavon May 10, 2022
7bb6a8d
Code review
Keavon May 10, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 43 additions & 36 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions editor/src/document/document_message_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -787,13 +787,15 @@ impl MessageHandler<DocumentMessage, &InputPreprocessorMessageHandler> for Docum
}
BooleanOperation(op) => {
// convert Vec<&[LayerId]> to Vec<Vec<&LayerId>> because Vec<&[LayerId]> does not implement several traits (Debug, Serialize, Deserialize, ...) required by DocumentOperation enum
responses.push_back(StartTransaction.into());
responses.push_back(
DocumentOperation::BooleanOperation {
operation: op,
selected: self.selected_layers_sorted().iter().map(|slice| (*slice).into()).collect(),
}
.into(),
);
responses.push_back(CommitTransaction.into());
}
CommitTransaction => (),
CreateEmptyFolder { mut container_path } => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use graphene::Operation;

use glam::{DAffine2, DVec2};

/// Contains the edges that are being dragged along with the origional bounds
/// Contains the edges that are being dragged along with the original bounds
#[derive(Clone, Debug, Default)]
pub struct SelectedEdges {
bounds: [DVec2; 2],
Expand Down
Loading