@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
30 lines (29 loc) • 1.61 kB
TypeScript
import { Box3, InstancedBufferAttribute, Matrix4, Mesh, Object3DEventMap, Sphere, Vector2Tuple } from 'three';
import { Signal } from '@preact/signals-core';
import { OrderInfo } from '../order.js';
import { ClippingRect } from '../clipping.js';
import { RootContext } from '../context.js';
import { FlexNodeState } from '../internals.js';
export declare function createInteractionPanel(orderInfo: Signal<OrderInfo | undefined>, rootContext: RootContext, parentClippingRect: Signal<ClippingRect | undefined> | undefined, globalMatrix: Signal<Matrix4 | undefined>, flexState: FlexNodeState): Mesh<import("three").PlaneGeometry, import("three").Material | import("three").Material[], Object3DEventMap> & {
boundingSphere: Sphere;
};
export declare function setupInteractionPanel(panel: Mesh & {
boundingSphere: Sphere;
}, rootContext: RootContext, globalMatrix: Signal<Matrix4 | undefined>, size: Signal<Vector2Tuple | undefined>, abortSignal: AbortSignal): void;
export declare class InstancedPanelMesh extends Mesh {
readonly instanceMatrix: InstancedBufferAttribute;
count: number;
protected readonly isInstancedMesh = true;
readonly instanceColor: null;
readonly morphTexture: null;
readonly boundingBox: Box3;
readonly boundingSphere: Sphere;
constructor(instanceMatrix: InstancedBufferAttribute, instanceData: InstancedBufferAttribute, instanceClipping: InstancedBufferAttribute);
dispose(): void;
copy(): this;
computeBoundingBox(): void;
computeBoundingSphere(): void;
updateMorphTargets(): void;
raycast(): void;
spherecast(): void;
}