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//!
14//! `full` turns everything on; `parallel` forwards to the kernel's rayon
15//! tessellation.
16//!
17//! ```toml
18//! BREP = "0.2"                                    # kernel only
19//! BREP = { version = "0.2", features = ["render"] } # + the wgpu render engine
20//! BREP = { version = "0.2", features = ["full"] }   # everything, incl. the eframe app
21//! ```
22//!
23//! ```no_run
24//! use brep::kernel; // always present
25//! # #[cfg(feature = "render")]
26//! use brep::render; // with `features = ["render"]`
27//! ```
28
29/// The BREP geometry kernel — always available.
30pub use brep_kernel as kernel;
31
32/// In-scene gizmos and overlay widgets. Enable the `gizmos` feature.
33#[cfg(feature = "gizmos")]
34pub use brep_gizmos as gizmos;
35
36/// The windowing-agnostic wgpu render/pick engine. Enable the `render` feature.
37#[cfg(feature = "render")]
38pub use brep_render as render;
39
40/// The eframe (egui + wgpu) CAD application. Enable the `app` feature.
41#[cfg(feature = "app")]
42pub use brep_app as app;