UNPKG

@realsee/dnalogel

Version:
59 lines (58 loc) 1.65 kB
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 {};