import { AssetError, type MeshAsset, type Result } from '@forgeax/engine-types'; /** * Floats per vertex for the procedural-geometry interleaved buffer that the * factory bodies fill in (position(3) + normal(3) + uv(2)). The * `meshFromInterleaved` helper expands this into the runtime 12-float * (position + normal + uv + tangent) layout consumed by the standard * pipeline (feat-20260518 M4 D-10). */ export declare const FACTORY_FLOATS_PER_VERTEX = 8; /** * Floats per vertex emitted by the factories' final MeshAsset * `vertices` Float32Array buffer: position(3) + normal(3) + uv(2) + * tangent(4) = 12. Procedural meshes feed both the standard and unlit * pipelines (D-10); BUILTIN_CUBE / TRIANGLE keep their 6-floats inline * shape (D-2 lock). */ export declare const PROCEDURAL_FLOATS_PER_VERTEX = 12; /** * Shared helper: build MeshAsset POD from the factory-emitted 8-floats * interleaved buffer (position + normal + uv) plus index list. Computes * per-vertex tangent (vec4) via `computeTangentVec4` (M4 / D-2 path A) and * expands the buffer to the runtime 12-floats stride (position + normal + * uv + tangent). All six procedural factories funnel through this helper * so the tangent SSOT lives in `geometry/tangent.ts` (D-7). */ export declare function meshFromInterleaved(vertices: Float32Array, indices: Uint16Array | Uint32Array): Result; /** Shared helper: AssetError for degenerate geometry parameters. */ export declare function degenerate(detail: string): AssetError; /** * Build a procedural box geometry aligned with Three.js r184 BoxGeometry. * * @param width positive X-axis extent * @param height positive Y-axis extent * @param depth positive Z-axis extent * @param widthSegments >= 1 subdivisions along X * @param heightSegments >= 1 subdivisions along Y * @param depthSegments >= 1 subdivisions along Z * @returns `Result` with attributes populated */ export declare function createBoxGeometry(width: number, height: number, depth: number, widthSegments?: number, heightSegments?: number, depthSegments?: number): Result; //# sourceMappingURL=box.d.ts.map