Expand description
Shape construction and query: everything that does not require surface/surface intersection.
Elsewhere: the BRepBuilderAPI, BRepPrimAPI, BRepTools,
BRepLib, BRepGProp, BRepCheck, BRepClass3d, BRepExtrema, GeomAPI,
GCPnts and GProp families, plus the classical curve constructors.
The adaptor layer is ogeom-geom’s: evaluating topology as geometry
belongs with the geometry traits (docs/PARITY.md, geom.adaptors).
Every operation in this crate emits history (generated / modified /
is_deleted) from the start. That is not optional and cannot be retrofitted:
downstream stable naming is built directly on it.
Re-exports§
pub use build::attach_pcurve;pub use build::attach_seam;pub use build::chain_wire_branches;pub use build::edge_vertices;pub use build::find_plane;pub use build::is_shell_closed;pub use build::is_wire_closed;pub use build::make_apex_band;pub use build::make_band_between;pub use build::make_compound;pub use build::make_compsolid;pub use build::make_edge;pub use build::make_edge_between;pub use build::make_face;pub use build::make_face_on;pub use build::make_face_with_pcurves;pub use build::make_natural_face;pub use build::make_polygon;pub use build::make_revolution_band;pub use build::make_shell;pub use build::make_solid;pub use build::make_vertex;pub use build::make_wire;pub use build::rings_are_parallels;pub use build::surface_iso_u_curve;pub use check::Diagnosis;pub use check::Problem;pub use check::Severity;pub use check::check;pub use check::check_self_intersection;pub use check::check_tessellation;pub use check::restore_containment;pub use classify::Containment;pub use classify::SolidBoundary;pub use classify::classify_in_solid;pub use classify::classify_in_solid_exact;pub use classify::classify_in_solid_exact_banded;pub use classify::classify_on_face;pub use convert::CurveRestatement;pub use convert::SurfaceRestatement;pub use convert::baked_shape;pub use convert::general_transformed_shape;pub use convert::normals_oppose;pub use convert::restate_geometry;pub use convert::to_nurbs;pub use convert::to_nurbs_within;pub use fit::Spacing;pub use fit::approximate;pub use fit::approximate_within;pub use fit::interpolate;pub use history::Built;pub use history::History;pub use length::curve_length;pub use length::parameter_at_length;pub use length::points_by_count;pub use length::points_by_spacing;pub use mass::MassProperties;pub use mass::linear_properties;pub use mass::surface_properties;pub use mass::volume_properties;pub use measure::Obb;pub use measure::Projection;pub use measure::SurfaceProjection;pub use measure::SurfaceSeeds;pub use measure::curve_bounds;pub use measure::face_normal;pub use measure::oriented_bounds;pub use measure::project_on_curve;pub use measure::project_on_planar_curve;pub use measure::project_on_surface;pub use measure::project_on_surface_from;pub use measure::relative_deflection;pub use measure::shape_bounds;pub use measure::surface_bounds;pub use measure::vertex_bounds;pub use measure::widened_to_hold;pub use medial::MedialAxis;pub use medial::medial_axis;pub use medial_graph::MedialBranch;pub use medial_graph::MedialGraph;pub use medial_graph::MedialSite;pub use medial_graph::MedialVertex;pub use medial_graph::medial_graph;pub use mesh_solid::MeshSolid;pub use mesh_solid::MeshSolidOptions;pub use mesh_solid::MeshSolidReport;pub use mesh_solid::solid_from_mesh;pub use place::copied;pub use place::transformed;pub use primitive::make_box;pub use primitive::make_cone;pub use primitive::make_cylinder;pub use primitive::make_half_space;pub use primitive::make_hexahedron;pub use primitive::make_parallelepiped;pub use primitive::make_polyhedron;pub use primitive::make_sphere;pub use primitive::make_torus;pub use primitive::make_wedge;pub use project_plane::ProjectedCurve;pub use project_plane::project_edge_onto_plane;pub use proximity::ClosestPair;pub use proximity::ShapeDistance;pub use proximity::distance_between_shapes;pub use recognize::Canonical;pub use recognize::Recognized;pub use recognize::recognize_points;pub use sew::Sewn;pub use sew::make_wire_unordered;pub use sew::order_edges;pub use sew::sew;pub use sweep::make_prism;pub use sweep::make_prism_tapered;pub use sweep::make_revolution;pub use text::make_text;pub use tight::tight_bounds;
Modules§
- build
- Building topology from geometry.
- check
- Checking a shape against the model’s invariants.
- classify
- Where a point sits relative to a shape.
- convert
- Whole-shape conversion: everything as NURBS, and general affine transforms over a shape.
- fit
- Fitting a B-spline to points.
- history
- What an operation did to its inputs.
- length
- Arc length, and distributing points along a curve by it.
- mass
- Mass properties: how much there is, where its centre is, and how it resists being spun.
- measure
- Bounding volumes and projection.
- medial
- The medial axis of a planar region: the locus of centres of maximal inscribed circles: what tool-path generation and midline extraction are built on.
- medial_
graph - The medial axis of any planar face: holes, reflex corners and curved boundaries included, each branch its exact bisector.
- mesh_
solid - A B-rep solid from a triangle mesh.
- pcurve_
fit - Pcurves fitted by projection, for faces whose trims have no closed form.
- place
- Placing and duplicating shapes.
- primitive
- Primitive solids.
- project_
plane - An edge projected orthogonally onto a plane, as an exact curve in the plane’s own coordinates.
- proximity
- Minimum distance between shapes.
- recognize
- Canonical recognition: deciding that a set of points is a plane, a cylinder, a cone, a sphere or a torus, not that it resembles one.
- sew
- Joining loose topology: ordering a bag of edges into a wire, and sewing free faces into a shell.
- sweep
- Sweeping: dragging a shape through space to make one of higher dimension.
- text
- Text to wires: a built-in single-stroke engraving font.
- tight
- The smallest axis-aligned box that holds a shape: how big a body is.