Bump KCVM (#1631)
This commit is contained in:
19
src/wasm-lib/Cargo.lock
generated
19
src/wasm-lib/Cargo.lock
generated
@ -1990,11 +1990,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "kittycad-execution-plan"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"insta",
|
||||
"kittycad",
|
||||
"kittycad-execution-plan-macros",
|
||||
"kittycad-execution-plan-traits",
|
||||
"kittycad-modeling-cmds",
|
||||
"kittycad-modeling-session",
|
||||
@ -2008,8 +2009,8 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "kittycad-execution-plan-macros"
|
||||
version = "0.1.6"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
version = "0.1.8"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -2018,8 +2019,8 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "kittycad-execution-plan-traits"
|
||||
version = "0.1.11"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
version = "0.1.12"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"thiserror",
|
||||
@ -2028,8 +2029,8 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "kittycad-modeling-cmds"
|
||||
version = "0.1.27"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
version = "0.1.28"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@ -2057,7 +2058,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "kittycad-modeling-cmds-macros"
|
||||
version = "0.1.2"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -2067,7 +2068,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "kittycad-modeling-session"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#9c96767289139f03036c2ba40f889f974ca3e976"
|
||||
source = "git+https://github.com/KittyCAD/modeling-api?branch=main#03eb9c3763de56d7284c09dba678ddd6120bb523"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"kittycad",
|
||||
|
||||
@ -2,6 +2,5 @@
|
||||
|
||||
pub mod helpers;
|
||||
pub mod stdlib_functions;
|
||||
pub mod types;
|
||||
|
||||
pub use stdlib_functions::{LineTo, StartSketchAt};
|
||||
|
||||
@ -1,4 +1,8 @@
|
||||
use kittycad_execution_plan::{api_request::ApiRequest, Destination, Instruction};
|
||||
use kittycad_execution_plan::{
|
||||
api_request::ApiRequest,
|
||||
sketch_types::{self, Axes, BasePath, Plane, SketchGroup},
|
||||
Destination, Instruction,
|
||||
};
|
||||
use kittycad_execution_plan_traits::{Address, InMemory, Value};
|
||||
use kittycad_modeling_cmds::{
|
||||
shared::{Point3d, Point4d},
|
||||
@ -6,10 +10,7 @@ use kittycad_modeling_cmds::{
|
||||
};
|
||||
use uuid::Uuid;
|
||||
|
||||
use super::{
|
||||
helpers::{arg_point2d, no_arg_api_call, single_binding, stack_api_call},
|
||||
types::{Axes, BasePath, Plane, SketchGroup},
|
||||
};
|
||||
use super::helpers::{arg_point2d, no_arg_api_call, single_binding, stack_api_call};
|
||||
use crate::{binding_scope::EpBinding, error::CompileError, native_functions::Callable, EvalPlan};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
@ -184,9 +185,9 @@ impl Callable for StartSketchAt {
|
||||
name: Default::default(),
|
||||
},
|
||||
path_rest: Vec::new(),
|
||||
on: super::types::SketchSurface::Plane(Plane {
|
||||
on: sketch_types::SketchSurface::Plane(Plane {
|
||||
id: plane_id,
|
||||
value: super::types::PlaneType::XY,
|
||||
value: sketch_types::PlaneType::XY,
|
||||
origin,
|
||||
axes,
|
||||
}),
|
||||
|
||||
@ -1,142 +0,0 @@
|
||||
use kittycad_execution_plan::{Destination, Instruction};
|
||||
use kittycad_execution_plan_macros::ExecutionPlanValue;
|
||||
use kittycad_execution_plan_traits::{Address, Value};
|
||||
use kittycad_modeling_cmds::shared::{Point2d, Point3d, Point4d};
|
||||
use uuid::Uuid;
|
||||
|
||||
/// A sketch group is a collection of paths.
|
||||
#[derive(Clone, ExecutionPlanValue)]
|
||||
pub struct SketchGroup {
|
||||
// NOTE to developers
|
||||
// Do NOT reorder these fields without updating the _offset() methods below.
|
||||
/// The id of the sketch group.
|
||||
pub id: Uuid,
|
||||
/// What the sketch is on (can be a plane or a face).
|
||||
pub on: SketchSurface,
|
||||
/// The position of the sketch group.
|
||||
pub position: Point3d,
|
||||
/// The rotation of the sketch group base plane.
|
||||
pub rotation: Point4d,
|
||||
/// The X, Y and Z axes of this sketch's base plane, in 3D space.
|
||||
pub axes: Axes,
|
||||
/// The plane id or face id of the sketch group.
|
||||
pub entity_id: Option<Uuid>,
|
||||
/// The base path.
|
||||
pub path_first: BasePath,
|
||||
/// Paths after the first path, if any.
|
||||
pub path_rest: Vec<Path>,
|
||||
}
|
||||
|
||||
impl SketchGroup {
|
||||
/// Get the offset for the `id` field.
|
||||
pub fn path_id_offset() -> usize {
|
||||
0
|
||||
}
|
||||
pub fn set_base_path(&self, sketch_group: Address, start_point: Address, tag: Option<Address>) -> Vec<Instruction> {
|
||||
let base_path_addr = sketch_group
|
||||
+ self.id.into_parts().len()
|
||||
+ self.on.into_parts().len()
|
||||
+ self.position.into_parts().len()
|
||||
+ self.rotation.into_parts().len()
|
||||
+ self.axes.into_parts().len()
|
||||
+ self.entity_id.into_parts().len()
|
||||
+ self.entity_id.into_parts().len();
|
||||
let mut out = vec![
|
||||
// Copy over the `from` field.
|
||||
Instruction::Copy {
|
||||
source: start_point,
|
||||
destination: Destination::Address(base_path_addr),
|
||||
length: 1,
|
||||
},
|
||||
// Copy over the `to` field.
|
||||
Instruction::Copy {
|
||||
source: start_point,
|
||||
destination: Destination::Address(base_path_addr + self.path_first.from.into_parts().len()),
|
||||
length: 1,
|
||||
},
|
||||
];
|
||||
if let Some(tag) = tag {
|
||||
// Copy over the `name` field.
|
||||
out.push(Instruction::Copy {
|
||||
source: tag,
|
||||
destination: Destination::Address(
|
||||
base_path_addr + self.path_first.from.into_parts().len() + self.path_first.to.into_parts().len(),
|
||||
),
|
||||
length: 1,
|
||||
});
|
||||
}
|
||||
out
|
||||
}
|
||||
}
|
||||
|
||||
/// The X, Y and Z axes.
|
||||
#[derive(Clone, Copy, ExecutionPlanValue)]
|
||||
pub struct Axes {
|
||||
pub x: Point3d,
|
||||
pub y: Point3d,
|
||||
pub z: Point3d,
|
||||
}
|
||||
|
||||
#[derive(Clone, ExecutionPlanValue)]
|
||||
pub struct BasePath {
|
||||
pub from: Point2d<f64>,
|
||||
pub to: Point2d<f64>,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
/// A path.
|
||||
#[derive(Clone, ExecutionPlanValue)]
|
||||
pub enum Path {
|
||||
/// A path that goes to a point.
|
||||
ToPoint { base: BasePath },
|
||||
/// A arc that is tangential to the last path segment that goes to a point
|
||||
TangentialArcTo {
|
||||
base: BasePath,
|
||||
/// the arc's center
|
||||
center: Point2d,
|
||||
/// arc's direction
|
||||
ccw: bool,
|
||||
},
|
||||
/// A path that is horizontal.
|
||||
Horizontal {
|
||||
base: BasePath,
|
||||
/// The x coordinate.
|
||||
x: f64,
|
||||
},
|
||||
/// An angled line to.
|
||||
AngledLineTo {
|
||||
base: BasePath,
|
||||
/// The x coordinate.
|
||||
x: Option<f64>,
|
||||
/// The y coordinate.
|
||||
y: Option<f64>,
|
||||
},
|
||||
/// A base path.
|
||||
Base { base: BasePath },
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, ExecutionPlanValue)]
|
||||
pub enum SketchSurface {
|
||||
Plane(Plane),
|
||||
}
|
||||
|
||||
/// A plane.
|
||||
#[derive(Clone, Copy, ExecutionPlanValue)]
|
||||
pub struct Plane {
|
||||
/// The id of the plane.
|
||||
pub id: Uuid,
|
||||
// The code for the plane either a string or custom.
|
||||
pub value: PlaneType,
|
||||
/// Origin of the plane.
|
||||
pub origin: Point3d,
|
||||
pub axes: Axes,
|
||||
}
|
||||
|
||||
/// Type for a plane.
|
||||
#[derive(Clone, Copy, ExecutionPlanValue)]
|
||||
pub enum PlaneType {
|
||||
XY,
|
||||
XZ,
|
||||
YZ,
|
||||
Custom,
|
||||
}
|
||||
Reference in New Issue
Block a user