cadforge_core/lib.rs
1//! CADForge semantic core.
2//!
3//! This crate is the authority on what a building *is*. Meshes, fragments, and GPU buffers
4//! are caches derived from here and are always disposable (see `docs/ifc-semantics.md` ADR-001).
5//!
6//! Two invariants govern this crate, both enforceable at review time:
7//!
8//! 1. **No platform dependencies.** It compiles and tests without a window, a GPU, or an
9//! event loop — `cargo test -p cadforge-core` on a headless machine is the check
10//! (ADR-0002).
11//! 2. **No third-party IFC types in public signatures.** The IFC library is swappable
12//! precisely because nothing here knows which one is in use (ADR-0003).
13
14pub mod command;
15pub mod element;
16pub mod id;
17pub mod model;
18pub mod property;
19pub mod representation;
20pub mod spatial;
21
22pub use command::{CommandError, CommandOutcome, ModelCommand};
23pub use element::{BoundingBox, ElementRecord, IfcClass, Placement};
24pub use id::GlobalId;
25pub use model::{Model, Revision};
26pub use property::{PropertySet, PropertySets, PropertyValue};
27pub use representation::Representation;
28pub use spatial::{IndexedElement, SpatialIndex};