Commit Graph

214 Commits

Author SHA1 Message Date
karim 3697b7e2d8 Snap: Center-/Quadrant-Snaps für Kreise + Bögen (Bogen nur im Spannbereich) + Bogen-Endpunkte, mit Tests 2026-07-05 20:19:34 +02:00
karim a750e87517 Native macOS-Titelleiste: titleBarStyle Overlay (echte Ampeln + gerundete Ecken), Zeile links eingerückt; WindowControls Electron-only 2026-07-05 20:14:10 +02:00
karim 456bf29984 Headless-Titelleiste (Tauri decorations:false): Fensterknöpfe links + Drag-Region, Tauri-Fenstersteuerung + Window-Capabilities 2026-07-05 19:42:48 +02:00
karim c40764a25f Linienstile aufgeräumt: redundante 0.13-Volllinien zusammengeführt, weight-only als Volllinie benannt, Referenzen remappt 2026-07-05 19:32:38 +02:00
karim ff68ec3a5c Pendenzen: Textur-Spike als erledigt verifiziert (0ca3b1d), PBR-Restlücken dokumentiert 2026-07-05 19:23:00 +02:00
karim 72a40ccaaf Pendenzen: Ribbon-Feinschliff + Bogen-Werkzeug als erledigt vermerkt 2026-07-05 19:20:51 +02:00
karim fe22cbf0df Ribbon: Text + Ansichten auf eine Leiste (Ansichten-Tab), als Standard-Tab zuerst 2026-07-05 19:18:23 +02:00
karim 4e3b074f5c TopBar OCS-Stil: kleine Wortmarke + Quick-Access-Icons (alle Datei-/Export-Aktionen), Zeile auf 26px, Burger-Menu raus 2026-07-05 18:37:18 +02:00
karim 033cabe80f Ribbon: Text-Formatierung in eigenen Text-Tab; TopBar-Zeile auf 40px verschlankt 2026-07-05 18:10:14 +02:00
karim 456ebc8098 Ribbon-Tabs in die TopBar-Zeile verlegt: eine Leiste (Chrome + Tabs), Inhalt darunter 2026-07-05 18:04:48 +02:00
karim 13c3294f4d Doku: TopBar→Ansichten-Tab-Merge in Ribbon-Plan + Pendenzen vermerkt 2026-07-05 17:58:23 +02:00
karim 85011cb8ef Ribbon: TopBar-Ansichtssteuerung in Ansichten-Tab gemergt; TopBar auf schmale globale Leiste reduziert 2026-07-05 17:57:17 +02:00
karim 3a206060e3 Pendenzen: Ribbon Phase 1 + Attribut-Grid als erledigt vermerkt 2026-07-05 17:01:06 +02:00
karim 9d6e86d4c0 Ribbon-UI Phase 1: datengetriebene Tab-Leiste (2D/3D/BIM/Ansichten), additiv unter TopBar 2026-07-05 17:00:09 +02:00
karim ace0dc62a8 Attribute-Panel: ein durchgehendes Grid, volle Breite, doppelten Titel raus 2026-07-05 16:54:04 +02:00
karim fe9f396750 Doku: Ribbon-UI-Plan (2D/3D/BIM/Ansichten, datengetrieben, modulare Custom-Bar) + Pendenzen 2026-07-05 15:55:55 +02:00
karim 00733d8180 UI: Eigenschaften-Panel als OCS-artiges Grid (Sektion-Balken, Zeilentrenner, fuellende Wertfelder) 2026-07-05 15:48:42 +02:00
karim 077e774303 Fix: Dokument-Overscroll gesperrt (Viewport-Zoom-Wheel zog die UI leicht mit, macOS) 2026-07-05 15:45:32 +02:00
karim bd2b12bfb7 Werkzeuge: Bogen-Werkzeug (arcCommand, 3-Klick CCW) + Toolbar/Icon/i18n verdrahtet 2026-07-05 15:44:05 +02:00
karim 5130a050ff Pendenzen: Kreis-Toolbar erledigt vermerkt 2026-07-05 15:25:10 +02:00
karim e454eab1a8 Werkzeuge: Kreis-Toolbar verdrahtet (circleCommand gekoppelt, Icon, i18n) 2026-07-05 15:24:45 +02:00
karim 67195d7dd5 Pendenzen: DXF-Kurven/Copy-Paste/Platzierung/UX-Fixes vermerkt 2026-07-05 15:18:10 +02:00
karim dd76ec89fd DXF-Import: Platzierungsoption (relativ zu 0 ODER in Ansichtsmitte) 2026-07-05 15:17:09 +02:00
karim 376aa67566 Zeichnungen: Ctrl/Cmd+C/V — 2D-Elemente ueber Geschosse kopieren/einfuegen (aktives Geschoss) 2026-07-05 15:10:58 +02:00
karim 4ac99d37cb DXF-Import: CIRCLE/ARC als echte glatte Kreis-/Bogen-Formen (statt tesselliertem Vieleck) 2026-07-05 15:06:25 +02:00
karim 45e19b7293 Tauri: dragDropEnabled=false — HTML-Drag&Drop (Datei-Import) im Fenster wieder aktiv 2026-07-05 14:56:15 +02:00
karim c794feef9e Layout: Befehlszeile in die Mitte-Spalte (nur Viewport-breit, Docks gewinnen Hoehe) 2026-07-05 14:48:37 +02:00
karim c5b5ca600c Import-Befehl: autoRun statt onConfirm — Datei-Dialog oeffnet synchron in der Geste 2026-07-05 14:48:37 +02:00
karim 4ef73c9198 Pendenzen: HATCH-Ellipse/Spline-Kanten + TEXT/MTEXT-Import erledigt 2026-07-05 14:29:55 +02:00
karim 4b93ac9cbb DXF-Import: TEXT/MTEXT -> editierbarer Plan-Text (Drawing2D text-Primitiv, SVG-Render) 2026-07-05 14:29:05 +02:00
karim 05bc5aa6e1 DXF-HATCH: Ellipsen- + Spline-Randkanten tesselliert (B-Spline-Sampling extrahiert) 2026-07-05 14:18:49 +02:00
karim d36c84689f Doku: Sprache in Planungs- und Konventionsdokumenten vereinheitlicht 2026-07-05 14:14:40 +02:00
karim 8f9123ce0d Pendenzen: HATCH-Import erledigt vermerkt 2026-07-05 14:13:24 +02:00
karim a44572bf7b DXF-Import: HATCH via Custom-Handler -> gefuellte geschlossene Drawing2D-Flaeche 2026-07-05 14:12:59 +02:00
karim 79ea6b0b3b Pendenzen: SPLINE/INSERT-Import erledigt vermerkt 2026-07-05 13:59:41 +02:00
karim 83da278ed2 DXF-Import: SPLINE (De-Boor-B-Spline) + INSERT (Block-Expansion mit Transform/Array/Verschachtelung) 2026-07-05 13:59:15 +02:00
karim 33c2c6c22e Pendenzen: DXF-Kurven-Import erledigt, Import-Ist-Stand klargestellt 2026-07-05 13:51:37 +02:00
karim b7551d4930 DXF-Import: ARC/CIRCLE/ELLIPSE als tessellierte Konturen (Abdeckungsluecke geschlossen) 2026-07-05 13:51:08 +02:00
karim 25daec6be9 Pendenzen: Join-WASM-Durchstich verworfen (gemessen: TS schneller <100 Waende) 2026-07-05 13:40:58 +02:00
karim 5229174551 Treppe: Vorkonfiguration vor Erstellung (Breite/Referenz/Trittmass)
- Referenz (links/mitte/rechts) + Trittmass-Modus (mit/ohne) als togglebare
  Optionen, Breite als Tab-Feld — bereits in der Idle-Phase (vor dem 1. Punkt).
