From 226ed37c5f966df90b0990c1ee53986f15b7f7a4 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Fri, 21 Jun 2024 21:49:12 -0700 Subject: [PATCH] fix sketch on face (#2745) Signed-off-by: Jess Frazelle --- src/clientSideScene/sceneEntities.ts | 5 +---- src/components/ModelingMachineProvider.tsx | 1 + src/lang/std/engineConnection.ts | 10 +++++++++- src/wasm-lib/kcl-test-server/Cargo.toml | 4 +++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/clientSideScene/sceneEntities.ts b/src/clientSideScene/sceneEntities.ts index 591bd59f3..72b859bed 100644 --- a/src/clientSideScene/sceneEntities.ts +++ b/src/clientSideScene/sceneEntities.ts @@ -1394,7 +1394,6 @@ export class SceneEntities { streamDimensions ) let _entity_id = entity_id - console.log('things', _entity_id, rest) if (!_entity_id) return if ( engineCommandManager.defaultPlanes?.xy === _entity_id || @@ -1423,7 +1422,6 @@ export class SceneEntities { .sub(sceneInfra.camControls.target) if (engineCommandManager.defaultPlanes?.xy === _entity_id) { - console.log('XY') zAxis = [0, 0, 1] yAxis = [0, 1, 0] if (camVector.z < 0) { @@ -1431,7 +1429,6 @@ export class SceneEntities { _entity_id = engineCommandManager.defaultPlanes?.negXy || '' } } else if (engineCommandManager.defaultPlanes?.yz === _entity_id) { - console.log('YZ') zAxis = [1, 0, 0] yAxis = [0, 0, 1] if (camVector.x < 0) { @@ -1439,7 +1436,6 @@ export class SceneEntities { _entity_id = engineCommandManager.defaultPlanes?.negYz || '' } } else if (engineCommandManager.defaultPlanes?.xz === _entity_id) { - console.log('XZ') zAxis = [0, 1, 0] yAxis = [0, 0, 1] _entity_id = engineCommandManager.defaultPlanes?.negXz || '' @@ -1493,6 +1489,7 @@ export class SceneEntities { kclManager.ast, artifact.range ) + const extrudePathToNode = extrusions?.range ? getNodePathFromSourceRange(kclManager.ast, extrusions.range) : [] diff --git a/src/components/ModelingMachineProvider.tsx b/src/components/ModelingMachineProvider.tsx index af08b6c63..97555e6f6 100644 --- a/src/components/ModelingMachineProvider.tsx +++ b/src/components/ModelingMachineProvider.tsx @@ -507,6 +507,7 @@ export const ModelingMachineProvider = ({ }, 'animate-to-face': async (_, { data }) => { if (data.type === 'extrudeFace') { + console.log('data', data) const { modifiedAst, pathToNode: pathToNewSketchNode } = sketchOnExtrudedFace( kclManager.ast, diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 8aebed9be..1b6e568f4 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1466,6 +1466,9 @@ export class EngineCommandManager extends EventTarget { if (command && command.type === 'pending') { const resolve = command.resolve + const oldArtifact = this.artifactMap[id] as ArtifactMapCommand & { + extrusions?: string[] + } const artifact = { type: 'result', range: command.range, @@ -1474,7 +1477,10 @@ export class EngineCommandManager extends EventTarget { parentId: command.parentId ? command.parentId : undefined, data: modelingResponse, raw, - } as const + } as ArtifactMapCommand & { extrusions?: string[] } + if (oldArtifact?.extrusions) { + artifact.extrusions = oldArtifact.extrusions + } this.artifactMap[id] = artifact if ( (command.commandType === 'entity_linear_pattern' && @@ -1903,6 +1909,8 @@ export class EngineCommandManager extends EventTarget { } else { typedTarget.extrusions = [id] } + // Update in the map. + this.artifactMap[command.target] = typedTarget } } return promise diff --git a/src/wasm-lib/kcl-test-server/Cargo.toml b/src/wasm-lib/kcl-test-server/Cargo.toml index 35d87cfdf..c8ffdd12f 100644 --- a/src/wasm-lib/kcl-test-server/Cargo.toml +++ b/src/wasm-lib/kcl-test-server/Cargo.toml @@ -1,12 +1,14 @@ [package] name = "kcl-test-server" +description = "A test server for KCL" version = "0.1.0" edition = "2021" +license = "MIT" [dependencies] anyhow = "1.0.86" hyper = { version = "0.14.29", features = ["server"] } -kcl-lib = { path = "../kcl" } +kcl-lib = { version = "0.1.62", path = "../kcl" } pico-args = "0.5.0" serde = { version = "1.0.203", features = ["derive"] } serde_json = "1.0.117"