1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! Geometry generation from exact inputs into explicit mesh or focused analytic results.
//!
//! # Why this is its own crate
//!
//! Everything here answers one question: given an exact profile and a path,
//! what solid does that denote? Extrusion, revolution, the sweep families,
//! lofting and half-space clipping are all the same problem with different
//! path kinds, and they share one stitching implementation so that winding,
//! hole orientation and cap pairing are decided once.
//!
//! None of that needs an operation graph. These functions take geometry and
//! return geometry; they do not walk a DAG, cache results, resolve node
//! references, or dispatch to a backend. That is why they live here and not
//! in `axiolid-mesh-compile`, which does all four.
//!
//! The split matters beyond tidiness. A caller that wants a swept solid --
//! a CAD front end, a test, a future exact B-rep generator -- should not have
//! to construct a `SolidOperation` graph and run a compiler to get one. Under
//! the old layout that was the only way to reach this code.
//!
//! # What this crate does not do
//!
//! Broad sweep/profile families still produce meshes, not exact B-reps. The
//! certified affine surface-pair arrangement is the first focused analytic
//! constructor; it does not imply exact sweeps, booleans, or solids. Per ADR
//! 0020, those broader exact results remain the intended end state.
use BackendId;
/// Identity these generators report in diagnostics.
///
/// Distinct from the compiler's: a failure raised while building a swept
/// solid comes from this crate, and attributing it to `axiolid-mesh-compile`
/// would send a reader to the wrong place. Sweeps already reported a
/// separate identity before the split; this makes every generator
/// consistent with that.
pub const BACKEND_ID: BackendId = new;
pub use ;
pub use ;
pub use ;