From a434ff024376d8b558d89eb6446f178b14b025cf Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 13 Apr 2026 22:27:07 +0200 Subject: [PATCH] Handle pathPoint kind in ViewportHost --- src/viewport-three/viewport-host.ts | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index 0b91e674..db40f6f3 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -2232,6 +2232,8 @@ export class ViewportHost { ? session.target.initialCenter : session.target.kind === "modelInstance" ? session.target.initialPosition + : session.target.kind === "pathPoint" + ? session.target.initialPosition : session.target.initialPosition; let nextPosition = { ...initialPosition @@ -2346,6 +2348,13 @@ export class ViewportHost { }; } + if (session.target.kind === "pathPoint") { + return { + kind: "pathPoint" as const, + position: nextPosition + }; + } + return { kind: "entity" as const, position: nextPosition, @@ -3268,6 +3277,36 @@ export class ViewportHost { }); } break; + case "pathPoint": { + if ( + this.currentTransformSession.preview.kind !== "pathPoint" || + this.currentDocument === null + ) { + break; + } + + const currentPath = + this.currentDocument.paths[this.currentTransformSession.target.pathId]; + + if (currentPath === undefined) { + break; + } + + this.updatePathRenderObjectState( + { + ...currentPath, + points: currentPath.points.map((point) => + point.id === this.currentTransformSession.target.pointId + ? { + ...point, + position: this.currentTransformSession.preview.position + } + : point + ) + } + ); + break; + } case "entity": { if ( this.currentTransformSession.preview.kind !== "entity" ||