UNPKG

@orca-fe/x-map

Version:
52 lines (51 loc) 1.75 kB
import { InstancedMesh, MeshBasicMaterial } from 'three'; import { BufferGeometry } from 'three/src/core/BufferGeometry'; import ThreeObject, { ThreeObjectOptions } from './ThreeObject'; import { Point } from '../../defs'; export interface IconObjectOptions extends ThreeObjectOptions { maxZoom?: number; minZoom?: number; z?: number; opacity?: number; data?: Point[]; width?: number; height?: number; src?: string; hoverSrc?: string; checkedSrc?: string; shape?: 'circle' | 'rect'; } export default class IconObject extends ThreeObject { maxZoom?: number; minZoom?: number; z: number; opacity: number; data: Point[]; shape?: IconObjectOptions['shape']; width: number; height: number; src: string; hoverSrc?: string; checkedSrc?: string; protected ringMesh?: InstancedMesh; protected dataMesh?: InstancedMesh; protected hoverMesh?: InstancedMesh; protected checkedMesh?: InstancedMesh; protected material: MeshBasicMaterial; protected hoverMaterial: MeshBasicMaterial; protected checkedMaterial: MeshBasicMaterial; protected checkKey?: string; protected hoverKey?: string; constructor(options?: IconObjectOptions); keyCache: WeakMap<InstancedMesh<BufferGeometry, import("three").Material | import("three").Material[]>, Record<string | number, number>>; createObject: () => void; lastRotate: number; lastPitch: number; lastScale: number; updatePosition(): void; checkedIndex: number; check(index: number): void; hoverIndex: number; protected hover(index: number): void; setOptions(options: Partial<IconObjectOptions>): void; }