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