declare namespace pc { /** * @name pc.Picker * @class Picker object used to select mesh instances from screen coordinates. * @description Create a new instance of a Picker object * @param {pc.GraphicsDevice} device Graphics device used to manage internal graphics resources. * @param {Number} width The width of the pick buffer in pixels. * @param {Number} height The height of the pick buffer in pixels. * @property {Number} width Width of the pick buffer in pixels (read-only). * @property {Number} height Height of the pick buffer in pixels (read-only). * @property {pc.RenderTarget} renderTarget The render target used by the picker internally (read-only). */ class Picker { constructor(device: pc.GraphicsDevice, width: number, height: number) width: number; height: number; renderTarget: pc.RenderTarget; /** * @function * @name pc.Picker#getSelection * @description Return the list of mesh instances selected by the specified rectangle in the * previously prepared pick buffer.The rectangle using top-left coordinate system. * @param {Number} x The left edge of the rectangle * @param {Number} y The top edge of the rectangle * @param {Number} [width] The width of the rectangle * @param {Number} [height] The height of the rectangle * @returns {pc.MeshInstance[]} An array of mesh instances that are in the selection * @example * // Get the selection at the point (10,20) * var selection = picker.getSelection(10, 20); * * // Get all models in rectangle with corners at (10,20) and (20,40) * var selection = picker.getSelection(10, 20, 10, 20); */ getSelection(x: number, y: number, width?: number, height?: number): pc.MeshInstance[]; /** * @function * @name pc.Picker#prepare * @description Primes the pick buffer with a rendering of the specified models from the point of view * of the supplied camera. Once the pick buffer has been prepared, pc.Picker#getSelection can be * called multiple times on the same picker object. Therefore, if the models or camera do not change * in any way, pc.Picker#prepare does not need to be called again. * @param {pc.Camera} camera The camera used to render the scene, note this is the CameraNode, not an Entity * @param {pc.Scene} scene The scene containing the pickable mesh instances. */ prepare(camera: pc.Camera, scene: pc.Scene): void; /** * @function * @name pc.Picker#resize * @description Sets the resolution of the pick buffer. The pick buffer resolution does not need * to match the resolution of the corresponding frame buffer use for general rendering of the * 3D scene. However, the lower the resolution of the pick buffer, the less accurate the selection * results returned by pc.Picker#getSelection. On the other hand, smaller pick buffers will * yield greater performance, so there is a trade off. * @param {Number} width The width of the pick buffer in pixels. * @param {Number} height The height of the pick buffer in pixels. */ resize(width: number, height: number): void; } }