import * as THREE from "three"; import type { Mode } from "../application/mode"; interface CameraPose { longitude: number; latitude: number; fov: number; distance: number; offset: THREE.Vector3; } /** Five 相机 */ declare class Camera extends THREE.Camera { fov: number; aspect: number; near: number; far: number; perspToOrtho: THREE.Vector2; resolution: THREE.Vector2; pixelRatio: number; /** 相机姿态 */ pose: CameraPose; private perspectiveCamera; private orthographicCamera; autoNearFar: boolean; needsRender: boolean; refineModel: boolean; time: number; controllerMode: Mode | null; private lastValues; constructor(fov: number, aspect?: number, near?: number, far?: number, perspToOrtho?: THREE.Vector2, resolution?: THREE.Vector2, pixelRatio?: number); get orthoDistance(): number; get zoom(): number; get top(): number; get bottom(): number; get left(): number; get right(): number; getDirection(target: THREE.Vector3): THREE.Vector3; /** 通过相机参数反算姿态 */ computePose(distance?: number): this; /** 设置相机姿态 */ setFromPose(pose: Partial): this; /** 拷贝相机姿态 */ copyPose(): CameraPose; private computeProjectionMatrix; setViewOffset(fullWidth: number, fullHeight: number, x: number, y: number, width: number, height: number): void; get view(): { enabled: boolean; fullWidth: number; fullHeight: number; offsetX: number; offsetY: number; width: number; height: number; } | null; clearViewOffset(): void; updateProjectionMatrix(): void; get perspectiveProjectionMatrix(): THREE.Matrix4; get perspectiveProjectionMatrixInverse(): THREE.Matrix4; get orthographicProjectionMatrix(): THREE.Matrix4; get orthographicProjectionMatrixInverse(): THREE.Matrix4; updateTime(time: number): void; get isPerspectiveCamera(): boolean; get isOrthographicCamera(): boolean; copy(source: this, recursive?: boolean): this; } export { Camera, CameraPose };