UNPKG

@pmndrs/uikit

Version:

Build performant 3D user interfaces with Three.js and yoga.

38 lines (37 loc) 1.58 kB
import { InstancedBufferAttribute } from 'three'; import type { Component } from '../../components/component.js'; import { RootContext } from '../../context.js'; import { OrderInfo } from '../../order.js'; import type { InstancedPanel } from './panel.js'; import type { PanelGroupProperties } from './properties.js'; export declare class InstancedPanelGroup { private readonly object; readonly root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>; private readonly orderInfo; private readonly panelGroupProperties; private mesh?; instanceMatrix: InstancedBufferAttribute; instanceData: InstancedBufferAttribute; instanceClipping: InstancedBufferAttribute; private readonly instanceMaterial; private buckets; private elementCount; private bufferElementSize; instanceDataOnUpdate: InstancedBufferAttribute['addUpdateRange']; private nextUpdateTime; private nextUpdateTimeoutRef; private activateElement; private setElementIndex; private bufferCopyWithin; private clearBufferAt; constructor(object: Component, root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>, orderInfo: OrderInfo, panelGroupProperties: Required<PanelGroupProperties>); private updateCount; private requestUpdate; private requestUpdateNextFrame; insert(bucketIndex: number, panel: InstancedPanel): void; delete(bucketIndex: number, elementIndex: number | undefined, panel: InstancedPanel): void; onFrame(): void; private update; private resize; destroy(): void; }