Native wgpu-Viewports (2D+3D) im Tauri-Prozess: echtes Modell + gehrte Ecken

- native.rs: EINE winit-EventLoop hostet 2D- und 3D-Fenster (winit erlaubt nur
  eine Loop pro Prozess) — loest den RecreationAttempt-Panic zweier Loops; ersetzt
  native2d.rs/native3d.rs. Feature-gegated (native2d/native3d, einzeln oder zusammen).
- render2d/render3d laden das ECHTE Modell aus assets/native2d_scene.json bzw.
  native3d_walls.json (Demo-Szene als Fallback); initialer Ausschnitt/Kamera aus
  den Modell-Grenzen gerahmt, initialer Redraw + gesetzte Fenstergroesse.
- TS-Konverter toRenderScene/toWalls3d + scripts/dump-native-scene erzeugen die
  JSON aus sampleProject/generatePlan (npm run dump:native).
- render2d: Scene.polylines fuer zusammenhaengende Umriss-/Zeichnungslaeufe →
  Gehrung statt Stumpfkappen an Wandecken/2D-Geometrien; MITER_LIMIT 4→8
  (deckungsgleich mit SVG stroke-miterlimit:8 und WebGL2).
- native3d-Feature + render3d-Pfad-Dep in der Tauri-Crate.
This commit is contained in:
2026-07-02 08:51:59 +02:00
parent f4cd16b7ac
commit 229169cea1
15 changed files with 1045 additions and 276 deletions
+9 -4
View File
@@ -5,10 +5,15 @@ edition = "2021"
description = "Nativer wgpu-3D-Renderer fuer die CAD-Modellsicht (Wand-Extrusion + Kamera + Pipeline)"
# Bewusst NICHT Teil des src-tauri-Workspaces: die Mesh-Bibliothek soll unabhaengig
# von Tauri baubar/testbar bleiben (headless, ohne Webview-Toolchain). Der leere
# [workspace]-Block schliesst die Crate aus einem uebergeordneten Workspace aus,
# sodass `cargo test`/`cargo build` hier eigenstaendig laufen (Muster: render2d).
[workspace]
# von Tauri baubar/testbar bleiben (headless, ohne Webview-Toolchain). Ausschluss
# laeuft ueber `exclude = ["render3d"]` im uebergeordneten src-tauri/Cargo.toml.
# Standalone (`cd render3d && cargo test/build`) bildet die Crate automatisch ihren
# eigenen Ein-Paket-Workspace (eigene Cargo.lock) — Muster: render2d.
#
# KEIN eigener `[workspace]`-Block hier: sobald `cad-tauri` render3d per Pfad als
# (optionale) Abhaengigkeit einbindet (Feature `native3d`), wuerde ein zweiter
# Workspace-Root INNERHALB des src-tauri-Baums Cargo mit "multiple workspace
# roots" abbrechen. Der Parent-`exclude` haelt die Crate trotzdem eigenstaendig.
[features]
# Standard: nur Mesh-Erzeugung (Wand-Extrusion) + Kamera/Matrizen + WGSL-Quellen.