1use kittycad_modeling_cmds_macros::define_ok_modeling_cmd_response_enum;
2use serde::{Deserialize, Serialize};
3
4impl crate::ModelingCmdOutput for () {}
5
6pub(crate) fn is_true(b: &bool) -> bool {
7 *b
8}
9
10fn bool_true() -> bool {
11 true
12}
13
14define_ok_modeling_cmd_response_enum! {
15 pub mod output {
17 use kittycad_modeling_cmds_macros::ModelingCmdOutput;
18 use schemars::JsonSchema;
19 use serde::{Deserialize, Serialize};
20 use bon::Builder;
21 use uuid::Uuid;
22 use crate::shared::{
23 CameraSettings,
24 CameraViewState,
25 BodyType,
26 };
27 use std::collections::HashMap;
28
29 use crate::{self as kittycad_modeling_cmds};
30 use crate::{
31 base64::Base64Data,
32 id::ModelingCmdId,
33 length_unit::LengthUnit,
34 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d, BodiesCreated, BodiesUpdated},
35 units,
36 };
37 use super::bool_true;
38
39 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
41 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
42 pub struct EngineUtilEvaluatePath {
43 pub pos: Point3d<LengthUnit>,
45 }
46
47 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
49 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
50 pub struct StartPath {
51 }
52
53 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
55 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
56 pub struct MovePathPen {
57 }
58
59 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
61 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
62 pub struct ExtendPath {
63 }
64
65 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
67 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
68 pub struct Extrude {
69 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
71 pub bodies_created: BodiesCreated,
72 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
74 pub bodies_updated: BodiesUpdated,
75 }
76
77 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
79 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
80 pub struct ExtrudeToReference {
81 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
83 pub bodies_created: BodiesCreated,
84 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
86 pub bodies_updated: BodiesUpdated,
87 }
88
89 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
91 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
92 pub struct TwistExtrude {
93 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
95 pub bodies_created: BodiesCreated,
96 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
98 pub bodies_updated: BodiesUpdated,
99 }
100
101 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
103 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
104 pub struct Sweep {
105 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
107 pub bodies_created: BodiesCreated,
108 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
110 pub bodies_updated: BodiesUpdated,
111 }
112
113 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
115 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
116 pub struct Revolve {
117 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
119 pub bodies_created: BodiesCreated,
120 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
122 pub bodies_updated: BodiesUpdated,
123 }
124
125 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
127 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
128 pub struct Solid3dShellFace {
129 }
130
131 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
133 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
134 pub struct Solid3dJoin {
135 }
136
137 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
139 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
140 pub struct Solid3dMultiJoin {
141 }
142
143 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
145 pub struct SurfaceBlend {
146 }
147
148 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
150 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
151 pub struct Solid3dGetEdgeUuid {
152 pub edge_id: Uuid,
154 }
155
156 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
158 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
159 pub struct Solid3dGetFaceUuid {
160 pub face_id: Uuid,
162 }
163
164 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
166 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
167 pub struct Solid3dGetBodyType {
168 pub body_type: BodyType,
170 }
171
172 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
174 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
175 pub struct RevolveAboutEdge {
176 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
178 pub bodies_created: BodiesCreated,
179 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
181 pub bodies_updated: BodiesUpdated,
182 }
183
184 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
186 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
187 pub struct CameraDragStart {
188 }
189
190 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
192 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
193 pub struct DefaultCameraLookAt {
194 }
195
196 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
198 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
199 pub struct DefaultCameraPerspectiveSettings {
200 }
201
202 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
204 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
205 pub struct SelectAdd {
206 }
207 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
209 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
210 pub struct SelectRemove {
211 }
212
213 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
215 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
216 pub struct SceneClearAll {
217 }
218
219 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
221 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
222 pub struct SelectReplace {
223 }
224
225 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
227 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
228 pub struct HighlightSetEntities {
229 }
230
231 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
233 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
234 pub struct NewAnnotation {
235 }
236
237 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
239 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
240 pub struct UpdateAnnotation {
241 }
242
243 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
245 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
246 pub struct EdgeLinesVisible {
247 }
248
249 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
251 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
252 pub struct ObjectVisible {
253 }
254
255 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
257 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
258 pub struct ObjectBringToFront {
259 }
260
261 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
263 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
264 pub struct ObjectSetMaterialParamsPbr {
265 }
266
267 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
269 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
270 pub struct Solid2dAddHole {
271 }
272
273 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
275 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
276 pub struct Solid3dFilletEdge {
277 }
278
279 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
281 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
282 pub struct Solid3dCutEdges {
283 }
284
285
286 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
288 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
289 pub struct SendObject {
290 }
291
292 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
294 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
295 pub struct EntitySetOpacity {
296 }
297
298 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
300 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
301 pub struct EntityFade {
302 }
303
304 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
306 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
307 pub struct MakePlane {
308 }
309
310 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
312 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
313 pub struct PlaneSetColor {
314 }
315
316 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
318 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
319 pub struct SetTool {
320 }
321
322 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
324 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
325 pub struct MouseMove {
326 }
327
328 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
330 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
331 pub struct SketchModeDisable {
332 }
333
334 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
336 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
337 pub struct EnableDryRun {
338 }
339
340 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
342 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
343 pub struct DisableDryRun {
344 }
345
346 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
348 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
349 pub struct CurveSetConstraint {
350 }
351
352 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
354 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
355 pub struct EnableSketchMode {
356 }
357
358 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
360 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
361 pub struct SetBackgroundColor {
362 }
363
364 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
366 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
367 pub struct SetCurrentToolProperties {
368 }
369
370 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
372 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
373 pub struct SetDefaultSystemProperties {
374 }
375
376 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
378 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
379 pub struct MakeAxesGizmo {
380 }
381
382 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
384 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
385 pub struct HandleMouseDragStart {
386 }
387
388 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
390 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
391 pub struct HandleMouseDragMove {
392 }
393
394 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
396 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
397 pub struct HandleMouseDragEnd {
398 }
399
400 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
402 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
403 pub struct RemoveSceneObjects {
404 }
405
406 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
408 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
409 pub struct ReconfigureStream {
410 }
411
412 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
414 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
415 pub struct SetSceneUnits {
416 }
417
418 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
420 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
421 pub struct SetSelectionType {
422 }
423
424 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
426 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
427 pub struct SetSelectionFilter {
428 }
429
430 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
432 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
433 pub struct DefaultCameraSetOrthographic {
434 }
435
436 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
438 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
439 pub struct DefaultCameraSetPerspective {
440 }
441
442 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
444 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
445 pub struct DefaultCameraCenterToSelection {
446 }
447
448 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
450 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
451 pub struct DefaultCameraCenterToScene {
452 }
453
454 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
456 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
457 pub struct SelectClear {
458 }
459
460 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
462 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
463 pub struct Export2d {
464 pub files: Vec<ExportFile>,
466 }
467
468 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
470 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
471 pub struct Export3d {
472 pub files: Vec<ExportFile>,
474 }
475
476 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
478 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
479 pub struct Export {
480 pub files: Vec<ExportFile>,
482 }
483
484 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
486 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
487 pub struct SelectWithPoint {
488 pub entity_id: Option<Uuid>,
490 }
491
492 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
494 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
495 pub struct HighlightSetEntity {
496 pub entity_id: Option<Uuid>,
498 pub sequence: Option<u32>,
500 }
501 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
503 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
504 pub struct EntityGetChildUuid {
505 pub entity_id: Uuid,
507 }
508 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
510 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
511 pub struct EntityGetIndex {
512 pub entity_index: u32,
514 }
515 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
517 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
518 pub struct EntityGetPrimitiveIndex {
519 pub primitive_index: u32,
521
522 pub entity_type: EntityType,
524 }
525 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
527 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
528 pub struct EntityDeleteChildren {
529 }
530 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
532 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
533 pub struct EntityGetNumChildren {
534 pub num: u32,
536 }
537 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
539 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
540 pub struct EntityGetParentId {
541 pub entity_id: Uuid,
543 }
544 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
546 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
547 pub struct EntityGetAllChildUuids {
548 pub entity_ids: Vec<Uuid>,
550 }
551
552 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
554 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
555 pub struct EntityGetSketchPaths {
556 pub entity_ids: Vec<Uuid>,
558 }
559
560 #[derive(Debug, Serialize, Deserialize, JsonSchema, PartialEq, ModelingCmdOutput, Clone)]
562 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
563 pub struct Loft {
564 pub solid_id: Uuid,
566 }
567
568 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
570 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
571 pub struct ClosePath {
572 pub face_id: Uuid,
574 }
575
576 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
580 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
581 pub struct CameraDragMove {
582 pub settings: CameraSettings
584 }
585
586 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
588 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
589 pub struct CameraDragEnd {
590 pub settings: CameraSettings
592 }
593
594 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
596 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
597 pub struct DefaultCameraGetSettings {
598 pub settings: CameraSettings
600 }
601
602 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
604 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
605 pub struct DefaultCameraGetView {
606 pub view: CameraViewState
608 }
609
610 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
612 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
613 pub struct DefaultCameraSetView {}
614
615 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
617 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
618 pub struct DefaultCameraZoom {
619 pub settings: CameraSettings
621 }
622
623 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
625 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
626 pub struct ZoomToFit {
627 pub settings: CameraSettings
629 }
630
631 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
633 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
634 pub struct OrientToFace {
635 pub settings: CameraSettings
637 }
638
639 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
641 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
642 pub struct ViewIsometric {
643 pub settings: CameraSettings
645 }
646
647 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
649 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
650 pub struct GetNumObjects {
651 pub num_objects: u32,
653 }
654
655 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
657 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
658 pub struct MakeOffsetPath {
659 pub entity_ids: Vec<Uuid>,
664 }
665
666 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
668 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
669 pub struct SetObjectTransform {}
670
671 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
673 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
674 pub struct AddHoleFromOffset {
675 pub entity_ids: Vec<Uuid>,
680 }
681
682 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
684 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
685 pub struct DefaultCameraFocusOn { }
686
687 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
689 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
690 pub struct SelectGet {
691 pub entity_ids: Vec<Uuid>,
693 }
694
695 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
698 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
699 pub struct Solid3dGetAdjacencyInfo {
700 pub edges: Vec<AdjacencyInfo>,
702 }
703
704 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
706 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
707 pub struct Solid3dGetAllEdgeFaces {
708 pub faces: Vec<Uuid>,
710 }
711
712 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
714 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
715 pub struct Solid3dFlip {
716 }
717
718 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
720 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
721 pub struct Solid3dFlipFace {
722 }
723
724 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
726 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
727 pub struct Solid3dGetAllOppositeEdges {
728 pub edges: Vec<Uuid>,
730 }
731
732 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
734 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
735 pub struct Solid3dGetOppositeEdge {
736 pub edge: Uuid,
738 }
739
740 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
742 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
743 pub struct Solid3dGetNextAdjacentEdge {
744 pub edge: Option<Uuid>,
746 }
747
748 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
750 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
751 pub struct Solid3dGetPrevAdjacentEdge {
752 pub edge: Option<Uuid>,
754 }
755
756 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
758 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
759 pub struct Solid3dGetCommonEdge {
760 pub edge: Option<Uuid>,
762 }
763
764 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
766 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
767 pub struct GetEntityType {
768 pub entity_type: EntityType,
770 }
771
772 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
774 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
775 pub struct SceneGetEntityIds {
776 pub entity_ids: Vec<Vec<Uuid>>,
778 }
779
780 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
782 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
783 pub struct CurveGetControlPoints {
784 pub control_points: Vec<Point3d<f64>>,
786 }
787
788 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
790 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
791 pub struct ProjectEntityToPlane {
792 pub projected_points: Vec<Point3d<f64>>,
794 }
795
796 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
798 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
799 pub struct ProjectPointsToPlane {
800 pub projected_points: Vec<Point3d<f64>>,
802 }
803
804 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
806 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
807 pub struct CurveGetType {
808 pub curve_type: CurveType,
810 }
811
812 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
814 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
815 pub struct MouseClick {
816 pub entities_modified: Vec<Uuid>,
818 pub entities_selected: Vec<Uuid>,
820 }
821
822 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
824 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
825 pub struct TakeSnapshot {
826 pub contents: Base64Data,
828 }
829
830 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
832 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
833 pub struct PathGetInfo {
834 pub segments: Vec<PathSegmentInfo>,
836 }
837
838 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
840 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
841 pub struct PathSegmentInfo {
842 pub command_id: Option<ModelingCmdId>,
846 pub command: PathCommand,
848 pub relative: bool,
850 }
851
852 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
854 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
855 pub struct PathGetCurveUuidsForVertices {
856 pub curve_ids: Vec<Uuid>,
858 }
859
860 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
862 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
863 pub struct PathGetCurveUuid {
864 pub curve_id: Uuid,
866 }
867
868 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
870 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
871 pub struct PathGetVertexUuids {
872 pub vertex_ids: Vec<Uuid>,
874 }
875
876 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
878 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
879 pub struct PathGetSketchTargetUuid {
880 pub target_id: Option<Uuid>,
882 }
883
884 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
886 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
887 pub struct CurveGetEndPoints {
888 pub start: Point3d<LengthUnit>,
890 pub end: Point3d<LengthUnit>,
892 }
893
894 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
896 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
897 pub struct FaceIsPlanar {
898 pub origin: Option<Point3d<LengthUnit>>,
900
901 pub x_axis: Option<Point3d<f64>>,
903
904 pub y_axis: Option<Point3d<f64>>,
906
907 pub z_axis: Option<Point3d<f64>>,
909 }
910
911 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
913 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
914 pub struct FaceGetPosition {
915 pub pos: Point3d<LengthUnit>,
917 }
918
919 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
921 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
922 pub struct FaceGetCenter {
923 pub pos: Point3d<LengthUnit>,
925 }
926
927 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
929 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
930 pub struct FaceGetGradient {
931 pub df_du: Point3d<f64>,
933
934 pub df_dv: Point3d<f64>,
936
937 pub normal: Point3d<f64>,
939 }
940
941 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
943 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
944 pub struct PlaneIntersectAndProject {
945 pub plane_coordinates: Option<Point2d<LengthUnit>>,
947 }
948
949 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput, Builder)]
951 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
952 pub struct ImportFiles {
953 pub object_id: Uuid,
955 }
956
957 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
959 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
960 pub struct ImportedGeometry {
961 pub id: Uuid,
963 pub value: Vec<String>,
965 }
966
967 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
969 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
970 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
971 pub struct Mass {
972 pub mass: f64,
974 pub output_unit: units::UnitMass,
976 }
977
978 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
980 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
981 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
982 pub struct Volume {
983 pub volume: f64,
985 pub output_unit: units::UnitVolume,
987 }
988
989 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
991 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
992 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
993 pub struct Density {
994 pub density: f64,
996 pub output_unit: units::UnitDensity,
998 }
999
1000 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1002 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1003 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1004 pub struct SurfaceArea {
1005 pub surface_area: f64,
1007 pub output_unit: units::UnitArea,
1009 }
1010
1011 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1013 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1014 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1015 pub struct CenterOfMass {
1016 pub center_of_mass: Point3d<f64>,
1018 pub output_unit: units::UnitLength,
1020 }
1021
1022 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1024 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1025 pub struct GetSketchModePlane {
1026 pub origin: Point3d<LengthUnit>,
1028 pub x_axis: Point3d<f64>,
1030 pub y_axis: Point3d<f64>,
1032 pub z_axis: Point3d<f64>,
1034 }
1035
1036 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1038 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1039 pub struct EntityGetDistance {
1040 pub min_distance: LengthUnit,
1042 pub max_distance: LengthUnit,
1044 }
1045
1046 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1048 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1049 pub struct FaceEdgeInfo {
1050 pub object_id: Uuid,
1052 pub faces: Vec<Uuid>,
1054 pub edges: Vec<Uuid>,
1056 }
1057
1058 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1060 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1061 pub struct EdgeInfo {
1062 pub edge_id: Uuid,
1064 pub faces: Vec<Uuid>,
1066 }
1067
1068 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1070 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1071 pub struct EntityClone {
1072 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1074 pub face_edge_ids: Vec<FaceEdgeInfo>,
1075 }
1076
1077 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1079 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1080 pub struct EntityLinearPatternTransform {
1081 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1083 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1084 }
1085
1086 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1088 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1089 pub struct EntityLinearPattern {
1090 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1092 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1093 }
1094
1095 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput, Default)]
1097 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1098 pub struct EntityCircularPattern {
1099 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1101 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1102 }
1103
1104 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1106 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1107 pub struct EntityMirror {
1108 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1110 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1111 }
1112
1113 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1115 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1116 pub struct EntityMirrorAcross {
1117 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1119 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1120 }
1121
1122 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1124 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1125 pub struct EntityMirrorAcrossEdge {
1126 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1128 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1129 }
1130
1131 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1133 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1134 pub struct EntityMakeHelix {
1135 }
1136
1137 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1139 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1140 pub struct EntityMakeHelixFromParams {
1141 }
1142
1143 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1145 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1146 pub struct EntityMakeHelixFromEdge {
1147 }
1148
1149 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1151 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1152 pub struct Solid3dGetExtrusionFaceInfo {
1153 pub faces: Vec<ExtrusionFaceInfo>,
1155 }
1156
1157 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1159 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1160 pub struct ExtrusionFaceInfo {
1161 pub curve_id: Option<Uuid>,
1163
1164 pub face_id: Option<Uuid>,
1166
1167 pub cap: ExtrusionFaceCapType,
1170 }
1171
1172 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1174 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1175 pub struct ComplementaryEdges {
1176 pub opposite_id: Option<Uuid>,
1179 pub adjacent_ids: Vec<Uuid>,
1181 }
1182
1183
1184 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1187 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1188 pub struct AdjacencyInfo {
1189 #[serde(default, skip_serializing_if = "Option::is_none")]
1191 pub original_info: Option<EdgeInfo>,
1192 #[serde(default, skip_serializing_if = "Option::is_none")]
1194 pub opposite_info: Option<EdgeInfo>,
1195 #[serde(default, skip_serializing_if = "Option::is_none")]
1197 pub adjacent_info: Option<EdgeInfo>,
1198 }
1199
1200 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1202 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1203 pub struct SetGridReferencePlane {}
1204
1205 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1207 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1208 pub struct BooleanUnion {
1209 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1214 pub extra_solid_ids: Vec<Uuid>,
1215 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1217 pub any_intersections: bool,
1218 }
1219
1220 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1222 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1223 pub struct BooleanIntersection {
1224 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1229 pub extra_solid_ids: Vec<Uuid>,
1230 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1232 pub any_intersections: bool,
1233 }
1234
1235 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1237 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1238 pub struct BooleanSubtract {
1239 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1244 pub extra_solid_ids: Vec<Uuid>,
1245 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1247 pub any_intersections: bool,
1248 }
1249
1250 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1252 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1253 pub struct BooleanImprint {
1254 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1259 pub extra_solid_ids: Vec<Uuid>,
1260 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1262 pub any_intersections: bool,
1263 }
1264
1265 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1267 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1268 pub struct SetGridScale {}
1269
1270 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1272 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1273 pub struct SetGridAutoScale {}
1274
1275 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1277 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1278 pub struct SetOrderIndependentTransparency {
1279 pub enabled: bool,
1281 }
1282
1283 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1287 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1288 pub struct CreateRegion {
1289 pub region_mapping: HashMap<Uuid, Uuid>,
1291 }
1292
1293 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1297 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1298 pub struct CreateRegionFromQueryPoint {
1299 pub region_mapping: HashMap<Uuid, Uuid>,
1301 }
1302
1303 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1305 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1306 pub struct RegionGetQueryPoint {
1307 pub query_point: Point2d<LengthUnit>,
1309 }
1310
1311 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1314 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1315 pub struct SelectRegionFromPoint {
1316 pub region: Option<crate::shared::SelectedRegion>,
1320 }
1321
1322 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1324 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1325 pub struct BoundingBox {
1326 pub center: Point3d<f64>,
1328 pub dimensions: Point3d<f64>,
1330 }
1331
1332 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1334 pub struct OffsetSurface {
1335 }
1336
1337 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1339 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1340 pub struct ClosestEdge {
1341 pub edge_id: Option<Uuid>,
1344 }
1345 }
1346}