Skip to main content

Crate axiolid_construct

Crate axiolid_construct 

Source
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 (ADR 0050 follow-up).
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 Derived and Composite profiles 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§

Curve2Id
Typed handle into the exact B-rep 2D pcurve catalog.
Curve3Id
Typed handle into the exact B-rep 3D curve catalog.
ExactBRep
Owned, analytic boundary representation.
ExactBRepBuilder
Mutable assembly state that can only yield an ExactBRep after validation.
SurfaceId
Typed handle into the exact B-rep surface catalog.

Enums§

ExactBRepError
Why exact B-rep assembly was refused.

Constants§

BACKEND_ID
Identity these generators report in diagnostics.

Type Aliases§

ExactTopology
Topology whose supports are typed references into ExactBRep catalogs.