2D-Plan-Renderer auf WebGL2 (GPU) + akkumulierter Funktionsstand

Neuer GPU-Renderer fuer den Grundriss (src/plan/glPlan/): Earcut-Tessellierung
(konkav-faehig), gehrte Linienzuege (Miter), echte Papier-mm-Strichbreiten im
Massstab (repliziert den SVG-printStrokeVb-Pfad), Hybrid mit scharfem SVG-Text-
Overlay. GPU ist der Standardpfad; der SVG-Renderer bleibt automatischer Fallback,
falls WebGL2/Shader nicht verfuegbar sind. Imperativer Pan (rAF + CSS-transform)
fuer fluessige Interaktion ohne React-Re-Render je Frame.

Enthaelt zudem den bisher nicht committeten Arbeitsstand des Browser-BIM
(Oeffnungen, Treppen, Raeume, Decken, DXF-Export, Materialbibliothek, Kontext-
Import, Tauri-Compute-Boundary-PoC).
This commit is contained in:
2026-07-02 00:12:39 +02:00
parent 7b3b597abc
commit 8fd8987b70
184 changed files with 29421 additions and 669 deletions
+25
View File
@@ -0,0 +1,25 @@
// Ambient-Deklarationen für die WASM-Glue-/Asset-Importe von opencascade.js
// (Welle-C-Spike: Hidden-Line-Removal). Analog zu `src/io/libredwg-web.d.ts`:
// das Paket liefert seine `dist/`-Dateien nicht über sinnvolle `exports`, daher
// laden wir Emscripten-Glue + `.wasm`-URL über zwei virtuelle Module (Aliase in
// vite.config.ts → echte Dateien im Paket). Hier nur schmale Modul-Stubs.
// (Identifier englisch, Kommentare deutsch — CONVENTIONS.md.)
declare module "virtual:occt-glue" {
/**
* Emscripten-Modul-Fabrik von opencascade.js. Nimmt Modul-Overrides
* (u. a. `locateFile`, um die `.wasm`-URL aufzulösen) und liefert das
* initialisierte Modul (das gesamte OCCT-Binding als `unknown`).
*/
const createModule: (opts?: {
locateFile?: (filename: string, scriptDir: string) => string;
wasmBinary?: ArrayBuffer | Uint8Array;
}) => Promise<unknown>;
export default createModule;
}
declare module "virtual:occt-wasm-url" {
/** Von Vite aufgelöste URL der `.wasm`-Datei (gehashtes Asset im Build). */
const url: string;
export default url;
}