{
  "version": 3,
  "sources": ["index.js", "potree-loader.js", "parsers/parse-potree-hierarchy-chunk.js", "potree-hierarchy-chunk-loader.js", "parsers/parse-potree-bin.js", "potree-bin-loader.js", "lib/potree-node-source.js", "utils/parse-version.js", "potree-source.js"],
  "sourcesContent": ["export { PotreeLoader } from \"./potree-loader.js\";\nexport { PotreeHierarchyChunkLoader } from \"./potree-hierarchy-chunk-loader.js\";\nexport { PotreeBinLoader } from \"./potree-bin-loader.js\";\nexport { PotreeSource } from \"./potree-source.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.2\" !== 'undefined' ? \"4.3.2\" : 'latest';\n/** Potree loader */\nexport const PotreeLoader = {\n    dataType: null,\n    batchType: null,\n    name: 'potree metadata',\n    id: 'potree',\n    module: 'potree',\n    version: VERSION,\n    extensions: ['js'],\n    mimeTypes: ['application/json'],\n    testText: (text) => text.indexOf('octreeDir') >= 0,\n    parse: (data) => JSON.parse(new TextDecoder().decode(data)),\n    parseTextSync: (text) => JSON.parse(text),\n    options: {\n        potree: {}\n    }\n};\n", "// This file is derived from the Cesium code base under BSD 2-clause license\n// See LICENSE.md and https://github.com/potree/potree/blob/develop/LICENSE\n/**\n * load hierarchy\n * @param arrayBuffer - binary index data\n * @returns root node\n **/\nexport function parsePotreeHierarchyChunk(arrayBuffer) {\n    const tileHeaders = parseBinaryChunk(arrayBuffer);\n    return buildHierarchy(tileHeaders);\n}\n/**\n * Parses the binary rows\n * @param arrayBuffer - binary index data to parse\n * @param byteOffset - byte offset to start from\n * @returns flat nodes array\n * */\nfunction parseBinaryChunk(arrayBuffer, byteOffset = 0) {\n    const dataView = new DataView(arrayBuffer);\n    const stack = [];\n    // Get root mask\n    // @ts-expect-error\n    const topTileHeader = {};\n    byteOffset = decodeRow(dataView, byteOffset, topTileHeader);\n    stack.push(topTileHeader);\n    const tileHeaders = [topTileHeader];\n    while (stack.length > 0) {\n        const snode = stack.shift();\n        let mask = 1;\n        for (let i = 0; i < 8; i++) {\n            if (snode && (snode.header.childMask & mask) !== 0) {\n                // @ts-expect-error\n                const tileHeader = {};\n                byteOffset = decodeRow(dataView, byteOffset, tileHeader);\n                tileHeader.name = snode.name + i;\n                stack.push(tileHeader);\n                tileHeaders.push(tileHeader);\n                snode.header.childCount++;\n            }\n            mask = mask * 2;\n        }\n        if (byteOffset === dataView.byteLength) {\n            break;\n        }\n    }\n    return tileHeaders;\n}\n/**\n * Reads next row from binary index file\n * @param dataView - index data\n * @param byteOffset - current offset in the index data\n * @param tileHeader - container to read to\n * @returns new offset\n */\nfunction decodeRow(dataView, byteOffset, tileHeader) {\n    tileHeader.header = tileHeader.header || {};\n    tileHeader.header.childMask = dataView.getUint8(byteOffset);\n    tileHeader.header.childCount = 0;\n    tileHeader.pointCount = dataView.getUint32(byteOffset + 1, true);\n    tileHeader.name = '';\n    byteOffset += 5;\n    return byteOffset;\n}\n/** Resolves the binary rows into a hierarchy (tree structure) */\nfunction buildHierarchy(flatNodes, options = {}) {\n    const DEFAULT_OPTIONS = { spacing: 100 }; // TODO assert instead of default?\n    options = { ...DEFAULT_OPTIONS, ...options };\n    const topNode = flatNodes[0];\n    const nodes = {};\n    for (const node of flatNodes) {\n        const { name } = node;\n        const index = parseInt(name.charAt(name.length - 1), 10);\n        const parentName = name.substring(0, name.length - 1);\n        const parentNode = nodes[parentName];\n        const level = name.length - 1;\n        // assert(parentNode && level >= 0);\n        node.level = level;\n        node.hasChildren = Boolean(node.header.childCount);\n        node.children = [];\n        node.childrenByIndex = new Array(8).fill(null);\n        node.spacing = (options?.spacing || 0) / Math.pow(2, level);\n        // tileHeader.boundingVolume = Utils.createChildAABB(parentNode.boundingBox, index);\n        if (parentNode) {\n            parentNode.children.push(node);\n            parentNode.childrenByIndex[index] = node;\n        }\n        // Add the node to the map\n        nodes[name] = node;\n    }\n    // First node is the root\n    return topNode;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\nimport { parsePotreeHierarchyChunk } from \"./parsers/parse-potree-hierarchy-chunk.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.2\" !== 'undefined' ? \"4.3.2\" : 'latest';\n/** Potree hierarchy chunk loader */\nexport const PotreeHierarchyChunkLoader = {\n    dataType: null,\n    batchType: null,\n    name: 'potree Hierarchy Chunk',\n    id: 'potree-hrc',\n    module: 'potree',\n    version: VERSION,\n    extensions: ['hrc'],\n    mimeTypes: ['application/octet-stream'],\n    // binary potree files have no header bytes, no content test function possible\n    // test: ['...'],\n    parse: async (arrayBuffer, options) => parsePotreeHierarchyChunk(arrayBuffer),\n    parseSync: (arrayBuffer, options) => parsePotreeHierarchyChunk(arrayBuffer),\n    options: {\n        potree: {}\n    },\n    binary: true\n};\n", "export function parsePotreeBin(arrayBuffer, byteOffset, options, index) {\n    return null;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright vis.gl contributors\nimport { parsePotreeBin } from \"./parsers/parse-potree-bin.js\";\n/**\n * Loader for potree Binary Point Attributes\n * */\nexport const PotreeBinLoader = {\n    dataType: null,\n    batchType: null,\n    name: 'potree Binary Point Attributes',\n    id: 'potree',\n    extensions: ['bin'],\n    mimeTypes: ['application/octet-stream'],\n    // Unfortunately binary potree files have no header bytes, no test possible\n    // test: ['...'],\n    parseSync,\n    binary: true,\n    options: {}\n    // @ts-ignore\n};\nfunction parseSync(arrayBuffer, options) {\n    const index = {};\n    const byteOffset = 0;\n    parsePotreeBin(arrayBuffer, byteOffset, options, index);\n    return index;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { load } from '@loaders.gl/core';\nimport { DataSource, resolvePath } from '@loaders.gl/loader-utils';\nimport { LASLoader } from '@loaders.gl/las';\nimport { PotreeHierarchyChunkLoader } from \"../potree-hierarchy-chunk-loader.js\";\nimport { PotreeLoader } from \"../potree-loader.js\";\nimport { parseVersion } from \"../utils/parse-version.js\";\n/**\n * A Potree data source\n * @version 1.0 - https://github.com/potree/potree/blob/1.0RC/docs/file_format.md\n * @version 1.7 - https://github.com/potree/potree/blob/1.7/docs/potree-file-format.md\n * @note Point cloud nodes tile source\n */\nexport class PotreeNodesSource extends DataSource {\n    /** Dataset base URL */\n    baseUrl = '';\n    /** Input data: string - dataset url, blob - single file data */\n    data;\n    /** Input props */\n    props;\n    /** Meta information from `cloud.js` */\n    metadata = null;\n    /** Root node */\n    root = null;\n    /** Is data source ready to use after initial loading */\n    isReady = false;\n    initPromise = null;\n    /**\n     * @constructor\n     * @param data  - if string - data set path url or path to `cloud.js` metadata file\n     *              - if Blob - single file data\n     * @param props - data source properties\n     */\n    constructor(data, props) {\n        super(props);\n        this.props = props;\n        this.data = data;\n        this.makeBaseUrl(this.data);\n        this.initPromise = this.init();\n    }\n    /** Initial data source loading */\n    async init() {\n        if (this.initPromise) {\n            await this.initPromise;\n            return;\n        }\n        this.metadata = await load(`${this.baseUrl}/cloud.js`, PotreeLoader);\n        await this.loadHierarchy();\n        this.isReady = true;\n    }\n    /** Is data set supported */\n    isSupported() {\n        const { minor, major } = parseVersion(this.metadata?.version ?? '');\n        return (this.isReady &&\n            major === 1 &&\n            minor <= 8 &&\n            typeof this.metadata?.pointAttributes === 'string' &&\n            ['LAS', 'LAZ'].includes(this.metadata?.pointAttributes));\n    }\n    /** Get content files extension */\n    getContentExtension() {\n        if (!this.isReady) {\n            return null;\n        }\n        switch (this.metadata?.pointAttributes) {\n            case 'LAS':\n                return 'las';\n            case 'LAZ':\n                return 'laz';\n            default:\n                return 'bin';\n        }\n    }\n    /**\n     * Load octree node content\n     * @param path array of numbers between 0-7 specifying successive octree divisions.\n     * @return node content geometry or null if the node doesn't exist\n     */\n    async loadNodeContent(path) {\n        await this.initPromise;\n        if (!this.isSupported()) {\n            return null;\n        }\n        const isAvailable = await this.isNodeAvailable(path);\n        if (isAvailable) {\n            return load(`${this.baseUrl}/${this.metadata?.octreeDir}/r/r${path.join('')}.${this.getContentExtension()}`, LASLoader);\n        }\n        return null;\n    }\n    /**\n     * Check if a node exists in the octree\n     * @param path array of numbers between 0-7 specifying successive octree divisions\n     * @returns true - the node does exist, false - the nodes doesn't exist\n     */\n    async isNodeAvailable(path) {\n        if (this.metadata?.hierarchy) {\n            return this.metadata.hierarchy.findIndex((item) => item[0] === `r${path.join()}`) !== -1;\n        }\n        if (!this.root) {\n            return false;\n        }\n        let currentParent = this.root;\n        let name = '';\n        let result = true;\n        for (const nodeLevel of path) {\n            const newName = `${name}${nodeLevel}`;\n            const node = currentParent.children.find((child) => child.name === newName);\n            if (node) {\n                currentParent = node;\n                name = newName;\n            }\n            else {\n                result = false;\n                break;\n            }\n        }\n        return result;\n    }\n    /**\n     * Load data source hierarchy into tree of available nodes\n     */\n    async loadHierarchy() {\n        this.root = await load(`${this.baseUrl}/${this.metadata?.octreeDir}/r/r.hrc`, PotreeHierarchyChunkLoader);\n    }\n    /**\n     * Deduce base url from the input url sring\n     * @param data - data source input data\n     */\n    makeBaseUrl(data) {\n        this.baseUrl = typeof data === 'string' ? resolvePath(data) : '';\n        if (this.baseUrl.endsWith('cloud.js')) {\n            this.baseUrl = this.baseUrl.substring(0, -8);\n        }\n        if (this.baseUrl.endsWith('/')) {\n            this.baseUrl = this.baseUrl.substring(0, -1);\n        }\n    }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport function parseVersion(version) {\n    const parts = version.split('.').map(Number);\n    return { major: parts[0], minor: parts[1] };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { PotreeNodesSource } from \"./lib/potree-node-source.js\";\nconst VERSION = '1.7';\n/**\n * Creates point cloud data sources for Potree urls\n */\nexport const PotreeSource = {\n    name: 'Potree',\n    id: 'potree',\n    module: 'potree',\n    version: VERSION,\n    extensions: ['bin', 'las', 'laz'],\n    mimeTypes: ['application/octet-stream'],\n    options: { url: undefined, potree: {} },\n    type: 'potree',\n    fromUrl: true,\n    fromBlob: true,\n    testURL: (url) => url.endsWith('.js'),\n    createDataSource: (url, props) => new PotreeNodesSource(url, props)\n};\n"],
  "mappings": "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",
  "names": ["VERSION", "VERSION"]
}
