import { type FaceLattice } from './face-lattice.js'; /** * A tetrahedralization of a face lattice's 3-cells, with full provenance: * the derived object every slicer, picker, and per-cell material reads. */ export interface Tetrahedralization { /** Source vertices followed by one centroid helper vertex per 3-cell. */ readonly positions: Float64Array; /** Four vertex indices per tetrahedron, emitted cell-major. */ readonly indices: Uint32Array; /** Canonical rank-3 face (cell) ID of each tetrahedron. */ readonly tetToCell: Uint32Array; /** Global 2-face whose triangulation generated each tetrahedron. */ readonly tetToFace: Uint32Array; /** Cell c owns tets [cellTetOffsets[c], cellTetOffsets[c+1]). */ readonly cellTetOffsets: Uint32Array; /** Helper centroid vertex index of each cell. */ readonly cellCentroidVertex: Uint32Array; /** Vertex count before helpers were appended. */ readonly sourceVertexCount: number; } /** * Centroid-fan tetrahedralization of every 3-cell of a convex polytope's * face lattice: each cell's centroid (strictly interior, being a positive * combination of its vertices) cones over its boundary polygons, and each * polygon is fan-triangulated **once globally** — adjacent cells reuse the * same triangles, so slices stay continuous across cell boundaries. * * Tetrahedra are emitted cell-major and positively oriented in each * cell's outward-oriented tangent frame; a degenerate (near-zero volume) * tetrahedron throws rather than silently corrupting downstream volume * or slicing invariants. Float64 is appropriate here: orientation * validates known topology, it does not determine incidence. */ export declare function tetrahedralizeLattice(lattice: FaceLattice, positions: Float64Array): Tetrahedralization; //# sourceMappingURL=tetrahedralize-lattice.d.ts.map