2D-Plan-Qualität: Türschwenk-Bögen adaptiv rund tessellieren (nativer wgpu-Renderer)

Bögen (Türschwenke) wurden bisher einmalig in JS in eine feste Facettenzahl
zerlegt; beim Hineinzoomen wurden die Facetten sichtbar. Die Zerlegung
(`tessellate_arc`) wandert nach Rust und läuft jetzt zoomabhängig anhand einer
Sehnenabweichungs-Toleranz (Sagitta ≤0.3 Geräte-px), Segmentzahl auf 8..512
geklemmt. Die native GPU-Szene bekommt dafür einen eigenen `Arc`-Primitiv-Typ
(unvortessellliert); der Renderer merkt sich die zuletzt hochgeladene Szene und
tessellliert Bögen automatisch neu, sobald sich der Zoom seit dem letzten
Upload um mehr als Faktor 1.3 verändert hat.
This commit is contained in:
2026-07-02 21:43:55 +02:00
parent 31ac91b2a7
commit 4311a7dfbd
8 changed files with 276 additions and 54 deletions
+4
View File
@@ -43,19 +43,23 @@ pub fn demo_scene() -> Scene {
pts: l,
color: ink,
width_mm: 0.35,
dash: None,
},
Outline {
pts: room,
color: ink,
width_mm: 0.18,
dash: None,
},
],
polylines: vec![],
arcs: vec![],
lines: vec![Line {
a: [0.0, -1.0],
b: [9.0, -1.0],
color: ink,
width_mm: 0.25,
dash: None,
}],
// Ein Raumstempel-artiger Text (echte Glyphen via Atlas), mittig im Raum.
texts: vec![Text {