Skip to main content

ifc_geometry/lower/
mod.rs

1//! IFC-to-neutral-geometry lowering entry points.
2
3pub mod bbox;
4pub mod boolean;
5pub mod brep;
6pub mod collection;
7pub mod connection;
8pub mod context;
9pub mod csg;
10pub mod curve;
11pub mod dispatch;
12pub mod halfspace;
13pub mod mapped;
14pub mod net;
15pub mod point;
16pub mod profile;
17mod sectioned;
18pub mod session;
19pub mod station;
20pub mod surface;
21pub mod swept;
22pub mod tessellated;
23
24use axiolid_model::{GeometryGraph, NodeId};
25
26pub use crate::input::representation::RepresentationPurpose;
27pub use bbox::lower_bounding_box_node;
28pub use boolean::lower_boolean_result_node;
29pub use brep::{lower_face_surface_node, lower_faceted_brep_node, lower_shell_node};
30pub use collection::lower_collection_node;
31pub use connection::{lower_connection_surface, lower_related_connection_surface};
32pub use context::{
33    geometric_products, lower_product_items, lower_product_representation, product_world_transform,
34    select_shape_representation,
35};
36pub use csg::{lower_csg_primitive_node, lower_csg_solid_node, lower_swept_disk_node};
37pub use curve::lower_curve_node;
38pub use dispatch::lower_representation_item;
39pub use halfspace::lower_half_space_node;
40pub use mapped::{lower_mapped_item_node, lower_representation};
41pub use net::{lower_product_net, NetLowering, Subtraction};
42pub use point::{lower_point_on_curve_node, lower_point_on_surface_node};
43pub use profile::{lower_open_profile_node, lower_profile, lower_profile_node};
44pub use provenance::ProvenanceMap;
45pub use session::{DegenerateFacePolicy, LoweringSession, SessionLimits};
46pub use station::{lower_axis2_placement_linear_node, lower_point_by_distance_node};
47pub use surface::{lower_linear_extrusion, lower_plane, lower_surface_node};
48pub use swept::{
49    lower_extruded_area_solid, lower_extruded_area_solid_node, lower_revolved_area_solid,
50    lower_revolved_area_solid_node,
51};
52pub use tessellated::{lower_polygonal_face_set_node, lower_triangulated_face_set_node};
53
54/// One lowered root and the immutable DAG that owns all of its dependencies.
55#[derive(Debug, Clone, PartialEq)]
56#[non_exhaustive]
57pub struct LoweredGeometry {
58    /// Format-neutral exact geometry graph.
59    pub graph: GeometryGraph,
60    /// Root node for this source representation item.
61    pub root: NodeId,
62    /// IFC source entity for each attributed graph node.
63    pub provenance: ProvenanceMap,
64}
65
66mod provenance;