@itwin/core-frontend
Version:
iTwin.js frontend components
67 lines • 2.63 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { ByteStream, Id64String } from "@itwin/core-bentley";
import { Point3d } from "@itwin/core-geometry";
import { IModelConnection } from "../../IModelConnection";
import { RenderGraphic } from "../../render/RenderGraphic";
import { RenderSystem } from "../../render/RenderSystem";
import { RealityTile } from "../../tile/internal";
/** Schema for the [3DTILES_draco_point_compression](https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_draco_point_compression) extension. */
interface DracoPointCloud {
byteLength: number;
byteOffset: number;
/** Each specifies the Id of a compressed attribute. */
properties: {
POSITION?: number;
RGB?: number;
RGBA?: number;
NORMAL?: number;
BATCH_ID?: number;
/** This is not in the spec but is present in sample data in Cesium's git repository. */
COLOR_0?: number;
};
}
interface BinaryBodyReference {
byteOffset: number;
}
/** [3D tiles specification section 10.3](https://docs.opengeospatial.org/cs/18-053r2/18-053r2.html#199).
* [JSON schema](https://github.com/CesiumGS/3d-tiles/blob/main/specification/schema/pnts.featureTable.schema.json).
*/
interface CommonPntsProps {
POINTS_LENGTH: number;
RTC_CENTER?: number[];
CONSTANT_RGBA?: number[];
RGB?: BinaryBodyReference;
RGBA?: BinaryBodyReference;
RGB565?: BinaryBodyReference;
extensions?: {
"3DTILES_draco_point_compression"?: DracoPointCloud;
};
NORMAL?: BinaryBodyReference;
NORMAL_OCT16P?: BinaryBodyReference;
BATCH_ID?: BinaryBodyReference;
BATCH_LENGTH?: number;
}
type QuantizedPntsProps = CommonPntsProps & {
POSITION_QUANTIZED: BinaryBodyReference;
QUANTIZED_VOLUME_OFFSET: number[];
QUANTIZED_VOLUME_SCALE: number[];
POSITION?: never;
};
type UnquantizedPntsProps = CommonPntsProps & {
POSITION: BinaryBodyReference;
POSITION_QUANTIZED?: never;
QUANTIZED_VOLUME_OFFSET?: never;
QUANTIZED_VOLUME_SCALE?: never;
};
type PntsProps = QuantizedPntsProps | UnquantizedPntsProps;
export declare function readPntsColors(stream: ByteStream, dataOffset: number, pnts: PntsProps): Uint8Array | undefined;
/** Deserialize a point cloud tile and return it as a RenderGraphic.
*/
export declare function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, tile: RealityTile, system: RenderSystem): Promise<{
graphic: RenderGraphic | undefined;
rtcCenter: Point3d | undefined;
}>;
export {};
//# sourceMappingURL=PntsReader.d.ts.map