UNPKG

@xeokit/xeokit-sdk

Version:

3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision

135 lines (115 loc) 3.14 kB
import { Entity } from "../Entity"; /** * Pick result returned by {@link Scene.pick}. */ export declare class PickResult { /** * Picked entity. * Null when no entity was picked. * @type {Entity|*} */ entity: Entity | null; /** * Type of primitive that was picked - usually "triangle". * Null when no primitive was picked. * @type {String} */ primitive: string; /** * Index of primitive that was picked. * -1 when no entity was picked. * @type {number} */ primIndex: number; /** * True when the picked surface position is full precision. * When false, the picked surface position should be regarded as approximate. * Full-precision surface picking is performed with the {@link Scene.pick} method's ````pickSurfacePrecision```` option. * @type {Boolean} */ pickSurfacePrecision: boolean; /** * True when picked from touch input, else false when from mouse input. * @type {boolean} */ touchInput: boolean; /** * Canvas coordinates when picking with a 2D pointer. * @property canvasPos * @type {Number[]} */ get canvasPos(): number[]; /** * World-space 3D ray origin when raypicked. * @type {Number[]} */ get origin(): number[]; /** * World-space 3D ray direction when raypicked. * @type {Number[]} */ get direction(): number[]; /** * Picked triangle's vertex indices. * Only defined when an entity and triangle was picked. * @type {Int32Array} */ get indices(): Int32Array; /** * Picked Local-space point on surface. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get localPos(): number[]; /** * Canvas cursor coordinates, snapped when snap picking, otherwise same as {@link PickResult#pointerPos}. * @property snappedCanvasPos * @type {Number[]} */ get snappedCanvasPos(): number[]; /** * Picked World-space point on surface. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get worldPos(): number[]; /** * Picked View-space point on surface. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get viewPos(): number[]; /** * Barycentric coordinate within picked triangle. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get bary(): number[]; /** * Normal vector at picked position on surface. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get worldNormal(): number[]; /** * UV coordinates at picked position on surface. * Only defined when an entity and a point on its surface was picked. * @type {Number[]} */ get uv(): number[]; /** * True if snapped to edge or vertex. * @returns {boolean} */ get snapped(): boolean; /** * True when snapped to the nearest vertex position. * @type {boolean} */ snappedToVertex : false; /** * True when snapped to the nearest edge. * @type {boolean} */ snappedToEdge: boolean; }