@pmndrs/bvh
    Preparing search index...

    Interface PoseLayout

    What a CPU pose (refitLayoutToPose) needs of a mesh tree, without its triangles: the nodes and parents, and per triangle slot the original triangle and (records) the flags and padding words, where any is non-zero. The corners a pose rewrites anyway, so the 48-byte records go: 4 bytes per triangle stay in place of 48 (16 for indexed trees). The P9 lever "freeing CPU copies" for deforming meshes (SceneTrees' deformingLayouts: 'compact'). Made by compactPoseLayout.

    interface PoseLayout {
        bounds: Float32Array;
        leafCount: number;
        maxDepth: number;
        nodeCount: number;
        nodeFormat?: GpuLayoutNodeFormat;
        nodes: ArrayBuffer;
        parents: Uint32Array;
        slotFlags: Uint32Array<ArrayBufferLike> | null;
        slotPadding: Uint32Array<ArrayBufferLike> | null;
        slotTriangles: Uint32Array;
        triangleCount: number;
        triangleLeaves?: GpuLayoutTriangleLeaves;
    }

    Hierarchy

    Index
    bounds: Float32Array

    Object-space box around the mesh: [minX, minY, minZ, maxX, maxY, maxZ].

    leafCount: number
    maxDepth: number

    Levels of nodes on the longest path.

    nodeCount: number
    nodeFormat?: GpuLayoutNodeFormat

    How nodes stores them; omitted means 'f32'.

    nodes: ArrayBuffer

    nodeCount nodes, 64 bytes each; node 0 is the root. With nodeFormat: 'quantized', the frame slot and then nodeCount 32-byte nodes (gpuLayoutNodeBufferBytes); node i is slot i + 1.

    parents: Uint32Array

    Parent of each node (0xffffffff for the root), for a bottom-up refit.

    slotFlags: Uint32Array<ArrayBufferLike> | null

    Records: each slot's flags word (7), or null when every one is 0. Null for indexed trees.

    slotPadding: Uint32Array<ArrayBufferLike> | null

    Records: each slot's padding word (11), or null when every one is 0. Null for indexed trees.

    slotTriangles: Uint32Array

    Each triangle slot's original triangle (records' word 3; an indexed record's id bits).

    triangleCount: number
    triangleLeaves?: GpuLayoutTriangleLeaves

    How triangles stores them; omitted means 'records'.