Expand description
Geometry generation from exact inputs into explicit mesh or focused analytic results.
§Why this is its own crate
Everything here answers one question: given an exact profile and a path, what solid does that denote? Extrusion, revolution, the sweep families, lofting and half-space clipping are all the same problem with different path kinds, and they share one stitching implementation so that winding, hole orientation and cap pairing are decided once.
None of that needs an operation graph. These functions take geometry and
return geometry; they do not walk a DAG, cache results, resolve node
references, or dispatch to a backend. That is why they live here and not
in axiolid-mesh-compile, which does all four.
The split matters beyond tidiness. A caller that wants a swept solid –
a CAD front end, a test, a future exact B-rep generator – should not have
to construct a SolidOperation graph and run a compiler to get one. Under
the old layout that was the only way to reach this code.
§Exact generation coverage
Broad sweep families still produce meshes by default, but exact generation
is no longer a narrow slice. Every Profile variant extrudes exactly:
rectangle (including through-holes), circle, ellipse, contour (with holes
and arcs), section, centre-line, derived and composite. Revolution covers
any profile that lowers to a contour, sweeping cylinders, cones, planar
annuli and tori.
What still refuses is stated per call site and is about geometry the kernel cannot represent exactly rather than work not yet done – a partial turn, a section straddling the revolution axis, an offset with no same-kind result, a non-conformal transform. None of this implies general exact booleans.
Certified affine surface-pair arrangement remains the other focused analytic constructor.
Re-exports§
pub use result::GeneratedGeometry;pub use result::GenerationOutput;pub use result::GenerationRequest;pub use result::TessellationRequest;pub use trimmed_intersection::split_surface_pair_certified;pub use trimmed_intersection::CertifiedDualTrimmedSurfacePair3;pub use trimmed_intersection::CertifiedSurfacePairSplit3;pub use trimmed_intersection::CertifiedSurfacePairSplitOptions;pub use trimmed_intersection::CertifiedTrimmedSurfacePair3;pub use trimmed_intersection::EmbeddedFaceCurve;pub use trimmed_intersection::SurfacePairMember;pub use trimmed_intersection::SurfacePairSplitUnresolvedReason;
Modules§
- boolean_
exact - Exact boolean over axis-aligned prisms (#66).
- boolean_
stepped - Stepped union of two coaxial prisms, as constant-section bands.
- bounding
- Bounding volumes of 3D point sets (#118): the minimum enclosing sphere and a containing oriented box.
- center_
line - Centre-line profiles: offset an open path into a closed boundary.
- center_
line_ exact - Exact centre-line offsetting (ADR 0056).
- contour_
lower - Lower an arbitrary contour profile onto the arc-ring extruder (ADR 0053).
- extrude
- Linear extrusion of a triangulated profile into a closed solid.
- feature
- Chamfer and fillet on a straight vertical edge of an exact prism (#68).
- fillet_
variable - Variable-radius (tapered) fillet blends (ADR 0051).
- half_
space - Bounding an unbounded half-space against a finite boundary.
- hull
- Convex hull of a 3D point set, decided by certified predicates (#76).
- loft
- Lofting a sequence of station rings into a solid.
- offset
- Constant-distance offset and shelling of planar-faced solids (#78).
- polyhedron
- Exact boolean over general planar-faced solids (#77).
- profile
- Profile -> 2D polygon rings, then triangles.
- profile_
lower - Lower
DerivedandCompositeprofiles onto the concrete builders (ADR 0054). - result
- Explicit output-model contracts for solid generation.
- revolve
- Revolution of a profile about an axis.
- revolve_
contour - General contour revolution (ADR 0059).
- revolve_
exact - Exact revolution for the profile families exact extrusion already covers.
- section_
lower - Lower parameterised structural sections into exact contours (ADR 0057).
- sweep
- The sweep families that place a profile along a path.
- trimmed_
intersection - Topology-aware integration of certified affine surface intersections.
Structs§
- Curve2
Id - Typed handle into the exact B-rep 2D pcurve catalog.
- Curve3
Id - Typed handle into the exact B-rep 3D curve catalog.
- ExactB
Rep - Owned, analytic boundary representation.
- ExactB
RepBuilder - Mutable assembly state that can only yield an
ExactBRepafter validation. - Surface
Id - Typed handle into the exact B-rep surface catalog.
Enums§
- ExactB
RepError - Why exact B-rep assembly was refused.
Constants§
- BACKEND_
ID - Identity these generators report in diagnostics.
Type Aliases§
- Exact
Topology - Topology whose supports are typed references into
ExactBRepcatalogs.