- Trittmass-Modus 'mit': stepsFromTread(auftritt, runLength) leitet Stufenzahl
  aus Ziel-Auftritt ab (Default IDEAL_TREAD); Feld Auftritt statt Stufen.
- appendStair schreibt Stair.referenz; Geometrie/Outline versetzt entsprechend.
- stairDefaults (modulweit) merkt zuletzt gewaehlte Werte fuer die naechste
  Treppe (Session-RAM; localStorage/projectSlice waere Folgeschritt).
- 10 Tests (stair.tread.test.ts), i18n de/en. vitest 302/302, tsc sauber.
2026-07-05 13:14:06 +02:00
karim df0e5e432a Pendenzen: DWG/DXF-Import-Spike (acadrust wasm32) vermerkt + Folgeschritte 2026-07-05 03:13:04 +02:00
karim 715e950d7c DWG/DXF-Import-Spike: acadrust baut zu wasm32 (Crate dwgimport)
- src-tauri/dwgimport: eigenstaendiges Crate (cdylib+rlib, eigener [workspace]),
  dep acadrust 0.4 (MPL-2.0, pure Rust). parse_dxf_summary(bytes) via
  DxfReader::from_reader + Cursor<Vec<u8>> -> JSON (version/entityCount/
  entityTypeCounts/layerNames). wasm-Fassade parse_dxf_summary_json.
