export function createCameraFacade(threeJsCameraClass: any, projectionProps: any, otherProps: any): { new (parent: any): { lookAt: any; up: any; _projectionChanged: boolean; _frustum: Frustum; initThreeObject(): any; afterUpdate(): void; quaternionX: number; quaternionY: number; quaternionZ: number; quaternionW: number; updateMatrices(): void; _projectionMatrixVersion: number; /** * Utility method that returns a Frustum object which is initialized to match this camera's * current state. This can be used for example to optimize updates to the Facade tree by * avoiding work for objects that fall outside the camera's view. * * You can access this by calling `this.getCameraFacade().getFrustum()` from any Object3DFacade's * `afterUpdate` lifecycle method or later. * * Be careful that this Frustum does not get modified after it is requested, as it is cached for * the lifetime of the camera's current world matrix and modifiying it would result in bad state * for other code requesting it within that lifetime. * * @return {Frustum} */ getFrustum(): Frustum; /** * Given a set of camera projection coordinates (u,v in the range [-1, 1]), return a `Ray` * representing that line of sight in worldspace. * @param {number} u * @param {number} v * @return Ray */ getRayAtProjectedCoords(u: number, v: number): Ray; threeObject: any; _parentObject3DFacade: any; _worldMatrixVersionAfterLastUpdate: number; _matrixChanged: boolean; markWorldMatrixDirty(): void; _worldMatrixVersion: number; _boundsChanged: boolean; _checkBoundsChange(): void; _lastGeometrySphereVersion: any; getWorldPosition(vec3?: Vector3): Vector3; getCameraPosition(vec3?: Vector3): Vector3; getCameraFacade(): Camera3DFacade; getCameraDistance(): number; getProjectedPosition(x: any, y: any, z: any): Vector3; getSceneFacade(): Scene3DFacade; getBoundingSphere(): import("three").Sphere; _boundingSphere: import("three").Sphere; _getGeometryBoundingSphere(): any; getGeometry(): any; raycast(raycaster: any): any[]; _raycastObject(obj: any, raycaster: any): any[]; _addToThreeObjectTree(): void; _queueRemoveChildObject3D(threeObjectId: any): void; _removeChildIds: any; _flushQueuedChildRemovals(): void; destructor(): void; raycastSide: any; readonly isObject3DFacade: boolean; }; }; export const PerspectiveCamera3DFacade: { new (parent: any): { lookAt: any; up: any; _projectionChanged: boolean; _frustum: Frustum; initThreeObject(): any; afterUpdate(): void; quaternionX: number; quaternionY: number; quaternionZ: number; quaternionW: number; updateMatrices(): void; _projectionMatrixVersion: number; /** * Utility method that returns a Frustum object which is initialized to match this camera's * current state. This can be used for example to optimize updates to the Facade tree by * avoiding work for objects that fall outside the camera's view. * * You can access this by calling `this.getCameraFacade().getFrustum()` from any Object3DFacade's * `afterUpdate` lifecycle method or later. * * Be careful that this Frustum does not get modified after it is requested, as it is cached for * the lifetime of the camera's current world matrix and modifiying it would result in bad state * for other code requesting it within that lifetime. * * @return {Frustum} */ getFrustum(): Frustum; /** * Given a set of camera projection coordinates (u,v in the range [-1, 1]), return a `Ray` * representing that line of sight in worldspace. * @param {number} u * @param {number} v * @return Ray */ getRayAtProjectedCoords(u: number, v: number): Ray; threeObject: any; _parentObject3DFacade: any; _worldMatrixVersionAfterLastUpdate: number; _matrixChanged: boolean; markWorldMatrixDirty(): void; _worldMatrixVersion: number; _boundsChanged: boolean; _checkBoundsChange(): void; _lastGeometrySphereVersion: any; getWorldPosition(vec3?: Vector3): Vector3; getCameraPosition(vec3?: Vector3): Vector3; getCameraFacade(): Camera3DFacade; getCameraDistance(): number; getProjectedPosition(x: any, y: any, z: any): Vector3; getSceneFacade(): Scene3DFacade; getBoundingSphere(): import("three").Sphere; _boundingSphere: import("three").Sphere; _getGeometryBoundingSphere(): any; getGeometry(): any; raycast(raycaster: any): any[]; _raycastObject(obj: any, raycaster: any): any[]; _addToThreeObjectTree(): void; _queueRemoveChildObject3D(threeObjectId: any): void; _removeChildIds: any; _flushQueuedChildRemovals(): void; destructor(): void; raycastSide: any; readonly isObject3DFacade: boolean; }; }; export const OrthographicCamera3DFacade: { new (parent: any): { lookAt: any; up: any; _projectionChanged: boolean; _frustum: Frustum; initThreeObject(): any; afterUpdate(): void; quaternionX: number; quaternionY: number; quaternionZ: number; quaternionW: number; updateMatrices(): void; _projectionMatrixVersion: number; /** * Utility method that returns a Frustum object which is initialized to match this camera's * current state. This can be used for example to optimize updates to the Facade tree by * avoiding work for objects that fall outside the camera's view. * * You can access this by calling `this.getCameraFacade().getFrustum()` from any Object3DFacade's * `afterUpdate` lifecycle method or later. * * Be careful that this Frustum does not get modified after it is requested, as it is cached for * the lifetime of the camera's current world matrix and modifiying it would result in bad state * for other code requesting it within that lifetime. * * @return {Frustum} */ getFrustum(): Frustum; /** * Given a set of camera projection coordinates (u,v in the range [-1, 1]), return a `Ray` * representing that line of sight in worldspace. * @param {number} u * @param {number} v * @return Ray */ getRayAtProjectedCoords(u: number, v: number): Ray; threeObject: any; _parentObject3DFacade: any; _worldMatrixVersionAfterLastUpdate: number; _matrixChanged: boolean; markWorldMatrixDirty(): void; _worldMatrixVersion: number; _boundsChanged: boolean; _checkBoundsChange(): void; _lastGeometrySphereVersion: any; getWorldPosition(vec3?: Vector3): Vector3; getCameraPosition(vec3?: Vector3): Vector3; getCameraFacade(): Camera3DFacade; getCameraDistance(): number; getProjectedPosition(x: any, y: any, z: any): Vector3; getSceneFacade(): Scene3DFacade; getBoundingSphere(): import("three").Sphere; _boundingSphere: import("three").Sphere; _getGeometryBoundingSphere(): any; getGeometry(): any; raycast(raycaster: any): any[]; _raycastObject(obj: any, raycaster: any): any[]; _addToThreeObjectTree(): void; _queueRemoveChildObject3D(threeObjectId: any): void; _removeChildIds: any; _flushQueuedChildRemovals(): void; destructor(): void; raycastSide: any; readonly isObject3DFacade: boolean; }; }; import { Frustum } from 'three'; import { Ray } from 'three'; import { Vector3 } from 'three';