1use kittycad_modeling_cmds_macros::define_ok_modeling_cmd_response_enum;
2use serde::{Deserialize, Serialize};
3
4impl crate::ModelingCmdOutput for () {}
5
6define_ok_modeling_cmd_response_enum! {
7 pub mod output {
9 use std::collections::HashMap;
10
11 use kittycad_modeling_cmds_macros::ModelingCmdOutput;
12 use schemars::JsonSchema;
13 use serde::{Deserialize, Serialize};
14 use uuid::Uuid;
15 use crate::shared::CameraSettings;
16 use crate::shared::CameraViewState;
17
18 use crate::{self as kittycad_modeling_cmds};
19 use crate::{
20 base64::Base64Data,
21 id::ModelingCmdId,
22 length_unit::LengthUnit,
23 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d},
24 units,
25 };
26
27 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
29 pub struct EngineUtilEvaluatePath {
30 pub pos: Point3d<LengthUnit>,
32 }
33
34 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
36 pub struct StartPath {
37 }
38
39 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
41 pub struct MovePathPen {
42 }
43
44 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
46 pub struct ExtendPath {
47 }
48
49 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
51 pub struct Extrude {
52 }
53
54 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
56 pub struct Sweep {
57 }
58
59 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
61 pub struct Revolve {
62 }
63
64 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
66 pub struct Solid3dShellFace {
67 }
68
69 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
71 pub struct RevolveAboutEdge {
72 }
73
74 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
76 pub struct CameraDragStart {
77 }
78
79 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
81 pub struct DefaultCameraLookAt {
82 }
83
84 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
86 pub struct DefaultCameraPerspectiveSettings {
87 }
88
89 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
91 pub struct SelectAdd {
92 }
93 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
95 pub struct SelectRemove {
96 }
97
98 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
100 pub struct SceneClearAll {
101 }
102
103 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
105 pub struct SelectReplace {
106 }
107
108 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
110 pub struct HighlightSetEntities {
111 }
112
113 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
115 pub struct NewAnnotation {
116 }
117
118 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
120 pub struct UpdateAnnotation {
121 }
122
123 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
125 pub struct EdgeLinesVisible {
126 }
127
128 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
130 pub struct ObjectVisible {
131 }
132
133 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
135 pub struct ObjectBringToFront {
136 }
137
138 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
140 pub struct ObjectSetMaterialParamsPbr {
141 }
142
143 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
145 pub struct Solid2dAddHole {
146 }
147
148 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
150 pub struct Solid3dFilletEdge {
151 }
152
153 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
155 pub struct SendObject {
156 }
157
158 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
160 pub struct EntitySetOpacity {
161 }
162
163 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
165 pub struct EntityFade {
166 }
167
168 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
170 pub struct MakePlane {
171 }
172
173 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
175 pub struct PlaneSetColor {
176 }
177
178 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
180 pub struct SetTool {
181 }
182
183 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
185 pub struct MouseMove {
186 }
187
188 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
190 pub struct SketchModeDisable {
191 }
192
193 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
195 pub struct EnableDryRun {
196 }
197
198 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
200 pub struct DisableDryRun {
201 }
202
203 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
205 pub struct CurveSetConstraint {
206 }
207
208 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
210 pub struct EnableSketchMode {
211 }
212
213 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
215 pub struct SetBackgroundColor {
216 }
217
218 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
220 pub struct SetCurrentToolProperties {
221 }
222
223 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
225 pub struct SetDefaultSystemProperties {
226 }
227
228 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
230 pub struct MakeAxesGizmo {
231 }
232
233 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
235 pub struct HandleMouseDragStart {
236 }
237
238 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
240 pub struct HandleMouseDragMove {
241 }
242
243 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
245 pub struct HandleMouseDragEnd {
246 }
247
248 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
250 pub struct RemoveSceneObjects {
251 }
252
253 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
255 pub struct ReconfigureStream {
256 }
257
258 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
260 pub struct SetSceneUnits {
261 }
262
263 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
265 pub struct SetSelectionType {
266 }
267
268 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
270 pub struct SetSelectionFilter {
271 }
272
273 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
275 pub struct DefaultCameraSetOrthographic {
276 }
277
278 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
280 pub struct DefaultCameraSetPerspective {
281 }
282
283 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
285 pub struct DefaultCameraCenterToSelection {
286 }
287
288 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
290 pub struct DefaultCameraCenterToScene {
291 }
292
293 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
295 pub struct SelectClear {
296 }
297
298 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
300 pub struct Export2d {
301 pub files: Vec<ExportFile>,
303 }
304
305 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
307 pub struct Export3d {
308 pub files: Vec<ExportFile>,
310 }
311
312 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
314 pub struct Export {
315 pub files: Vec<ExportFile>,
317 }
318
319 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
321 pub struct SelectWithPoint {
322 pub entity_id: Option<Uuid>,
324 }
325 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
327 pub struct HighlightSetEntity {
328 pub entity_id: Option<Uuid>,
330 pub sequence: Option<u32>,
332 }
333 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
335 pub struct EntityGetChildUuid {
336 pub entity_id: Uuid,
338 }
339 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
341 pub struct EntityGetNumChildren {
342 pub num: u32,
344 }
345 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
347 pub struct EntityGetParentId {
348 pub entity_id: Uuid,
350 }
351 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
353 pub struct EntityGetAllChildUuids {
354 pub entity_ids: Vec<Uuid>,
356 }
357
358 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
360 pub struct EntityGetSketchPaths {
361 pub entity_ids: Vec<Uuid>,
363 }
364
365 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
367 pub struct Loft {
368 pub solid_id: Uuid,
370 }
371
372 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
374 pub struct ClosePath {
375 pub face_id: Uuid,
377 }
378
379 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
383 pub struct CameraDragMove {
384 pub settings: CameraSettings
386 }
387
388 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
390 pub struct CameraDragEnd {
391 pub settings: CameraSettings
393 }
394
395 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
397 pub struct DefaultCameraGetSettings {
398 pub settings: CameraSettings
400 }
401
402 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
404 pub struct DefaultCameraGetView {
405 pub view: CameraViewState
407 }
408
409 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
411 pub struct DefaultCameraSetView {}
412
413 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
415 pub struct DefaultCameraZoom {
416 pub settings: CameraSettings
418 }
419
420 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
422 pub struct ZoomToFit {
423 pub settings: CameraSettings
425 }
426
427 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
429 pub struct OrientToFace {
430 pub settings: CameraSettings
432 }
433
434 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
436 pub struct ViewIsometric {
437 pub settings: CameraSettings
439 }
440
441 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
443 pub struct GetNumObjects {
444 pub num_objects: u32,
446 }
447
448 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
450 pub struct MakeOffsetPath {
451 pub entity_ids: Vec<Uuid>,
456 }
457
458 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
460 pub struct SetObjectTransform {}
461
462 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
464 pub struct AddHoleFromOffset {
465 pub entity_ids: Vec<Uuid>,
470 }
471
472 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
474 pub struct DefaultCameraFocusOn { }
475
476 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
478 pub struct SelectGet {
479 pub entity_ids: Vec<Uuid>,
481 }
482
483 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
485 pub struct Solid3dGetAllEdgeFaces {
486 pub faces: Vec<Uuid>,
488 }
489
490 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
492 pub struct Solid3dGetAllOppositeEdges {
493 pub edges: Vec<Uuid>,
495 }
496
497 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
499 pub struct Solid3dGetOppositeEdge {
500 pub edge: Uuid,
502 }
503
504 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
506 pub struct Solid3dGetNextAdjacentEdge {
507 pub edge: Option<Uuid>,
509 }
510
511 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
513 pub struct Solid3dGetPrevAdjacentEdge {
514 pub edge: Option<Uuid>,
516 }
517
518 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
520 pub struct Solid3dGetCommonEdge {
521 pub edge: Option<Uuid>,
523 }
524
525 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
527 pub struct GetEntityType {
528 pub entity_type: EntityType,
530 }
531 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
533 pub struct CurveGetControlPoints {
534 pub control_points: Vec<Point3d<f64>>,
536 }
537
538 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
540 pub struct ProjectEntityToPlane {
541 pub projected_points: Vec<Point3d<f64>>,
543 }
544
545 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
547 pub struct ProjectPointsToPlane {
548 pub projected_points: Vec<Point3d<f64>>,
550 }
551
552 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
554 pub struct CurveGetType {
555 pub curve_type: CurveType,
557 }
558
559 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
561 pub struct MouseClick {
562 pub entities_modified: Vec<Uuid>,
564 pub entities_selected: Vec<Uuid>,
566 }
567
568 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
570 pub struct TakeSnapshot {
571 pub contents: Base64Data,
573 }
574
575 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
577 pub struct PathGetInfo {
578 pub segments: Vec<PathSegmentInfo>,
580 }
581
582 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
584 pub struct PathSegmentInfo {
585 pub command_id: Option<ModelingCmdId>,
589 pub command: PathCommand,
591 pub relative: bool,
593 }
594
595 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
597 pub struct PathGetCurveUuidsForVertices {
598 pub curve_ids: Vec<Uuid>,
600 }
601
602 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
604 pub struct PathGetCurveUuid {
605 pub curve_id: Uuid,
607 }
608
609 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
611 pub struct PathGetVertexUuids {
612 pub vertex_ids: Vec<Uuid>,
614 }
615
616 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
618 pub struct PathGetSketchTargetUuid {
619 pub target_id: Option<Uuid>,
621 }
622
623 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
625 pub struct CurveGetEndPoints {
626 pub start: Point3d<LengthUnit>,
628 pub end: Point3d<LengthUnit>,
630 }
631
632 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
634 pub struct FaceIsPlanar {
635 pub origin: Option<Point3d<LengthUnit>>,
637
638 pub x_axis: Option<Point3d<f64>>,
640
641 pub y_axis: Option<Point3d<f64>>,
643
644 pub z_axis: Option<Point3d<f64>>,
646 }
647
648 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
650 pub struct FaceGetPosition {
651 pub pos: Point3d<LengthUnit>,
653 }
654
655 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
657 pub struct FaceGetCenter {
658 pub pos: Point3d<LengthUnit>,
660 }
661
662 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
664 pub struct FaceGetGradient {
665 pub df_du: Point3d<f64>,
667
668 pub df_dv: Point3d<f64>,
670
671 pub normal: Point3d<f64>,
673 }
674
675 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
677 pub struct PlaneIntersectAndProject {
678 pub plane_coordinates: Option<Point2d<LengthUnit>>,
680 }
681
682 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
684 pub struct ImportFiles {
685 pub object_id: Uuid,
687 }
688
689 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
691 pub struct ImportedGeometry {
692 pub id: Uuid,
694 pub value: Vec<String>,
696 }
697
698 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
700 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
701 pub struct Mass {
702 pub mass: f64,
704 pub output_unit: units::UnitMass,
706 }
707
708 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
710 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
711 pub struct Volume {
712 pub volume: f64,
714 pub output_unit: units::UnitVolume,
716 }
717
718 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
720 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
721 pub struct Density {
722 pub density: f64,
724 pub output_unit: units::UnitDensity,
726 }
727
728 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
730 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
731 pub struct SurfaceArea {
732 pub surface_area: f64,
734 pub output_unit: units::UnitArea,
736 }
737
738 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
740 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
741 pub struct CenterOfMass {
742 pub center_of_mass: Point3d<f64>,
744 pub output_unit: units::UnitLength,
746 }
747
748 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
750 pub struct GetSketchModePlane {
751 pub origin: Point3d<LengthUnit>,
753 pub x_axis: Point3d<f64>,
755 pub y_axis: Point3d<f64>,
757 pub z_axis: Point3d<f64>,
759 }
760
761 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
763 pub struct EntityGetDistance {
764 pub min_distance: LengthUnit,
766 pub max_distance: LengthUnit,
768 }
769
770 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
772 pub struct FaceEdgeInfo {
773 pub object_id: Uuid,
775 pub faces: Vec<Uuid>,
777 pub edges: Vec<Uuid>,
779 }
780
781 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
783 pub struct EntityClone {
784 #[serde(default, skip_serializing_if = "Vec::is_empty")]
786 pub entity_ids: Vec<Uuid>,
787 #[serde(default, skip_serializing_if = "Vec::is_empty")]
789 pub face_edge_ids: Vec<FaceEdgeInfo>,
790 }
791
792 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
794 pub struct EntityLinearPatternTransform {
795 #[serde(default, skip_serializing_if = "Vec::is_empty")]
797 pub entity_ids: Vec<Uuid>,
798 #[serde(default, skip_serializing_if = "Vec::is_empty")]
800 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
801 }
802
803 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
805 pub struct EntityLinearPattern {
806 #[serde(default, skip_serializing_if = "Vec::is_empty")]
808 pub entity_ids: Vec<Uuid>,
809 #[serde(default, skip_serializing_if = "Vec::is_empty")]
811 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
812 }
813
814 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
816 pub struct EntityCircularPattern {
817 #[serde(default, skip_serializing_if = "Vec::is_empty")]
819 pub entity_ids: Vec<Uuid>,
820 #[serde(default, skip_serializing_if = "Vec::is_empty")]
822 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
823 }
824
825 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
827 pub struct EntityMirror {
828 #[serde(default, skip_serializing_if = "Vec::is_empty")]
830 pub entity_ids: Vec<Uuid>,
831 #[serde(default, skip_serializing_if = "Vec::is_empty")]
833 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
834 }
835
836 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
838 pub struct EntityMirrorAcrossEdge {
839 #[serde(default, skip_serializing_if = "Vec::is_empty")]
841 pub entity_ids: Vec<Uuid>,
842 #[serde(default, skip_serializing_if = "Vec::is_empty")]
844 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
845 }
846
847 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
849 pub struct EntityMakeHelix {
850 }
851
852 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
854 pub struct EntityMakeHelixFromParams {
855 }
856
857 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
859 pub struct EntityMakeHelixFromEdge {
860 }
861
862 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
864 pub struct Solid3dGetExtrusionFaceInfo {
865 pub faces: Vec<ExtrusionFaceInfo>,
867 }
868
869 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
871 pub struct ExtrusionFaceInfo {
872 pub curve_id: Option<Uuid>,
874
875 pub face_id: Option<Uuid>,
877
878 pub cap: ExtrusionFaceCapType,
881 }
882
883 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
885 pub struct ComplementaryEdges {
886 pub opposite_id: Option<Uuid>,
889 pub adjacent_ids: Vec<Uuid>,
891 }
892
893 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
895 pub struct Solid3dGetInfo {
896 pub info: SolidInfo,
898 }
899
900 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
903 pub struct SolidInfo {
904 pub top_cap_id: Option<Uuid>,
906
907 pub bottom_cap_id: Option<Uuid>,
909
910 pub common_edges: HashMap<Uuid, Vec<Uuid>>,
912
913 pub complementary_edges: HashMap<Uuid, ComplementaryEdges>,
915 }
916
917 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
919 pub struct SetGridReferencePlane {}
920
921 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
923 pub struct BooleanUnion {
924 #[serde(default, skip_serializing_if = "Vec::is_empty")]
929 pub extra_solid_ids: Vec<Uuid>,
930 }
931
932 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
934 pub struct BooleanIntersection {
935 #[serde(default, skip_serializing_if = "Vec::is_empty")]
940 pub extra_solid_ids: Vec<Uuid>,
941 }
942
943 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
945 pub struct BooleanSubtract {
946 #[serde(default, skip_serializing_if = "Vec::is_empty")]
951 pub extra_solid_ids: Vec<Uuid>,
952 }
953
954 }
955}