@loaders.gl/potree
Version:
potree loaders for large point clouds.
93 lines • 3.36 kB
TypeScript
import type { PotreeSourceOptions } from "../potree-source.js";
import { Mesh } from '@loaders.gl/schema';
import { DataSource } from '@loaders.gl/loader-utils';
import { PotreeBoundingBox, PotreeMetadata } from "../types/potree-metadata.js";
import { POTreeNode } from "../parsers/parse-potree-hierarchy-chunk.js";
import { Proj4Projection } from '@math.gl/proj4';
import { LASMesh } from '@loaders.gl/las/src/lib/las-types';
export declare enum COORDINATE_SYSTEM {
/**
* `LNGLAT` if rendering into a geospatial viewport, `CARTESIAN` otherwise
*/
DEFAULT = -1,
/**
* Positions are interpreted as [lng, lat, elevation]
* lng lat are degrees, elevation is meters. distances as meters.
*/
LNGLAT = 1,
/**
* Positions are interpreted as meter offsets, distances as meters
*/
METER_OFFSETS = 2,
/**
* Positions are interpreted as lng lat offsets: [deltaLng, deltaLat, elevation]
* deltaLng, deltaLat are delta degrees, elevation is meters.
* distances as meters.
*/
LNGLAT_OFFSETS = 3,
/**
* Non-geospatial
*/
CARTESIAN = 0
}
export interface PotreeNodeMesh extends LASMesh {
cartographicOrigin: number[];
coordinateSystem: number;
}
/**
* A Potree data source
* @version 1.0 - @see https://github.com/potree/potree/blob/1.0RC/docs/file_format.md
* @version 1.7 - @see https://github.com/potree/potree/blob/1.7/docs/potree-file-format.md
* @note Point cloud nodes tile source
*/
export declare class PotreeNodesSource extends DataSource<string, PotreeSourceOptions> {
/** Dataset base URL */
baseUrl: string;
/** Meta information from `cloud.js` */
metadata: PotreeMetadata | null;
/** Root node */
root: POTreeNode | null;
/** Is data source ready to use after initial loading */
isReady: boolean;
/** local CRS to WGS84 projection */
projection: Proj4Projection | null;
/** The data set minimum bounding box */
boundingBox?: PotreeBoundingBox;
private initPromise;
/**
* @constructor
* @param data - if string - data set path url or path to `cloud.js` metadata file
* - if Blob - single file data
* @param options - data source properties
*/
constructor(data: string, options: PotreeSourceOptions);
/** Initial data source loading */
init(): Promise<void>;
/** Is data set supported */
isSupported(): boolean;
/** Get content files extension */
getContentExtension(): string | null;
/**
* Load octree node content
* @param nodeName name of a node, string of numbers in range 0..7
* @return node content geometry or null if the node doesn't exist
*/
loadNodeContent(nodeName: string): Promise<Mesh | null>;
/**
* Check if a node exists in the octree
* @param nodeName name of a node, string of numbers in range 0..7
* @returns true - the node does exist, false - the nodes doesn't exist
*/
isNodeAvailable(nodeName: string): Promise<boolean>;
/**
* Load data source hierarchy into tree of available nodes
*/
private loadHierarchy;
/**
* Deduce base url from the input url sring
* @param data - data source input data
*/
private makeBaseUrl;
private parseBoundingVolume;
}
//# sourceMappingURL=potree-node-source.d.ts.map