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 EntityReference,
27 };
28 use std::collections::HashMap;
29
30 use crate::{self as kittycad_modeling_cmds};
31 use crate::{
32 base64::Base64Data,
33 id::ModelingCmdId,
34 length_unit::LengthUnit,
35 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d, BodiesCreated, BodiesUpdated},
36 units,
37 };
38 use super::bool_true;
39
40 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
42 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
43 pub struct EngineUtilEvaluatePath {
44 pub pos: Point3d<LengthUnit>,
46 }
47
48 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
50 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
51 pub struct StartPath {
52 }
53
54 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
56 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
57 pub struct MovePathPen {
58 }
59
60 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
62 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
63 pub struct ExtendPath {
64 }
65
66 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
68 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
69 pub struct Extrude {
70 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
72 pub bodies_created: BodiesCreated,
73 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
75 pub bodies_updated: BodiesUpdated,
76 }
77
78 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
80 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
81 pub struct ExtrudeToReference {
82 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
84 pub bodies_created: BodiesCreated,
85 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
87 pub bodies_updated: BodiesUpdated,
88 }
89
90 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
92 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
93 pub struct TwistExtrude {
94 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
96 pub bodies_created: BodiesCreated,
97 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
99 pub bodies_updated: BodiesUpdated,
100 }
101
102 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
104 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
105 pub struct Sweep {
106 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
108 pub bodies_created: BodiesCreated,
109 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
111 pub bodies_updated: BodiesUpdated,
112 }
113
114 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
116 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
117 pub struct Revolve {
118 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
120 pub bodies_created: BodiesCreated,
121 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
123 pub bodies_updated: BodiesUpdated,
124 }
125
126 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
128 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
129 pub struct Solid3dShellFace {
130 }
131
132 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
134 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
135 pub struct Solid3dJoin {
136 }
137
138 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
140 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
141 pub struct Solid3dMultiJoin {
142 }
143
144 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
146 pub struct SurfaceBlend {
147 }
148
149 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
151 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
152 pub struct Solid3dGetEdgeUuid {
153 pub edge_id: Uuid,
155 }
156
157 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
159 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
160 pub struct Solid3dGetFaceUuid {
161 pub face_id: Uuid,
163 }
164
165 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
167 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
168 pub struct Solid3dGetBodyType {
169 pub body_type: BodyType,
171 }
172
173 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
175 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
176 pub struct RevolveAboutEdge {
177 #[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
179 pub bodies_created: BodiesCreated,
180 #[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
182 pub bodies_updated: BodiesUpdated,
183 }
184
185 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
187 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
188 pub struct CameraDragStart {
189 }
190
191 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
193 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
194 pub struct DefaultCameraLookAt {
195 }
196
197 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
199 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
200 pub struct DefaultCameraPerspectiveSettings {
201 }
202
203 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
205 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
206 pub struct SelectAdd {
207 }
208 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
210 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
211 pub struct SelectRemove {
212 }
213
214 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
216 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
217 pub struct SceneClearAll {
218 }
219
220 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
222 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
223 pub struct SelectReplace {
224 }
225
226 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
228 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
229 pub struct HighlightSetEntities {
230 }
231
232 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
234 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
235 pub struct NewAnnotation {
236 }
237
238 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
240 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
241 pub struct UpdateAnnotation {
242 }
243
244 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
246 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
247 pub struct EdgeLinesVisible {
248 }
249
250 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
252 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
253 pub struct ObjectVisible {
254 }
255
256 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
258 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
259 pub struct ObjectBringToFront {
260 }
261
262 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
264 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
265 pub struct ObjectSetMaterialParamsPbr {
266 }
267
268 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
270 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
271 pub struct ObjectSetName {
272 }
273
274 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
276 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
277 pub struct Solid2dAddHole {
278 }
279
280 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
282 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
283 pub struct Solid3dFilletEdge {
284 }
285
286 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
288 pub struct Solid3dCutEdgeReferences {
289 }
290
291
292 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
294 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
295 pub struct Solid3dCutEdges {
296 }
297
298
299 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
301 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
302 pub struct SendObject {
303 }
304
305 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
307 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
308 pub struct EntitySetOpacity {
309 }
310
311 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
313 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
314 pub struct EntityFade {
315 }
316
317 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
319 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
320 pub struct MakePlane {
321 }
322
323 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
325 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
326 pub struct PlaneSetColor {
327 }
328
329 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
331 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
332 pub struct SetTool {
333 }
334
335 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
337 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
338 pub struct MouseMove {
339 }
340
341 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
343 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
344 pub struct SketchModeDisable {
345 }
346
347 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
349 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
350 pub struct EnableDryRun {
351 }
352
353 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
355 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
356 pub struct DisableDryRun {
357 }
358
359 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
361 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
362 pub struct CurveSetConstraint {
363 }
364
365 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
367 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
368 pub struct EnableSketchMode {
369 }
370
371 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
373 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
374 pub struct SetBackgroundColor {
375 }
376
377 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
379 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
380 pub struct SetCurrentToolProperties {
381 }
382
383 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
385 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
386 pub struct SetDefaultSystemProperties {
387 }
388
389 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
391 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
392 pub struct MakeAxesGizmo {
393 }
394
395 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
397 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
398 pub struct HandleMouseDragStart {
399 }
400
401 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
403 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
404 pub struct HandleMouseDragMove {
405 }
406
407 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
409 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
410 pub struct HandleMouseDragEnd {
411 }
412
413 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
415 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
416 pub struct RemoveSceneObjects {
417 }
418
419 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
421 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
422 pub struct ReconfigureStream {
423 }
424
425 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
427 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
428 pub struct SetSceneUnits {
429 }
430
431 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
433 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
434 pub struct SetSelectionType {
435 }
436
437 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
439 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
440 pub struct SetSelectionFilter {
441 }
442
443 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
445 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
446 pub struct DefaultCameraSetOrthographic {
447 }
448
449 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
451 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
452 pub struct DefaultCameraSetPerspective {
453 }
454
455 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
457 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
458 pub struct DefaultCameraCenterToSelection {
459 }
460
461 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
463 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
464 pub struct DefaultCameraCenterToScene {
465 }
466
467 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
469 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
470 pub struct SelectClear {
471 }
472
473 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
475 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
476 pub struct SelectEntity {
477 }
478
479 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
481 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
482 pub struct Export2d {
483 pub files: Vec<ExportFile>,
485 }
486
487 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
489 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
490 pub struct Export3d {
491 pub files: Vec<ExportFile>,
493 }
494
495 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
497 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
498 pub struct Export {
499 pub files: Vec<ExportFile>,
501 }
502
503 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
505 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
506 pub struct SelectWithPoint {
507 pub entity_id: Option<Uuid>,
509 }
510
511 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
513 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
514 pub struct QueryEntityTypeWithPoint {
515 #[serde(default, skip_serializing_if = "Option::is_none")]
518 pub reference: Option<EntityReference>,
519 }
520
521 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
523 pub struct QueryEntityType {
524 pub reference: EntityReference,
526 }
527
528 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
530 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
531 pub struct HighlightSetEntity {
532 pub entity_id: Option<Uuid>,
534 pub sequence: Option<u32>,
536 }
537
538 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
540 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
541 pub struct EntityGetChildUuid {
542 pub entity_id: Uuid,
544 }
545 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
547 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
548 pub struct EntityGetIndex {
549 pub entity_index: u32,
551 }
552 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
554 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
555 pub struct EntityGetPrimitiveIndex {
556 pub primitive_index: u32,
558
559 pub entity_type: EntityType,
561 }
562 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
564 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
565 pub struct EntityDeleteChildren {
566 }
567 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
569 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
570 pub struct EntityGetNumChildren {
571 pub num: u32,
573 }
574 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
576 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
577 pub struct EntityGetParentId {
578 pub entity_id: Uuid,
580 }
581 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
583 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
584 pub struct EntityGetAllChildUuids {
585 pub entity_ids: Vec<Uuid>,
587 }
588
589 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
591 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
592 pub struct EntityGetSketchPaths {
593 pub entity_ids: Vec<Uuid>,
595 }
596
597 #[derive(Debug, Serialize, Deserialize, JsonSchema, PartialEq, ModelingCmdOutput, Clone)]
599 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
600 pub struct Loft {
601 pub solid_id: Uuid,
603 }
604
605 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
607 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
608 pub struct ClosePath {
609 pub face_id: Uuid,
611 }
612
613 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
617 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
618 pub struct CameraDragMove {
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 CameraDragEnd {
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 DefaultCameraGetSettings {
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 DefaultCameraGetView {
643 pub view: CameraViewState
645 }
646
647 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
649 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
650 pub struct DefaultCameraSetView {}
651
652 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
654 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
655 pub struct DefaultCameraZoom {
656 pub settings: CameraSettings
658 }
659
660 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
662 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
663 pub struct ZoomToFit {
664 pub settings: CameraSettings
666 }
667
668 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
670 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
671 pub struct OrientToFace {
672 pub settings: CameraSettings
674 }
675
676 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
678 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
679 pub struct ViewIsometric {
680 pub settings: CameraSettings
682 }
683
684 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
686 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
687 pub struct GetNumObjects {
688 pub num_objects: u32,
690 }
691
692 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
694 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
695 pub struct MakeOffsetPath {
696 pub entity_ids: Vec<Uuid>,
701 }
702
703 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
705 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
706 pub struct SetObjectTransform {}
707
708 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
710 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
711 pub struct AddHoleFromOffset {
712 pub entity_ids: Vec<Uuid>,
717 }
718
719 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
721 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
722 pub struct DefaultCameraFocusOn { }
723
724 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
726 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
727 pub struct SelectGet {
728 pub entity_ids: Vec<Uuid>,
730 }
731
732 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
735 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
736 pub struct Solid3dGetAdjacencyInfo {
737 pub edges: Vec<AdjacencyInfo>,
739 }
740
741 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
743 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
744 pub struct Solid3dGetAllEdgeFaces {
745 pub faces: Vec<Uuid>,
747 }
748
749 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
751 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
752 pub struct Solid3dFlip {
753 }
754
755 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
757 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
758 pub struct Solid3dFlipFace {
759 }
760
761 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
763 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
764 pub struct Solid3dGetAllOppositeEdges {
765 pub edges: Vec<Uuid>,
767 }
768
769 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
771 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
772 pub struct Solid3dGetOppositeEdge {
773 pub edge: Uuid,
775 }
776
777 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
779 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
780 pub struct Solid3dGetNextAdjacentEdge {
781 pub edge: Option<Uuid>,
783 }
784
785 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
787 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
788 pub struct Solid3dGetPrevAdjacentEdge {
789 pub edge: Option<Uuid>,
791 }
792
793 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
795 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
796 pub struct Solid3dGetCommonEdge {
797 pub edge: Option<Uuid>,
799 }
800
801 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
803 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
804 pub struct GetEntityType {
805 pub entity_type: EntityType,
807 }
808
809 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
811 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
812 pub struct SceneGetEntityIds {
813 pub entity_ids: Vec<Vec<Uuid>>,
815 }
816
817 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
819 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
820 pub struct CurveGetControlPoints {
821 pub control_points: Vec<Point3d<f64>>,
823 }
824
825 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
827 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
828 pub struct ProjectEntityToPlane {
829 pub projected_points: Vec<Point3d<f64>>,
831 }
832
833 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
835 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
836 pub struct ProjectPointsToPlane {
837 pub projected_points: Vec<Point3d<f64>>,
839 }
840
841 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
843 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
844 pub struct CurveGetType {
845 pub curve_type: CurveType,
847 }
848
849 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
851 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
852 pub struct MouseClick {
853 pub entities_modified: Vec<Uuid>,
855 pub entities_selected: Vec<Uuid>,
857 }
858
859 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
861 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
862 pub struct TakeSnapshot {
863 pub contents: Base64Data,
865 }
866
867 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
869 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
870 pub struct PathGetInfo {
871 pub segments: Vec<PathSegmentInfo>,
873 }
874
875 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
877 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
878 pub struct PathSegmentInfo {
879 pub command_id: Option<ModelingCmdId>,
883 pub command: PathCommand,
885 pub relative: bool,
887 }
888
889 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
891 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
892 pub struct PathGetCurveUuidsForVertices {
893 pub curve_ids: Vec<Uuid>,
895 }
896
897 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
899 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
900 pub struct PathGetCurveUuid {
901 pub curve_id: Uuid,
903 }
904
905 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
907 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
908 pub struct PathGetVertexUuids {
909 pub vertex_ids: Vec<Uuid>,
911 }
912
913 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
915 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
916 pub struct PathGetSketchTargetUuid {
917 pub target_id: Option<Uuid>,
919 }
920
921 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
923 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
924 pub struct CurveGetEndPoints {
925 pub start: Point3d<LengthUnit>,
927 pub end: Point3d<LengthUnit>,
929 }
930
931 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
933 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
934 pub struct FaceIsPlanar {
935 pub origin: Option<Point3d<LengthUnit>>,
937
938 pub x_axis: Option<Point3d<f64>>,
940
941 pub y_axis: Option<Point3d<f64>>,
943
944 pub z_axis: Option<Point3d<f64>>,
946 }
947
948 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
950 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
951 pub struct FaceGetPosition {
952 pub pos: Point3d<LengthUnit>,
954 }
955
956 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
958 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
959 pub struct FaceGetCenter {
960 pub pos: Point3d<LengthUnit>,
962 }
963
964 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, JsonSchema, ModelingCmdOutput)]
966 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
967 pub struct FaceGetGradient {
968 pub df_du: Point3d<f64>,
970
971 pub df_dv: Point3d<f64>,
973
974 pub normal: Point3d<f64>,
976 }
977
978 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
980 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
981 pub struct PlaneIntersectAndProject {
982 pub plane_coordinates: Option<Point2d<LengthUnit>>,
984 }
985
986 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput, Builder)]
988 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
989 pub struct ImportFiles {
990 pub object_id: Uuid,
992 }
993
994 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
996 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
997 pub struct ImportedGeometry {
998 pub id: Uuid,
1000 pub value: Vec<String>,
1002 }
1003
1004 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1006 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1007 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1008 pub struct Mass {
1009 pub mass: f64,
1011 pub output_unit: units::UnitMass,
1013 }
1014
1015 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1017 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1018 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1019 pub struct Volume {
1020 pub volume: f64,
1022 pub output_unit: units::UnitVolume,
1024 }
1025
1026 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1028 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1029 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1030 pub struct Density {
1031 pub density: f64,
1033 pub output_unit: units::UnitDensity,
1035 }
1036
1037 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1039 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1040 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1041 pub struct SurfaceArea {
1042 pub surface_area: f64,
1044 pub output_unit: units::UnitArea,
1046 }
1047
1048 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1050 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
1051 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1052 pub struct CenterOfMass {
1053 pub center_of_mass: Point3d<f64>,
1055 pub output_unit: units::UnitLength,
1057 }
1058
1059 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1061 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1062 pub struct GetSketchModePlane {
1063 pub origin: Point3d<LengthUnit>,
1065 pub x_axis: Point3d<f64>,
1067 pub y_axis: Point3d<f64>,
1069 pub z_axis: Point3d<f64>,
1071 }
1072
1073 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1075 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1076 pub struct EntityGetDistance {
1077 pub min_distance: LengthUnit,
1079 pub max_distance: LengthUnit,
1081 }
1082
1083 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1085 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1086 pub struct EdgeGetLength {
1087 pub length: LengthUnit,
1089 }
1090
1091 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1093 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1094 pub struct FaceEdgeInfo {
1095 pub object_id: Uuid,
1097 pub faces: Vec<Uuid>,
1099 pub edges: Vec<Uuid>,
1101 }
1102
1103 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1105 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1106 pub struct EdgeInfo {
1107 pub edge_id: Uuid,
1109 pub faces: Vec<Uuid>,
1111 }
1112
1113 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1115 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1116 pub struct EntityClone {
1117 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1119 pub 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 EntityLinearPatternTransform {
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 EntityLinearPattern {
1135 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1137 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1138 }
1139
1140 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput, Default)]
1142 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1143 pub struct EntityCircularPattern {
1144 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1146 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1147 }
1148
1149 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1151 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1152 pub struct EntityMirror {
1153 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1155 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1156 }
1157
1158 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1160 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1161 pub struct EntityMirrorAcross {
1162 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1164 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1165 }
1166
1167 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1169 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1170 pub struct EntityMirrorAcrossEdge {
1171 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1173 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
1174 }
1175
1176 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1178 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1179 pub struct EntityMakeHelix {
1180 }
1181
1182 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1184 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1185 pub struct EntityMakeHelixFromParams {
1186 }
1187
1188 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1190 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1191 pub struct EntityMakeHelixFromEdge {
1192 }
1193
1194 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1196 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1197 pub struct Solid3dGetExtrusionFaceInfo {
1198 pub faces: Vec<ExtrusionFaceInfo>,
1200 }
1201
1202 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1204 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1205 pub struct ExtrusionFaceInfo {
1206 pub curve_id: Option<Uuid>,
1208
1209 pub face_id: Option<Uuid>,
1211
1212 pub cap: ExtrusionFaceCapType,
1215 }
1216
1217 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1219 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1220 pub struct ComplementaryEdges {
1221 pub opposite_id: Option<Uuid>,
1224 pub adjacent_ids: Vec<Uuid>,
1226 }
1227
1228
1229 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1232 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1233 pub struct AdjacencyInfo {
1234 #[serde(default, skip_serializing_if = "Option::is_none")]
1236 pub original_info: Option<EdgeInfo>,
1237 #[serde(default, skip_serializing_if = "Option::is_none")]
1239 pub opposite_info: Option<EdgeInfo>,
1240 #[serde(default, skip_serializing_if = "Option::is_none")]
1242 pub adjacent_info: Option<EdgeInfo>,
1243 }
1244
1245 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1247 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1248 pub struct SetGridReferencePlane {}
1249
1250 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1252 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1253 pub struct BooleanUnion {
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 BooleanIntersection {
1269 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1274 pub extra_solid_ids: Vec<Uuid>,
1275 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1277 pub any_intersections: bool,
1278 }
1279
1280 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1282 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1283 pub struct BooleanSubtract {
1284 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1289 pub extra_solid_ids: Vec<Uuid>,
1290 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1292 pub any_intersections: bool,
1293 }
1294
1295 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1297 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1298 pub struct BooleanImprint {
1299 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1304 pub extra_solid_ids: Vec<Uuid>,
1305 #[serde(default = "bool_true", skip_serializing_if = "super::is_true")]
1307 pub any_intersections: bool,
1308 }
1309
1310 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1312 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1313 pub struct SetGridScale {}
1314
1315 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1317 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1318 pub struct SetGridAutoScale {}
1319
1320 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1322 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1323 pub struct SetOrderIndependentTransparency {
1324 pub enabled: bool,
1326 }
1327
1328 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1332 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1333 pub struct CreateRegion {
1334 pub region_mapping: HashMap<Uuid, Uuid>,
1336 }
1337
1338 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1342 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1343 pub struct CreateRegionFromQueryPoint {
1344 pub region_mapping: HashMap<Uuid, Uuid>,
1346 }
1347
1348 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1350 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1351 pub struct RegionGetQueryPoint {
1352 pub query_point: Point2d<LengthUnit>,
1354 }
1355
1356 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1359 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1360 pub struct SelectRegionFromPoint {
1361 pub region: Option<crate::shared::SelectedRegion>,
1365 }
1366
1367 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1369 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1370 pub struct BoundingBox {
1371 pub center: Point3d<f64>,
1373 pub dimensions: Point3d<f64>,
1375 }
1376
1377 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1379 pub struct OffsetSurface {
1380 }
1381
1382 #[derive(Debug, Serialize, Deserialize, Clone, PartialEq, JsonSchema, ModelingCmdOutput)]
1384 #[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
1385 pub struct ClosestEdge {
1386 pub edge_id: Option<Uuid>,
1389 }
1390 }
1391}