BREP_app 0.4.0

The BREP CAD application: an eframe (egui + wgpu) host that draws the brep-render 3D engine into an egui frame — native + wasm from one codebase.
Documentation
//! The "PMI" (Product & Manufacturing Information) workbench — the mode in
//! which PMI views are captured and annotated.
//!
//! PMI is NOT feature creation: the `includes` predicate rejects every
//! catalogue entry (the Add-feature palette is empty here), and the history
//! stays fully editable as everywhere. What the workbench adds is its PMI
//! panel — the view tree with each view's annotations — the **Capture view**
//! toolbar button, and the context bar's annotation offers (gated on an
//! active view). The workbench IS the editing mode: entering it remembers
//! the modeling camera / visibility / wireframe, activating a view applies
//! that view's, and leaving restores them (`app.rs` drives the engine's
//! `pmi_enter_workbench` / `pmi_leave_workbench` off the panel's visibility).

use super::{FeatureInfo, Workbench, WorkbenchButton};

/// The PMI panel's id (claim + registration key).
pub const PANEL_ID: &str = "pmi";

/// The Capture-view toolbar button id.
pub const CAPTURE_BUTTON_ID: &str = "pmi.capture_view";

/// No creatable features: annotations are not history features.
fn includes(_feature: &FeatureInfo<'_>) -> bool {
    false
}

static BUTTONS: &[WorkbenchButton] = &[WorkbenchButton {
    id: CAPTURE_BUTTON_ID,
    // 🗎 (U+1F5CE, document) — a captured view is a page of PMI; a
    // catalogued glyph, so the button renders it as artwork.
    glyph: "\u{1F5CE}",
    tooltip: "Capture a PMI view (camera + visibility) and start annotating it",
}];

static PANELS: &[&str] = &[PANEL_ID];

pub static PMI: Workbench = Workbench {
    id: "pmi",
    label: "PMI",
    glyph: "\u{E065}",
    includes,
    buttons: BUTTONS,
    panels: PANELS,
};