@realsee/five
Version:
Realsee Renderer SDK
66 lines (65 loc) • 2.15 kB
TypeScript
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<CameraPose>): 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 };