35299307d6
Bündelt den über mehrere Sessions gewachsenen, uncommitteten Stand in
einem Basis-Commit, damit Folge-Features isoliert darauf aufsetzen.
Verifikation: tsc --noEmit sauber, vitest 600/600 grün.
Enthalten (Details in PENDENZEN.md ✅-Liste / HANDOVER.md):
- truck-Integration: Profil-Extrusion + Verjüngung + Boolean-CSG (csgrs),
Crate src-tauri/trucksolid, Werkzeug `extrude`, ExtrudedSolid-Modell.
- kernel2d-Port nach Rust/WASM (Phasen 1–5, Diff-Harness).
- render3d 3D-Live-Schnitt = 2D-Schnitt: geschichteter Bodenaufbau,
Prioritäts-Verschneidung (section_boolean.rs), einstellbare
Schichttrennlinien, per-Hatch-Strichstärke, relativeToWall-Orientierung.
- Interop-Export IFC4/STL/OBJ (Loch-Ausschnitt wallMeshCut), Schnellexport.
- Projektdatei .obp + OS-Lock (lock.rs, LockConflictDialog).
- Layout-Blätter (Modell/Editor/Panel/PDF), Ausschnitte, Override-Engine,
Tragwerk-Stützen (Column), BIM-Tree-Panel.
- Bauteil-Typsystem (Tür/Fenster/Treppe-Typen), Betontreppe mit schräger
Laufplatte, Text-/Textbox-Werkzeug, Mess-Werkzeug, 2D/3D-Griffe für
Öffnungen/Treppen, Snap-Symbol-Restyle.
62 lines
2.9 KiB
TOML
62 lines
2.9 KiB
TOML
[workspace]
|
|
members = ["."]
|
|
# render2d/render3d/geometry sind eigenstaendige Crates, damit sie headless ohne
|
|
# Tauri-Toolchain UND per wasm-pack (Feature "web") zu WASM baubar bleiben. Sie
|
|
# liegen zwar im src-tauri-Baum, gehoeren aber NICHT zum cad-tauri-Workspace —
|
|
# hier ausschliessen, damit `cad-tauri` sie dennoch per Pfad als Abhaengigkeit
|
|
# nutzen kann. geometry: neu ausgeschlossen (war Member), seit es zu WASM gebaut
|
|
# wird und das TS-Frontend die Joins direkt per WASM aufruft (statt TS-Duplikat).
|
|
# kernel2d: analog — eigenstaendiger 2D-Geometrie-Kern (Port von kernel2d.ts),
|
|
# per wasm-pack (Feature "web") zu WASM gebaut, ausserhalb des cad-tauri-Workspace.
|
|
exclude = ["render2d", "render3d", "geometry", "kernel2d", "dwgimport", "trucksolid"]
|
|
|
|
[package]
|
|
name = "cad-tauri"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
# Der Tauri-v2-Bibliotheksname; staticlib/cdylib fuer Mobile, rlib fuer Desktop.
|
|
name = "cad_tauri_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[features]
|
|
# Standard: reine Tauri-App (Webview + invoke). KEIN wgpu/winit.
|
|
default = []
|
|
# M2-Spike: nativer wgpu-2D-Viewport im Tauri-Prozess (eigenes winit-Fenster).
|
|
# Zieht render2d(+window) sowie winit/wgpu/pollster. Bewusst OPT-IN, damit der
|
|
# normale Build unveraendert schlank bleibt.
|
|
native2d = ["dep:render2d", "dep:winit", "dep:wgpu", "dep:pollster"]
|
|
# M2-Spike: nativer wgpu-3D-Viewport im Tauri-Prozess (eigenes winit-Fenster).
|
|
# Zieht render3d(+window) sowie winit/wgpu/pollster. Kann gemeinsam mit `native2d`
|
|
# aktiviert werden (dann zwei native Fenster). Ebenfalls OPT-IN.
|
|
native3d = ["dep:render3d", "dep:winit", "dep:wgpu", "dep:pollster"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [] }
|
|
tauri-plugin-dialog = "2"
|
|
tauri-plugin-fs = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
geometry = { path = "geometry" }
|
|
# OS-Advisory-Lock (gepflegter fs2-Nachfolger) fuer die Projektdatei-Lock-Datei
|
|
# (src/lock.rs): exklusiver Lock auf einer Sidecar-Datei, faellt automatisch
|
|
# beim Prozessende/Absturz weg (kein manuelles Aufraeumen noetig).
|
|
fs4 = { version = "0.9", default-features = false, features = ["sync"] }
|
|
|
|
# --- M2-Spike (nur mit Feature "native2d") -----------------------------------
|
|
# render2d ist eine eigenstaendige Crate (eigener leerer [workspace]); wir binden
|
|
# sie hier per Pfad ein und aktivieren ihr GPU-Fenster-Feature "window".
|
|
render2d = { path = "render2d", features = ["window"], optional = true }
|
|
# render3d analog: eigenstaendige Crate (via Parent-`exclude` aus dem Workspace
|
|
# genommen, ohne eigenen [workspace]-Block); per Pfad mit GPU-Fenster-Feature
|
|
# "window" eingebunden.
|
|
render3d = { path = "render3d", features = ["window"], optional = true }
|
|
# Versionen an render2d gekoppelt (identische raw-window-handle 0.6-Kette).
|
|
winit = { version = "0.30", optional = true }
|
|
wgpu = { version = "29", optional = true }
|
|
pollster = { version = "0.4", optional = true }
|