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::{
14 CameraSettings,
15 CameraViewState,
16 BodyType,
17 };
18
19 use crate::{self as kittycad_modeling_cmds};
20 use crate::{
21 base64::Base64Data,
22 id::ModelingCmdId,
23 length_unit::LengthUnit,
24 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d},
25 units,
26 };
27
28 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
30 pub struct EngineUtilEvaluatePath {
31 pub pos: Point3d<LengthUnit>,
33 }
34
35 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
37 pub struct StartPath {
38 }
39
40 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
42 pub struct MovePathPen {
43 }
44
45 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
47 pub struct ExtendPath {
48 }
49
50 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
52 pub struct Extrude {
53 }
54
55 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
57 pub struct ExtrudeToReference {
58 }
59
60 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
62 pub struct TwistExtrude {
63 }
64
65 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
67 pub struct Sweep {
68 }
69
70 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
72 pub struct Revolve {
73 }
74
75 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
77 pub struct Solid3dShellFace {
78 }
79
80 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
82 pub struct Solid3dJoin {
83 }
84
85 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
87 pub struct Solid3dGetEdgeUuid {
88 pub edge_id: Uuid,
90 }
91
92 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
94 pub struct Solid3dGetFaceUuid {
95 pub face_id: Uuid,
97 }
98
99 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
101 pub struct Solid3dGetBodyType {
102 pub body_type: BodyType,
104 }
105
106 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
108 pub struct RevolveAboutEdge {
109 }
110
111 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
113 pub struct CameraDragStart {
114 }
115
116 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
118 pub struct DefaultCameraLookAt {
119 }
120
121 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
123 pub struct DefaultCameraPerspectiveSettings {
124 }
125
126 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
128 pub struct SelectAdd {
129 }
130 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
132 pub struct SelectRemove {
133 }
134
135 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
137 pub struct SceneClearAll {
138 }
139
140 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
142 pub struct SelectReplace {
143 }
144
145 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
147 pub struct HighlightSetEntities {
148 }
149
150 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
152 pub struct NewAnnotation {
153 }
154
155 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
157 pub struct UpdateAnnotation {
158 }
159
160 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
162 pub struct EdgeLinesVisible {
163 }
164
165 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
167 pub struct ObjectVisible {
168 }
169
170 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
172 pub struct ObjectBringToFront {
173 }
174
175 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
177 pub struct ObjectSetMaterialParamsPbr {
178 }
179
180 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
182 pub struct Solid2dAddHole {
183 }
184
185 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
187 pub struct Solid3dFilletEdge {
188 }
189
190 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
192 pub struct Solid3dCutEdges {
193 }
194
195
196 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
198 pub struct SendObject {
199 }
200
201 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
203 pub struct EntitySetOpacity {
204 }
205
206 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
208 pub struct EntityFade {
209 }
210
211 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
213 pub struct MakePlane {
214 }
215
216 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
218 pub struct PlaneSetColor {
219 }
220
221 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
223 pub struct SetTool {
224 }
225
226 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
228 pub struct MouseMove {
229 }
230
231 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
233 pub struct SketchModeDisable {
234 }
235
236 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
238 pub struct EnableDryRun {
239 }
240
241 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
243 pub struct DisableDryRun {
244 }
245
246 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
248 pub struct CurveSetConstraint {
249 }
250
251 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
253 pub struct EnableSketchMode {
254 }
255
256 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
258 pub struct SetBackgroundColor {
259 }
260
261 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
263 pub struct SetCurrentToolProperties {
264 }
265
266 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
268 pub struct SetDefaultSystemProperties {
269 }
270
271 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
273 pub struct MakeAxesGizmo {
274 }
275
276 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
278 pub struct HandleMouseDragStart {
279 }
280
281 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
283 pub struct HandleMouseDragMove {
284 }
285
286 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
288 pub struct HandleMouseDragEnd {
289 }
290
291 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
293 pub struct RemoveSceneObjects {
294 }
295
296 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
298 pub struct ReconfigureStream {
299 }
300
301 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
303 pub struct SetSceneUnits {
304 }
305
306 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
308 pub struct SetSelectionType {
309 }
310
311 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
313 pub struct SetSelectionFilter {
314 }
315
316 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
318 pub struct DefaultCameraSetOrthographic {
319 }
320
321 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
323 pub struct DefaultCameraSetPerspective {
324 }
325
326 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
328 pub struct DefaultCameraCenterToSelection {
329 }
330
331 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
333 pub struct DefaultCameraCenterToScene {
334 }
335
336 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
338 pub struct SelectClear {
339 }
340
341 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
343 pub struct Export2d {
344 pub files: Vec<ExportFile>,
346 }
347
348 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
350 pub struct Export3d {
351 pub files: Vec<ExportFile>,
353 }
354
355 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
357 pub struct Export {
358 pub files: Vec<ExportFile>,
360 }
361
362 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
364 pub struct SelectWithPoint {
365 pub entity_id: Option<Uuid>,
367 }
368
369 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
371 pub struct HighlightSetEntity {
372 pub entity_id: Option<Uuid>,
374 pub sequence: Option<u32>,
376 }
377 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
379 pub struct EntityGetChildUuid {
380 pub entity_id: Uuid,
382 }
383 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
385 pub struct EntityGetIndex {
386 pub entity_index: u32,
388 }
389 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
391 pub struct EntityGetPrimitiveIndex {
392 pub primitive_index: u32,
394
395 pub entity_type: EntityType,
397 }
398 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
400 pub struct EntityDeleteChildren {
401 }
402 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
404 pub struct EntityGetNumChildren {
405 pub num: u32,
407 }
408 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
410 pub struct EntityGetParentId {
411 pub entity_id: Uuid,
413 }
414 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
416 pub struct EntityGetAllChildUuids {
417 pub entity_ids: Vec<Uuid>,
419 }
420
421 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
423 pub struct EntityGetSketchPaths {
424 pub entity_ids: Vec<Uuid>,
426 }
427
428 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
430 pub struct Loft {
431 pub solid_id: Uuid,
433 }
434
435 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
437 pub struct ClosePath {
438 pub face_id: Uuid,
440 }
441
442 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
446 pub struct CameraDragMove {
447 pub settings: CameraSettings
449 }
450
451 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
453 pub struct CameraDragEnd {
454 pub settings: CameraSettings
456 }
457
458 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
460 pub struct DefaultCameraGetSettings {
461 pub settings: CameraSettings
463 }
464
465 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
467 pub struct DefaultCameraGetView {
468 pub view: CameraViewState
470 }
471
472 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
474 pub struct DefaultCameraSetView {}
475
476 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
478 pub struct DefaultCameraZoom {
479 pub settings: CameraSettings
481 }
482
483 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
485 pub struct ZoomToFit {
486 pub settings: CameraSettings
488 }
489
490 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
492 pub struct OrientToFace {
493 pub settings: CameraSettings
495 }
496
497 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
499 pub struct ViewIsometric {
500 pub settings: CameraSettings
502 }
503
504 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
506 pub struct GetNumObjects {
507 pub num_objects: u32,
509 }
510
511 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
513 pub struct MakeOffsetPath {
514 pub entity_ids: Vec<Uuid>,
519 }
520
521 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
523 pub struct SetObjectTransform {}
524
525 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
527 pub struct AddHoleFromOffset {
528 pub entity_ids: Vec<Uuid>,
533 }
534
535 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
537 pub struct DefaultCameraFocusOn { }
538
539 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
541 pub struct SelectGet {
542 pub entity_ids: Vec<Uuid>,
544 }
545
546 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
549 pub struct Solid3dGetAdjacencyInfo {
550 pub edges: Vec<AdjacencyInfo>,
552 }
553
554 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
556 pub struct Solid3dGetAllEdgeFaces {
557 pub faces: Vec<Uuid>,
559 }
560
561 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
563 pub struct Solid3dFlip {
564 }
565
566 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
568 pub struct Solid3dFlipFace {
569 }
570
571 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
573 pub struct Solid3dGetAllOppositeEdges {
574 pub edges: Vec<Uuid>,
576 }
577
578 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
580 pub struct Solid3dGetOppositeEdge {
581 pub edge: Uuid,
583 }
584
585 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
587 pub struct Solid3dGetNextAdjacentEdge {
588 pub edge: Option<Uuid>,
590 }
591
592 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
594 pub struct Solid3dGetPrevAdjacentEdge {
595 pub edge: Option<Uuid>,
597 }
598
599 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
601 pub struct Solid3dGetCommonEdge {
602 pub edge: Option<Uuid>,
604 }
605
606 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
608 pub struct GetEntityType {
609 pub entity_type: EntityType,
611 }
612
613 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
615 pub struct SceneGetEntityIds {
616 pub entity_ids: Vec<Vec<Uuid>>,
618 }
619
620 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
622 pub struct CurveGetControlPoints {
623 pub control_points: Vec<Point3d<f64>>,
625 }
626
627 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
629 pub struct ProjectEntityToPlane {
630 pub projected_points: Vec<Point3d<f64>>,
632 }
633
634 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
636 pub struct ProjectPointsToPlane {
637 pub projected_points: Vec<Point3d<f64>>,
639 }
640
641 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
643 pub struct CurveGetType {
644 pub curve_type: CurveType,
646 }
647
648 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
650 pub struct MouseClick {
651 pub entities_modified: Vec<Uuid>,
653 pub entities_selected: Vec<Uuid>,
655 }
656
657 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
659 pub struct TakeSnapshot {
660 pub contents: Base64Data,
662 }
663
664 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
666 pub struct PathGetInfo {
667 pub segments: Vec<PathSegmentInfo>,
669 }
670
671 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
673 pub struct PathSegmentInfo {
674 pub command_id: Option<ModelingCmdId>,
678 pub command: PathCommand,
680 pub relative: bool,
682 }
683
684 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
686 pub struct PathGetCurveUuidsForVertices {
687 pub curve_ids: Vec<Uuid>,
689 }
690
691 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
693 pub struct PathGetCurveUuid {
694 pub curve_id: Uuid,
696 }
697
698 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
700 pub struct PathGetVertexUuids {
701 pub vertex_ids: Vec<Uuid>,
703 }
704
705 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
707 pub struct PathGetSketchTargetUuid {
708 pub target_id: Option<Uuid>,
710 }
711
712 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
714 pub struct CurveGetEndPoints {
715 pub start: Point3d<LengthUnit>,
717 pub end: Point3d<LengthUnit>,
719 }
720
721 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
723 pub struct FaceIsPlanar {
724 pub origin: Option<Point3d<LengthUnit>>,
726
727 pub x_axis: Option<Point3d<f64>>,
729
730 pub y_axis: Option<Point3d<f64>>,
732
733 pub z_axis: Option<Point3d<f64>>,
735 }
736
737 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
739 pub struct FaceGetPosition {
740 pub pos: Point3d<LengthUnit>,
742 }
743
744 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
746 pub struct FaceGetCenter {
747 pub pos: Point3d<LengthUnit>,
749 }
750
751 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
753 pub struct FaceGetGradient {
754 pub df_du: Point3d<f64>,
756
757 pub df_dv: Point3d<f64>,
759
760 pub normal: Point3d<f64>,
762 }
763
764 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
766 pub struct PlaneIntersectAndProject {
767 pub plane_coordinates: Option<Point2d<LengthUnit>>,
769 }
770
771 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
773 pub struct ImportFiles {
774 pub object_id: Uuid,
776 }
777
778 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
780 pub struct ImportedGeometry {
781 pub id: Uuid,
783 pub value: Vec<String>,
785 }
786
787 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
789 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
790 pub struct Mass {
791 pub mass: f64,
793 pub output_unit: units::UnitMass,
795 }
796
797 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
799 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
800 pub struct Volume {
801 pub volume: f64,
803 pub output_unit: units::UnitVolume,
805 }
806
807 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
809 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
810 pub struct Density {
811 pub density: f64,
813 pub output_unit: units::UnitDensity,
815 }
816
817 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
819 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
820 pub struct SurfaceArea {
821 pub surface_area: f64,
823 pub output_unit: units::UnitArea,
825 }
826
827 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
829 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
830 pub struct CenterOfMass {
831 pub center_of_mass: Point3d<f64>,
833 pub output_unit: units::UnitLength,
835 }
836
837 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
839 pub struct GetSketchModePlane {
840 pub origin: Point3d<LengthUnit>,
842 pub x_axis: Point3d<f64>,
844 pub y_axis: Point3d<f64>,
846 pub z_axis: Point3d<f64>,
848 }
849
850 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
852 pub struct EntityGetDistance {
853 pub min_distance: LengthUnit,
855 pub max_distance: LengthUnit,
857 }
858
859 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
861 pub struct FaceEdgeInfo {
862 pub object_id: Uuid,
864 pub faces: Vec<Uuid>,
866 pub edges: Vec<Uuid>,
868 }
869
870 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
872 pub struct EdgeInfo {
873 pub edge_id: Uuid,
875 pub faces: Vec<Uuid>,
877 }
878
879 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
881 pub struct EntityClone {
882 #[serde(default, skip_serializing_if = "Vec::is_empty")]
884 pub face_edge_ids: Vec<FaceEdgeInfo>,
885 }
886
887 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
889 pub struct EntityLinearPatternTransform {
890 #[serde(default, skip_serializing_if = "Vec::is_empty")]
892 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
893 }
894
895 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
897 pub struct EntityLinearPattern {
898 #[serde(default, skip_serializing_if = "Vec::is_empty")]
900 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
901 }
902
903 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
905 pub struct EntityCircularPattern {
906 #[serde(default, skip_serializing_if = "Vec::is_empty")]
908 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
909 }
910
911 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
913 pub struct EntityMirror {
914 #[serde(default, skip_serializing_if = "Vec::is_empty")]
916 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
917 }
918
919 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
921 pub struct EntityMirrorAcrossEdge {
922 #[serde(default, skip_serializing_if = "Vec::is_empty")]
924 pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
925 }
926
927 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
929 pub struct EntityMakeHelix {
930 }
931
932 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
934 pub struct EntityMakeHelixFromParams {
935 }
936
937 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
939 pub struct EntityMakeHelixFromEdge {
940 }
941
942 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
944 pub struct Solid3dGetExtrusionFaceInfo {
945 pub faces: Vec<ExtrusionFaceInfo>,
947 }
948
949 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
951 pub struct ExtrusionFaceInfo {
952 pub curve_id: Option<Uuid>,
954
955 pub face_id: Option<Uuid>,
957
958 pub cap: ExtrusionFaceCapType,
961 }
962
963 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
965 pub struct ComplementaryEdges {
966 pub opposite_id: Option<Uuid>,
969 pub adjacent_ids: Vec<Uuid>,
971 }
972
973
974 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
977 pub struct AdjacencyInfo {
978 #[serde(default, skip_serializing_if = "Option::is_none")]
980 pub original_info: Option<EdgeInfo>,
981 #[serde(default, skip_serializing_if = "Option::is_none")]
983 pub opposite_info: Option<EdgeInfo>,
984 #[serde(default, skip_serializing_if = "Option::is_none")]
986 pub adjacent_info: Option<EdgeInfo>,
987 }
988
989 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
991 pub struct SetGridReferencePlane {}
992
993 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
995 pub struct BooleanUnion {
996 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1001 pub extra_solid_ids: Vec<Uuid>,
1002 }
1003
1004 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1006 pub struct BooleanIntersection {
1007 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1012 pub extra_solid_ids: Vec<Uuid>,
1013 }
1014
1015 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1017 pub struct BooleanSubtract {
1018 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1023 pub extra_solid_ids: Vec<Uuid>,
1024 }
1025
1026 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1028 pub struct BooleanImprint {
1029 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1034 pub extra_solid_ids: Vec<Uuid>,
1035 }
1036
1037 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1039 pub struct SetGridScale {}
1040
1041 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1043 pub struct SetGridAutoScale {}
1044
1045 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1047 pub struct SetOrderIndependentTransparency {
1048 pub enabled: bool,
1050 }
1051
1052 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1056 pub struct CreateRegion {
1057 }
1058
1059 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
1062 pub struct SelectRegionFromPoint {
1063 pub region: Option<crate::shared::SelectedRegion>,
1067 }
1068
1069 }
1070}