UNPKG

@loaders.gl/potree

Version:

potree loaders for large point clouds.

95 lines (90 loc) 2.81 kB
// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors /** Bounding box */ export interface PotreeBoundingBox { /** Min X */ lx: number; /** Min Y */ ly: number; /** Min Z */ lz: number; /** Max X */ ux: number; /** Max Y */ uy: number; /** Max Z */ uz: number; } /** Attribute types for *.bin content */ export type PotreeAttribute = /** 3 (uint32) numbers: x, y, z */ | 'POSITION_CARTESIAN' /** 4 x (uint8) numbers for the color: r, g, b, a */ | 'RGBA_PACKED' /** 4 x (uint8) numbers for the color: r, g, b, a */ | 'COLOR_PACKED' /** 3 x (uint8) numbers for the color: r, g, b */ | 'RGB_PACKED' /** 3 x (float) numbers: x', y', z' */ | 'NORMAL_FLOATS' /** (uint8) number */ | 'FILLER_1B' /** (uint16) number specifying the point's intensity */ | 'INTENSITY' /** (uint8) id for the class used */ | 'CLASSIFICATION' /** Note: might need to be revisited, best don't use */ | 'NORMAL_SPHEREMAPPED' /** Note: might need to be revisited, best don't use */ | 'NORMAL_OCT16' /** 3 x (float) numbers: x', y', z' */ | 'NORMAL'; /** Hierarchy item: [node name leading with 'r', points count * @example [r043, 145] ] */ export type HierarchyItem = [string, number]; /** * Potree data set format metadata (cloud.js) * @version 1.7 * @link https://github.com/potree/potree/blob/1.7/docs/potree-file-format.md * */ export interface PotreeMetadata { /** Version number in which this file is written */ version: string; /** Folder that is used to load additional data */ octreeDir: string; /** Amount of points contained in the whole pointcloud data */ points: number; /** * This parameter is used to transform the point data * to the projection system used while visualizing the points. It has to be * in a format that is parsable by [proj.4][proj4]. * */ projection: string; /** Bounding box of the world used to limit the initial POV. */ boundingBox: PotreeBoundingBox; /** Bounding box of the actual points in the data */ tightBoundingBox: PotreeBoundingBox; /** Description of point attributes in data files */ pointAttributes: 'LAS' | 'LAZ' | PotreeAttribute[]; /** * Space between points at the root node. * This value is halved at each octree level. * */ spacing: number; /** * Scale applied to convert POSITION_CARTESIAN components * from uint32 values to floating point values. The full transformation * to world coordinates is * position = (POSITION_CARTESIAN * scale) + boundingBox.min * */ scale: number; /** Amount of Octree levels before a new folder hierarchy is expected. */ hierarchyStepSize: number; /** * The hierarchy of files, now loaded through index files. * @deprecated * */ hierarchy: HierarchyItem[]; }