brep/lib.rs
1//! # BREP
2//!
3//! Umbrella crate for the BREP CAD kernel family. It re-exports the geometry
4//! kernel unconditionally and the higher layers behind feature flags, so a
5//! single `BREP` dependency scales from headless geometry to the full app:
6//!
7//! | Module | Feature | Backing crate |
8//! |-------------|------------|----------------|
9//! | [`kernel`] | *(always)* | `BREP_kernel` |
10//! | [`gizmos`] | `gizmos` | `BREP_gizmos` |
11//! | [`render`] | `render` | `BREP_render` |
12//! | [`app`] | `app` | `BREP_app` |
13//! | [`reconstruction`] | `reconstruction` | `BREP_reconstruction` |
14//!
15//! `full` turns everything on; `parallel` forwards to the kernel's rayon
16//! tessellation.
17//!
18//! ```toml
19//! BREP = "0.2" # kernel only
20//! BREP = { version = "0.2", features = ["render"] } # + the wgpu render engine
21//! BREP = { version = "0.2", features = ["full"] } # everything, incl. the eframe app
22//! ```
23//!
24//! ```no_run
25//! use brep::kernel; // always present
26//! # #[cfg(feature = "render")]
27//! use brep::render; // with `features = ["render"]`
28//! ```
29
30/// The BREP geometry kernel — always available.
31pub use brep_kernel as kernel;
32
33/// In-scene gizmos and overlay widgets. Enable the `gizmos` feature.
34#[cfg(feature = "gizmos")]
35pub use brep_gizmos as gizmos;
36
37/// The windowing-agnostic wgpu render/pick engine. Enable the `render` feature.
38#[cfg(feature = "render")]
39pub use brep_render as render;
40
41/// The eframe (egui + wgpu) CAD application. Enable the `app` feature.
42#[cfg(feature = "app")]
43pub use brep_app as app;
44
45/// RANSAC recognition-to-kernel reconstruction. Enable `reconstruction`.
46#[cfg(feature = "reconstruction")]
47pub use brep_reconstruction as reconstruction;