@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
TypeScript
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;
}