Expand description
Shared IFC processing pipeline and types.
This crate extracts the core processing logic so it can be used by both the HTTP server and the native FFI library.
Re-exports§
pub use style::default_color_for_type;pub use style::Rgba;pub use style::TRANSPARENCY_ALPHA_THRESHOLD;
Modules§
- element
- Canonical per-element mesh production — THE single decision tree that turns one IFC product (or type-product RepresentationMap) into renderable meshes.
- prepass
- Canonical prepass resolution — the single post-scan step that turns the
entity spans a scan collected into the style / material / void context the
per-element producer (
crate::element) consumes. - style
- Canonical IFC styling — the single source of truth for mesh colors, shared between the HTTP server, the native pipeline, and the browser-side WASM bindings (issue #913).
Structs§
- Coordinate
Info - Coordinate system information.
- Georeferencing
- Georeferencing metadata (
IfcMapConversion+IfcProjectedCRS). - Mesh
Data - Individual mesh data with geometry and metadata.
- Model
Metadata - Model metadata extracted from the IFC file.
- Parse
Response - Full parse response with all meshes.
- Processing
Result - Result of processing an IFC file.
- Processing
Stats - Processing statistics.
- Quick
Metadata Bootstrap - Quick
Metadata Entity Summary - Quick
Metadata Spatial Node - Streaming
Options - Controls the tradeoff between first-frame latency and richer upfront metadata.
- Symbolic
Circle - A single 2D circle / arc for symbolic representations.
- Symbolic
Data - Server-friendly summary of the IFC’s 2D symbol data.
- Symbolic
Fill Area - A 2D filled region (
IfcAnnotationFillArea). - Symbolic
Grid Axis - A single
IfcGridAxistag + axis curve (server-friendly endpoint-pair representation; the wasm pipeline emits the same data viaSymbolicPolylineaxis lines andSymbolicTextbubbles, both of which are also populated below). - Symbolic
Polyline - A single 2D polyline for symbolic representations.
- Symbolic
Text - A 2D text annotation (
IfcTextLiteral/IfcTextLiteralWithExtent).
Enums§
- Opening
Filter Mode - Controls how IfcWindow / IfcDoor openings are exported.
- Tessellation
Quality - Re-exported so the server can name the quality level without a direct
ifc-lite-geometrydependency edge for one enum. Detail level for geometry tessellation, selectable by consumers.
Functions§
- convert_
mesh_ to_ site_ local - Rotate a mesh into the site-local axis frame. Only runs for the
site_localcoordinate-space tier; translation alignment happens upstream via the router’s RTC subtraction. - extract_
georeferencing - Extract georeferencing from an IFC file, returning
Nonewhen the model carries noIfcMapConversion/ePSet_MapConversiondata. - extract_
symbolic_ data - Scan an IFC file for
IfcGridand any product carrying a Plan / Annotation / FootPrint / Axis representation, and return the full symbolic primitive collection. Pure-Rust (nowasm_bindgen), so it works inside the HTTP server. - process_
geometry - Process IFC content with parallel geometry extraction (default opening filter).
- process_
geometry_ filtered - Process IFC content with parallel geometry extraction and a configurable opening filter.
- process_
geometry_ filtered_ with_ quality - Like
process_geometry_filteredwith a consumer-selected tessellation detail level (#976) — the server half of the quality knob the wasm path exposes viasetTessellationQuality. - process_
geometry_ streaming - Process IFC content with parallel geometry extraction and emit batches as they complete.
- process_
geometry_ streaming_ filtered - Process IFC content with parallel geometry extraction and a configurable streaming batch size.
- process_
geometry_ streaming_ filtered_ with_ options - Process IFC content with parallel geometry extraction and configurable streaming behavior.
- process_
geometry_ streaming_ with_ options - Process IFC content with parallel geometry extraction and configurable streaming behavior.
- process_
geometry_ streaming_ with_ options_ and_ bootstrap - Process IFC content with parallel geometry extraction and emit a quick metadata bootstrap once the scan phase completes.