import type { ICameraService, IViewport } from './ICameraService'; export default class CameraService implements ICameraService { private viewport; /** * 不使用 Viewport 计算的 VP 矩阵,例如偏移坐标系场景 */ private overridedViewProjectionMatrix; /** * ViewMatrix 逆矩阵,用于计算相机位置 */ private viewMatrixInverse; /** * 相机位置 */ private cameraPosition; init(): void; /** * 同步根据相机参数创建的视口 */ update(viewport: IViewport): void; getProjectionMatrix(): number[]; getModelMatrix(): number[]; getViewMatrix(): number[]; getViewMatrixUncentered(): number[]; getViewProjectionMatrixUncentered(): number[]; getViewProjectionMatrix(): number[]; getZoom(): number; getZoomScale(): number; getCenter(): [number, number]; getFocalDistance(): number; getCameraPosition(): number[]; projectFlat(lngLat: [number, number], scale?: number | undefined): [number, number]; /** * 支持外部计算 VP 矩阵的场景,例如:在偏移坐标系场景中,需要重新计算 VP 矩阵 */ setViewProjectionMatrix(viewProjectionMatrix: number[] | undefined): void; }