Fix CSG commands to be included in the artifact graph (#6391)
* Fix CSG commands to be included in the artifact graph * Update output
This commit is contained in:
@ -1122,32 +1122,36 @@ fn artifacts_to_update(
|
|||||||
|
|
||||||
let mut new_solid_ids = vec![id];
|
let mut new_solid_ids = vec![id];
|
||||||
|
|
||||||
|
// Make sure we don't ever create a duplicate ID since merge_ids
|
||||||
|
// can't handle it.
|
||||||
|
let not_cmd_id = move |solid_id: &ArtifactId| *solid_id != id;
|
||||||
|
|
||||||
match response {
|
match response {
|
||||||
OkModelingCmdResponse::BooleanIntersection(intersection) => intersection
|
OkModelingCmdResponse::BooleanIntersection(intersection) => intersection
|
||||||
.extra_solid_ids
|
.extra_solid_ids
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.map(ArtifactId::new)
|
.map(ArtifactId::new)
|
||||||
|
.filter(not_cmd_id)
|
||||||
.for_each(|id| new_solid_ids.push(id)),
|
.for_each(|id| new_solid_ids.push(id)),
|
||||||
OkModelingCmdResponse::BooleanSubtract(subtract) => subtract
|
OkModelingCmdResponse::BooleanSubtract(subtract) => subtract
|
||||||
.extra_solid_ids
|
.extra_solid_ids
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.map(ArtifactId::new)
|
.map(ArtifactId::new)
|
||||||
|
.filter(not_cmd_id)
|
||||||
.for_each(|id| new_solid_ids.push(id)),
|
.for_each(|id| new_solid_ids.push(id)),
|
||||||
OkModelingCmdResponse::BooleanUnion(union) => union
|
OkModelingCmdResponse::BooleanUnion(union) => union
|
||||||
.extra_solid_ids
|
.extra_solid_ids
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.map(ArtifactId::new)
|
.map(ArtifactId::new)
|
||||||
|
.filter(not_cmd_id)
|
||||||
.for_each(|id| new_solid_ids.push(id)),
|
.for_each(|id| new_solid_ids.push(id)),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
let return_arr = new_solid_ids
|
let return_arr = new_solid_ids
|
||||||
.into_iter()
|
.into_iter()
|
||||||
// Extra solid IDs may include the command's ID. Make sure we
|
|
||||||
// don't create a duplicate.
|
|
||||||
.filter(|solid_id| *solid_id != id)
|
|
||||||
.map(|solid_id| {
|
.map(|solid_id| {
|
||||||
Artifact::CompositeSolid(CompositeSolid {
|
Artifact::CompositeSolid(CompositeSolid {
|
||||||
id: solid_id,
|
id: solid_id,
|
||||||
|
@ -48,6 +48,7 @@ flowchart LR
|
|||||||
42["SweepEdge Adjacent"]
|
42["SweepEdge Adjacent"]
|
||||||
43["SweepEdge Opposite"]
|
43["SweepEdge Opposite"]
|
||||||
44["SweepEdge Adjacent"]
|
44["SweepEdge Adjacent"]
|
||||||
|
45["CompositeSolid Intersect<br>[448, 477, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
@ -114,4 +115,6 @@ flowchart LR
|
|||||||
30 --- 42
|
30 --- 42
|
||||||
30 --- 43
|
30 --- 43
|
||||||
30 --- 44
|
30 --- 44
|
||||||
|
2 <--x 45
|
||||||
|
24 <--x 45
|
||||||
```
|
```
|
||||||
|
@ -36,6 +36,7 @@ flowchart LR
|
|||||||
30["Cap End"]
|
30["Cap End"]
|
||||||
31["SweepEdge Opposite"]
|
31["SweepEdge Opposite"]
|
||||||
32["SweepEdge Adjacent"]
|
32["SweepEdge Adjacent"]
|
||||||
|
33["CompositeSolid Subtract<br>[461, 497, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
@ -81,4 +82,6 @@ flowchart LR
|
|||||||
27 --- 30
|
27 --- 30
|
||||||
27 --- 31
|
27 --- 31
|
||||||
27 --- 32
|
27 --- 32
|
||||||
|
2 <--x 33
|
||||||
|
24 <--x 33
|
||||||
```
|
```
|
||||||
|
@ -48,6 +48,7 @@ flowchart LR
|
|||||||
42["SweepEdge Adjacent"]
|
42["SweepEdge Adjacent"]
|
||||||
43["SweepEdge Opposite"]
|
43["SweepEdge Opposite"]
|
||||||
44["SweepEdge Adjacent"]
|
44["SweepEdge Adjacent"]
|
||||||
|
45["CompositeSolid Subtract<br>[445, 479, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
@ -114,4 +115,6 @@ flowchart LR
|
|||||||
30 --- 42
|
30 --- 42
|
||||||
30 --- 43
|
30 --- 43
|
||||||
30 --- 44
|
30 --- 44
|
||||||
|
2 <--x 45
|
||||||
|
24 <--x 45
|
||||||
```
|
```
|
||||||
|
@ -48,6 +48,7 @@ flowchart LR
|
|||||||
42["SweepEdge Adjacent"]
|
42["SweepEdge Adjacent"]
|
||||||
43["SweepEdge Opposite"]
|
43["SweepEdge Opposite"]
|
||||||
44["SweepEdge Adjacent"]
|
44["SweepEdge Adjacent"]
|
||||||
|
45["CompositeSolid Union<br>[448, 473, 0]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
@ -114,4 +115,6 @@ flowchart LR
|
|||||||
30 --- 42
|
30 --- 42
|
||||||
30 --- 43
|
30 --- 43
|
||||||
30 --- 44
|
30 --- 44
|
||||||
|
2 <--x 45
|
||||||
|
24 <--x 45
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user