Skip to content

axiolid-mesh-section-contract ​

Portable mesh plane-section request, result, and evidence contract.

Latest release0.3.9 (2026-11-13)
crates.ioaxiolid-mesh-section-contract
Facadeaxiolid feature mesh-section
Layercontracts (contract.operation)
API documentationrustdoc · docs.rs
Sourcecrates/contracts/operations/mesh-section/

Overview ​

The portable contract for cutting a triangle mesh with a plane: limits, section contours, evidence, and conformance suites. It computes nothing itself; providers implement MeshPlaneSection, and axiolid-dispatch selects one. section returns closed contours and refuses a face lying in the plane (ADR 0033). section_request is the opt-in alternative: a face in the plane comes back as a region with a side, cut curves are transversal chains that may end on a region, and touching edges are counted (ADR 0091). With SectionRole::Sheet the mesh may be open, and a chain may end on the mesh boundary. SectionRequest::with_cut_regions also returns the cut of a solid, where its material lies on both sides of the plane, as closed regions (ADR 0092). Faces in the plane may overlap: they merge into regions of Below, Above or Both, and a Both region is a cut region (ADR 0093).

Depends on ​

Changes ​

Latest release, 0.3.9 (2026-11-13):

Added ​

  • Three conformance fixtures with a pinched cut boundary (piers meeting at a corner, three piers at one vertex, a block with a void touching its wall). A provider may answer them with the split cut or with REFUSED_PINCHED_CUT_REGION (#373).

Changed ​

  • The cut invariants document the pinch rule: rings are split where the boundary meets itself at a vertex, so each region is one connected piece written as simple rings that may touch (#373).

Full history: crates/contracts/operations/mesh-section/CHANGELOG.md

Released under the Mozilla Public License 2.0.