@realsee/dnalogel
Version:
59 lines (58 loc) • 1.65 kB
TypeScript
import type { Five, SubscribeEventMap } from '@realsee/five';
import Hammer from 'hammerjs';
import * as THREE from 'three';
import { Subscribe } from '@realsee/five';
interface MagnifierEvent extends SubscribeEventMap {
wantsPanGesture: (event: (typeof Hammer)['Input']) => boolean;
}
/** 放大镜配置参数 */
export interface MagnifierParameter {
width?: number;
height?: number;
scale?: number;
/** 允许拖动放大镜 */
dragEnabled?: boolean;
/** renderWithPoint 时,是否应该自动更新放大镜的位置 */
autoFixPCPosition?: boolean;
/** 放大镜初始位置应该设置在容器的哪个位置 */
initialPosition?: {
left: string;
top: string;
};
}
export declare class Magnifier {
width: number;
height: number;
containerDom?: Element;
hooks: Subscribe<MagnifierEvent>;
canvas: HTMLCanvasElement;
private five;
private scale;
private config;
private offset;
private context;
private renderCenter;
private hammer?;
private state;
constructor(five: Five, options: MagnifierParameter);
getCurrentState(): {
enabled: boolean;
};
dispose(): void;
show(): this;
hide(): this;
enable(): this;
disable(): this;
/** 把放大镜放到某一个容器中 */
appendTo(element: Element): this;
/** 清除放大镜渲染内容 */
clear(): this;
/** 放大传入点位周围的内容 */
renderWithPoint(point: THREE.Vector3): void;
private autoFixPCPosition;
private render;
private initStyle;
private onPan;
private onPanEnd;
}
export {};