God-Files aufgeteilt (ResourceManager/generatePlan/toWalls3d/App.tsx-Handler), Totcode entfernt (geometry-Crate, OCCT/HLR-Spike), PDF/Bild-Import ergänzt.

ResourceManager.tsx, generatePlan.ts und toWalls3d.ts sind nach Bauteil-
Domäne in src/ui/resourceManager/, src/plan/generatePlan/ und
src/plan/toWalls3d/ aufgeteilt (reine Verschiebung, keine Verhaltens-
änderung). App.tsx verliert weitere Handler-Gruppen an eigene Hooks
(useExportHandlers, useImportHandling, useKeyboardShortcuts) sowie
Hit-Testing an src/viewport/planHitTest.ts.

Unbenutzte Rust-geometry-Crate (durch WASM-Joins abgelöst) sowie der alte
OCCT/HLR-Schnitt-Spike (hlr.ts/occt.ts, vite occt-Aliases) entfernt.

Neu: PDF-Import als Rasterbild (src/io/pdfImport.ts) + gemeinsamer
Bild-Asset-Helfer (src/io/imageAsset.ts) für Plan- und Layout-Bilder.

tsc -b sauber, vitest 891/891 grün.
This commit is contained in:
2026-08-19 22:45:41 +02:00
parent 06c0143d32
commit 1507c2bf00
85 changed files with 12461 additions and 11280 deletions
+41 -2
View File
@@ -1513,6 +1513,26 @@ export type Drawing2DGeom =
* (Modell-Meter) geführt, nicht über `marks.sizePt`.
*/
marks?: Marks;
/**
* Reiches Textfeld (mehrere Absätze, gemischte Formatierung pro Zeichen —
* InDesign-/Affinity-artig): gesetzt über den Doppelklick-Editor
* (TextEditorDialog/RichTextEditor). Ist `doc` gesetzt, hat es Vorrang vor
* `text`/`marks` beim Rendern; `text` wird beim Schreiben als Reintext-
* Spiegel nachgeführt (DXF-Export, Suche, Alt-Konsumenten lesen weiter
* `text`). `width` bricht wie gehabt wortweise um.
*/
doc?: RichTextDoc;
}
| {
shape: "image";
/** Obere-linke Ecke der Bild-Box (Modell-Meter). */
min: Vec2;
/** Untere-rechte Ecke der Bild-Box (Modell-Meter). */
max: Vec2;
/** Bildquelle als Data-URL (PNG/JPEG) — eingebettet, keine externe Datei. */
src: string;
/** Deckkraft 0..1 (Default 1). */
opacity?: number;
};
/** Ein freies 2D-Zeichenelement auf einer Zeichnungsebene. */
@@ -1598,8 +1618,6 @@ export interface EdgeGrip {
free?: boolean;
}
export type Element = Wall | Ceiling | Opening | Door | Stair | Room | Drawing2D;
// ── Extrudierter Körper (truck-Integration, docs/design/truck-plan.md) ─────
// Ein per `extrude`-Befehl aus einem geschlossenen 2D-Profil (Polylinie-Ring/
// Rechteck) erzeugter 3D-Körper. Die eigentliche B-Rep-Extrusion (truck-WASM,
@@ -2016,6 +2034,24 @@ export type LayoutAnnotation =
text: string;
heightMm: number;
color?: string;
/**
* Reiches Textfeld (mehrere Absätze, gemischte Formatierung) — Vorrang vor
* `text`, s. gleichnamiges Feld bei `Drawing2DGeom["text"]`.
*/
doc?: RichTextDoc;
/** Optionale Rahmenbreite (mm) — bricht `doc` wortweise um; fehlt sie: einzeilig. */
widthMm?: number;
}
| {
id: string;
kind: "image";
xMm: number;
yMm: number;
widthMm: number;
heightMm: number;
/** Bildquelle als Data-URL (PNG/JPEG) — eingebettet, keine externe Datei. */
src: string;
opacity?: number;
};
/**
@@ -2036,6 +2072,9 @@ export type LayoutAnnotationPatch = Partial<{
text: string;
color: string;
weightMm: number;
doc: RichTextDoc;
src: string;
opacity: number;
}>;
/**