UNPKG

@pmndrs/uikit

Version:

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

44 lines (43 loc) 2.47 kB
import { Signal } from '@preact/signals-core'; import { Matrix4, Vector2Tuple } from 'three'; import { Bucket } from '../allocation/sorted-buckets.js'; import { ClippingRect } from '../clipping.js'; import { Inset } from '../flex/node.js'; import { InstancedPanelGroup, PanelGroupManager, PanelGroupProperties } from './instanced-panel-group.js'; import { ColorRepresentation } from '../utils.js'; import { MergedProperties } from '../properties/merged.js'; import { OrderInfo } from '../order.js'; import { PanelMaterialConfig } from './panel-material.js'; export type PanelProperties = { borderTopLeftRadius?: number; borderTopRightRadius?: number; borderBottomLeftRadius?: number; borderBottomRightRadius?: number; backgroundOpacity?: number; backgroundColor?: ColorRepresentation; borderColor?: ColorRepresentation; borderBend?: number; borderOpacity?: number; }; export declare function setupInstancedPanel(propertiesSignal: Signal<MergedProperties>, orderInfo: Signal<OrderInfo | undefined>, panelGroupDependencies: Signal<Required<PanelGroupProperties>>, panelGroupManager: PanelGroupManager, matrix: Signal<Matrix4 | undefined>, size: Signal<Vector2Tuple | undefined>, offset: Signal<Vector2Tuple> | undefined, borderInset: Signal<Inset | undefined>, clippingRect: Signal<ClippingRect | undefined> | undefined, isVisible: Signal<boolean>, materialConfig: PanelMaterialConfig, abortSignal: AbortSignal): void; export declare class InstancedPanel { private group; private readonly minorIndex; private readonly matrix; private readonly size; private readonly offset; private readonly borderInset; private readonly clippingRect; readonly materialConfig: PanelMaterialConfig; private indexInBucket?; private bucket?; private insertedIntoGroup; private active; private abortController?; constructor(propertiesSignal: Signal<MergedProperties>, group: InstancedPanelGroup, minorIndex: number, matrix: Signal<Matrix4 | undefined>, size: Signal<Vector2Tuple | undefined>, offset: Signal<Vector2Tuple> | undefined, borderInset: Signal<Inset | undefined>, clippingRect: Signal<ClippingRect | undefined> | undefined, isVisible: Signal<boolean>, materialConfig: PanelMaterialConfig, abortSignal: AbortSignal); setIndexInBucket(index: number): void; private getIndexInBuffer; activate(bucket: Bucket<unknown>, index: number): void; private requestShow; private hide; }