- getrandom wasm_js-Feature noetig (transitiv via ahash) -> als Dep gesetzt.
- Kernbeweis: acadrust kompiliert nach wasm32 (839 KB), DXF-Parse headless
  getestet (5 Entities korrekt). Beweist den DWG/DXF-Import-Weg im Rust/WASM-Kern.
- build:dwgimport-Script, src-tauri/Cargo.toml exclude erweitert.
2026-07-05 03:12:32 +02:00
karim dbf78a9d75 UI: Gruppe-A-Felder in Objekt-Info-Panel verdrahtet
- Treppe: Dropdown Referenz (Links/Mitte/Rechts) vor Laufrichtung.
- Fenster: Feld Fluegel (1-4) nach Bruestung.
- Tuer: Dropdowns Typ (Normal/Wandoeffnung) + Sturzlinien (Keine/Innen/Aussen/
  Beide) vor Anschlag.
- host.ts/selectionInfo.ts Durchreichung, App.tsx-Handler (kind-guard +
  updateOpening/updateStair), i18n de/en. Rueckwaertskompatibel.
  tsc sauber, vitest 292/292.
2026-07-05 03:01:35 +02:00
karim 26fbd11b73 Bauteile Gruppe A (4-6): Treppe-Referenz, Fenster-Fluegel, Tuer-wandoeffnung
- Treppe referenz links/mitte/rechts (Stair.referenz, Default mitte): Perp-Versatz
  referenzMidShift auf start/center, Lauflinie/Pfeil bleiben visuell zentriert.
- Fenster Fluegel-Mittelpfosten (Opening.wingCount 1-4, Default 1): wingCount-1
  Querlinien im Rahmen (window-mullion), nur mittel/fein.
- Tuer-Typ wandoeffnung (Opening.doorType, Default normal): ueberspringt
  Tuerblatt + Schwenkbogen, Laibung/Sturz bleiben.
- Alle Modellfelder optional/rueckwaertskompatibel. 17 neue Tests.
  vitest 292/292, tsc sauber.
2026-07-05 02:33:48 +02:00
karim 6e5998ce72 Bauteile Gruppe A: Treppe-Aussenlinie, Fenster-Bruestung, Tuer-Sturz (Rhino-Vorbild)
- Treppe Aussenlinie/Outline (stair.ts stairOutline): gerade=4-Punkt-Rechteck,
  L=6-Punkt-Polygon via lineIntersect2d, Wendel=2 Boegen+2 Radiallinien; in
  addStairSymbol als durchgezogene Umrisslinie. (Rhino _aussen_gerade/_l/_wendel)
- Fenster Bruestungslinie: bei sillHeight>0 gepunktete Linie auf der Wandachse
  zwischen den Pfosten (Klasse window-sill).
