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:
+41
-2
@@ -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;
|
||||
}>;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user