@deck.gl/geo-layers 8.6.4 → 8.7.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +9751 -6413
- package/dist/es5/great-circle-layer/great-circle-layer.js +26 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +149 -87
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +326 -230
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +17 -9
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +153 -132
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +46 -20
- package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/es5/mvt-layer/find-index-binary.js +45 -26
- package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +395 -280
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-geometry.js +43 -32
- package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +104 -69
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-utils.js +27 -28
- package/dist/es5/s2-layer/s2-utils.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +250 -208
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +384 -329
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-header.js +182 -118
- package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-traversal.js +176 -113
- package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +254 -213
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tile-layer/tileset-2d.js +519 -300
- package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
- package/dist/es5/tile-layer/utils.js +110 -61
- package/dist/es5/tile-layer/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +81 -44
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +2 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.js +2 -8
- package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/esm/mvt-layer/mvt-layer.js +27 -1
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/s2-layer/s2-utils.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js +8 -10
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +2 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/esm/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/esm/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/esm/tile-layer/tile-layer.js +8 -16
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tile-layer/tileset-2d.js +85 -79
- package/dist/esm/tile-layer/tileset-2d.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +12 -12
- package/src/h3-layers/h3-hexagon-layer.js +2 -1
- package/src/{index.js → index.ts} +2 -0
- package/src/mesh-layer/mesh-layer-vertex.glsl.js +24 -23
- package/src/mesh-layer/mesh-layer.js +5 -4
- package/src/mvt-layer/coordinate-transform.js +1 -1
- package/src/mvt-layer/mvt-layer.js +17 -1
- package/src/s2-layer/s2-utils.js +7 -1
- package/src/terrain-layer/terrain-layer.js +10 -9
- package/src/tile-3d-layer/tile-3d-layer.js +12 -9
- package/src/tile-layer/tile-2d-traversal.js +17 -3
- package/src/tile-layer/tile-layer.js +11 -12
- package/src/tile-layer/tileset-2d.js +103 -90
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tile-3d-layer/tile-3d-layer.js"],"names":["SINGLE_DATA","defaultProps","getPointColor","type","value","pointSize","data","loader","Tiles3DLoader","onTilesetLoad","tileset3d","compare","onTileLoad","tileHeader","onTileUnload","onTileError","tile","message","url","_getMeshColor","Tile3DLayer","CompositeLayer","initializeState","props","log","removed","state","layerMap","activeViewports","lastUpdatedViewports","isLoaded","shouldUpdateState","changeFlags","somethingChanged","updateState","oldProps","_loadTileset","viewportChanged","viewportsNumber","Object","keys","length","_updateTileset","propsChanged","key","needsUpdate","activateViewport","viewport","internalState","id","lastViewport","equals","setChangeFlags","setNeedsUpdate","getPickingInfo","info","sourceLayer","layerId","substr","substring","tileId","indexOf","object","filterSubLayer","layer","viewportId","selected","viewportIds","includes","_updateAutoHighlight","updateAutoHighlight","tilesetUrl","loadOptions","loaders","Array","isArray","options","preload","preloadOptions","headers","fetch","assign","tilesetJson","Tileset3D","_onTileLoad","bind","_onTileUnload","onTileLoadFail","setState","viewports","timeline","context","frameNumber","update","values","tilesetChanged","_getSubLayer","oldLayer","content","TILE_TYPE","POINTCLOUD","_makePointCloudLayer","SCENEGRAPH","_make3DModelLayer","MESH","_makeSimpleMeshLayer","Error","attributes","pointCount","constantRGBA","cartographicOrigin","modelMatrix","positions","normals","colors","header","vertexCount","POSITION","NORMAL","COLOR_0","SubLayerClass","getSubLayerClass","PointCloudLayer","getSubLayerProps","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","coordinateOrigin","getColor","_offset","gltf","instances","ScenegraphLayer","_lighting","scenegraph","getTransformMatrix","instance","getPosition","indices","material","featureIds","geometry","mesh","Geometry","drawMode","getMeshGeometry","_MeshLayer","pbrMaterial","renderLayers","tiles","map","layerCache","filter","Boolean","contentAttributes","Float32Array","texCoords","uvRegions","layerName"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Geometry} from '@luma.gl/core';\nimport {COORDINATE_SYSTEM, CompositeLayer} from '@deck.gl/core';\nimport {PointCloudLayer} from '@deck.gl/layers';\nimport {ScenegraphLayer} from '@deck.gl/mesh-layers';\nimport {default as _MeshLayer} from '../mesh-layer/mesh-layer';\nimport {log} from '@deck.gl/core';\n\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Tiles3DLoader} from '@loaders.gl/3d-tiles';\n\nconst SINGLE_DATA = [0];\n\nconst defaultProps = {\n getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},\n pointSize: 1.0,\n\n data: null,\n loader: Tiles3DLoader,\n\n onTilesetLoad: {type: 'function', value: tileset3d => {}, compare: false},\n onTileLoad: {type: 'function', value: tileHeader => {}, compare: false},\n onTileUnload: {type: 'function', value: tileHeader => {}, compare: false},\n onTileError: {type: 'function', value: (tile, message, url) => {}, compare: false},\n _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255], compare: false}\n};\n\nexport default class Tile3DLayer extends CompositeLayer {\n initializeState() {\n if ('onTileLoadFail' in this.props) {\n log.removed('onTileLoadFail', 'onTileError')();\n }\n // prop verification\n this.state = {\n layerMap: {},\n tileset3d: null,\n activeViewports: {},\n lastUpdatedViewports: null\n };\n }\n\n get isLoaded() {\n const {tileset3d} = this.state;\n return tileset3d && tileset3d.isLoaded();\n }\n\n shouldUpdateState({changeFlags}) {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, oldProps, changeFlags}) {\n if (props.data && props.data !== oldProps.data) {\n this._loadTileset(props.data);\n }\n\n if (changeFlags.viewportChanged) {\n const {activeViewports} = this.state;\n const viewportsNumber = Object.keys(activeViewports).length;\n if (viewportsNumber) {\n this._updateTileset(activeViewports);\n this.state.lastUpdatedViewports = activeViewports;\n this.state.activeViewports = {};\n }\n }\n if (changeFlags.propsChanged) {\n const {layerMap} = this.state;\n for (const key in layerMap) {\n layerMap[key].needsUpdate = true;\n }\n }\n }\n\n activateViewport(viewport) {\n const {activeViewports, lastUpdatedViewports} = this.state;\n this.internalState.viewport = viewport;\n\n activeViewports[viewport.id] = viewport;\n const lastViewport = lastUpdatedViewports?.[viewport.id];\n if (!lastViewport || !viewport.equals(lastViewport)) {\n this.setChangeFlags({viewportChanged: true});\n this.setNeedsUpdate();\n }\n }\n\n getPickingInfo({info, sourceLayer}) {\n const {layerMap} = this.state;\n const layerId = sourceLayer && sourceLayer.id;\n if (layerId) {\n // layerId: this.id-[scenegraph|pointcloud]-tileId\n const substr = layerId.substring(this.id.length + 1);\n const tileId = substr.substring(substr.indexOf('-') + 1);\n info.object = layerMap[tileId] && layerMap[tileId].tile;\n }\n\n return info;\n }\n\n filterSubLayer({layer, viewport}) {\n const {tile} = layer.props;\n const {id: viewportId} = viewport;\n return tile.selected && tile.viewportIds.includes(viewportId);\n }\n\n _updateAutoHighlight(info) {\n if (info.sourceLayer) {\n info.sourceLayer.updateAutoHighlight(info);\n }\n }\n\n async _loadTileset(tilesetUrl) {\n const {loadOptions = {}} = this.props;\n\n // TODO: deprecate `loader` in v9.0\n let loader = this.props.loader || this.props.loaders;\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n\n const options = {loadOptions: {...loadOptions}};\n if (loader.preload) {\n const preloadOptions = await loader.preload(tilesetUrl, loadOptions);\n\n if (preloadOptions.headers) {\n options.loadOptions.fetch = {\n ...options.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n }\n Object.assign(options, preloadOptions);\n }\n const tilesetJson = await load(tilesetUrl, loader, options.loadOptions);\n\n const tileset3d = new Tileset3D(tilesetJson, {\n onTileLoad: this._onTileLoad.bind(this),\n onTileUnload: this._onTileUnload.bind(this),\n onTileLoadFail: this.props.onTileError,\n ...options\n });\n\n this.setState({\n tileset3d,\n layerMap: {}\n });\n\n this._updateTileset(this.state.activeViewports);\n this.props.onTilesetLoad(tileset3d);\n }\n\n _onTileLoad(tileHeader) {\n const {lastUpdatedViewports} = this.state;\n this.props.onTileLoad(tileHeader);\n this._updateTileset(lastUpdatedViewports);\n this.setNeedsUpdate();\n }\n\n _onTileUnload(tileHeader) {\n // Was cleaned up from tileset cache. We no longer need to track it.\n delete this.state.layerMap[tileHeader.id];\n this.props.onTileUnload(tileHeader);\n }\n\n _updateTileset(viewports) {\n const {tileset3d} = this.state;\n const {timeline} = this.context;\n const viewportsNumber = Object.keys(viewports).length;\n if (!timeline || !viewportsNumber || !tileset3d) {\n return;\n }\n const frameNumber = tileset3d.update(Object.values(viewports));\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n if (tilesetChanged) {\n this.setState({frameNumber});\n }\n }\n\n _getSubLayer(tileHeader, oldLayer) {\n if (!tileHeader.content) {\n return null;\n }\n\n switch (tileHeader.type) {\n case TILE_TYPE.POINTCLOUD:\n return this._makePointCloudLayer(tileHeader, oldLayer);\n case TILE_TYPE.SCENEGRAPH:\n return this._make3DModelLayer(tileHeader, oldLayer);\n case TILE_TYPE.MESH:\n return this._makeSimpleMeshLayer(tileHeader, oldLayer);\n default:\n throw new Error(`Tile3DLayer: Failed to render layer of type ${tileHeader.content.type}`);\n }\n }\n\n _makePointCloudLayer(tileHeader, oldLayer) {\n const {\n attributes,\n pointCount,\n constantRGBA,\n cartographicOrigin,\n modelMatrix\n } = tileHeader.content;\n const {positions, normals, colors} = attributes;\n\n if (!positions) {\n return null;\n }\n const data = (oldLayer && oldLayer.props.data) || {\n header: {\n vertexCount: pointCount\n },\n attributes: {\n POSITION: positions,\n NORMAL: normals,\n COLOR_0: colors\n }\n };\n\n const {pointSize, getPointColor} = this.props;\n const SubLayerClass = this.getSubLayerClass('pointcloud', PointCloudLayer);\n return new SubLayerClass(\n {\n pointSize\n },\n this.getSubLayerProps({\n id: 'pointcloud'\n }),\n {\n id: `${this.id}-pointcloud-${tileHeader.id}`,\n tile: tileHeader,\n data,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getColor: constantRGBA || getPointColor,\n _offset: 0\n }\n );\n }\n\n _make3DModelLayer(tileHeader) {\n const {gltf, instances, cartographicOrigin, modelMatrix} = tileHeader.content;\n\n const SubLayerClass = this.getSubLayerClass('scenegraph', ScenegraphLayer);\n\n return new SubLayerClass(\n {\n _lighting: 'pbr'\n },\n this.getSubLayerProps({\n id: 'scenegraph'\n }),\n {\n id: `${this.id}-scenegraph-${tileHeader.id}`,\n tile: tileHeader,\n data: instances || SINGLE_DATA,\n scenegraph: gltf,\n\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getTransformMatrix: instance => instance.modelMatrix,\n getPosition: [0, 0, 0],\n _offset: 0\n }\n );\n }\n\n _makeSimpleMeshLayer(tileHeader, oldLayer) {\n const content = tileHeader.content;\n const {attributes, indices, modelMatrix, cartographicOrigin, material, featureIds} = content;\n const {_getMeshColor} = this.props;\n\n const geometry =\n (oldLayer && oldLayer.props.mesh) ||\n new Geometry({\n drawMode: GL.TRIANGLES,\n attributes: getMeshGeometry(attributes),\n indices\n });\n\n const SubLayerClass = this.getSubLayerClass('mesh', _MeshLayer);\n\n return new SubLayerClass(\n this.getSubLayerProps({\n id: 'mesh'\n }),\n {\n id: `${this.id}-mesh-${tileHeader.id}`,\n tile: tileHeader,\n mesh: geometry,\n data: SINGLE_DATA,\n getColor: _getMeshColor(tileHeader),\n pbrMaterial: material,\n modelMatrix,\n coordinateOrigin: cartographicOrigin,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n featureIds,\n _offset: 0\n }\n );\n }\n\n renderLayers() {\n const {tileset3d, layerMap} = this.state;\n if (!tileset3d) {\n return null;\n }\n\n return tileset3d.tiles\n .map(tile => {\n const layerCache = (layerMap[tile.id] = layerMap[tile.id] || {tile});\n let {layer} = layerCache;\n if (tile.selected) {\n // render selected tiles\n if (!layer) {\n // create layer\n layer = this._getSubLayer(tile);\n } else if (layerCache.needsUpdate) {\n // props have changed, rerender layer\n layer = this._getSubLayer(tile, layer);\n layerCache.needsUpdate = false;\n }\n }\n layerCache.layer = layer;\n return layer;\n })\n .filter(Boolean);\n }\n}\n\nfunction getMeshGeometry(contentAttributes) {\n const attributes = {};\n attributes.positions = {\n ...contentAttributes.positions,\n value: new Float32Array(contentAttributes.positions.value)\n };\n if (contentAttributes.normals) {\n attributes.normals = contentAttributes.normals;\n }\n if (contentAttributes.texCoords) {\n attributes.texCoords = contentAttributes.texCoords;\n }\n if (contentAttributes.colors) {\n attributes.colors = contentAttributes.colors;\n }\n if (contentAttributes.uvRegions) {\n attributes.uvRegions = contentAttributes.uvRegions;\n }\n return attributes;\n}\n\nTile3DLayer.layerName = 'Tile3DLayer';\nTile3DLayer.defaultProps = defaultProps;\n"],"file":"tile-3d-layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/tile-3d-layer/tile-3d-layer.js"],"names":["SINGLE_DATA","defaultProps","getPointColor","type","value","pointSize","data","loader","Tiles3DLoader","onTilesetLoad","tileset3d","compare","onTileLoad","tileHeader","onTileUnload","onTileError","tile","message","url","_getMeshColor","Tile3DLayer","props","log","removed","state","layerMap","activeViewports","lastUpdatedViewports","isLoaded","changeFlags","somethingChanged","oldProps","_loadTileset","viewportChanged","viewportsNumber","Object","keys","length","_updateTileset","propsChanged","key","needsUpdate","viewport","internalState","id","lastViewport","equals","setChangeFlags","setNeedsUpdate","info","sourceLayer","layerId","substr","substring","tileId","indexOf","object","layer","viewportId","selected","viewportIds","includes","updateAutoHighlight","tilesetUrl","loadOptions","loaders","Array","isArray","options","preload","preloadOptions","headers","fetch","assign","tilesetJson","Tileset3D","_onTileLoad","bind","_onTileUnload","onTileLoadFail","setState","viewports","timeline","context","frameNumber","update","values","tilesetChanged","oldLayer","content","TILE_TYPE","POINTCLOUD","_makePointCloudLayer","SCENEGRAPH","_make3DModelLayer","MESH","_makeSimpleMeshLayer","Error","attributes","pointCount","constantRGBA","cartographicOrigin","modelMatrix","positions","normals","colors","header","vertexCount","POSITION","NORMAL","COLOR_0","SubLayerClass","getSubLayerClass","PointCloudLayer","getSubLayerProps","coordinateSystem","COORDINATE_SYSTEM","METER_OFFSETS","coordinateOrigin","getColor","_offset","gltf","instances","ScenegraphLayer","_lighting","scenegraph","getTransformMatrix","instance","getPosition","indices","material","featureIds","geometry","mesh","Geometry","drawMode","getMeshGeometry","_MeshLayer","pbrMaterial","tiles","map","layerCache","_getSubLayer","filter","Boolean","CompositeLayer","contentAttributes","Float32Array","texCoords","uvRegions","layerName"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Geometry} from '@luma.gl/core';\nimport {COORDINATE_SYSTEM, CompositeLayer} from '@deck.gl/core';\nimport {PointCloudLayer} from '@deck.gl/layers';\nimport {ScenegraphLayer} from '@deck.gl/mesh-layers';\nimport {default as _MeshLayer} from '../mesh-layer/mesh-layer';\nimport {log} from '@deck.gl/core';\n\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Tiles3DLoader} from '@loaders.gl/3d-tiles';\n\nconst SINGLE_DATA = [0];\n\nconst defaultProps = {\n getPointColor: {type: 'accessor', value: [0, 0, 0, 255]},\n pointSize: 1.0,\n\n data: null,\n loader: Tiles3DLoader,\n\n onTilesetLoad: {type: 'function', value: tileset3d => {}, compare: false},\n onTileLoad: {type: 'function', value: tileHeader => {}, compare: false},\n onTileUnload: {type: 'function', value: tileHeader => {}, compare: false},\n onTileError: {type: 'function', value: (tile, message, url) => {}, compare: false},\n _getMeshColor: {type: 'function', value: tileHeader => [255, 255, 255], compare: false}\n};\n\nexport default class Tile3DLayer extends CompositeLayer {\n initializeState() {\n if ('onTileLoadFail' in this.props) {\n log.removed('onTileLoadFail', 'onTileError')();\n }\n // prop verification\n this.state = {\n layerMap: {},\n tileset3d: null,\n activeViewports: {},\n lastUpdatedViewports: null\n };\n }\n\n get isLoaded() {\n const {tileset3d} = this.state;\n return tileset3d && tileset3d.isLoaded();\n }\n\n shouldUpdateState({changeFlags}) {\n return changeFlags.somethingChanged;\n }\n\n updateState({props, oldProps, changeFlags}) {\n if (props.data && props.data !== oldProps.data) {\n this._loadTileset(props.data);\n }\n\n if (changeFlags.viewportChanged) {\n const {activeViewports} = this.state;\n const viewportsNumber = Object.keys(activeViewports).length;\n if (viewportsNumber) {\n this._updateTileset(activeViewports);\n this.state.lastUpdatedViewports = activeViewports;\n this.state.activeViewports = {};\n }\n }\n if (changeFlags.propsChanged) {\n const {layerMap} = this.state;\n for (const key in layerMap) {\n layerMap[key].needsUpdate = true;\n }\n }\n }\n\n activateViewport(viewport) {\n const {activeViewports, lastUpdatedViewports} = this.state;\n this.internalState.viewport = viewport;\n\n activeViewports[viewport.id] = viewport;\n const lastViewport = lastUpdatedViewports?.[viewport.id];\n if (!lastViewport || !viewport.equals(lastViewport)) {\n this.setChangeFlags({viewportChanged: true});\n this.setNeedsUpdate();\n }\n }\n\n getPickingInfo({info, sourceLayer}) {\n const {layerMap} = this.state;\n const layerId = sourceLayer && sourceLayer.id;\n if (layerId) {\n // layerId: this.id-[scenegraph|pointcloud]-tileId\n const substr = layerId.substring(this.id.length + 1);\n const tileId = substr.substring(substr.indexOf('-') + 1);\n info.object = layerMap[tileId] && layerMap[tileId].tile;\n }\n\n return info;\n }\n\n filterSubLayer({layer, viewport}) {\n const {tile} = layer.props;\n const {id: viewportId} = viewport;\n return tile.selected && tile.viewportIds.includes(viewportId);\n }\n\n _updateAutoHighlight(info) {\n if (info.sourceLayer) {\n info.sourceLayer.updateAutoHighlight(info);\n }\n }\n\n async _loadTileset(tilesetUrl) {\n const {loadOptions = {}} = this.props;\n\n // TODO: deprecate `loader` in v9.0\n let loader = this.props.loader || this.props.loaders;\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n\n const options = {loadOptions: {...loadOptions}};\n if (loader.preload) {\n const preloadOptions = await loader.preload(tilesetUrl, loadOptions);\n\n if (preloadOptions.headers) {\n options.loadOptions.fetch = {\n ...options.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n }\n Object.assign(options, preloadOptions);\n }\n const tilesetJson = await load(tilesetUrl, loader, options.loadOptions);\n\n const tileset3d = new Tileset3D(tilesetJson, {\n onTileLoad: this._onTileLoad.bind(this),\n onTileUnload: this._onTileUnload.bind(this),\n onTileLoadFail: this.props.onTileError,\n ...options\n });\n\n this.setState({\n tileset3d,\n layerMap: {}\n });\n\n this._updateTileset(this.state.activeViewports);\n this.props.onTilesetLoad(tileset3d);\n }\n\n _onTileLoad(tileHeader) {\n const {lastUpdatedViewports} = this.state;\n this.props.onTileLoad(tileHeader);\n this._updateTileset(lastUpdatedViewports);\n this.setNeedsUpdate();\n }\n\n _onTileUnload(tileHeader) {\n // Was cleaned up from tileset cache. We no longer need to track it.\n delete this.state.layerMap[tileHeader.id];\n this.props.onTileUnload(tileHeader);\n }\n\n _updateTileset(viewports) {\n const {tileset3d} = this.state;\n const {timeline} = this.context;\n const viewportsNumber = Object.keys(viewports).length;\n if (!timeline || !viewportsNumber || !tileset3d) {\n return;\n }\n const frameNumber = tileset3d.update(Object.values(viewports));\n const tilesetChanged = this.state.frameNumber !== frameNumber;\n if (tilesetChanged) {\n this.setState({frameNumber});\n }\n }\n\n _getSubLayer(tileHeader, oldLayer) {\n if (!tileHeader.content) {\n return null;\n }\n\n switch (tileHeader.type) {\n case TILE_TYPE.POINTCLOUD:\n return this._makePointCloudLayer(tileHeader, oldLayer);\n case TILE_TYPE.SCENEGRAPH:\n return this._make3DModelLayer(tileHeader, oldLayer);\n case TILE_TYPE.MESH:\n return this._makeSimpleMeshLayer(tileHeader, oldLayer);\n default:\n throw new Error(`Tile3DLayer: Failed to render layer of type ${tileHeader.content.type}`);\n }\n }\n\n _makePointCloudLayer(tileHeader, oldLayer) {\n const {attributes, pointCount, constantRGBA, cartographicOrigin, modelMatrix} =\n tileHeader.content;\n const {positions, normals, colors} = attributes;\n\n if (!positions) {\n return null;\n }\n const data = (oldLayer && oldLayer.props.data) || {\n header: {\n vertexCount: pointCount\n },\n attributes: {\n POSITION: positions,\n NORMAL: normals,\n COLOR_0: colors\n }\n };\n\n const {pointSize, getPointColor} = this.props;\n const SubLayerClass = this.getSubLayerClass('pointcloud', PointCloudLayer);\n return new SubLayerClass(\n {\n pointSize\n },\n this.getSubLayerProps({\n id: 'pointcloud'\n }),\n {\n id: `${this.id}-pointcloud-${tileHeader.id}`,\n tile: tileHeader,\n data,\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getColor: constantRGBA || getPointColor,\n _offset: 0\n }\n );\n }\n\n _make3DModelLayer(tileHeader) {\n const {gltf, instances, cartographicOrigin, modelMatrix} = tileHeader.content;\n\n const SubLayerClass = this.getSubLayerClass('scenegraph', ScenegraphLayer);\n\n return new SubLayerClass(\n {\n _lighting: 'pbr'\n },\n this.getSubLayerProps({\n id: 'scenegraph'\n }),\n {\n id: `${this.id}-scenegraph-${tileHeader.id}`,\n tile: tileHeader,\n data: instances || SINGLE_DATA,\n scenegraph: gltf,\n\n coordinateSystem: COORDINATE_SYSTEM.METER_OFFSETS,\n coordinateOrigin: cartographicOrigin,\n modelMatrix,\n getTransformMatrix: instance => instance.modelMatrix,\n getPosition: [0, 0, 0],\n _offset: 0\n }\n );\n }\n\n _makeSimpleMeshLayer(tileHeader, oldLayer) {\n const content = tileHeader.content;\n const {\n attributes,\n indices,\n modelMatrix,\n cartographicOrigin,\n coordinateSystem = COORDINATE_SYSTEM.METER_OFFSETS,\n material,\n featureIds\n } = content;\n const {_getMeshColor} = this.props;\n\n const geometry =\n (oldLayer && oldLayer.props.mesh) ||\n new Geometry({\n drawMode: GL.TRIANGLES,\n attributes: getMeshGeometry(attributes),\n indices\n });\n\n const SubLayerClass = this.getSubLayerClass('mesh', _MeshLayer);\n\n return new SubLayerClass(\n this.getSubLayerProps({\n id: 'mesh'\n }),\n {\n id: `${this.id}-mesh-${tileHeader.id}`,\n tile: tileHeader,\n mesh: geometry,\n data: SINGLE_DATA,\n getColor: _getMeshColor(tileHeader),\n pbrMaterial: material,\n modelMatrix,\n coordinateOrigin: cartographicOrigin,\n coordinateSystem,\n featureIds,\n _offset: 0\n }\n );\n }\n\n renderLayers() {\n const {tileset3d, layerMap} = this.state;\n if (!tileset3d) {\n return null;\n }\n\n return tileset3d.tiles\n .map(tile => {\n const layerCache = (layerMap[tile.id] = layerMap[tile.id] || {tile});\n let {layer} = layerCache;\n if (tile.selected) {\n // render selected tiles\n if (!layer) {\n // create layer\n layer = this._getSubLayer(tile);\n } else if (layerCache.needsUpdate) {\n // props have changed, rerender layer\n layer = this._getSubLayer(tile, layer);\n layerCache.needsUpdate = false;\n }\n }\n layerCache.layer = layer;\n return layer;\n })\n .filter(Boolean);\n }\n}\n\nfunction getMeshGeometry(contentAttributes) {\n const attributes = {};\n attributes.positions = {\n ...contentAttributes.positions,\n value: new Float32Array(contentAttributes.positions.value)\n };\n if (contentAttributes.normals) {\n attributes.normals = contentAttributes.normals;\n }\n if (contentAttributes.texCoords) {\n attributes.texCoords = contentAttributes.texCoords;\n }\n if (contentAttributes.colors) {\n attributes.colors = contentAttributes.colors;\n }\n if (contentAttributes.uvRegions) {\n attributes.uvRegions = contentAttributes.uvRegions;\n }\n return attributes;\n}\n\nTile3DLayer.layerName = 'Tile3DLayer';\nTile3DLayer.defaultProps = defaultProps;\n"],"file":"tile-3d-layer.js"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.default = void 0;
|
|
7
9
|
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
8
18
|
var _core = require("@deck.gl/core");
|
|
9
19
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
x,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
var Tile2DHeader = function () {
|
|
21
|
+
function Tile2DHeader(_ref) {
|
|
22
|
+
var x = _ref.x,
|
|
23
|
+
y = _ref.y,
|
|
24
|
+
z = _ref.z;
|
|
25
|
+
(0, _classCallCheck2.default)(this, Tile2DHeader);
|
|
16
26
|
this.x = x;
|
|
17
27
|
this.y = y;
|
|
18
28
|
this.z = z;
|
|
@@ -27,131 +37,185 @@ class Tile2DHeader {
|
|
|
27
37
|
this._needsReload = false;
|
|
28
38
|
}
|
|
29
39
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
get isLoaded() {
|
|
35
|
-
return this._isLoaded && !this._needsReload;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get isLoading() {
|
|
39
|
-
return Boolean(this._loader) && !this._isCancelled;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
get needsReload() {
|
|
43
|
-
return this._needsReload || this._isCancelled;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
get byteLength() {
|
|
47
|
-
const result = this.content ? this.content.byteLength : 0;
|
|
40
|
+
(0, _createClass2.default)(Tile2DHeader, [{
|
|
41
|
+
key: "data",
|
|
42
|
+
get: function get() {
|
|
43
|
+
var _this = this;
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
return this.isLoading ? this._loader.then(function () {
|
|
46
|
+
return _this.data;
|
|
47
|
+
}) : this.content;
|
|
51
48
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
async _loadData({
|
|
57
|
-
getData,
|
|
58
|
-
requestScheduler,
|
|
59
|
-
onLoad,
|
|
60
|
-
onError
|
|
61
|
-
}) {
|
|
62
|
-
const {
|
|
63
|
-
x,
|
|
64
|
-
y,
|
|
65
|
-
z,
|
|
66
|
-
bbox
|
|
67
|
-
} = this;
|
|
68
|
-
const loaderId = this._loaderId;
|
|
69
|
-
this._abortController = new AbortController();
|
|
70
|
-
const {
|
|
71
|
-
signal
|
|
72
|
-
} = this._abortController;
|
|
73
|
-
const requestToken = await requestScheduler.scheduleRequest(this, tile => {
|
|
74
|
-
return tile.isSelected ? 1 : -1;
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
if (!requestToken) {
|
|
78
|
-
this._isCancelled = true;
|
|
79
|
-
return;
|
|
49
|
+
}, {
|
|
50
|
+
key: "isLoaded",
|
|
51
|
+
get: function get() {
|
|
52
|
+
return this._isLoaded && !this._needsReload;
|
|
80
53
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return;
|
|
54
|
+
}, {
|
|
55
|
+
key: "isLoading",
|
|
56
|
+
get: function get() {
|
|
57
|
+
return Boolean(this._loader) && !this._isCancelled;
|
|
85
58
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
try {
|
|
91
|
-
tileData = await getData({
|
|
92
|
-
x,
|
|
93
|
-
y,
|
|
94
|
-
z,
|
|
95
|
-
bbox,
|
|
96
|
-
signal
|
|
97
|
-
});
|
|
98
|
-
} catch (err) {
|
|
99
|
-
error = err || true;
|
|
100
|
-
} finally {
|
|
101
|
-
requestToken.done();
|
|
59
|
+
}, {
|
|
60
|
+
key: "needsReload",
|
|
61
|
+
get: function get() {
|
|
62
|
+
return this._needsReload || this._isCancelled;
|
|
102
63
|
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "byteLength",
|
|
66
|
+
get: function get() {
|
|
67
|
+
var result = this.content ? this.content.byteLength : 0;
|
|
103
68
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
69
|
+
if (!Number.isFinite(result)) {
|
|
70
|
+
_core.log.error('byteLength not defined in tile data')();
|
|
71
|
+
}
|
|
107
72
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "_loadData",
|
|
77
|
+
value: function () {
|
|
78
|
+
var _loadData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref2) {
|
|
79
|
+
var getData, requestScheduler, onLoad, onError, x, y, z, bbox, loaderId, signal, requestToken, tileData, error;
|
|
80
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
81
|
+
while (1) {
|
|
82
|
+
switch (_context.prev = _context.next) {
|
|
83
|
+
case 0:
|
|
84
|
+
getData = _ref2.getData, requestScheduler = _ref2.requestScheduler, onLoad = _ref2.onLoad, onError = _ref2.onError;
|
|
85
|
+
x = this.x, y = this.y, z = this.z, bbox = this.bbox;
|
|
86
|
+
loaderId = this._loaderId;
|
|
87
|
+
this._abortController = new AbortController();
|
|
88
|
+
signal = this._abortController.signal;
|
|
89
|
+
_context.next = 7;
|
|
90
|
+
return requestScheduler.scheduleRequest(this, function (tile) {
|
|
91
|
+
return tile.isSelected ? 1 : -1;
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
case 7:
|
|
95
|
+
requestToken = _context.sent;
|
|
96
|
+
|
|
97
|
+
if (requestToken) {
|
|
98
|
+
_context.next = 11;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
this._isCancelled = true;
|
|
103
|
+
return _context.abrupt("return");
|
|
104
|
+
|
|
105
|
+
case 11:
|
|
106
|
+
if (!this._isCancelled) {
|
|
107
|
+
_context.next = 14;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
requestToken.done();
|
|
112
|
+
return _context.abrupt("return");
|
|
113
|
+
|
|
114
|
+
case 14:
|
|
115
|
+
tileData = null;
|
|
116
|
+
_context.prev = 15;
|
|
117
|
+
_context.next = 18;
|
|
118
|
+
return getData({
|
|
119
|
+
x: x,
|
|
120
|
+
y: y,
|
|
121
|
+
z: z,
|
|
122
|
+
bbox: bbox,
|
|
123
|
+
signal: signal
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
case 18:
|
|
127
|
+
tileData = _context.sent;
|
|
128
|
+
_context.next = 24;
|
|
129
|
+
break;
|
|
130
|
+
|
|
131
|
+
case 21:
|
|
132
|
+
_context.prev = 21;
|
|
133
|
+
_context.t0 = _context["catch"](15);
|
|
134
|
+
error = _context.t0 || true;
|
|
135
|
+
|
|
136
|
+
case 24:
|
|
137
|
+
_context.prev = 24;
|
|
138
|
+
requestToken.done();
|
|
139
|
+
return _context.finish(24);
|
|
140
|
+
|
|
141
|
+
case 27:
|
|
142
|
+
if (!(loaderId !== this._loaderId)) {
|
|
143
|
+
_context.next = 29;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return _context.abrupt("return");
|
|
148
|
+
|
|
149
|
+
case 29:
|
|
150
|
+
this._loader = undefined;
|
|
151
|
+
this.content = tileData;
|
|
152
|
+
|
|
153
|
+
if (!(this._isCancelled && !tileData)) {
|
|
154
|
+
_context.next = 34;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
this._isLoaded = false;
|
|
159
|
+
return _context.abrupt("return");
|
|
160
|
+
|
|
161
|
+
case 34:
|
|
162
|
+
this._isLoaded = true;
|
|
163
|
+
this._isCancelled = false;
|
|
164
|
+
|
|
165
|
+
if (error) {
|
|
166
|
+
onError(error, this);
|
|
167
|
+
} else {
|
|
168
|
+
onLoad(this);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
case 37:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context.stop();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, _callee, this, [[15, 21, 24, 27]]);
|
|
177
|
+
}));
|
|
178
|
+
|
|
179
|
+
function _loadData(_x) {
|
|
180
|
+
return _loadData2.apply(this, arguments);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return _loadData;
|
|
184
|
+
}()
|
|
185
|
+
}, {
|
|
186
|
+
key: "loadData",
|
|
187
|
+
value: function loadData(opts) {
|
|
112
188
|
this._isLoaded = false;
|
|
113
|
-
|
|
189
|
+
this._isCancelled = false;
|
|
190
|
+
this._needsReload = false;
|
|
191
|
+
this._loaderId++;
|
|
192
|
+
this._loader = this._loadData(opts);
|
|
193
|
+
return this._loader;
|
|
114
194
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
195
|
+
}, {
|
|
196
|
+
key: "setNeedsReload",
|
|
197
|
+
value: function setNeedsReload() {
|
|
198
|
+
if (this.isLoading) {
|
|
199
|
+
this.abort();
|
|
200
|
+
this._loader = undefined;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
this._needsReload = true;
|
|
123
204
|
}
|
|
124
|
-
}
|
|
205
|
+
}, {
|
|
206
|
+
key: "abort",
|
|
207
|
+
value: function abort() {
|
|
208
|
+
if (this.isLoaded) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
125
211
|
|
|
126
|
-
|
|
127
|
-
this._isLoaded = false;
|
|
128
|
-
this._isCancelled = false;
|
|
129
|
-
this._needsReload = false;
|
|
130
|
-
this._loaderId++;
|
|
131
|
-
this._loader = this._loadData(opts);
|
|
132
|
-
return this._loader;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
setNeedsReload() {
|
|
136
|
-
if (this.isLoading) {
|
|
137
|
-
this.abort();
|
|
138
|
-
this._loader = undefined;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
this._needsReload = true;
|
|
142
|
-
}
|
|
212
|
+
this._isCancelled = true;
|
|
143
213
|
|
|
144
|
-
|
|
145
|
-
if (this.isLoaded) {
|
|
146
|
-
return;
|
|
214
|
+
this._abortController.abort();
|
|
147
215
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
this._abortController.abort();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
}
|
|
216
|
+
}]);
|
|
217
|
+
return Tile2DHeader;
|
|
218
|
+
}();
|
|
155
219
|
|
|
156
220
|
exports.default = Tile2DHeader;
|
|
157
221
|
//# sourceMappingURL=tile-2d-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tile-layer/tile-2d-header.js"],"names":["Tile2DHeader","
|
|
1
|
+
{"version":3,"sources":["../../../src/tile-layer/tile-2d-header.js"],"names":["Tile2DHeader","x","y","z","isVisible","isSelected","parent","children","content","_loaderId","_isLoaded","_isCancelled","_needsReload","isLoading","_loader","then","data","Boolean","result","byteLength","Number","isFinite","log","error","getData","requestScheduler","onLoad","onError","bbox","loaderId","_abortController","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","undefined","opts","_loadData","abort","isLoaded"],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport {log} from '@deck.gl/core';\n\nexport default class Tile2DHeader {\n constructor({x, y, z}) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.isVisible = false;\n this.isSelected = false;\n this.parent = null;\n this.children = [];\n\n this.content = null;\n\n this._loaderId = 0;\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n }\n\n get data() {\n return this.isLoading ? this._loader.then(() => this.data) : this.content;\n }\n\n get isLoaded() {\n return this._isLoaded && !this._needsReload;\n }\n\n get isLoading() {\n return Boolean(this._loader) && !this._isCancelled;\n }\n\n get needsReload() {\n return this._needsReload || this._isCancelled;\n }\n\n get byteLength() {\n const result = this.content ? this.content.byteLength : 0;\n if (!Number.isFinite(result)) {\n log.error('byteLength not defined in tile data')();\n }\n return result;\n }\n\n /* eslint-disable max-statements */\n async _loadData({getData, requestScheduler, onLoad, onError}) {\n const {x, y, z, bbox} = this;\n const loaderId = this._loaderId;\n\n this._abortController = new AbortController(); // eslint-disable-line no-undef\n const {signal} = this._abortController;\n\n const requestToken = await requestScheduler.scheduleRequest(this, tile => {\n return tile.isSelected ? 1 : -1;\n });\n\n if (!requestToken) {\n this._isCancelled = true;\n return;\n }\n // A tile can be cancelled while being scheduled\n if (this._isCancelled) {\n requestToken.done();\n return;\n }\n\n let tileData = null;\n let error;\n try {\n tileData = await getData({x, y, z, bbox, signal});\n } catch (err) {\n error = err || true;\n } finally {\n requestToken.done();\n }\n\n // If loadData has been called with a newer version, discard the result from this operation\n if (loaderId !== this._loaderId) {\n return;\n }\n // Clear the `isLoading` flag\n this._loader = undefined;\n // Rewrite tile content with the result of getTileData if successful, or `null` in case of\n // error or cancellation\n this.content = tileData;\n // If cancelled, do not invoke the callbacks\n // Consider it loaded if we tried to cancel but `getTileData` still returned data\n if (this._isCancelled && !tileData) {\n this._isLoaded = false;\n return;\n }\n this._isLoaded = true;\n this._isCancelled = false;\n\n if (error) {\n onError(error, this);\n } else {\n onLoad(this);\n }\n }\n /* eslint-enable max-statements */\n\n loadData(opts) {\n this._isLoaded = false;\n this._isCancelled = false;\n this._needsReload = false;\n this._loaderId++;\n this._loader = this._loadData(opts);\n return this._loader;\n }\n\n setNeedsReload() {\n if (this.isLoading) {\n this.abort();\n this._loader = undefined;\n }\n this._needsReload = true;\n }\n\n abort() {\n if (this.isLoaded) {\n return;\n }\n\n this._isCancelled = true;\n this._abortController.abort();\n }\n}\n"],"file":"tile-2d-header.js"}
|