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 kittycad_modeling_cmds_macros::ModelingCmdOutput;
10 use schemars::JsonSchema;
11 use serde::{Deserialize, Serialize};
12 use uuid::Uuid;
13 use crate::shared::CameraSettings;
14 use crate::shared::CameraViewState;
15
16 use crate::{self as kittycad_modeling_cmds};
17 use crate::{
18 base64::Base64Data,
19 id::ModelingCmdId,
20 length_unit::LengthUnit,
21 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d},
22 units,
23 };
24
25 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
27 pub struct EngineUtilEvaluatePath {
28 pub pos: Point3d<LengthUnit>,
30 }
31
32 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
34 pub struct StartPath {
35 }
36
37 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
39 pub struct MovePathPen {
40 }
41
42 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
44 pub struct ExtendPath {
45 }
46
47 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
49 pub struct Extrude {
50 }
51
52 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
54 pub struct ExtrudeToReference {
55 }
56
57 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
59 pub struct TwistExtrude {
60 }
61
62 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
64 pub struct Sweep {
65 }
66
67 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
69 pub struct Revolve {
70 }
71
72 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
74 pub struct Solid3dShellFace {
75 }
76
77 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
79 pub struct RevolveAboutEdge {
80 }
81
82 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
84 pub struct CameraDragStart {
85 }
86
87 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
89 pub struct DefaultCameraLookAt {
90 }
91
92 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
94 pub struct DefaultCameraPerspectiveSettings {
95 }
96
97 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
99 pub struct SelectAdd {
100 }
101 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
103 pub struct SelectRemove {
104 }
105
106 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
108 pub struct SceneClearAll {
109 }
110
111 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
113 pub struct SelectReplace {
114 }
115
116 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
118 pub struct HighlightSetEntities {
119 }
120
121 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
123 pub struct NewAnnotation {
124 }
125
126 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
128 pub struct UpdateAnnotation {
129 }
130
131 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
133 pub struct EdgeLinesVisible {
134 }
135
136 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
138 pub struct ObjectVisible {
139 }
140
141 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
143 pub struct ObjectBringToFront {
144 }
145
146 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
148 pub struct ObjectSetMaterialParamsPbr {
149 }
150
151 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
153 pub struct Solid2dAddHole {
154 }
155
156 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
158 pub struct Solid3dFilletEdge {
159 }
160
161 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
163 pub struct Solid3dCutEdges {
164 }
165
166
167 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
169 pub struct SendObject {
170 }
171
172 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
174 pub struct EntitySetOpacity {
175 }
176
177 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
179 pub struct EntityFade {
180 }
181
182 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
184 pub struct MakePlane {
185 }
186
187 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
189 pub struct PlaneSetColor {
190 }
191
192 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
194 pub struct SetTool {
195 }
196
197 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
199 pub struct MouseMove {
200 }
201
202 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
204 pub struct SketchModeDisable {
205 }
206
207 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
209 pub struct EnableDryRun {
210 }
211
212 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
214 pub struct DisableDryRun {
215 }
216
217 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
219 pub struct CurveSetConstraint {
220 }
221
222 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
224 pub struct EnableSketchMode {
225 }
226
227 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
229 pub struct SetBackgroundColor {
230 }
231
232 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
234 pub struct SetCurrentToolProperties {
235 }
236
237 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
239 pub struct SetDefaultSystemProperties {
240 }
241
242 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
244 pub struct MakeAxesGizmo {
245 }
246
247 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
249 pub struct HandleMouseDragStart {
250 }
251
252 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
254 pub struct HandleMouseDragMove {
255 }
256
257 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
259 pub struct HandleMouseDragEnd {
260 }
261
262 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
264 pub struct RemoveSceneObjects {
265 }
266
267 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
269 pub struct ReconfigureStream {
270 }
271
272 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
274 pub struct SetSceneUnits {
275 }
276
277 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
279 pub struct SetSelectionType {
280 }
281
282 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
284 pub struct SetSelectionFilter {
285 }
286
287 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
289 pub struct DefaultCameraSetOrthographic {
290 }
291
292 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
294 pub struct DefaultCameraSetPerspective {
295 }
296
297 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
299 pub struct DefaultCameraCenterToSelection {
300 }
301
302 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
304 pub struct DefaultCameraCenterToScene {
305 }
306
307 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
309 pub struct SelectClear {
310 }
311
312 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
314 pub struct Export2d {
315 pub files: Vec<ExportFile>,
317 }
318
319 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
321 pub struct Export3d {
322 pub files: Vec<ExportFile>,
324 }
325
326 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
328 pub struct Export {
329 pub files: Vec<ExportFile>,
331 }
332
333 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
335 pub struct SelectWithPoint {
336 pub entity_id: Option<Uuid>,
338 }
339 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
341 pub struct HighlightSetEntity {
342 pub entity_id: Option<Uuid>,
344 pub sequence: Option<u32>,
346 }
347 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
349 pub struct EntityGetChildUuid {
350 pub entity_id: Uuid,
352 }
353 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
355 pub struct EntityGetNumChildren {
356 pub num: u32,
358 }
359 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
361 pub struct EntityGetParentId {
362 pub entity_id: Uuid,
364 }
365 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
367 pub struct EntityGetAllChildUuids {
368 pub entity_ids: Vec<Uuid>,
370 }
371
372 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
374 pub struct EntityGetSketchPaths {
375 pub entity_ids: Vec<Uuid>,
377 }
378
379 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
381 pub struct Loft {
382 pub solid_id: Uuid,
384 }
385
386 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
388 pub struct ClosePath {
389 pub face_id: Uuid,
391 }
392
393 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
397 pub struct CameraDragMove {
398 pub settings: CameraSettings
400 }
401
402 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
404 pub struct CameraDragEnd {
405 pub settings: CameraSettings
407 }
408
409 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
411 pub struct DefaultCameraGetSettings {
412 pub settings: CameraSettings
414 }
415
416 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
418 pub struct DefaultCameraGetView {
419 pub view: CameraViewState
421 }
422
423 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
425 pub struct DefaultCameraSetView {}
426
427 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
429 pub struct DefaultCameraZoom {
430 pub settings: CameraSettings
432 }
433
434 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
436 pub struct ZoomToFit {
437 pub settings: CameraSettings
439 }
440
441 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
443 pub struct OrientToFace {
444 pub settings: CameraSettings
446 }
447
448 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
450 pub struct ViewIsometric {
451 pub settings: CameraSettings
453 }
454
455 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
457 pub struct GetNumObjects {
458 pub num_objects: u32,
460 }
461
462 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
464 pub struct MakeOffsetPath {
465 pub entity_ids: Vec<Uuid>,
470 }
471
472 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
474 pub struct SetObjectTransform {}
475
476 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
478 pub struct AddHoleFromOffset {
479 pub entity_ids: Vec<Uuid>,
484 }
485
486 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
488 pub struct DefaultCameraFocusOn { }
489
490 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
492 pub struct SelectGet {
493 pub entity_ids: Vec<Uuid>,
495 }
496
497 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
500 pub struct Solid3dGetAdjacencyInfo {
501 pub edges: Vec<AdjacencyInfo>,
503 }
504
505 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
507 pub struct Solid3dGetAllEdgeFaces {
508 pub faces: Vec<Uuid>,
510 }
511
512 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
514 pub struct Solid3dGetAllOppositeEdges {
515 pub edges: Vec<Uuid>,
517 }
518
519 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
521 pub struct Solid3dGetOppositeEdge {
522 pub edge: Uuid,
524 }
525
526 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
528 pub struct Solid3dGetNextAdjacentEdge {
529 pub edge: Option<Uuid>,
531 }
532
533 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
535 pub struct Solid3dGetPrevAdjacentEdge {
536 pub edge: Option<Uuid>,
538 }
539
540 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
542 pub struct Solid3dGetCommonEdge {
543 pub edge: Option<Uuid>,
545 }
546
547 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
549 pub struct GetEntityType {
550 pub entity_type: EntityType,
552 }
553
554 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
556 pub struct SceneGetEntityIds {
557 pub entity_ids: Vec<Vec<Uuid>>,
559 }
560
561 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
563 pub struct CurveGetControlPoints {
564 pub control_points: Vec<Point3d<f64>>,
566 }
567
568 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
570 pub struct ProjectEntityToPlane {
571 pub projected_points: Vec<Point3d<f64>>,
573 }
574
575 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
577 pub struct ProjectPointsToPlane {
578 pub projected_points: Vec<Point3d<f64>>,
580 }
581
582 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
584 pub struct CurveGetType {
585 pub curve_type: CurveType,
587 }
588
589 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
591 pub struct MouseClick {
592 pub entities_modified: Vec<Uuid>,
594 pub entities_selected: Vec<Uuid>,
596 }
597
598 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
600 pub struct TakeSnapshot {
601 pub contents: Base64Data,
603 }
604
605 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
607 pub struct PathGetInfo {
608 pub segments: Vec<PathSegmentInfo>,
610 }
611
612 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
614 pub struct PathSegmentInfo {
615 pub command_id: Option<ModelingCmdId>,
619 pub command: PathCommand,
621 pub relative: bool,
623 }
624
625 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
627 pub struct PathGetCurveUuidsForVertices {
628 pub curve_ids: Vec<Uuid>,
630 }
631
632 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
634 pub struct PathGetCurveUuid {
635 pub curve_id: Uuid,
637 }
638
639 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
641 pub struct PathGetVertexUuids {
642 pub vertex_ids: Vec<Uuid>,
644 }
645
646 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
648 pub struct PathGetSketchTargetUuid {
649 pub target_id: Option<Uuid>,
651 }
652
653 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
655 pub struct CurveGetEndPoints {
656 pub start: Point3d<LengthUnit>,
658 pub end: Point3d<LengthUnit>,
660 }
661
662 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
664 pub struct FaceIsPlanar {
665 pub origin: Option<Point3d<LengthUnit>>,
667
668 pub x_axis: Option<Point3d<f64>>,
670
671 pub y_axis: Option<Point3d<f64>>,
673
674 pub z_axis: Option<Point3d<f64>>,
676 }
677
678 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
680 pub struct FaceGetPosition {
681 pub pos: Point3d<LengthUnit>,
683 }
684
685 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
687 pub struct FaceGetCenter {
688 pub pos: Point3d<LengthUnit>,
690 }
691
692 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
694 pub struct FaceGetGradient {
695 pub df_du: Point3d<f64>,
697
698 pub df_dv: Point3d<f64>,
700
701 pub normal: Point3d<f64>,
703 }
704
705 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
707 pub struct PlaneIntersectAndProject {
708 pub plane_coordinates: Option<Point2d<LengthUnit>>,
710 }
711
712 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
714 pub struct ImportFiles {
715 pub object_id: Uuid,
717 }
718
719 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
721 pub struct ImportedGeometry {
722 pub id: Uuid,
724 pub value: Vec<String>,
726 }
727
728 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
730 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
731 pub struct Mass {
732 pub mass: f64,
734 pub output_unit: units::UnitMass,
736 }
737
738 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
740 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
741 pub struct Volume {
742 pub volume: f64,
744 pub output_unit: units::UnitVolume,
746 }
747
748 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
750 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
751 pub struct Density {
752 pub density: f64,
754 pub output_unit: units::UnitDensity,
756 }
757
758 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
760 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
761 pub struct SurfaceArea {
762 pub surface_area: f64,
764 pub output_unit: units::UnitArea,
766 }
767
768 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
770 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
771 pub struct CenterOfMass {
772 pub center_of_mass: Point3d<f64>,
774 pub output_unit: units::UnitLength,
776 }
777
778 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
780 pub struct GetSketchModePlane {
781 pub origin: Point3d<LengthUnit>,
783 pub x_axis: Point3d<f64>,
785 pub y_axis: Point3d<f64>,
787 pub z_axis: Point3d<f64>,
789 }
790
791 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
793 pub struct EntityGetDistance {
794 pub min_distance: LengthUnit,
796 pub max_distance: LengthUnit,
798 }
799
800 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
802 pub struct FaceEdgeInfo {
803 pub object_id: Uuid,
805 pub faces: Vec<Uuid>,
807 pub edges: Vec<Uuid>,
809 }
810
811 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
813 pub struct EdgeInfo {
814 pub edge_id: Uuid,
816 pub faces: Vec<Uuid>,
818 }
819
820 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
822 pub struct EntityClone {
823 #[serde(default, skip_serializing_if = "Vec::is_empty")]
825 pub face_edge_ids: Vec<FaceEdgeInfo>,
826 }
827
828 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
830 pub struct EntityLinearPatternTransform {
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 EntityLinearPattern {
839 #[serde(default, skip_serializing_if = "Vec::is_empty")]
841 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
842 }
843
844 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
846 pub struct EntityCircularPattern {
847 #[serde(default, skip_serializing_if = "Vec::is_empty")]
849 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
850 }
851
852 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
854 pub struct EntityMirror {
855 #[serde(default, skip_serializing_if = "Vec::is_empty")]
857 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
858 }
859
860 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
862 pub struct EntityMirrorAcrossEdge {
863 #[serde(default, skip_serializing_if = "Vec::is_empty")]
865 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
866 }
867
868 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
870 pub struct EntityMakeHelix {
871 }
872
873 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
875 pub struct EntityMakeHelixFromParams {
876 }
877
878 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
880 pub struct EntityMakeHelixFromEdge {
881 }
882
883 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
885 pub struct Solid3dGetExtrusionFaceInfo {
886 pub faces: Vec<ExtrusionFaceInfo>,
888 }
889
890 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
892 pub struct ExtrusionFaceInfo {
893 pub curve_id: Option<Uuid>,
895
896 pub face_id: Option<Uuid>,
898
899 pub cap: ExtrusionFaceCapType,
902 }
903
904 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
906 pub struct ComplementaryEdges {
907 pub opposite_id: Option<Uuid>,
910 pub adjacent_ids: Vec<Uuid>,
912 }
913
914
915 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
918 pub struct AdjacencyInfo {
919 #[serde(default, skip_serializing_if = "Option::is_none")]
921 pub original_info: Option<EdgeInfo>,
922 #[serde(default, skip_serializing_if = "Option::is_none")]
924 pub opposite_info: Option<EdgeInfo>,
925 #[serde(default, skip_serializing_if = "Option::is_none")]
927 pub adjacent_info: Option<EdgeInfo>,
928 }
929
930 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
932 pub struct SetGridReferencePlane {}
933
934 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
936 pub struct BooleanUnion {
937 #[serde(default, skip_serializing_if = "Vec::is_empty")]
942 pub extra_solid_ids: Vec<Uuid>,
943 }
944
945 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
947 pub struct BooleanIntersection {
948 #[serde(default, skip_serializing_if = "Vec::is_empty")]
953 pub extra_solid_ids: Vec<Uuid>,
954 }
955
956 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
958 pub struct BooleanSubtract {
959 #[serde(default, skip_serializing_if = "Vec::is_empty")]
964 pub extra_solid_ids: Vec<Uuid>,
965 }
966
967 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
969 pub struct SetGridScale {}
970
971 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
973 pub struct SetGridAutoScale {}
974 }
975}