/// import * as THREE from 'three'; import * as TWEEN from '@tweenjs/tween.js'; import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'; import Stats from 'three/examples/jsm/libs/stats.module.js'; import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer'; import { AreaMapProps, MapPath } from '../type'; import { Events } from './MapEvent'; import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'; import { CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer'; type OtherProps = { setMapPath: (paths: MapPath[]) => void; setLoadStatus: (status: boolean) => void; mapHandleEvents: (data: any, type: 'click' | 'doubleClick' | 'mouseenter' | 'mouseleave' | 'mouseout') => void; }; interface CreateThreeMapProps extends AreaMapProps { el: HTMLDivElement; areaMapProps: AreaMapProps; events?: { [key: string]: { [key: string]: () => void; }; }; otherProp: OtherProps; } type MaterialObj = { sideMaterial: THREE.MeshPhongMaterial; frontMaterial: THREE.MeshPhongMaterial; justAreaLineMaterial: THREE.LineBasicMaterial; backAreaLineMaterial: THREE.LineBasicMaterial; subSideMaterial?: THREE.MeshPhongMaterial; subFrontMaterial?: THREE.MeshPhongMaterial; subJustAreaLineMaterial?: THREE.LineBasicMaterial; subBackAreaLineMaterial?: THREE.LineBasicMaterial; }; export default class CreateThreeMap { el: HTMLDivElement; areaMapProps: AreaMapProps; width: number; height: number; otherProp: OtherProps; _base: string; uuid: string; mapData: any; mapCache: Map; events?: { [key: string]: { [key: string]: () => void; }; }; __event?: Events; level: number; isLeaf: boolean; RIH: MapPath[]; materialObj?: MaterialObj; controllerChangeFn: () => false | undefined; renderer?: THREE.WebGLRenderer; scene?: THREE.Scene; camera?: THREE.PerspectiveCamera; controller?: OrbitControls; composer?: EffectComposer; mapObj: THREE.Object3D; mapGroud: THREE.Group; stats?: Stats; selectObj?: THREE.Object3D; css2dRenderer?: CSS2DRenderer; css3dRenderer?: CSS3DRenderer; clock: THREE.Clock; animateConfig: { FPS: number; time: number; first: boolean; }; labelArr: HTMLDivElement[]; animateId?: number; offset: { x: number; y: number; }; scale: { x: number; y: number; }; childComponentUpdataFn: { [key: string]: { fn: () => void; target: any; }; }; preAdcode: number | string; hasChildCom: {}; isRIHRunning: boolean; appearanceAnimate?: TWEEN.Tween; isDestroy: boolean; floatAreaAnimate?: TWEEN.Tween; floatChilds: THREE.Object3D[]; floatCode: string; constructor(options: CreateThreeMapProps); init(): Promise; updataMap(options: AreaMapProps): Promise; drawMap(updataCamera?: boolean): void; initMaterial(): void; initCss2dRenderer(flag?: boolean): void; initCss3dRenderer(): void; downUpperdrill(type: 'down' | 'up' | 'path', properties?: any): Promise; getMapInfo(): Promise; getData(url: string): Promise; setCamera(): void; setController(): void; LoadRenderer(): void; cssRenderer(up?: string): false | undefined; animate(): void; upDataMapPath(): void; initEvent(): void; initStats(): Stats; buildAuxSystem(): void; resize(w: any, h: any): void; destroy(): void; } export {};