123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- import { LoadingManager } from 'three';
- import { Material } from 'three';
- import { Object3D } from 'three';
- import { Shader } from 'three';
- import { Stats } from '@probe.gl/stats';
- import { Tileset3D } from '@loaders.gl/tiles';
- import { Vector3 } from 'three';
- import { WebGLRenderer } from 'three';
- /** Container object for interfacing with lat/long/height coordinates */
- export declare interface GeoCoord {
- long: number;
- lat: number;
- height: number;
- }
- export declare enum GeoTransform {
- Reset = 1,
- Mercator = 2,
- WGS84Cartesian = 3
- }
- /** 3D Tiles Loader */
- export declare class Loader3DTiles {
- /**
- * Loads a tileset of 3D Tiles according to the given {@link LoaderProps}
- * @public
- *
- * @param props - Properties for this load call {@link LoaderProps}.
- * @returns An object containing the 3D Model to be added to the scene
- * and a runtime engine to be updated every frame.
- */
- static load(props: LoaderProps): Promise<{
- model: Object3D;
- runtime: Runtime;
- }>;
- }
- /** Advanced loader options */
- export declare interface LoaderOptions {
- /** A Cesium ION access token when loading tilesets from Cesium ION. */
- cesiumIONToken?: string;
- /** Whether to check if the tileset was transformed, set to `true` if the model is changes position in runtime. Default: `true` */
- updateTransforms?: boolean;
- /** Interval in seconds for the traverser to check in an update is needed - Default: `0.1`. */
- updateInterval?: number;
- /** Maximum GPU memory (MB) to use for displaying tiles. May go over the limit if tiles within the camera viewport exceed that ammount - Default: `32`. */
- maximumMemoryUsage?: number;
- /** determines the distance from tiles in which they are refined, depending on their geometrical size. increase the value to load lower lod tiles from the same view distance (increases performnace) - default: `16`.*/
- maximumScreenSpaceError?: number;
- /** 0-1 scale for the LOD quality. A lower value loads tiles from lower LODs (increases performance). */
- viewDistanceScale?: number;
- /** Maximum worker thread concurrency when processing DRACO-compressed tiles - Default: `1` worker. */
- maxConcurrency?: number;
- /** Whether to use workers when processing DRACO-compressed tiles - Default: `true`. */
- worker?: boolean;
- /** Whether to throttle network requests so that tiles got out of the frame before the request launched, would not be requested - Default: `true` */
- throttleRequests?: boolean;
- /** When thorttling requests, how many requests can launch simultaneously - Default: `64` */
- maxRequests?: number;
- /** _EXPERIMENTAL_: Skip traversal mechanism, not yet supported. Default: `false` */
- skipLevelOfDetail?: boolean;
- /** When viewing b3dm (mesh) tiles, which type of {@link Shading} is used - Default: `Shading.FlatTexture` */
- shading?: Shading;
- /** Whether to set the material as transparent - Default: `false` */
- transparent?: boolean;
- /** Apply a custom material, supports both b3dm (mesh) tiles and Point Cloud tiles - Default: `undefined` **/
- material?: Material;
- /** When viewing b3dm (mesh) tiles, a callback to update shader uniforms - Default: `undefined` */
- shaderCallback?: (shader: Shader, renderer: WebGLRenderer) => void;
- /** When viewing b3dm (mesh) tiles, show meshes as wireframe - Default: `false`. */
- wireframe?: boolean;
- /** When viewing b3dm (mesh) tiles, compute the vertex normals - Default: `false`. */
- computeNormals?: boolean;
- /** When viewing Point Cloud tiles, how should the points be colored ({@link PointCloudColoring}) - Default: `PointCloudColoring.White` */
- pointCloudColoring?: PointCloudColoring;
- /** Point size for Point Cloud tiles - Default: `1.0` */
- pointSize?: number;
- /** Debug mode: Show tile bounding boxes. Make sure to add the boxes to the scene from {@link Runtime.getTileBoxes} - Default: `false` */
- debug?: boolean;
- /** A path to that contains the basis universal library. e.g: `https://unpkg.com/three@0.129.0/examples/js/libs/basis` - Default: `undefined` */
- basisTranscoderPath?: string;
- /** A path to that contains the draco library. e.g: `https://unpkg.com/three@0.129.0/examples/js/libs/draco` - Default: `undefined` */
- dracoDecoderPath?: string;
- /** How to handle geo transformations: Reset any geo location and place the model at (0,0,0), Apply Mercator projection (for use with ccommon 2D mapping applications, or convert WGS84 long/lat to 3D cartesian coordinates)- Default: `Reset` */
- geoTransform?: GeoTransform;
- /** When using a three.js loading manager, do not call `onLoad` until this number of tiles were loaded - Default: `undefined` */
- preloadTilesCount?: number;
- }
- /** Properties for loading a tileset */
- export declare interface LoaderProps {
- /** The URL of the tileset. For example if using Cesium ION,
- * it would have the form: `https://assets.cesium.com/[ASSET_ID]/tileset.json`.
- */
- url: string;
- /** Required when using compressed textures (basis universal) for GPU feature detection. */
- renderer?: WebGLRenderer;
- /** Advanced options for loading the tileset ({@link LoaderOptions}) */
- options?: LoaderOptions;
- /** a loading progress callback function */
- onProgress?(progress: number | ProgressEvent<EventTarget>, total?: number): void;
- /** Use a Three JS loading manager */
- loadingManager?: LoadingManager;
- }
- /** Types of coloring used when viewing point cloud tiles */
- export declare enum PointCloudColoring {
- Intensity = 1,
- Classification = 2,
- Elevation = 3,
- RGB = 4,
- White = 5
- }
- /** Runtime methods that can be used once a tileset is loaded */
- export declare interface Runtime {
- /**
- * Get a reference to the loaders.gl {@link https://github.com/visgl/loaders.gl/blob/master/modules/tiles/docs/api-reference/tileset-3d.md | Tileset3D} object.
- *
- * @returns {@link https://github.com/visgl/loaders.gl/blob/master/modules/tiles/docs/api-reference/tileset-3d.md | Tileset3D}
- */
- getTileset(): Tileset3D;
- /**
- * Get a reference to the probe.gl {@link https://github.com/uber-web/probe.gl/blob/master/docs/api-reference/stats/stats.md | Stats} object.
- * @returns {@link https://github.com/uber-web/probe.gl/blob/master/docs/api-reference/stats/stats.md | Stats}
- */
- getStats(): Stats;
- /** Get the tile bounding boxes group when `debug: true` is set. */
- getTileBoxes(): Object3D;
- /** Show or hide the tile bounding boxes. */
- showTiles(boolean: any): void;
- /** Enable or disable wireframe mode. */
- setWireframe(boolean: any): void;
- /** Enable or disable deubg mode. */
- setDebug(boolean: any): void;
- /** Set the current shading mode for b3dm tiles. See {@link Shading}. */
- setShading(Shading: any): void;
- /** Set the current view distance scale. See {@link LoaderOptions} */
- setViewDistanceScale(number: any): void;
- /** In point clouds wher the points are classified as `Ground`, hide the ground level points - Default: `false`.*/
- setHideGround(boolean: any): void;
- /** In point clouds set the type of coloring used. See {@link PointCloudColoring} */
- setPointCloudColoring(PointCloudColoring: any): void;
- /** In point clouds when coloring by `PointCloudColoring.Elevation`, set the min/max elevation values - Default: `[0, 400]`. */
- setElevationRange(range: ReadonlyArray<number>): void;
- /** In point clouds when coloring by `PointCloudColoring.Intensity`, set the max intensity value - Default: `1.0` */
- setMaxIntensity(number: any): void;
- /** In point clouds when coloring by `PointCloudColoring.Intensity`, set the contrast factor. Default: `1.0`. */
- setIntensityContrast(number: any): void;
- /** In point clouds when, set the alpha value. Default: `1.0`. */
- setPointAlpha(number: any): void;
- /** When viewing a Geo-located tileset, get the {@link GeoCoord} value from a world-space `Vector3`. */
- getLatLongHeightFromPosition(Vector3: any): GeoCoord;
- /** When viewing a Geo-located tileset, world-space `Vector3` from a {@link GeoCoord}. */
- getPositionFromLatLongHeight(GeoCoord: any): Vector3;
- /** Get the current camera frustum as mesh planes (for debugging purposes). */
- getCameraFrustum(Camera: any): Object3D;
- /** Update the tileset for rendering. */
- update(number: any, WebGLRenderer: any, Camera: any): void;
- /** Dispose of all of the tileset's assets in memory. */
- dispose(): void;
- }
- /** Types of shading used when viewing b3dm (mesh) tiles */
- export declare enum Shading {
- FlatTexture = 1,
- ShadedTexture = 2,
- ShadedNoTexture = 3
- }
- export { }
|