* YOYO NEW API SPEC! * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Jess Frazelle <github@jessfraz.com>
1163 lines
27 KiB
Python
1163 lines
27 KiB
Python
from typing import List, Literal, Optional, Union
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
from typing_extensions import Annotated
|
|
|
|
from ..models.annotation_options import AnnotationOptions
|
|
from ..models.annotation_type import AnnotationType
|
|
from ..models.camera_drag_interaction_type import CameraDragInteractionType
|
|
from ..models.color import Color
|
|
from ..models.distance_type import DistanceType
|
|
from ..models.entity_type import EntityType
|
|
from ..models.image_format import ImageFormat
|
|
from ..models.import_file import ImportFile
|
|
from ..models.input_format import InputFormat
|
|
from ..models.length_unit import LengthUnit
|
|
from ..models.modeling_cmd_id import ModelingCmdId
|
|
from ..models.output_format import OutputFormat
|
|
from ..models.path_component_constraint_bound import PathComponentConstraintBound
|
|
from ..models.path_component_constraint_type import PathComponentConstraintType
|
|
from ..models.path_segment import PathSegment
|
|
from ..models.perspective_camera_parameters import PerspectiveCameraParameters
|
|
from ..models.point2d import Point2d
|
|
from ..models.point3d import Point3d
|
|
from ..models.scene_selection_type import SceneSelectionType
|
|
from ..models.scene_tool_type import SceneToolType
|
|
from ..models.unit_area import UnitArea
|
|
from ..models.unit_density import UnitDensity
|
|
from ..models.unit_length import UnitLength
|
|
from ..models.unit_mass import UnitMass
|
|
from ..models.unit_volume import UnitVolume
|
|
|
|
|
|
class start_path(BaseModel):
|
|
"""Start a new path."""
|
|
|
|
type: Literal["start_path"] = "start_path"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class move_path_pen(BaseModel):
|
|
"""Move the path's \"pen\"."""
|
|
|
|
path: ModelingCmdId
|
|
|
|
to: Point3d
|
|
|
|
type: Literal["move_path_pen"] = "move_path_pen"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class extend_path(BaseModel):
|
|
"""Extend a path by adding a new segment which starts at the path's \"pen\". If no \"pen\" location has been set before (via `MovePen`), then the pen is at the origin."""
|
|
|
|
path: ModelingCmdId
|
|
|
|
segment: PathSegment
|
|
|
|
type: Literal["extend_path"] = "extend_path"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class extrude(BaseModel):
|
|
"""Command for extruding a solid."""
|
|
|
|
cap: bool
|
|
|
|
distance: LengthUnit
|
|
|
|
target: ModelingCmdId
|
|
|
|
type: Literal["extrude"] = "extrude"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class close_path(BaseModel):
|
|
"""Closes a path, converting it to a 2D solid."""
|
|
|
|
path_id: str
|
|
|
|
type: Literal["close_path"] = "close_path"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class camera_drag_start(BaseModel):
|
|
"""Camera drag started."""
|
|
|
|
interaction: CameraDragInteractionType
|
|
|
|
type: Literal["camera_drag_start"] = "camera_drag_start"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class camera_drag_move(BaseModel):
|
|
"""Camera drag continued."""
|
|
|
|
interaction: CameraDragInteractionType
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["camera_drag_move"] = "camera_drag_move"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class camera_drag_end(BaseModel):
|
|
"""Camera drag ended"""
|
|
|
|
interaction: CameraDragInteractionType
|
|
|
|
type: Literal["camera_drag_end"] = "camera_drag_end"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_get_settings(BaseModel):
|
|
"""Gets the default camera's camera settings"""
|
|
|
|
type: Literal["default_camera_get_settings"] = "default_camera_get_settings"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_look_at(BaseModel):
|
|
"""Change what the default camera is looking at."""
|
|
|
|
center: Point3d
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["default_camera_look_at"] = "default_camera_look_at"
|
|
|
|
up: Point3d
|
|
|
|
vantage: Point3d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_perspective_settings(BaseModel):
|
|
"""Change what the default camera is looking at."""
|
|
|
|
center: Point3d
|
|
|
|
fov_y: float
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["default_camera_perspective_settings"] = (
|
|
"default_camera_perspective_settings"
|
|
)
|
|
|
|
up: Point3d
|
|
|
|
vantage: Point3d
|
|
|
|
z_far: float
|
|
|
|
z_near: float
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_zoom(BaseModel):
|
|
"""Adjust zoom of the default camera."""
|
|
|
|
magnitude: float
|
|
|
|
type: Literal["default_camera_zoom"] = "default_camera_zoom"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_enable_sketch_mode(BaseModel):
|
|
"""Enable sketch mode, where users can sketch 2D geometry. Users choose a plane to sketch on."""
|
|
|
|
animated: bool
|
|
|
|
distance_to_plane: float
|
|
|
|
origin: Point3d
|
|
|
|
ortho: bool
|
|
|
|
type: Literal["default_camera_enable_sketch_mode"] = (
|
|
"default_camera_enable_sketch_mode"
|
|
)
|
|
|
|
x_axis: Point3d
|
|
|
|
y_axis: Point3d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_disable_sketch_mode(BaseModel):
|
|
"""Disable sketch mode, from the default camera."""
|
|
|
|
type: Literal["default_camera_disable_sketch_mode"] = (
|
|
"default_camera_disable_sketch_mode"
|
|
)
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class export(BaseModel):
|
|
"""Export the scene to a file."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
format: OutputFormat
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["export"] = "export"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_get_parent_id(BaseModel):
|
|
"""What is this entity's parent?"""
|
|
|
|
entity_id: str
|
|
|
|
type: Literal["entity_get_parent_id"] = "entity_get_parent_id"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_get_num_children(BaseModel):
|
|
"""How many children does the entity have?"""
|
|
|
|
entity_id: str
|
|
|
|
type: Literal["entity_get_num_children"] = "entity_get_num_children"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_get_child_uuid(BaseModel):
|
|
"""What is the UUID of this entity's n-th child?"""
|
|
|
|
child_index: int
|
|
|
|
entity_id: str
|
|
|
|
type: Literal["entity_get_child_uuid"] = "entity_get_child_uuid"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_get_all_child_uuids(BaseModel):
|
|
"""What are all UUIDs of this entity's children?"""
|
|
|
|
entity_id: str
|
|
|
|
type: Literal["entity_get_all_child_uuids"] = "entity_get_all_child_uuids"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_get_distance(BaseModel):
|
|
"""What is the distance between these two entities?"""
|
|
|
|
distance_type: DistanceType
|
|
|
|
entity_id1: str
|
|
|
|
entity_id2: str
|
|
|
|
type: Literal["entity_get_distance"] = "entity_get_distance"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_linear_pattern(BaseModel):
|
|
"""Create a linear pattern using this entity (currently only valid for 3D solids)."""
|
|
|
|
axis: Point3d
|
|
|
|
entity_id: str
|
|
|
|
num_repetitions: int
|
|
|
|
spacing: LengthUnit
|
|
|
|
type: Literal["entity_linear_pattern"] = "entity_linear_pattern"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_circular_pattern(BaseModel):
|
|
"""Create a circular pattern using this entity (currently only valid for 3D solids)."""
|
|
|
|
arc_degrees: float
|
|
|
|
axis: Point3d
|
|
|
|
center: Point3d
|
|
|
|
entity_id: str
|
|
|
|
num_repetitions: int
|
|
|
|
rotate_duplicates: bool
|
|
|
|
type: Literal["entity_circular_pattern"] = "entity_circular_pattern"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class edit_mode_enter(BaseModel):
|
|
"""Enter edit mode"""
|
|
|
|
target: str
|
|
|
|
type: Literal["edit_mode_enter"] = "edit_mode_enter"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_with_point(BaseModel):
|
|
"""Modifies the selection by simulating a \"mouse click\" at the given x,y window coordinate Returns ID of whatever was selected."""
|
|
|
|
selected_at_window: Point2d
|
|
|
|
selection_type: SceneSelectionType
|
|
|
|
type: Literal["select_with_point"] = "select_with_point"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_add(BaseModel):
|
|
"""Adds one or more entities (by UUID) to the selection."""
|
|
|
|
entities: List[str]
|
|
|
|
type: Literal["select_add"] = "select_add"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_remove(BaseModel):
|
|
"""Removes one or more entities (by UUID) from the selection."""
|
|
|
|
entities: List[str]
|
|
|
|
type: Literal["select_remove"] = "select_remove"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_replace(BaseModel):
|
|
"""Replaces current selection with these entities (by UUID)."""
|
|
|
|
entities: List[str]
|
|
|
|
type: Literal["select_replace"] = "select_replace"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class highlight_set_entity(BaseModel):
|
|
"""Changes the current highlighted entity to whichever one is at the given window coordinate. If there's no entity at this location, clears the highlight."""
|
|
|
|
selected_at_window: Point2d
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["highlight_set_entity"] = "highlight_set_entity"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class highlight_set_entities(BaseModel):
|
|
"""Changes the current highlighted entity to these entities."""
|
|
|
|
entities: List[str]
|
|
|
|
type: Literal["highlight_set_entities"] = "highlight_set_entities"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class new_annotation(BaseModel):
|
|
"""Create a new annotation"""
|
|
|
|
annotation_type: AnnotationType
|
|
|
|
clobber: bool
|
|
|
|
options: AnnotationOptions
|
|
|
|
type: Literal["new_annotation"] = "new_annotation"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class update_annotation(BaseModel):
|
|
"""Update an annotation"""
|
|
|
|
annotation_id: str
|
|
|
|
options: AnnotationOptions
|
|
|
|
type: Literal["update_annotation"] = "update_annotation"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class object_visible(BaseModel):
|
|
"""Hide or show an object"""
|
|
|
|
hidden: bool
|
|
|
|
object_id: str
|
|
|
|
type: Literal["object_visible"] = "object_visible"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class object_bring_to_front(BaseModel):
|
|
"""Bring an object to the front of the scene"""
|
|
|
|
object_id: str
|
|
|
|
type: Literal["object_bring_to_front"] = "object_bring_to_front"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class object_set_material_params_pbr(BaseModel):
|
|
"""Set the material properties of an object"""
|
|
|
|
ambient_occlusion: float
|
|
|
|
color: Color
|
|
|
|
metalness: float
|
|
|
|
object_id: str
|
|
|
|
roughness: float
|
|
|
|
type: Literal["object_set_material_params_pbr"] = "object_set_material_params_pbr"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class get_entity_type(BaseModel):
|
|
"""What type of entity is this?"""
|
|
|
|
entity_id: str
|
|
|
|
type: Literal["get_entity_type"] = "get_entity_type"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_all_edge_faces(BaseModel):
|
|
"""Gets all faces which use the given edge."""
|
|
|
|
edge_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_all_edge_faces"] = "solid3d_get_all_edge_faces"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid2d_add_hole(BaseModel):
|
|
"""Add a hole to a Solid2d object before extruding it."""
|
|
|
|
hole_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid2d_add_hole"] = "solid2d_add_hole"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_all_opposite_edges(BaseModel):
|
|
"""Gets all edges which are opposite the given edge, across all possible faces."""
|
|
|
|
along_vector: Optional[Point3d] = None
|
|
|
|
edge_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_all_opposite_edges"] = "solid3d_get_all_opposite_edges"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_opposite_edge(BaseModel):
|
|
"""Gets the edge opposite the given edge, along the given face."""
|
|
|
|
edge_id: str
|
|
|
|
face_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_opposite_edge"] = "solid3d_get_opposite_edge"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_next_adjacent_edge(BaseModel):
|
|
"""Gets the next adjacent edge for the given edge, along the given face."""
|
|
|
|
edge_id: str
|
|
|
|
face_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_next_adjacent_edge"] = "solid3d_get_next_adjacent_edge"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_prev_adjacent_edge(BaseModel):
|
|
"""Gets the previous adjacent edge for the given edge, along the given face."""
|
|
|
|
edge_id: str
|
|
|
|
face_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_prev_adjacent_edge"] = "solid3d_get_prev_adjacent_edge"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_fillet_edge(BaseModel):
|
|
"""Fillets the given edge with the specified radius."""
|
|
|
|
edge_id: str
|
|
|
|
object_id: str
|
|
|
|
radius: LengthUnit
|
|
|
|
tolerance: LengthUnit
|
|
|
|
type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class send_object(BaseModel):
|
|
"""Send object to front or back."""
|
|
|
|
front: bool
|
|
|
|
object_id: str
|
|
|
|
type: Literal["send_object"] = "send_object"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_set_opacity(BaseModel):
|
|
"""Set opacity of the entity."""
|
|
|
|
entity_id: str
|
|
|
|
opacity: float
|
|
|
|
type: Literal["entity_set_opacity"] = "entity_set_opacity"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class entity_fade(BaseModel):
|
|
"""Fade entity in or out."""
|
|
|
|
duration_seconds: Optional[float] = None
|
|
|
|
entity_id: str
|
|
|
|
fade_in: bool
|
|
|
|
type: Literal["entity_fade"] = "entity_fade"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class make_plane(BaseModel):
|
|
"""Make a new plane"""
|
|
|
|
clobber: bool
|
|
|
|
hide: Optional[bool] = None
|
|
|
|
origin: Point3d
|
|
|
|
size: LengthUnit
|
|
|
|
type: Literal["make_plane"] = "make_plane"
|
|
|
|
x_axis: Point3d
|
|
|
|
y_axis: Point3d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class plane_set_color(BaseModel):
|
|
"""Set the color of a plane."""
|
|
|
|
color: Color
|
|
|
|
plane_id: str
|
|
|
|
type: Literal["plane_set_color"] = "plane_set_color"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class set_tool(BaseModel):
|
|
"""Set the current tool."""
|
|
|
|
tool: SceneToolType
|
|
|
|
type: Literal["set_tool"] = "set_tool"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class mouse_move(BaseModel):
|
|
"""Send a mouse move event"""
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["mouse_move"] = "mouse_move"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class mouse_click(BaseModel):
|
|
"""Send a mouse click event Updates modified/selected entities."""
|
|
|
|
type: Literal["mouse_click"] = "mouse_click"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class sketch_mode_enable(BaseModel):
|
|
"""Enable sketch mode on the given plane. If you want to sketch on a face, use `enable_sketch_mode` instead."""
|
|
|
|
animated: bool
|
|
|
|
disable_camera_with_plane: Optional[Point3d] = None
|
|
|
|
ortho: bool
|
|
|
|
plane_id: str
|
|
|
|
type: Literal["sketch_mode_enable"] = "sketch_mode_enable"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class sketch_mode_disable(BaseModel):
|
|
"""Disable sketch mode. If you are sketching on a face, be sure to not disable sketch mode until you have extruded. Otherwise, your object will not be fused with the face."""
|
|
|
|
type: Literal["sketch_mode_disable"] = "sketch_mode_disable"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class get_sketch_mode_plane(BaseModel):
|
|
"""Get the plane for sketch mode."""
|
|
|
|
type: Literal["get_sketch_mode_plane"] = "get_sketch_mode_plane"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class curve_set_constraint(BaseModel):
|
|
"""Get the plane for sketch mode."""
|
|
|
|
constraint_bound: PathComponentConstraintBound
|
|
|
|
constraint_type: PathComponentConstraintType
|
|
|
|
object_id: str
|
|
|
|
type: Literal["curve_set_constraint"] = "curve_set_constraint"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class enable_sketch_mode(BaseModel):
|
|
"""Sketch on some entity (e.g. a plane, a face)."""
|
|
|
|
adjust_camera: bool
|
|
|
|
animated: bool
|
|
|
|
entity_id: str
|
|
|
|
ortho: bool
|
|
|
|
type: Literal["enable_sketch_mode"] = "enable_sketch_mode"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class curve_get_type(BaseModel):
|
|
"""Get type of the given curve."""
|
|
|
|
curve_id: str
|
|
|
|
type: Literal["curve_get_type"] = "curve_get_type"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class curve_get_control_points(BaseModel):
|
|
"""Get control points of the given curve."""
|
|
|
|
curve_id: str
|
|
|
|
type: Literal["curve_get_control_points"] = "curve_get_control_points"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class take_snapshot(BaseModel):
|
|
"""Take a snapshot of the current view."""
|
|
|
|
format: ImageFormat
|
|
|
|
type: Literal["take_snapshot"] = "take_snapshot"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class make_axes_gizmo(BaseModel):
|
|
"""Add a gizmo showing the axes."""
|
|
|
|
clobber: bool
|
|
|
|
gizmo_mode: bool
|
|
|
|
type: Literal["make_axes_gizmo"] = "make_axes_gizmo"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class path_get_info(BaseModel):
|
|
"""Query the given path."""
|
|
|
|
path_id: str
|
|
|
|
type: Literal["path_get_info"] = "path_get_info"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class path_get_curve_uuids_for_vertices(BaseModel):
|
|
"""Obtain curve ids for vertex ids"""
|
|
|
|
path_id: str
|
|
|
|
type: Literal["path_get_curve_uuids_for_vertices"] = (
|
|
"path_get_curve_uuids_for_vertices"
|
|
)
|
|
|
|
vertex_ids: List[str]
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class path_get_vertex_uuids(BaseModel):
|
|
"""Obtain vertex ids for a path"""
|
|
|
|
path_id: str
|
|
|
|
type: Literal["path_get_vertex_uuids"] = "path_get_vertex_uuids"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class handle_mouse_drag_start(BaseModel):
|
|
"""Start dragging the mouse."""
|
|
|
|
type: Literal["handle_mouse_drag_start"] = "handle_mouse_drag_start"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class handle_mouse_drag_move(BaseModel):
|
|
"""Continue dragging the mouse."""
|
|
|
|
sequence: Optional[int] = None
|
|
|
|
type: Literal["handle_mouse_drag_move"] = "handle_mouse_drag_move"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class handle_mouse_drag_end(BaseModel):
|
|
"""Stop dragging the mouse."""
|
|
|
|
type: Literal["handle_mouse_drag_end"] = "handle_mouse_drag_end"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class remove_scene_objects(BaseModel):
|
|
"""Remove scene objects."""
|
|
|
|
object_ids: List[str]
|
|
|
|
type: Literal["remove_scene_objects"] = "remove_scene_objects"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class plane_intersect_and_project(BaseModel):
|
|
"""Utility method. Performs both a ray cast and projection to plane-local coordinates. Returns the plane coordinates for the given window coordinates."""
|
|
|
|
plane_id: str
|
|
|
|
type: Literal["plane_intersect_and_project"] = "plane_intersect_and_project"
|
|
|
|
window: Point2d
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class curve_get_end_points(BaseModel):
|
|
"""Find the start and end of a curve."""
|
|
|
|
curve_id: str
|
|
|
|
type: Literal["curve_get_end_points"] = "curve_get_end_points"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class reconfigure_stream(BaseModel):
|
|
"""Reconfigure the stream."""
|
|
|
|
fps: int
|
|
|
|
height: int
|
|
|
|
type: Literal["reconfigure_stream"] = "reconfigure_stream"
|
|
|
|
width: int
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class import_files(BaseModel):
|
|
"""Import files to the current model."""
|
|
|
|
files: List[ImportFile]
|
|
|
|
format: InputFormat
|
|
|
|
type: Literal["import_files"] = "import_files"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class set_scene_units(BaseModel):
|
|
"""Set the units of the scene. For all following commands, the units will be interpreted as the given units."""
|
|
|
|
type: Literal["set_scene_units"] = "set_scene_units"
|
|
|
|
unit: UnitLength
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class mass(BaseModel):
|
|
"""Get the mass of entities in the scene or the default scene."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
material_density: float
|
|
|
|
material_density_unit: UnitDensity
|
|
|
|
output_unit: UnitMass
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["mass"] = "mass"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class density(BaseModel):
|
|
"""Get the density of entities in the scene or the default scene."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
material_mass: float
|
|
|
|
material_mass_unit: UnitMass
|
|
|
|
output_unit: UnitDensity
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["density"] = "density"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class volume(BaseModel):
|
|
"""Get the volume of entities in the scene or the default scene."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
output_unit: UnitVolume
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["volume"] = "volume"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class center_of_mass(BaseModel):
|
|
"""Get the center of mass of entities in the scene or the default scene."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
output_unit: UnitLength
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["center_of_mass"] = "center_of_mass"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class surface_area(BaseModel):
|
|
"""Get the surface area of entities in the scene or the default scene."""
|
|
|
|
entity_ids: List[str]
|
|
|
|
output_unit: UnitArea
|
|
|
|
source_unit: UnitLength
|
|
|
|
type: Literal["surface_area"] = "surface_area"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_focus_on(BaseModel):
|
|
"""Focus the default camera upon an object in the scene."""
|
|
|
|
type: Literal["default_camera_focus_on"] = "default_camera_focus_on"
|
|
|
|
uuid: str
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class set_selection_type(BaseModel):
|
|
"""When you select some entity with the current tool, what should happen to the entity?"""
|
|
|
|
selection_type: SceneSelectionType
|
|
|
|
type: Literal["set_selection_type"] = "set_selection_type"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class set_selection_filter(BaseModel):
|
|
"""What kind of entities can be selected?"""
|
|
|
|
filter: List[EntityType]
|
|
|
|
type: Literal["set_selection_filter"] = "set_selection_filter"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_set_orthographic(BaseModel):
|
|
"""Use orthographic projection."""
|
|
|
|
type: Literal["default_camera_set_orthographic"] = "default_camera_set_orthographic"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class default_camera_set_perspective(BaseModel):
|
|
"""Use perspective projection."""
|
|
|
|
parameters: Optional[PerspectiveCameraParameters] = None
|
|
|
|
type: Literal["default_camera_set_perspective"] = "default_camera_set_perspective"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class solid3d_get_extrusion_face_info(BaseModel):
|
|
"""Get a concise description of all of an extrusion's faces."""
|
|
|
|
edge_id: str
|
|
|
|
object_id: str
|
|
|
|
type: Literal["solid3d_get_extrusion_face_info"] = "solid3d_get_extrusion_face_info"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class edit_mode_exit(BaseModel):
|
|
"""Exit edit mode"""
|
|
|
|
type: Literal["edit_mode_exit"] = "edit_mode_exit"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_clear(BaseModel):
|
|
"""Clear the selection"""
|
|
|
|
type: Literal["select_clear"] = "select_clear"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
class select_get(BaseModel):
|
|
"""Find all IDs of selected entities"""
|
|
|
|
type: Literal["select_get"] = "select_get"
|
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
|
|
|
|
|
ModelingCmd = RootModel[
|
|
Annotated[
|
|
Union[
|
|
start_path,
|
|
move_path_pen,
|
|
extend_path,
|
|
extrude,
|
|
close_path,
|
|
camera_drag_start,
|
|
camera_drag_move,
|
|
camera_drag_end,
|
|
default_camera_get_settings,
|
|
default_camera_look_at,
|
|
default_camera_perspective_settings,
|
|
default_camera_zoom,
|
|
default_camera_enable_sketch_mode,
|
|
default_camera_disable_sketch_mode,
|
|
export,
|
|
entity_get_parent_id,
|
|
entity_get_num_children,
|
|
entity_get_child_uuid,
|
|
entity_get_all_child_uuids,
|
|
entity_get_distance,
|
|
entity_linear_pattern,
|
|
entity_circular_pattern,
|
|
edit_mode_enter,
|
|
select_with_point,
|
|
select_add,
|
|
select_remove,
|
|
select_replace,
|
|
highlight_set_entity,
|
|
highlight_set_entities,
|
|
new_annotation,
|
|
update_annotation,
|
|
object_visible,
|
|
object_bring_to_front,
|
|
object_set_material_params_pbr,
|
|
get_entity_type,
|
|
solid3d_get_all_edge_faces,
|
|
solid2d_add_hole,
|
|
solid3d_get_all_opposite_edges,
|
|
solid3d_get_opposite_edge,
|
|
solid3d_get_next_adjacent_edge,
|
|
solid3d_get_prev_adjacent_edge,
|
|
solid3d_fillet_edge,
|
|
send_object,
|
|
entity_set_opacity,
|
|
entity_fade,
|
|
make_plane,
|
|
plane_set_color,
|
|
set_tool,
|
|
mouse_move,
|
|
mouse_click,
|
|
sketch_mode_enable,
|
|
sketch_mode_disable,
|
|
get_sketch_mode_plane,
|
|
curve_set_constraint,
|
|
enable_sketch_mode,
|
|
curve_get_type,
|
|
curve_get_control_points,
|
|
take_snapshot,
|
|
make_axes_gizmo,
|
|
path_get_info,
|
|
path_get_curve_uuids_for_vertices,
|
|
path_get_vertex_uuids,
|
|
handle_mouse_drag_start,
|
|
handle_mouse_drag_move,
|
|
handle_mouse_drag_end,
|
|
remove_scene_objects,
|
|
plane_intersect_and_project,
|
|
curve_get_end_points,
|
|
reconfigure_stream,
|
|
import_files,
|
|
set_scene_units,
|
|
mass,
|
|
density,
|
|
volume,
|
|
center_of_mass,
|
|
surface_area,
|
|
default_camera_focus_on,
|
|
set_selection_type,
|
|
set_selection_filter,
|
|
default_camera_set_orthographic,
|
|
default_camera_set_perspective,
|
|
solid3d_get_extrusion_face_info,
|
|
edit_mode_exit,
|
|
select_clear,
|
|
select_get,
|
|
],
|
|
Field(discriminator="type"),
|
|
]
|
|
]
|