@realsee/five
Version:
Realsee Renderer SDK
217 lines (216 loc) • 7.28 kB
TypeScript
import * as THREE from 'three';
import { Camera } from '../../core/camera';
import { Tileset } from './tileset';
import { Tile } from './tile';
import { Trajectory } from './trajectory';
import { TilesetHeader } from './header';
import { Intersection } from '../intersection';
import { type BoundingVolume } from '../../utils/volume';
import { Fetcher } from '../../utils/ajax';
import { Parameter } from '../parameter';
import type { ModelScene } from '../model-scene';
import type { Model } from '../model';
export interface TileCoordinateSystem {
enuToEcefMatrix: THREE.Matrix4;
ecefToEnuMatrix: THREE.Matrix4;
}
/** Advanced loader options */
export interface Tile3DOptions {
name: string;
light: boolean;
type: 'point_cloud' | 'mesh' | "gaussian_splatting";
upAxis: string;
fetcher: Fetcher;
search?: string;
groundHeight: number | null;
coordinateSystem: TileCoordinateSystem;
error?: Error | null;
}
export declare class Tile3D extends THREE.Object3D {
type: 'point_cloud' | 'mesh' | "gaussian_splatting";
parent: Model | null;
/** meta 信息加载错误 */
error?: Error | null;
/** 加载错误 */
onError?: (error: Error) => void;
/** 当瓦片加载 */
onTileLoad?: (tile: Tile) => void;
/** 当瓦片卸载 */
onTileUnload?: (tile: Tile) => void;
/** 更新帧次数 */
frameNumber: number;
parameter: Parameter;
light: boolean;
upAxis: string;
fetcher: Fetcher;
search: string;
groundHeight: number | null;
coordinateSystem: TileCoordinateSystem;
tileset: Tileset;
boundingBox: THREE.Box3;
autoRefine: boolean;
refined: boolean;
refineProgress: [number, number];
loaded: boolean;
private clearStencilObject;
private disposed;
private renderer?;
private renderObjects;
private backfaceObjects;
private tileObjects;
private currentResolvedParameterValue;
constructor(tilesetHeader: TilesetHeader, options: Tile3DOptions);
get viewerRequestVolume(): BoundingVolume | undefined;
set viewerRequestVolume(value: BoundingVolume | undefined);
get tiles(): Tile[];
get trajectories(): Trajectory[];
getRecommendProps(options?: {
powerPreference?: 'high' | 'default';
}): {
pointScale: number;
pointMinPixel: number;
maxScreenSpaceError: number;
};
loadContent(tile: Tile): Promise<void>;
unloadContent(tile: Tile): Promise<void>;
loadAllTilesets(): Promise<void>;
loadTrajectory(trajectory: Trajectory): Promise<void>;
unloadTrajectory(trajectory: Trajectory): Promise<void>;
intersectRaycaster(raycaster: THREE.Raycaster, target?: Intersection[]): Intersection[];
update(renderer: THREE.WebGLRenderer, camera: Camera, modelScene: ModelScene, model: Model): boolean;
dispose(): void;
/**
* @deprecated
* use this.parent instead.
*/
get model(): Model | null;
/**
* @deprecated
* it's self
*/
get scene(): this;
/**
* @deprecated
* it's self
*/
get viewLayer(): this;
localToEnu(vector: THREE.Vector3): THREE.Vector3;
enuToLocal(vector: THREE.Vector3): THREE.Vector3;
enuToEcef(vector: THREE.Vector3): THREE.Vector3;
ecefToEnu(vector: THREE.Vector3): THREE.Vector3;
localToEcef(vector: THREE.Vector3): THREE.Vector3;
ecefToLocal(vector: THREE.Vector3): THREE.Vector3;
localToLla(vector: THREE.Vector3): THREE.Vector3;
llaToLocal(vector: THREE.Vector3): THREE.Vector3;
worldToEnu(vector: THREE.Vector3): THREE.Vector3;
enuToWorld(vector: THREE.Vector3): THREE.Vector3;
worldToEcef(vector: THREE.Vector3): THREE.Vector3;
ecefToWorld(vector: THREE.Vector3): THREE.Vector3;
worldToLla(vector: THREE.Vector3): THREE.Vector3;
llaToWorld(vector: THREE.Vector3): THREE.Vector3;
/**
* @deprecated
* 使用 localToLla(new THREE.Vector()) 替代
*/
get coordinates(): string;
/**
* @deprecated
* 使用 coordinateSystem 替代
*/
getTransformMatrix4(target?: THREE.Matrix4): THREE.Matrix4;
/**
* @deprecated
* 使用 llaToWorld 替代
*/
coordinatesToWorldPoint(coordinates: {
longitude: number;
latitude: number;
altitude: number;
}): THREE.Vector3;
/**
* @deprecated
* 使用 llaToWorld 替代
*/
worldPointToCoordinates(point: THREE.Vector3): {
longitude: number;
latitude: number;
altitude: number;
};
/**
* @deprecated
* Use `.parameter.reset('brightness')` instead
*/
resetBrightness(): void;
/**
* @deprecated
* use `.parameter.minLevelOfDetail` `.parameter.set('minLevelOfDetail', minLevelOfDetail)` instend
*/
get minLevelOfDetail(): number;
set minLevelOfDetail(value: number);
/**
* @deprecated
* use `.parameter.maxLevelOfDetail` `.parameter.set('maxLevelOfDetail', maxLevelOfDetail)` instend
*/
get maxLevelOfDetail(): number;
set maxLevelOfDetail(value: number);
/**
* @deprecated
* use `.parameter.minGeometricError` `.parameter.set('minGeometricError', minGeometricError)` instend
*/
get minGeometricError(): number;
set minGeometricError(value: number);
/**
* @deprecated
* use `.parameter.maxGeometricError` `.parameter.set('maxGeometricError', maxGeometricError)` instend
*/
get maxGeometricError(): number;
set maxGeometricError(value: number);
/**
* @deprecated
* use `.parameter.panoramaMinGeometricError` `.parameter.set('panoramaMinGeometricError', panoramaMinGeometricError)` instend
*/
get panoramaMinGeometricError(): number;
set panoramaMinGeometricError(value: number);
/**
* @deprecated
* use `.parameter.skipLevelOfDetail` `.parameter.set('skipLevelOfDetail', skipLevelOfDetail)` instend
*/
get skipLevelOfDetail(): boolean;
set skipLevelOfDetail(value: boolean);
/**
* @deprecated
* use `.parameter.mostDetail` `.parameter.set('mostDetail', mostDetail)` instend
*/
get mostDetail(): boolean;
set mostDetail(value: boolean);
/**
* @deprecated
* use `.parameter.loadSiblings` `.parameter.set('loadSiblings', loadSiblings)` instend
*/
get loadSiblings(): boolean;
set loadSiblings(value: boolean);
/**
* @deprecated
* use `.parameter.maxMemoryUsage` `.parameter.set('maxMemoryUsage', maxMemoryUsage)` instend
*/
get maxMemoryUsage(): number;
set maxMemoryUsage(value: number);
/**
* @deprecated
* use `.parameter.maxRequests` `.parameter.set('maxRequests', maxRequests)` instend
*/
get maxRequests(): number;
set maxRequests(value: number);
/**
* @deprecated
* use `.parameter.requestOrder` `.parameter.set('requestOrder', requestOrder)` instend
*/
get requestOrder(): import("./types").TileRequestOrder;
set requestOrder(value: import("./types").TileRequestOrder);
/**
* @deprecated
* use `.parameter.maxScreenSpaceError` `.parameter.set('maxScreenSpaceError', maxScreenSpaceError)` instend
*/
get maxScreenSpaceError(): number;
set maxScreenSpaceError(value: number);
}