- Tuer Sturzlinien (SIA): gestrichelte Linien an Wand-Innen/-Aussenkante, neues
  optionales Opening-Feld lintelLines (keine/innen/aussen/beide, Default beide),
  rueckwaertskompatibel.
- 12 neue Tests (stairOutline.test.ts). vitest 275/275, tsc sauber.
2026-07-05 01:56:07 +02:00
karim b65c676643 Research: Bauteile Treppe/Fenster/Tuer — Rhino-Plugin als Vorbild
RESEARCH_BAUTEILE_RHINO.md: Gap-Vergleich Rhino (treppe.py 1784Z + fenster/tuer)
vs. TS-Ist, priorisierte Anhebungs-Ansaetze (Gruppe A 2D-sofort / B 2D-mittel /
C 3D). Kern-Gaps: Treppe-Aussenlinie, Fenster-Bruestungslinie, Tuer-Sturzlinien
(SIA, gestrichelt) — fallen mit Schnitt/Ansichts-Darstellung zusammen.
PENDENZEN: Bauteil-Item im Backlog + Phase 5 abgehakt (a608a59).
2026-07-05 01:33:35 +02:00
karim ae18766b01 kernel2d-Port Phase 5: roomArea/ceiling/roomBoundary/stair
- roomArea: polygonArea/perimeter/centroid.
- ceiling: normalizeOutline/isValidOutline/ceilingArea/outlineBBox/
  outlineCentroid/pointInOutline (+ BBox-Struct, serde camelCase).
- stair: defaultStepCount/stairGeometry (gerade/L/Wendel)/stairCut/stairBBox/
  pointHitsStair (StairParams-Struct, strukturgleich; Nullguard ||1e-9 wie TS).
- roomBoundary: detectRooms/roomFromPointInside(Faces)/pointInPolygon
  (planarer Graph, Half-Edge-Faces, Miter-Offset; WallSegment/WallFace).
- Batch-Fassaden + Harness-Slices je Modul (Struktur exakt + Werte).

Verifiziert: vitest 263/263 (33 Parity), tsc sauber, build:kernel2d sauber.
Bekannte Teil-Deckung: detectRooms nur mit Rechtecken (1 Face) getestet —
komplexe Topologie-Reihenfolge nicht mit Zufallsgraphen abgesichert.
2026-07-05 01:30:11 +02:00
karim c7128fe669 Pendenzen: Modellnamen-Referenz in Erledigt-Zeile neutralisiert (Trace-Konvention) 2026-07-05 01:09:39 +02:00
karim b37c9f467b Research: CAD-Ansaetze aus OpenCADStudio/truck/acadrust (am Code studiert)
RESEARCH_CAD_APPROACHES.md: konkrete, priorisierte Ansaetze fuer 'von BIM-Tool
zu echtem CAD' — direkt an geklonten Repos gelernt.
- OpenCADStudio (GPL-3.0, Referenz): generisches Entity-Trait-Modell,
  modeless StepInput-Command-System, 70KB Snap-Engine, universelle Grips,
  CadDocument=DWG/DXF-Objektmodell.
- truck (Apache-2.0): Rust-B-Rep/NURBS-Kernel, Geometrie-Crates WASM-faehig
  und vom wgpu-Rendering trennbar; Booleans/Fillets noch instabil.
- acadrust (MPL-2.0!): pure-Rust DWG/DXF R13-R2018 read+write, alle Deps
  pure Rust -> WASM-tauglich; Kandidat fuers DWG/DXF-Rueckgrat.
- Web-Import-Landkarte (web-ifc/occt-wasm/shpjs/loaders.gl/...) fuer GEO-BLOCK.
PENDENZEN: Strategie-Item im Backlog verlinkt.
2026-07-05 01:08:08 +02:00
karim 08b0b23a68 Pendenzen: kernel2d-Port Phase 4 erledigt (28471c1) 2026-07-05 01:02:00 +02:00