Skip to content

axiolid-mesh-hidden-lines-contract ​

Portable hidden-line drawing request, result, and conformance contract for triangle meshes.

Latest release0.1.6 (2026-11-14)
crates.ioaxiolid-mesh-hidden-lines-contract
Facadeaxiolid feature mesh-hidden-lines
Layercontracts (contract.operation)
API documentationrustdoc · docs.rs
Sourcecrates/contracts/operations/mesh-hidden-lines/

Overview ​

The portable contract for drawing the edges of triangle meshes as seen in a view, split into visible and hidden pieces: request, view, edge selection, limits, segments, evidence, a refusal type that names the mesh at fault, and a conformance suite. It computes nothing itself; providers implement MeshHiddenLines, and axiolid-dispatch selects one. See ADR 0090.

It also holds the sibling MeshVisibleFaces contract: the regions of the same view where each face group, or the near-plane cap of a cut solid, is frontmost. See ADR 0094.

A view is orthographic by default. A perspective view (ViewProjection, ADR 0107) is part of the contract, and a provider says whether it draws one with supports_projection; the registries never give it a view it does not support, and PerspectiveConformanceSuite checks the claim: a hidden-line provider that claims it must draw the perspective fixtures, and a visible-face claim is not yet verifiable.

Depends on ​

Changes ​

Latest release, 0.1.6 (2026-11-14):

Added ​

  • Perspective fixtures for hidden lines (a box in front of the eye, the same box cut by the near plane, an eye inside a box, an exact non-dyadic boundary, an edge along the eye ray, an eye inside an edge-on triangle) and the refusal of a perspective near depth that is missing, zero, positive or not finite. A hidden-line provider that claims perspective is checked against them by PerspectiveConformanceSuite::run, which reports a failure as the new PerspectiveConformanceFailure::HiddenLines. This replaces the 0.1.5 behaviour in which every claim failed closed with ClaimUnverifiable; a visible-face claim still does until its fixtures land (ADR 0107, #387).

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

Released under the Mozilla Public License 2.0.