geop_lib_sweep/lib.rs
1//! Sweeping planar profiles into B-rep solids and sheets: extruding them
2//! along a straight path ([`extrude`]), revolving them around an axis
3//! ([`revolve`], [`screw`]), carrying them along a chain of curves
4//! ([`sweep_along`]) — all one sweep along a [`Path`] (see [`sweep`]) — and
5//! lofting through several of them ([`loft`]). Every one of them skins a
6//! grid of sections, as a blend's tool does too ([`skin`]).
7//!
8//! An algorithm here takes geometry — [`Profile`](geop_ops_model::Profile)s
9//! in a plane's coordinates, [`Chain`](geop_ops_model::Chain)s, planes —
10//! and builds into a [`NamedModel`](geop_ops_model::NamedModel). Resolving
11//! a sketch or a picked edge into that geometry, and combining what is
12//! built with a solid, is the operations' part (`geop-ops-extrude-revolve`).
13//!
14//! With the `testing` feature — which only other crates' tests turn on —
15//! [`shapes`] also builds basic solids directly: cubes, cylinders, spheres,
16//! the fixtures those tests are written against.
17
18mod common;
19mod extrude;
20mod loft;
21mod path_sweep;
22mod plain;
23#[cfg(test)]
24mod rasterize_tests;
25mod revolve;
26#[cfg(any(test, feature = "testing"))]
27pub mod shapes;
28mod skin;
29mod sweep;
30
31pub use common::{circle_at, polygon, polyline};
32pub use extrude::{extrude, extrusion};
33pub use loft::{Apex, Ends, Section, loft, mark};
34pub use path_sweep::{Control, Orientation, Rebuild, profile_centre, starting_near, sweep_along};
35pub use revolve::{revolution, revolve, revolve_at_oriented, screw, screw_path};
36pub use skin::{Glue, Skinned, Strip, StripCap, StripGeometry, skin};
37pub use sweep::{Frame, Path, Span, SweepLoop, sweep, sweep_drawn};