import * as THREE from "three"; import { CSS2DRenderer } from "../jsm/renderers/CSS2DRenderer.js"; import { CSS3DRenderer } from "../jsm/renderers/CSS3DRenderer.js"; import { OrbitControls } from "../jsm/controls/OrbitControls.js"; import { MapControls } from "../jsm/controls/MapControls.js"; import { SelectionBox } from "../SelectionBox/"; import { SelectionHelper } from "../SelectionBox/Helper"; import { ABaseGarden } from "../Garden/ABaseGarden"; import { Panel } from "../Panel"; import { ZoomPanel } from "../ZoomPanel"; import { TransformPanel } from "../TransformPanel"; import { Physics } from "../Physics"; import type { IControlConstructorOption, IRBIMConstructorOption, ITextureAnimationBaseOption, ITextureAnimationOption } from "./types"; export declare class Container { element: HTMLElement; width: number; height: number; renderer: THREE.WebGLRenderer; physics: Physics | undefined; renderer2D: CSS2DRenderer; renderer3D: CSS3DRenderer; private options; constructor(element: HTMLElement, options?: IRBIMConstructorOption); private shiledObjects; setShieldObject(object: THREE.Object3D | THREE.Object3D[]): void; private shieldPanels; setShieldPanel(panel: Panel | ZoomPanel | TransformPanel): void; control?: OrbitControls | MapControls; mountControl(options?: IControlConstructorOption): void; private defaultCamera; camera?: THREE.Camera; mountCamera(camera?: THREE.Camera): THREE.Camera; private stats?; mountStats(): void; private viewHelper?; mountHelper(): void; raycaster: THREE.Raycaster; mountEvent(eventDom?: HTMLElement): void; getAngleView(): { position: THREE.Vector3Tuple; rotation: (number | THREE.EulerOrder | undefined)[]; center: THREE.Vector3Tuple; value: string; } | undefined; garden?: ABaseGarden; mountGarden(garden: ABaseGarden, oldCamera?: boolean): void; private updateAspectRatio; resize(width?: number, height?: number): void; isNeedRenderer: boolean; private rendererTimeOut?; refreshViewer(time?: number): void; selectedBox?: SelectionBox; selectedHelper?: SelectionHelper; mountSelectionBox(selecBoxClassName: string, filter?: (object: THREE.Object3D) => boolean): void; openSelect(): void; stopSelect(): void; private textureAnimations; addTextureAnimation(option: ITextureAnimationOption): void; removeTextureAnimation(uuid: string): void; updateTextureAnimation(uuid: string, option: ITextureAnimationBaseOption): void; private clock; mixersModel: THREE.AnimationMixer[]; mountRenderBefore?: (delta: number, clock: number) => void; mountRenderAfter?: (delta: number, clock: number) => void; render(time: DOMHighResTimeStamp): void; destroy(): void; /** * 摄像机飞行至指定位置 * @param position 摄像机坐标 * @param center 控制器旋转中心 * @param duration 时长 * @param flyEnd 飞行结束回调函数 */ private cameraFlyTl?; cameraFlyTo(position: [number, number, number], center: [number, number, number], duration?: number, flyEnd?: Function): void; /** * 摄像机至指定位置(无过渡) * @param position 摄像机坐标 * @param center 控制器旋转中心 */ cameraTo(position: [number, number, number], center?: [number, number, number]): void; getDirectionToObjectByPosition(position: THREE.Vector3, object: THREE.Object3D): { position: THREE.Vector3; orientation: THREE.Euler; } | undefined; }