import Vector3 from '../math/Vector3'; import type Renderer from '../Renderer'; import type Scene from '../Scene'; import type Camera from '../Camera'; import type ClayNode from '../Node'; interface Viewport { x: number; y: number; width: number; height: number; } /** * Pick all intersection objects, wich will be sorted from near to far * @param x Mouse position x * @param y Mouse position y * @param output * @param forcePickAll ignore ignorePicking */ export declare function pickAll(renderer: Renderer | Viewport, scene: Scene, camera: Camera, x: number, y: number, output?: Intersection[], forcePickAll?: boolean): Intersection[]; /** * Pick the nearest intersection object in the scene * @param x Mouse position x * @param y Mouse position y * @param forcePickAll ignore ignorePicking */ export declare function pick(renderer: Renderer, scene: Scene, camera: Camera, x: number, y: number, forcePickAll?: boolean): Intersection | undefined; export declare class Intersection { /** * Intersection point in local transform coordinates */ point: Vector3; /** * Intersection point in world transform coordinates */ pointWorld: Vector3; /** * Barycentric coord */ barycentric: Vector3; /** * Intersection scene node */ target: ClayNode; /** * Intersection triangle, which is an array of vertex index */ triangle: number[]; /** * Index of intersection triangle. */ triangleIndex: number; /** * Distance from intersection point to ray origin */ distance: number; constructor(point: Vector3, pointWorld: Vector3, barycentric: Vector3, target: ClayNode, triangle: number[], triangleIndex: number, distance: number); } export {};