Skip to main content

ifc_lite_processing/
lib.rs

1// This Source Code Form is subject to the terms of the Mozilla Public
2// License, v. 2.0. If a copy of the MPL was not distributed with this
3// file, You can obtain one at https://mozilla.org/MPL/2.0/.
4
5//! Shared IFC processing pipeline and types.
6//!
7//! This crate extracts the core processing logic so it can be used by both
8//! the HTTP server and the native FFI library.
9
10mod georeferencing;
11mod processor;
12pub mod style;
13mod symbolic;
14mod types;
15
16pub use georeferencing::{extract_georeferencing, Georeferencing};
17/// Re-exported so the server can name the quality level without a direct
18/// `ifc-lite-geometry` dependency edge for one enum.
19pub use ifc_lite_geometry::TessellationQuality;
20pub use processor::{
21    convert_mesh_to_site_local, process_geometry, process_geometry_filtered,
22    process_geometry_filtered_with_quality,
23    process_geometry_streaming, process_geometry_streaming_filtered,
24    process_geometry_streaming_filtered_with_options, process_geometry_streaming_with_options,
25    process_geometry_streaming_with_options_and_bootstrap,
26    OpeningFilterMode, ProcessingResult, StreamingOptions,
27};
28pub use style::{default_color_for_type, Rgba, TRANSPARENCY_ALPHA_THRESHOLD};
29pub use symbolic::{
30    extract_symbolic_data, SymbolicCircle, SymbolicData, SymbolicFillArea, SymbolicGridAxis,
31    SymbolicPolyline, SymbolicText,
32};
33pub use types::mesh::MeshData;
34pub use types::response::{
35    CoordinateInfo, ModelMetadata, ParseResponse, ProcessingStats,
36    QuickMetadataBootstrap, QuickMetadataEntitySummary, QuickMetadataSpatialNode,
37};