Vektor-PDF aus der RenderScene: eine Szene, zwei Targets
exportPdf baut jetzt planToRenderScene(plan) — identischer Aufruf wie der Engine-Viewport — und serialisiert über den neuen sceneToPrintSvg nach Papier-mm: z-stabile Reihenfolge wie compile_scene, PEN_STEPS-Quantisierung wie bisher, widthScreen-Schraffurbreiten via (widthPx/PX_PER_M)*(1000/N) in mm umgerechnet, Texte neu als echte Vektor-Texte (alter Pfad liess sie weg). planToPrintSvg bleibt als Referenz, im Kopf als abgeloest markiert. probe-pdf.mjs: Icon-Button-Selektor nachgezogen, neue Assertions (Schraffur- Polylinien vorhanden, alle stroke-widths auf PEN_STEPS). Messung: 3666 Vektor-Pfadoperatoren, 7 Text-Operatoren, 0 Rasterbilder; Inhalt per pdftoppm 53.51x43.69 mm vs. erwartet 53.45x43.45 bei 1:100.
This commit is contained in:
@@ -91,6 +91,13 @@ export interface RText {
|
||||
color: RRgba;
|
||||
align: RTextAlign;
|
||||
}
|
||||
/** Achsenparalleler Rahmen der Plan-Geometrie in Modell-Metern (siehe Plan.bounds). */
|
||||
export interface RBounds {
|
||||
minX: number;
|
||||
minY: number;
|
||||
maxX: number;
|
||||
maxY: number;
|
||||
}
|
||||
export interface RScene {
|
||||
fills: RFill[];
|
||||
outlines: ROutline[];
|
||||
@@ -98,6 +105,14 @@ export interface RScene {
|
||||
arcs: RArc[];
|
||||
lines: RLine[];
|
||||
texts: RText[];
|
||||
/**
|
||||
* Plan-Bounds (Modell-Meter) — additiv aus `Plan.bounds` übernommen, damit
|
||||
* Verbraucher (z. B. der Vektor-PDF-Serializer `sceneToPrintSvg.ts`) den
|
||||
* Plan-Inhalt zentrieren können, OHNE zusätzlich den `Plan` selbst zu
|
||||
* benötigen. Unbekannt für den Rust-Renderer (serde ignoriert überzählige
|
||||
* Felder ohne `deny_unknown_fields`), also rückwirkungsfrei fürs GPU-Backend.
|
||||
*/
|
||||
bounds: RBounds;
|
||||
}
|
||||
|
||||
const DEFAULT_LINE = "#1a1a1a";
|
||||
@@ -496,5 +511,5 @@ export function planToRenderScene(plan: Plan): RScene {
|
||||
}
|
||||
}
|
||||
|
||||
return { fills, outlines, polylines, arcs, lines, texts };
|
||||
return { fills, outlines, polylines, arcs, lines, texts, bounds: { ...plan.bounds } };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user