import { CellComplex } from '../geometry/cell-complex.js'; export interface HypercubeOptions { /** Ambient (and intrinsic) dimension; 4 gives a tesseract. */ dim: number; /** Edge length. Default 1. */ size?: number; /** Highest authored cuboid-cell dimension. Default `min(dim, 3)`. */ maxCellDimension?: number; } /** * Builds an n-cube centered at the origin with vertices at ±size/2. * * Vertex `v` (0 … 2ⁿ − 1) has coordinate `+h` on axis `a` iff bit `a` of * `v` is set. Cell counts: 2ⁿ vertices, n·2ⁿ⁻¹ edges, * C(n,2)·2ⁿ⁻² square faces. * * @param options - Ambient dimension, edge length, and the highest cell * dimension to author. Raising `maxCellDimension` to 3 emits the cubic * 3-cells a cross-section needs. * @returns A complex in `dim` dimensions, centered at the origin. * * @example * A tesseract, ready to project: * ```ts * const tesseract = createHypercube({ dim: 4 }); * tesseract.vertexCount; // 16 * ``` * * @example * To cut a cross-section rather than project a wireframe, author the * 3-cells and tetrahedralize them first — a slicer marches tetrahedra: * ```ts * const solid = createHypercube({ dim: 4, maxCellDimension: 3 }); * const sliceable = tetrahedralizeCuboidCells(solid); * ``` */ export declare function createHypercube(options: HypercubeOptions): CellComplex; //# sourceMappingURL=hypercube.d.ts.map