UNPKG

@luma.gl/engine

Version:

3D Engine Components for luma.gl

45 lines 1.58 kB
import { Device, Framebuffer } from '@luma.gl/core'; import { ShaderInputs } from "../../shader-inputs.js"; import { pickingUniforms } from "./picking-uniforms.js"; /** Information about picked object */ export type PickInfo = { batchIndex: number | null; objectIndex: number | null; }; export type PickingManagerProps = { /** Shader Inputs from models to pick */ shaderInputs?: ShaderInputs<{ picking: typeof pickingUniforms.props; }>; /** Callback */ onObjectPicked?: (info: PickInfo) => void; }; /** * Helper class for using the new picking module * @todo Port to WebGPU * @todo Support multiple models * @todo Switching picking module */ export declare class PickingManager { device: Device; props: Required<PickingManagerProps>; /** Info from latest pick operation */ pickInfo: PickInfo; /** Framebuffer used for picking */ framebuffer: Framebuffer | null; static defaultProps: Required<PickingManagerProps>; constructor(device: Device, props: PickingManagerProps); destroy(): void; getFramebuffer(): Framebuffer; /** Clear highlighted / picked object */ clearPickState(): void; /** Prepare for rendering picking colors */ beginRenderPass(): import("@luma.gl/core").RenderPass; getPickInfo(mousePosition: [number, number]): PickInfo | null; /** * Get pick position in device pixel range * use the center pixel location in device pixel range */ getPickPosition(mousePosition: number[]): [number, number]; } //# sourceMappingURL=picking-manager.d.ts.map