IFClite TypeScript API
    Preparing search index...

    Interface Mesh

    interface Mesh {
        bindGroup?: GPUBindGroup;
        bounds?: { max: [number, number, number]; min: [number, number, number] };
        color: [number, number, number, number];
        expressId: number;
        finish?: Partial<Pick<Material, "metallic" | "roughness">>;
        geometryItemId?: number;
        hydrated?: boolean;
        indexBuffer: GPUBuffer;
        indexCount: number;
        material?: Material;
        modelIndex?: number;
        rteOrigin?: [number, number, number];
        transform: Mat4;
        uniformBuffer?: GPUBuffer;
        vertexBuffer: GPUBuffer;
    }
    Index
    bindGroup?: GPUBindGroup
    bounds?: { max: [number, number, number]; min: [number, number, number] }
    color: [number, number, number, number]
    expressId: number
    finish?: Partial<Pick<Material, "metallic" | "roughness">>
    geometryItemId?: number

    Source MeshData.geometryItemId, carried through hydration so a pick can report the representation item it hit. See PickResult.geometryItemId for when it is absent.

    hydrated?: boolean

    True when this mesh was lazily hydrated for picking / selection highlight (createMeshFromData) rather than added as authored geometry via addMesh(). Such meshes duplicate geometry already drawn by a batch, so they are freed when their entity leaves the selection (see Scene.disposeHydratedMeshesExcept) to stop unbounded accumulation + transparent double-draw on deselect.

    indexBuffer: GPUBuffer
    indexCount: number
    material?: Material
    modelIndex?: number
    rteOrigin?: [number, number, number]

    Canonical f64-like translation used by the RTE mesh path. It is kept separate from the GPU f32 transform so hydrated selection meshes do not reintroduce national-grid rounding after their source batch was rebased.

    transform: Mat4
    uniformBuffer?: GPUBuffer
    vertexBuffer: GPUBuffer