Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface MeshUserData

    User data attached to the THREE.Mesh object for a Mesh node in the scene.

    Enables runtime type checking and provides access to the loader/metadata. Dimension info is NOT stored here — it lives only at the Scene level.

    interface MeshUserData {
        nodeType: "mesh";
        loader: MeshDataLoader;
        attrs: MeshMetadata;
        path: string;
        visibleTriangleCount: number;
        visibleVertexCount: number;
        committedVertexCount?: number;
        _layerMaterialCloned?: boolean;
    }
    Index
    nodeType: "mesh"

    Node type identifier for runtime type checking

    Data loader instance

    Zarr group attributes

    path: string

    Scene path of this node

    visibleTriangleCount: number

    Triangles the current slice indexes (0 until the first commit)

    visibleVertexCount: number

    Vertices that passed the nD slab test; diagnostic, not a draw bound

    committedVertexCount?: number

    Vertices this commit actually received (absent until the first commit).

    mesh-geometry.ts's position attribute is capacity-sized for a reveal ladder (#1521), so it can no longer answer this question — debug-state.ts reads this stamp instead of position.count. create-mesh-node.ts never seeds it on the placeholder, and debug-state.ts's ?? fallback to position.count depends on that absence to report the placeholder's true (degenerate) count rather than a stale 0.

    _layerMaterialCloned?: boolean

    Marks the material as already node-owned, so the layers panel and the LOD cross-fade mutate it directly instead of cloning on first interaction.

    Always true for mesh, as for the other three types since their materials went per node: a mesh material carries the node's own shading variant and epoch side, so a shared one would let one node's appearance follow another's.