import { Viewer } from "../viewer"; import { ProjectionType } from "../longan/segment"; import { List } from "../longan/gs.collections"; import { EventArgs } from "../events"; export declare enum BBState { Default = 0, Separation = 1, Inclusion = 2, Intersection = 3 } export declare class Camera { get position(): Float64Array; set position(value: ArrayLike); get target(): Float64Array; set target(value: ArrayLike); get up(): Float64Array; set up(value: ArrayLike); get width(): number; set width(value: number); get height(): number; set height(value: number); get near(): number; set near(value: number); get far(): number; set far(value: number); get fov(): number; set fov(value: number); get projection(): ProjectionType; set projection(value: ProjectionType); get renderingPosition(): Float32Array; get renderingTarget(): Float32Array; get renderingUp(): Float32Array; get renderingNearFar(): Float32Array; get viewDirect(): Float64Array; get viewLength(): number; get projMatrix(): Float32Array; get viewMatrix(): Float32Array; get projInverseMatrix(): Float32Array; get projViewMatrix(): Float32Array; get projViewInverseMatrix(): Float32Array; get extent(): Float64Array; get field(): Float64Array; get data(): { position: Float64Array; target: Float64Array; up: Float64Array; width: number; height: number; }; set data(value: { position: Float64Array; target: Float64Array; up: Float64Array; width: number; height: number; }); get isModelNeedUpdate(): boolean; set isModelNeedUpdate(value: boolean); _isModelNeedUpdate: boolean; isChanged: boolean; modelNeedUpdate: List<(viewer: Viewer, args: EventArgs) => void>; changed: List<(viewer: Viewer, args: EventArgs) => void>; protected _viewer: Viewer; protected _position: Float64Array; protected _target: Float64Array; protected _up: Float64Array; protected _width: number; protected _height: number; protected _near: number; protected _far: number; protected _fov: number; protected _projection: ProjectionType; protected _viewDirect: Float64Array; protected _renderingPosition: Float32Array; protected _renderingTarget: Float32Array; protected _renderingUp: Float32Array; protected _renderingNearFar: Float32Array; protected _viewLength: number; protected _projMatrix: Float32Array; protected _viewMatrix: Float32Array; protected _projInverseMatrix: Float32Array; protected _projViewMatrix: Float32Array; protected _projViewInverseMatrix: Float32Array; protected _projNeedUpdate: boolean; protected _viewNeedUpdate: boolean; protected winRect: Float32Array; protected pixelWorldRatio: any; protected pixelWinRatio: any; constructor(viewer: Viewer); update(): void; reset(): void; protected updateCameraNearFar(): void; protected calculateNearFar(min: Float64Array, max: Float64Array): void; setField(width: number, height: number): void; setExtent(near: number, far: number, needUpdate?: boolean): void; zoom(factor: number): void; dolly(x: number, y: number, z: number): void; keepRatio(ratio: number): void; roll(start: Float64Array, end: Float64Array): void; Check_View_and_Extent(bb: Float32Array): BBState.Separation | BBState.Inclusion | BBState.Intersection; checkViewPoint(point: Float32Array): boolean; }