molstar
Version:
A comprehensive macromolecular library.
68 lines (67 loc) • 2.4 kB
TypeScript
/**
* Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { PickingId } from '../../mol-geo/geometry/picking';
import { Renderer } from '../../mol-gl/renderer';
import { Scene } from '../../mol-gl/scene';
import { WebGLContext } from '../../mol-gl/webgl/context';
import { RenderTarget } from '../../mol-gl/webgl/render-target';
import { Vec3 } from '../../mol-math/linear-algebra';
import { Camera, ICamera } from '../camera';
import { StereoCamera } from '../camera/stereo';
import { Viewport } from '../camera/util';
import { Helper } from '../helper/helper';
import { DrawPass } from './draw';
export declare type PickData = {
id: PickingId;
position: Vec3;
};
export declare class PickPass {
private webgl;
private drawPass;
readonly pickBaseScale: number;
readonly objectPickTarget: RenderTarget;
readonly instancePickTarget: RenderTarget;
readonly groupPickTarget: RenderTarget;
readonly depthPickTarget: RenderTarget;
private pickWidth;
private pickHeight;
constructor(webgl: WebGLContext, drawPass: DrawPass, pickBaseScale: number);
get drawingBufferHeight(): number;
syncSize(): void;
private renderVariant;
render(renderer: Renderer, camera: ICamera, scene: Scene, helper: Helper): void;
}
export declare class PickHelper {
private webgl;
private renderer;
private scene;
private helper;
private pickPass;
readonly pickPadding: number;
dirty: boolean;
private objectBuffer;
private instanceBuffer;
private groupBuffer;
private depthBuffer;
private viewport;
private pickScale;
private pickX;
private pickY;
private pickWidth;
private pickHeight;
private halfPickWidth;
private spiral;
private setupBuffers;
setViewport(x: number, y: number, width: number, height: number): void;
private syncBuffers;
private getBufferIdx;
private getDepth;
private getId;
private render;
private identifyInternal;
identify(x: number, y: number, camera: Camera | StereoCamera): PickData | undefined;
constructor(webgl: WebGLContext, renderer: Renderer, scene: Scene, helper: Helper, pickPass: PickPass, viewport: Viewport, pickPadding?: number);
}