Skip to main content

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;