pub mod action_rail;
const CHROME_BOTTOM: &str = "brep-chrome-bottom";
pub fn set_chrome_bottom(ctx: &egui::Context, y: f32) {
ctx.data_mut(|d| d.insert_temp(egui::Id::new(CHROME_BOTTOM), y));
}
pub fn below_chrome(ctx: &egui::Context, x: f32, dy: f32) -> egui::Pos2 {
let top = ctx.data(|d| d.get_temp::<f32>(egui::Id::new(CHROME_BOTTOM))).unwrap_or(56.0);
egui::pos2(x, top + 8.0 + dy)
}
pub mod assembly_components;
pub mod assembly_constraints;
pub mod exploded_views;
pub mod bom;
pub mod bom_plm;
pub mod bom_columns;
pub mod bom_configuration;
pub mod bug_report;
pub mod cam;
pub mod instructions;
pub mod instructions_player;
pub mod cam_setup;
pub mod cam_tool;
pub mod cam_library;
pub mod cam_operation;
pub mod cam_machine;
pub mod cam_generate;
pub mod cam_multiaxis;
pub mod cam_post;
pub mod cam_autoprogram;
pub mod cam_sim;
pub mod busy;
pub mod component_actions;
pub mod context_bar;
pub mod dock;
pub mod document_tabs;
pub mod mode_bar;
pub mod expressions;
pub mod fabrication_export;
pub mod ecad_parts;
pub mod file;
pub mod file_explorer;
pub mod history;
pub mod info;
pub mod info_windows;
pub mod auto_constraints;
pub mod interference;
pub mod kicad_import;
pub mod kicad_bulk;
pub mod kicad_library;
pub mod part_properties;
pub mod parts_library;
pub mod pick_bar;
pub mod plm;
pub mod plm_follow;
pub mod plm_host;
pub mod pmi;
pub mod plm_attachments;
pub mod plm_launch;
pub mod plm_workspace;
pub mod plm_import;
pub mod plm_tab_follow;
pub mod plm_parts;
pub mod plm_family;
pub mod plm_review;
pub mod qualify;
pub mod replace_component;
pub mod family_table_editor;
pub mod scene;
pub mod selection;
pub mod sketch;
pub mod sketch3d;
pub mod spline_anchors;
pub mod cage_editor;
pub mod settings;
pub mod sheets;
pub mod step_parts;
pub mod stl_import;
pub mod toasts;
pub mod toolbar;
pub mod toolbar_button;
pub mod workbench_toolbar;
pub mod tree;
pub mod update_components;
pub mod wire_harness;
pub mod ribbon;
pub mod simulation;