@deepgis/quantized-mesh-decoder
Version:
Decoder for the Quantized Mesh 1.0 format
108 lines (106 loc) • 4.62 kB
TypeScript
interface Header {
centerX?: number;
centerY?: number;
centerZ?: number;
minHeight?: number;
maxHeight?: number;
boundingSphereCenterX?: number;
boundingSphereCenterY?: number;
boundingSphereCenterZ?: number;
boundingSphereRadius?: number;
horizonOcclusionPointX?: number;
horizonOcclusionPointY?: number;
horizonOcclusionPointZ?: number;
}
type HeaderKeys = keyof Header;
declare const QUANTIZED_MESH_HEADER: Map<keyof Header, number>;
type TileDataView = DataView<ArrayBufferLike>;
declare function decodeZigZag(value: number): number;
declare function decodeHeader(dataView: TileDataView): {
header: Header;
headerEndPosition: number;
};
declare function decodeVertexData(dataView: TileDataView, headerEndPosition: number): {
vertexData: Uint16Array<ArrayBuffer>;
vertexDataEndPosition: number;
};
declare function decodeIndex(buffer: ArrayBufferLike, position: number, indicesCount: number, bytesPerIndex: number, encoded?: boolean): Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
declare function decodeTriangleIndices(dataView: TileDataView, vertexData: Uint16Array<ArrayBuffer>, vertexDataEndPosition: number): {
triangleIndicesEndPosition: number;
triangleIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
};
declare function decodeEdgeIndices(dataView: TileDataView, vertexData: Uint16Array<ArrayBuffer>, triangleIndicesEndPosition: number): {
edgeIndicesEndPosition: number;
westIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
southIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
eastIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
northIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
};
declare function decodeVertexNormalsExtension(extensionDataView: TileDataView): Uint8Array<ArrayBufferLike>;
declare function decodeWaterMaskExtension(extensionDataView: TileDataView): ArrayBuffer;
declare function decodeMetadataExtension(extensionDataView: TileDataView): any;
declare function decodeExtensions(dataView: TileDataView, indicesEndPosition: number): {
extensions: {
[key: string]: any;
};
extensionsEndPosition: number;
};
declare const DECODING_STEPS: {
header: number;
vertices: number;
triangleIndices: number;
edgeIndices: number;
extensions: number;
};
declare function decode(data: ArrayBufferLike, userOptions?: {
maxDecodingStep?: number;
}): {
header: Header;
vertexData?: undefined;
triangleIndices?: undefined;
westIndices?: undefined;
northIndices?: undefined;
eastIndices?: undefined;
southIndices?: undefined;
extensions?: undefined;
} | {
header: Header;
vertexData: Uint16Array<ArrayBuffer>;
triangleIndices?: undefined;
westIndices?: undefined;
northIndices?: undefined;
eastIndices?: undefined;
southIndices?: undefined;
extensions?: undefined;
} | {
header: Header;
vertexData: Uint16Array<ArrayBuffer>;
triangleIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
westIndices?: undefined;
northIndices?: undefined;
eastIndices?: undefined;
southIndices?: undefined;
extensions?: undefined;
} | {
header: Header;
vertexData: Uint16Array<ArrayBuffer>;
triangleIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
westIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
northIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
eastIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
southIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
extensions?: undefined;
} | {
header: Header;
vertexData: Uint16Array<ArrayBuffer>;
triangleIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
westIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
northIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
eastIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
southIndices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
extensions: {
[key: string]: any;
};
};
export { DECODING_STEPS, QUANTIZED_MESH_HEADER, decode, decodeEdgeIndices, decodeExtensions, decodeHeader, decodeIndex, decodeMetadataExtension, decodeTriangleIndices, decodeVertexData, decodeVertexNormalsExtension, decodeWaterMaskExtension, decodeZigZag };
export type { Header, HeaderKeys, TileDataView };