axiolid-tetrahedralize
Exact 3D Delaunay tetrahedralization with symbolic perturbation.
| Latest release | 0.1.0 (2026-10-02) |
| crates.io | axiolid-tetrahedralize |
| Layer | algorithms (algorithm.discrete) |
| API documentation | rustdoc · docs.rs |
| Source | crates/algorithms/discrete/tetrahedralize/ |
Overview
Exact 3D Delaunay tetrahedralization. Delaunay3 inserts points one at a time (Bowyer-Watson, located by a visibility walk) and keeps the convex hull with an infinite vertex. Every orientation and in-sphere decision is an exact sign from axiolid-predicates, and ties -- cospherical points, points in the plane of a hull face -- are broken by a symbolic perturbation that depends only on the coordinates, so a point set has one result whatever the insertion order. Duplicates are merged; inputs spanning fewer than three dimensions are refused. Constraints (input segments and faces) are not recovered.
Depends on
Changes
Latest release, 0.1.0 (2026-10-02):
Added
Delaunay3(#126): exact incremental 3D Delaunay tetrahedralization. Bowyer-Watson insertion in Hilbert-curve order, located by a stochastic visibility walk, with an infinite vertex for the convex hull.from_points,insert,tetrahedra(positively oriented, with adjacency),hull_triangles(outward),vertex_of,dimension.orient3dandinspheredecide every step exactly; cospherical points, points in the plane of a hull face (decided byin_diametral_sphere) and other ties are broken by a symbolic perturbation of the lifted points, so the result is unique for a point set whatever the insertion order. Exact duplicates are merged (Insertion::Duplicate). Refused by name (Delaunay3Error): fewer than three dimensions, non-finite coordinates, and non-zero coordinates outside[2^-100, 2^100].
Full history: crates/algorithms/discrete/tetrahedralize/CHANGELOG.md