@@ -1557,6 +1557,50 @@ define_modeling_cmd_enum! {
1557
1557
/// List of transforms to be applied to the object.
1558
1558
pub transforms: Vec <ComponentTransform >,
1559
1559
}
1560
+
1561
+ /// Create a new solid from combining other smaller solids.
1562
+ /// In other words, every part of the input solids will be included in the output solid.
1563
+ #[ derive(
1564
+ Clone , Debug , Deserialize , PartialEq , JsonSchema , Serialize , ModelingCmdVariant ,
1565
+ ) ]
1566
+ #[ cfg_attr( feature = "ts-rs" , derive( ts_rs:: TS ) ) ]
1567
+ #[ cfg_attr( feature = "ts-rs" , ts( export_to = "ModelingCmd.ts" ) ) ]
1568
+ pub struct BooleanUnion
1569
+ {
1570
+ /// Which solids to union together.
1571
+ /// Cannot be empty.
1572
+ pub solid_ids: Vec <Uuid >,
1573
+ }
1574
+
1575
+ /// Create a new solid from intersecting several other solids.
1576
+ /// In other words, the part of the input solids where they all overlap will be the output solid.
1577
+ #[ derive(
1578
+ Clone , Debug , Deserialize , PartialEq , JsonSchema , Serialize , ModelingCmdVariant ,
1579
+ ) ]
1580
+ #[ cfg_attr( feature = "ts-rs" , derive( ts_rs:: TS ) ) ]
1581
+ #[ cfg_attr( feature = "ts-rs" , ts( export_to = "ModelingCmd.ts" ) ) ]
1582
+ pub struct BooleanIntersection
1583
+ {
1584
+ /// Which solids to intersect together
1585
+ pub solid_ids: Vec <Uuid >,
1586
+ }
1587
+
1588
+ /// Create a new solid from subtracting several other solids.
1589
+ /// The 'target' is what will be cut from.
1590
+ /// The 'tool' is what will be cut out from 'target'.
1591
+ #[ derive(
1592
+ Clone , Debug , Deserialize , PartialEq , JsonSchema , Serialize , ModelingCmdVariant ,
1593
+ ) ]
1594
+ #[ cfg_attr( feature = "ts-rs" , derive( ts_rs:: TS ) ) ]
1595
+ #[ cfg_attr( feature = "ts-rs" , ts( export_to = "ModelingCmd.ts" ) ) ]
1596
+ pub struct BooleanSubtract
1597
+ {
1598
+ /// Geometry to cut out from.
1599
+ pub target_ids: Vec <Uuid >,
1600
+ /// Will be cut out from the 'target'.
1601
+ pub tool_ids: Vec <Uuid >,
1602
+ }
1603
+
1560
1604
/// Make a new path by offsetting an object by a given distance.
1561
1605
/// The new path's ID will be the ID of this command.
1562
1606
#[ derive( Clone , Debug , PartialEq , Deserialize , JsonSchema , Serialize , ModelingCmdVariant ) ]
0 commit comments