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