Natives 2D/3D live: Webview pusht Szene/Waende per Tauri-Command
Die nativen wgpu-Fenster spiegeln jetzt das LIVE-Modell statt des eingefrorenen JSON-Snapshots: die Webview schiebt bei jeder Aenderung (debounced 200 ms) den sichtbaren Plan (planToRenderScene) bzw. die Projekt-Waende (projectToWalls3d) per push_native_scene/push_native_walls an einen EventLoopProxy<UserEvent> der winit-Loop. Ansicht wird nur neu eingepasst, solange im Fenster noch nicht gepannt/gezoomt/orbitiert wurde; die JSON-Assets bleiben Start-Fallback. Ohne Tauri: No-op.
This commit is contained in:
+11
@@ -37,6 +37,7 @@ import type {
|
||||
} from "./model/types";
|
||||
import { generatePlan } from "./plan/generatePlan";
|
||||
import type { CategoryDisplayResolver } from "./plan/generatePlan";
|
||||
import { pushNativeScene, pushNativeWalls } from "./plan/nativeSync";
|
||||
import { parseDxf } from "./io/dxfParser";
|
||||
import type { DxfImportResult } from "./io/dxfParser";
|
||||
import { setDxfImportTrigger } from "./io/dxfImportHook";
|
||||
@@ -4068,6 +4069,16 @@ function LevelPlanView({
|
||||
[project, level.id, visibleCodes, categoryDisplay, detail, referenceLines, mono],
|
||||
);
|
||||
|
||||
// Live-Spiegelung in die nativen wgpu-Fenster (No-op ohne Tauri, debounced):
|
||||
// EXAKT der sichtbare Plan (gleiches Geschoss, gleicher Detailgrad) fürs
|
||||
// 2D-Fenster, die Projekt-Wände fürs 3D-Fenster.
|
||||
useEffect(() => {
|
||||
pushNativeScene(plan);
|
||||
}, [plan]);
|
||||
useEffect(() => {
|
||||
pushNativeWalls(project);
|
||||
}, [project]);
|
||||
|
||||
// Bei einer freien Zeichnung gibt es keine Schnitthöhe → eigene Legende/Titel.
|
||||
const isDrawing = level.kind === "drawing";
|
||||
const caption = isDrawing
|
||||
|
||||
Reference in New Issue
Block a user