diff --git a/src/lang/KclSingleton.ts b/src/lang/KclSingleton.ts index 9a74911e9..e2dad8f51 100644 --- a/src/lang/KclSingleton.ts +++ b/src/lang/KclSingleton.ts @@ -428,17 +428,15 @@ export class KclManager { return this?.engineCommandManager?.defaultPlanes } - getPlaneId(axis: 'xy' | 'xz' | 'yz'): string { - return this.defaultPlanes[axis] - } - showPlanes() { + if (!this.defaultPlanes) return void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.xy, false) void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.yz, false) void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.xz, false) } hidePlanes() { + if (!this.defaultPlanes) return void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.xy, true) void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.yz, true) void this.engineCommandManager.setPlaneHidden(this.defaultPlanes.xz, true) diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 71c16f514..a7b254778 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -843,11 +843,7 @@ export class EngineCommandManager { outSequence = 1 inSequence = 1 engineConnection?: EngineConnection - defaultPlanes: { xy: string; yz: string; xz: string } = { - xy: '', - yz: '', - xz: '', - } + defaultPlanes: { xy: string; yz: string; xz: string } | null = null _commandLogs: CommandLog[] = [] _commandLogCallBack: (command: CommandLog[]) => void = () => {} // Folks should realize that wait for ready does not get called _everytime_ @@ -1245,6 +1241,7 @@ export class EngineCommandManager { startNewSession() { this.lastArtifactMap = this.artifactMap this.artifactMap = {} + this.initPlanes() } subscribeTo({ event, @@ -1296,6 +1293,7 @@ export class EngineCommandManager { type: 'scene_clear_all', }, } + this.defaultPlanes = null this.engineConnection?.send(deleteCmd) } addCommandLog(message: CommandLog) { @@ -1603,6 +1601,7 @@ export class EngineCommandManager { } } private async initPlanes() { + if (this.planesInitialized()) return const [xy, yz, xz] = [ await this.createPlane({ x_axis: { x: 1, y: 0, z: 0 }, @@ -1626,20 +1625,14 @@ export class EngineCommandManager { event: 'select_with_point', callback: ({ data }) => { if (!data?.entity_id) return - if ( - ![ - this.defaultPlanes.xy, - this.defaultPlanes.yz, - this.defaultPlanes.xz, - ].includes(data.entity_id) - ) - return + if (![xy, yz, xz].includes(data.entity_id)) return this.onPlaneSelectCallback(data.entity_id) }, }) } planesInitialized(): boolean { return ( + !!this.defaultPlanes && this.defaultPlanes.xy !== '' && this.defaultPlanes.yz !== '' && this.defaultPlanes.xz !== ''