Skip to main content

Crate brep_app

Crate brep_app 

Source
Expand description

brep-app — engine-native UI spike (an eframe host for the brep-render engine).

The same app::BrepApp runs on native (main.rsrun_native) and on the web (start below → eframe::WebRunner), sharing one wgpu frame with egui. Additive spike: it does NOT touch the previous app or the render wasm build.

Modules§

app
BrepApp — the THIN shell of the engine-native UI.
column_tree
The SHARED COLUMN-TREE widget — a table whose rows are a TREE, with resizable, reorderable, hideable, sortable columns and a per-column editor kind. One function draws a complete columned tree and returns what the user did.
document
The MULTI-DOCUMENT model — the app holds N open models, exactly ONE of which is active.
fonts
Font setup — the OS’s default monospace font for all text.
form
The generic, schema-driven egui form engine — ONE per-field renderer for BOTH the display-settings dialog AND the schema-driven feature dialogs (the user’s principle: the structure of a thing drives the UI; you don’t rewrite UI code per field, and you don’t write two dialog engines).
form_view
The SHARED schema-driven FORM VIEW — one function that draws a COMPLETE form for a schema-described subject (a history feature, an assembly constraint, a future PMI annotation) and returns what the user did.
icon_text
IconText — a label that draws catalogued characters as real SVG images, inline with the surrounding text.
icons
The inline-icon catalog: every assets/glyphs/*.svg as SVG source, keyed by the character it draws.
palette
A generic, reusable searchable command-palette modal — engine-agnostic.
panels
The left-control-panel modules — one file per panel, each following ONE pattern so parallel agents can add a new panel with minimal conflict:
recovery
AUTOSAVE + CRASH RECOVERY — the answer to “the tab closed and my last hour is gone”.
store
The persistent-storage / filesystem seam — the ONE platform exception in the engine-native UI. Settings, dock layout, and model documents all use the same ModelStore::read / ModelStore::write API. Only its backend differs: desktop writes files; the browser mirrors an ASYNC, swappable [mirror_store::StoreBackend] — IndexedDB today, a remote server next — into memory and writes behind it, which is what keeps this whole API synchronous.
viewport
The 3D viewport — everything that draws + drives the central brep-render scene, split out of the thin app shell.
workbench
Per-file WORKBENCH registry — a UI FILTER over feature-CREATION.