@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
38 lines (37 loc) • 1.58 kB
TypeScript
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;
}