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 SendObject {
164 }
165
166 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
168 pub struct EntitySetOpacity {
169 }
170
171 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
173 pub struct EntityFade {
174 }
175
176 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
178 pub struct MakePlane {
179 }
180
181 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
183 pub struct PlaneSetColor {
184 }
185
186 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
188 pub struct SetTool {
189 }
190
191 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
193 pub struct MouseMove {
194 }
195
196 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
198 pub struct SketchModeDisable {
199 }
200
201 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
203 pub struct EnableDryRun {
204 }
205
206 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
208 pub struct DisableDryRun {
209 }
210
211 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
213 pub struct CurveSetConstraint {
214 }
215
216 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
218 pub struct EnableSketchMode {
219 }
220
221 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
223 pub struct SetBackgroundColor {
224 }
225
226 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
228 pub struct SetCurrentToolProperties {
229 }
230
231 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
233 pub struct SetDefaultSystemProperties {
234 }
235
236 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
238 pub struct MakeAxesGizmo {
239 }
240
241 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
243 pub struct HandleMouseDragStart {
244 }
245
246 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
248 pub struct HandleMouseDragMove {
249 }
250
251 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
253 pub struct HandleMouseDragEnd {
254 }
255
256 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
258 pub struct RemoveSceneObjects {
259 }
260
261 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
263 pub struct ReconfigureStream {
264 }
265
266 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
268 pub struct SetSceneUnits {
269 }
270
271 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
273 pub struct SetSelectionType {
274 }
275
276 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
278 pub struct SetSelectionFilter {
279 }
280
281 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
283 pub struct DefaultCameraSetOrthographic {
284 }
285
286 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
288 pub struct DefaultCameraSetPerspective {
289 }
290
291 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
293 pub struct DefaultCameraCenterToSelection {
294 }
295
296 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
298 pub struct DefaultCameraCenterToScene {
299 }
300
301 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
303 pub struct SelectClear {
304 }
305
306 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
308 pub struct Export2d {
309 pub files: Vec<ExportFile>,
311 }
312
313 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
315 pub struct Export3d {
316 pub files: Vec<ExportFile>,
318 }
319
320 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
322 pub struct Export {
323 pub files: Vec<ExportFile>,
325 }
326
327 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
329 pub struct SelectWithPoint {
330 pub entity_id: Option<Uuid>,
332 }
333 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
335 pub struct HighlightSetEntity {
336 pub entity_id: Option<Uuid>,
338 pub sequence: Option<u32>,
340 }
341 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
343 pub struct EntityGetChildUuid {
344 pub entity_id: Uuid,
346 }
347 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
349 pub struct EntityGetNumChildren {
350 pub num: u32,
352 }
353 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
355 pub struct EntityGetParentId {
356 pub entity_id: Uuid,
358 }
359 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
361 pub struct EntityGetAllChildUuids {
362 pub entity_ids: Vec<Uuid>,
364 }
365
366 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
368 pub struct EntityGetSketchPaths {
369 pub entity_ids: Vec<Uuid>,
371 }
372
373 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
375 pub struct Loft {
376 pub solid_id: Uuid,
378 }
379
380 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
382 pub struct ClosePath {
383 pub face_id: Uuid,
385 }
386
387 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
391 pub struct CameraDragMove {
392 pub settings: CameraSettings
394 }
395
396 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
398 pub struct CameraDragEnd {
399 pub settings: CameraSettings
401 }
402
403 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
405 pub struct DefaultCameraGetSettings {
406 pub settings: CameraSettings
408 }
409
410 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
412 pub struct DefaultCameraGetView {
413 pub view: CameraViewState
415 }
416
417 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
419 pub struct DefaultCameraSetView {}
420
421 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
423 pub struct DefaultCameraZoom {
424 pub settings: CameraSettings
426 }
427
428 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
430 pub struct ZoomToFit {
431 pub settings: CameraSettings
433 }
434
435 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
437 pub struct OrientToFace {
438 pub settings: CameraSettings
440 }
441
442 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
444 pub struct ViewIsometric {
445 pub settings: CameraSettings
447 }
448
449 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
451 pub struct GetNumObjects {
452 pub num_objects: u32,
454 }
455
456 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
458 pub struct MakeOffsetPath {
459 pub entity_ids: Vec<Uuid>,
464 }
465
466 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
468 pub struct SetObjectTransform {}
469
470 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
472 pub struct AddHoleFromOffset {
473 pub entity_ids: Vec<Uuid>,
478 }
479
480 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
482 pub struct DefaultCameraFocusOn { }
483
484 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
486 pub struct SelectGet {
487 pub entity_ids: Vec<Uuid>,
489 }
490
491 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
494 pub struct Solid3dGetAdjacencyInfo {
495 pub edges: Vec<AdjacencyInfo>,
497 }
498
499 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
501 pub struct Solid3dGetAllEdgeFaces {
502 pub faces: Vec<Uuid>,
504 }
505
506 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
508 pub struct Solid3dGetAllOppositeEdges {
509 pub edges: Vec<Uuid>,
511 }
512
513 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
515 pub struct Solid3dGetOppositeEdge {
516 pub edge: Uuid,
518 }
519
520 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
522 pub struct Solid3dGetNextAdjacentEdge {
523 pub edge: Option<Uuid>,
525 }
526
527 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
529 pub struct Solid3dGetPrevAdjacentEdge {
530 pub edge: Option<Uuid>,
532 }
533
534 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
536 pub struct Solid3dGetCommonEdge {
537 pub edge: Option<Uuid>,
539 }
540
541 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
543 pub struct GetEntityType {
544 pub entity_type: EntityType,
546 }
547 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
549 pub struct CurveGetControlPoints {
550 pub control_points: Vec<Point3d<f64>>,
552 }
553
554 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
556 pub struct ProjectEntityToPlane {
557 pub projected_points: Vec<Point3d<f64>>,
559 }
560
561 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
563 pub struct ProjectPointsToPlane {
564 pub projected_points: Vec<Point3d<f64>>,
566 }
567
568 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
570 pub struct CurveGetType {
571 pub curve_type: CurveType,
573 }
574
575 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
577 pub struct MouseClick {
578 pub entities_modified: Vec<Uuid>,
580 pub entities_selected: Vec<Uuid>,
582 }
583
584 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
586 pub struct TakeSnapshot {
587 pub contents: Base64Data,
589 }
590
591 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
593 pub struct PathGetInfo {
594 pub segments: Vec<PathSegmentInfo>,
596 }
597
598 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
600 pub struct PathSegmentInfo {
601 pub command_id: Option<ModelingCmdId>,
605 pub command: PathCommand,
607 pub relative: bool,
609 }
610
611 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
613 pub struct PathGetCurveUuidsForVertices {
614 pub curve_ids: Vec<Uuid>,
616 }
617
618 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
620 pub struct PathGetCurveUuid {
621 pub curve_id: Uuid,
623 }
624
625 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
627 pub struct PathGetVertexUuids {
628 pub vertex_ids: Vec<Uuid>,
630 }
631
632 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
634 pub struct PathGetSketchTargetUuid {
635 pub target_id: Option<Uuid>,
637 }
638
639 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
641 pub struct CurveGetEndPoints {
642 pub start: Point3d<LengthUnit>,
644 pub end: Point3d<LengthUnit>,
646 }
647
648 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
650 pub struct FaceIsPlanar {
651 pub origin: Option<Point3d<LengthUnit>>,
653
654 pub x_axis: Option<Point3d<f64>>,
656
657 pub y_axis: Option<Point3d<f64>>,
659
660 pub z_axis: Option<Point3d<f64>>,
662 }
663
664 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
666 pub struct FaceGetPosition {
667 pub pos: Point3d<LengthUnit>,
669 }
670
671 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
673 pub struct FaceGetCenter {
674 pub pos: Point3d<LengthUnit>,
676 }
677
678 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
680 pub struct FaceGetGradient {
681 pub df_du: Point3d<f64>,
683
684 pub df_dv: Point3d<f64>,
686
687 pub normal: Point3d<f64>,
689 }
690
691 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
693 pub struct PlaneIntersectAndProject {
694 pub plane_coordinates: Option<Point2d<LengthUnit>>,
696 }
697
698 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
700 pub struct ImportFiles {
701 pub object_id: Uuid,
703 }
704
705 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
707 pub struct ImportedGeometry {
708 pub id: Uuid,
710 pub value: Vec<String>,
712 }
713
714 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
716 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
717 pub struct Mass {
718 pub mass: f64,
720 pub output_unit: units::UnitMass,
722 }
723
724 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
726 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
727 pub struct Volume {
728 pub volume: f64,
730 pub output_unit: units::UnitVolume,
732 }
733
734 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
736 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
737 pub struct Density {
738 pub density: f64,
740 pub output_unit: units::UnitDensity,
742 }
743
744 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
746 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
747 pub struct SurfaceArea {
748 pub surface_area: f64,
750 pub output_unit: units::UnitArea,
752 }
753
754 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
756 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
757 pub struct CenterOfMass {
758 pub center_of_mass: Point3d<f64>,
760 pub output_unit: units::UnitLength,
762 }
763
764 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
766 pub struct GetSketchModePlane {
767 pub origin: Point3d<LengthUnit>,
769 pub x_axis: Point3d<f64>,
771 pub y_axis: Point3d<f64>,
773 pub z_axis: Point3d<f64>,
775 }
776
777 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
779 pub struct EntityGetDistance {
780 pub min_distance: LengthUnit,
782 pub max_distance: LengthUnit,
784 }
785
786 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
788 pub struct FaceEdgeInfo {
789 pub object_id: Uuid,
791 pub faces: Vec<Uuid>,
793 pub edges: Vec<Uuid>,
795 }
796
797 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
799 pub struct EdgeInfo {
800 pub edge_id: Uuid,
802 pub faces: Vec<Uuid>,
804 }
805
806 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
808 pub struct EntityClone {
809 #[serde(default, skip_serializing_if = "Vec::is_empty")]
811 pub face_edge_ids: Vec<FaceEdgeInfo>,
812 }
813
814 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
816 pub struct EntityLinearPatternTransform {
817 #[serde(default, skip_serializing_if = "Vec::is_empty")]
819 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
820 }
821
822 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
824 pub struct EntityLinearPattern {
825 #[serde(default, skip_serializing_if = "Vec::is_empty")]
827 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
828 }
829
830 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
832 pub struct EntityCircularPattern {
833 #[serde(default, skip_serializing_if = "Vec::is_empty")]
835 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
836 }
837
838 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
840 pub struct EntityMirror {
841 #[serde(default, skip_serializing_if = "Vec::is_empty")]
843 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
844 }
845
846 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
848 pub struct EntityMirrorAcrossEdge {
849 #[serde(default, skip_serializing_if = "Vec::is_empty")]
851 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
852 }
853
854 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
856 pub struct EntityMakeHelix {
857 }
858
859 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
861 pub struct EntityMakeHelixFromParams {
862 }
863
864 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
866 pub struct EntityMakeHelixFromEdge {
867 }
868
869 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
871 pub struct Solid3dGetExtrusionFaceInfo {
872 pub faces: Vec<ExtrusionFaceInfo>,
874 }
875
876 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
878 pub struct ExtrusionFaceInfo {
879 pub curve_id: Option<Uuid>,
881
882 pub face_id: Option<Uuid>,
884
885 pub cap: ExtrusionFaceCapType,
888 }
889
890 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
892 pub struct ComplementaryEdges {
893 pub opposite_id: Option<Uuid>,
896 pub adjacent_ids: Vec<Uuid>,
898 }
899
900
901 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
904 pub struct AdjacencyInfo {
905 #[serde(default, skip_serializing_if = "Option::is_none")]
907 pub original_info: Option<EdgeInfo>,
908 #[serde(default, skip_serializing_if = "Option::is_none")]
910 pub opposite_info: Option<EdgeInfo>,
911 #[serde(default, skip_serializing_if = "Option::is_none")]
913 pub adjacent_info: Option<EdgeInfo>,
914 }
915
916 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
918 pub struct SetGridReferencePlane {}
919
920 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
922 pub struct BooleanUnion {
923 #[serde(default, skip_serializing_if = "Vec::is_empty")]
928 pub extra_solid_ids: Vec<Uuid>,
929 }
930
931 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
933 pub struct BooleanIntersection {
934 #[serde(default, skip_serializing_if = "Vec::is_empty")]
939 pub extra_solid_ids: Vec<Uuid>,
940 }
941
942 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
944 pub struct BooleanSubtract {
945 #[serde(default, skip_serializing_if = "Vec::is_empty")]
950 pub extra_solid_ids: Vec<Uuid>,
951 }
952
953 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
955 pub struct SetGridScale {}
956
957 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
959 pub struct SetGridAutoScale {}
960 }
961}