axiolid-mesh-hidden-lines-contract
Portable hidden-line drawing request, result, and conformance contract for triangle meshes.
| Latest release | 0.1.6 (2026-11-14) |
| crates.io | axiolid-mesh-hidden-lines-contract |
| Facade | axiolid feature mesh-hidden-lines |
| Layer | contracts (contract.operation) |
| API documentation | rustdoc · docs.rs |
| Source | crates/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 newPerspectiveConformanceFailure::HiddenLines. This replaces the 0.1.5 behaviour in which every claim failed closed withClaimUnverifiable; a visible-face claim still does until its fixtures land (ADR 0107, #387).
Full history: crates/contracts/operations/mesh-hidden-lines/CHANGELOG.md