use kittycad_modeling_cmds_macros::define_ok_modeling_cmd_response_enum;
use serde::{Deserialize, Serialize};
impl crate::ModelingCmdOutput for () {}
define_ok_modeling_cmd_response_enum! {
pub mod output {
use kittycad_modeling_cmds_macros::ModelingCmdOutput;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use bon::Builder;
use uuid::Uuid;
use crate::shared::{
CameraSettings,
CameraViewState,
BodyType,
};
use std::collections::HashMap;
use crate::{self as kittycad_modeling_cmds};
use crate::{
base64::Base64Data,
id::ModelingCmdId,
length_unit::LengthUnit,
shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d, BodiesCreated, BodiesUpdated},
units,
};
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EngineUtilEvaluatePath {
pub pos: Point3d<LengthUnit>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct StartPath {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MovePathPen {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ExtendPath {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Extrude {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ExtrudeToReference {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct TwistExtrude {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Sweep {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Revolve {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dShellFace {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dJoin {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dMultiJoin {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
pub struct SurfaceBlend {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetEdgeUuid {
pub edge_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetFaceUuid {
pub face_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetBodyType {
pub body_type: BodyType,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct RevolveAboutEdge {
#[serde(default, skip_serializing_if = "BodiesCreated::is_empty")]
pub bodies_created: BodiesCreated,
#[serde(default, skip_serializing_if = "BodiesUpdated::is_empty")]
pub bodies_updated: BodiesUpdated,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CameraDragStart {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraLookAt {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraPerspectiveSettings {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectAdd {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectRemove {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SceneClearAll {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectReplace {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct HighlightSetEntities {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct NewAnnotation {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct UpdateAnnotation {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EdgeLinesVisible {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ObjectVisible {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ObjectBringToFront {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ObjectSetMaterialParamsPbr {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid2dAddHole {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dFilletEdge {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dCutEdges {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SendObject {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntitySetOpacity {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityFade {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MakePlane {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PlaneSetColor {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetTool {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MouseMove {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SketchModeDisable {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EnableDryRun {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DisableDryRun {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CurveSetConstraint {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EnableSketchMode {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetBackgroundColor {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetCurrentToolProperties {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetDefaultSystemProperties {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MakeAxesGizmo {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct HandleMouseDragStart {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct HandleMouseDragMove {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct HandleMouseDragEnd {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct RemoveSceneObjects {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ReconfigureStream {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetSceneUnits {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetSelectionType {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetSelectionFilter {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraSetOrthographic {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraSetPerspective {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraCenterToSelection {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraCenterToScene {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectClear {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Export2d {
pub files: Vec<ExportFile>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Export3d {
pub files: Vec<ExportFile>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Export {
pub files: Vec<ExportFile>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectWithPoint {
pub entity_id: Option<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct HighlightSetEntity {
pub entity_id: Option<Uuid>,
pub sequence: Option<u32>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetChildUuid {
pub entity_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetIndex {
pub entity_index: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetPrimitiveIndex {
pub primitive_index: u32,
pub entity_type: EntityType,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityDeleteChildren {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetNumChildren {
pub num: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetParentId {
pub entity_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetAllChildUuids {
pub entity_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetSketchPaths {
pub entity_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Loft {
pub solid_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ClosePath {
pub face_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CameraDragMove {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CameraDragEnd {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraGetSettings {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraGetView {
pub view: CameraViewState
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraSetView {}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraZoom {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ZoomToFit {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct OrientToFace {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ViewIsometric {
pub settings: CameraSettings
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct GetNumObjects {
pub num_objects: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MakeOffsetPath {
pub entity_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetObjectTransform {}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct AddHoleFromOffset {
pub entity_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct DefaultCameraFocusOn { }
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectGet {
pub entity_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetAdjacencyInfo {
pub edges: Vec<AdjacencyInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetAllEdgeFaces {
pub faces: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dFlip {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dFlipFace {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetAllOppositeEdges {
pub edges: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetOppositeEdge {
pub edge: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetNextAdjacentEdge {
pub edge: Option<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetPrevAdjacentEdge {
pub edge: Option<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetCommonEdge {
pub edge: Option<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct GetEntityType {
pub entity_type: EntityType,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SceneGetEntityIds {
pub entity_ids: Vec<Vec<Uuid>>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CurveGetControlPoints {
pub control_points: Vec<Point3d<f64>>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ProjectEntityToPlane {
pub projected_points: Vec<Point3d<f64>>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ProjectPointsToPlane {
pub projected_points: Vec<Point3d<f64>>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CurveGetType {
pub curve_type: CurveType,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct MouseClick {
pub entities_modified: Vec<Uuid>,
pub entities_selected: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct TakeSnapshot {
pub contents: Base64Data,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathGetInfo {
pub segments: Vec<PathSegmentInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathSegmentInfo {
pub command_id: Option<ModelingCmdId>,
pub command: PathCommand,
pub relative: bool,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathGetCurveUuidsForVertices {
pub curve_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathGetCurveUuid {
pub curve_id: Uuid,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathGetVertexUuids {
pub vertex_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PathGetSketchTargetUuid {
pub target_id: Option<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CurveGetEndPoints {
pub start: Point3d<LengthUnit>,
pub end: Point3d<LengthUnit>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct FaceIsPlanar {
pub origin: Option<Point3d<LengthUnit>>,
pub x_axis: Option<Point3d<f64>>,
pub y_axis: Option<Point3d<f64>>,
pub z_axis: Option<Point3d<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct FaceGetPosition {
pub pos: Point3d<LengthUnit>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct FaceGetCenter {
pub pos: Point3d<LengthUnit>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct FaceGetGradient {
pub df_du: Point3d<f64>,
pub df_dv: Point3d<f64>,
pub normal: Point3d<f64>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct PlaneIntersectAndProject {
pub plane_coordinates: Option<Point2d<LengthUnit>>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput, Builder)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ImportFiles {
pub object_id: Uuid,
}
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ImportedGeometry {
pub id: Uuid,
pub value: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Mass {
pub mass: f64,
pub output_unit: units::UnitMass,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Volume {
pub volume: f64,
pub output_unit: units::UnitVolume,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Density {
pub density: f64,
pub output_unit: units::UnitDensity,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SurfaceArea {
pub surface_area: f64,
pub output_unit: units::UnitArea,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CenterOfMass {
pub center_of_mass: Point3d<f64>,
pub output_unit: units::UnitLength,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct GetSketchModePlane {
pub origin: Point3d<LengthUnit>,
pub x_axis: Point3d<f64>,
pub y_axis: Point3d<f64>,
pub z_axis: Point3d<f64>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityGetDistance {
pub min_distance: LengthUnit,
pub max_distance: LengthUnit,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct FaceEdgeInfo {
pub object_id: Uuid,
pub faces: Vec<Uuid>,
pub edges: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EdgeInfo {
pub edge_id: Uuid,
pub faces: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityClone {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityLinearPatternTransform {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityLinearPattern {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput, Default)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityCircularPattern {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityMirror {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityMirrorAcrossEdge {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityMakeHelix {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityMakeHelixFromParams {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct EntityMakeHelixFromEdge {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct Solid3dGetExtrusionFaceInfo {
pub faces: Vec<ExtrusionFaceInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ExtrusionFaceInfo {
pub curve_id: Option<Uuid>,
pub face_id: Option<Uuid>,
pub cap: ExtrusionFaceCapType,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ComplementaryEdges {
pub opposite_id: Option<Uuid>,
pub adjacent_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct AdjacencyInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub original_info: Option<EdgeInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opposite_info: Option<EdgeInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub adjacent_info: Option<EdgeInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetGridReferencePlane {}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct BooleanUnion {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extra_solid_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct BooleanIntersection {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extra_solid_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct BooleanSubtract {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extra_solid_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct BooleanImprint {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extra_solid_ids: Vec<Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetGridScale {}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetGridAutoScale {}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SetOrderIndependentTransparency {
pub enabled: bool,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CreateRegion {
pub region_mapping: HashMap<Uuid, Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct CreateRegionFromQueryPoint {
pub region_mapping: HashMap<Uuid, Uuid>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct RegionGetQueryPoint {
pub query_point: Point2d<LengthUnit>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct SelectRegionFromPoint {
pub region: Option<crate::shared::SelectedRegion>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct BoundingBox {
pub center: Point3d<f64>,
pub dimensions: Point3d<f64>,
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
pub struct OffsetSurface {
}
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
#[cfg_attr(not(feature = "unstable_exhaustive"), non_exhaustive)]
pub struct ClosestEdge {
pub edge_id: Option<Uuid>,
}
}
}