@deck.gl/geo-layers 8.6.4 → 8.6.5

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.
Files changed (53) hide show
  1. package/dist/dist.dev.js +35 -15
  2. package/dist/es5/great-circle-layer/great-circle-layer.js +26 -1
  3. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  4. package/dist/es5/h3-layers/h3-cluster-layer.js +149 -87
  5. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  6. package/dist/es5/h3-layers/h3-hexagon-layer.js +321 -226
  7. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  8. package/dist/es5/index.js +9 -9
  9. package/dist/es5/mesh-layer/mesh-layer.js +151 -125
  10. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  11. package/dist/es5/mvt-layer/coordinate-transform.js +45 -19
  12. package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
  13. package/dist/es5/mvt-layer/find-index-binary.js +45 -26
  14. package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
  15. package/dist/es5/mvt-layer/mvt-layer.js +394 -279
  16. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  17. package/dist/es5/s2-layer/s2-geometry.js +43 -32
  18. package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-layer.js +104 -69
  20. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  21. package/dist/es5/s2-layer/s2-utils.js +27 -28
  22. package/dist/es5/s2-layer/s2-utils.js.map +1 -1
  23. package/dist/es5/terrain-layer/terrain-layer.js +250 -208
  24. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  25. package/dist/es5/tile-3d-layer/tile-3d-layer.js +382 -329
  26. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  27. package/dist/es5/tile-layer/tile-2d-header.js +183 -119
  28. package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
  29. package/dist/es5/tile-layer/tile-2d-traversal.js +178 -115
  30. package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
  31. package/dist/es5/tile-layer/tile-layer.js +257 -214
  32. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  33. package/dist/es5/tile-layer/tileset-2d.js +435 -290
  34. package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
  35. package/dist/es5/tile-layer/utils.js +110 -61
  36. package/dist/es5/tile-layer/utils.js.map +1 -1
  37. package/dist/es5/trips-layer/trips-layer.js +81 -44
  38. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  39. package/dist/esm/mvt-layer/mvt-layer.js +26 -0
  40. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  41. package/dist/esm/terrain-layer/terrain-layer.js +8 -10
  42. package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
  43. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
  44. package/dist/esm/tile-layer/tile-2d-header.js.map +1 -1
  45. package/dist/esm/tile-layer/tile-2d-traversal.js.map +1 -1
  46. package/dist/esm/tile-layer/tile-layer.js +6 -8
  47. package/dist/esm/tile-layer/tile-layer.js.map +1 -1
  48. package/dist/esm/tile-layer/tileset-2d.js.map +1 -1
  49. package/dist.min.js +1 -1
  50. package/package.json +2 -2
  51. package/src/mvt-layer/mvt-layer.js +16 -0
  52. package/src/terrain-layer/terrain-layer.js +10 -9
  53. package/src/tile-layer/tile-layer.js +9 -6
@@ -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","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","isLoaded","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 {\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,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
- class Tile2DHeader {
11
- constructor({
12
- x,
13
- y,
14
- z
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
- get data() {
31
- return this.isLoading ? this._loader.then(() => this.data) : this.content;
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;
48
-
49
- if (!Number.isFinite(result)) {
50
- _core.log.error('byteLength not defined in tile data')();
40
+ (0, _createClass2.default)(Tile2DHeader, [{
41
+ key: "_loadData",
42
+ value: function () {
43
+ var _loadData2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref2) {
44
+ var getData, requestScheduler, onLoad, onError, x, y, z, bbox, loaderId, signal, requestToken, tileData, error;
45
+ return _regenerator.default.wrap(function _callee$(_context) {
46
+ while (1) {
47
+ switch (_context.prev = _context.next) {
48
+ case 0:
49
+ getData = _ref2.getData, requestScheduler = _ref2.requestScheduler, onLoad = _ref2.onLoad, onError = _ref2.onError;
50
+ x = this.x, y = this.y, z = this.z, bbox = this.bbox;
51
+ loaderId = this._loaderId;
52
+ this._abortController = new AbortController();
53
+ signal = this._abortController.signal;
54
+ _context.next = 7;
55
+ return requestScheduler.scheduleRequest(this, function (tile) {
56
+ return tile.isSelected ? 1 : -1;
57
+ });
58
+
59
+ case 7:
60
+ requestToken = _context.sent;
61
+
62
+ if (requestToken) {
63
+ _context.next = 11;
64
+ break;
65
+ }
66
+
67
+ this._isCancelled = true;
68
+ return _context.abrupt("return");
69
+
70
+ case 11:
71
+ if (!this._isCancelled) {
72
+ _context.next = 14;
73
+ break;
74
+ }
75
+
76
+ requestToken.done();
77
+ return _context.abrupt("return");
78
+
79
+ case 14:
80
+ tileData = null;
81
+ _context.prev = 15;
82
+ _context.next = 18;
83
+ return getData({
84
+ x: x,
85
+ y: y,
86
+ z: z,
87
+ bbox: bbox,
88
+ signal: signal
89
+ });
90
+
91
+ case 18:
92
+ tileData = _context.sent;
93
+ _context.next = 24;
94
+ break;
95
+
96
+ case 21:
97
+ _context.prev = 21;
98
+ _context.t0 = _context["catch"](15);
99
+ error = _context.t0 || true;
100
+
101
+ case 24:
102
+ _context.prev = 24;
103
+ requestToken.done();
104
+ return _context.finish(24);
105
+
106
+ case 27:
107
+ if (!(loaderId !== this._loaderId)) {
108
+ _context.next = 29;
109
+ break;
110
+ }
111
+
112
+ return _context.abrupt("return");
113
+
114
+ case 29:
115
+ this._loader = undefined;
116
+ this.content = tileData;
117
+
118
+ if (!(this._isCancelled && !tileData)) {
119
+ _context.next = 34;
120
+ break;
121
+ }
122
+
123
+ this._isLoaded = false;
124
+ return _context.abrupt("return");
125
+
126
+ case 34:
127
+ this._isLoaded = true;
128
+ this._isCancelled = false;
129
+
130
+ if (error) {
131
+ onError(error, this);
132
+ } else {
133
+ onLoad(this);
134
+ }
135
+
136
+ case 37:
137
+ case "end":
138
+ return _context.stop();
139
+ }
140
+ }
141
+ }, _callee, this, [[15, 21, 24, 27]]);
142
+ }));
143
+
144
+ function _loadData(_x) {
145
+ return _loadData2.apply(this, arguments);
146
+ }
147
+
148
+ return _loadData;
149
+ }()
150
+ }, {
151
+ key: "loadData",
152
+ value: function loadData(opts) {
153
+ this._isLoaded = false;
154
+ this._isCancelled = false;
155
+ this._needsReload = false;
156
+ this._loaderId++;
157
+ this._loader = this._loadData(opts);
158
+ return this._loader;
51
159
  }
52
-
53
- return result;
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;
160
+ }, {
161
+ key: "setNeedsReload",
162
+ value: function setNeedsReload() {
163
+ if (this.isLoading) {
164
+ this.abort();
165
+ this._loader = undefined;
166
+ }
167
+
168
+ this._needsReload = true;
80
169
  }
170
+ }, {
171
+ key: "abort",
172
+ value: function abort() {
173
+ if (this.isLoaded) {
174
+ return;
175
+ }
81
176
 
82
- if (this._isCancelled) {
83
- requestToken.done();
84
- return;
85
- }
177
+ this._isCancelled = true;
86
178
 
87
- let tileData = null;
88
- let error;
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();
179
+ this._abortController.abort();
102
180
  }
103
-
104
- if (loaderId !== this._loaderId) {
105
- return;
181
+ }, {
182
+ key: "data",
183
+ get: function get() {
184
+ var _this = this;
185
+
186
+ return this.isLoading ? this._loader.then(function () {
187
+ return _this.data;
188
+ }) : this.content;
106
189
  }
107
-
108
- this._loader = undefined;
109
- this.content = tileData;
110
-
111
- if (this._isCancelled && !tileData) {
112
- this._isLoaded = false;
113
- return;
190
+ }, {
191
+ key: "isLoaded",
192
+ get: function get() {
193
+ return this._isLoaded && !this._needsReload;
114
194
  }
115
-
116
- this._isLoaded = true;
117
- this._isCancelled = false;
118
-
119
- if (error) {
120
- onError(error, this);
121
- } else {
122
- onLoad(this);
195
+ }, {
196
+ key: "isLoading",
197
+ get: function get() {
198
+ return Boolean(this._loader) && !this._isCancelled;
123
199
  }
124
- }
125
-
126
- loadData(opts) {
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;
200
+ }, {
201
+ key: "needsReload",
202
+ get: function get() {
203
+ return this._needsReload || this._isCancelled;
139
204
  }
205
+ }, {
206
+ key: "byteLength",
207
+ get: function get() {
208
+ var result = this.content ? this.content.byteLength : 0;
140
209
 
141
- this._needsReload = true;
142
- }
210
+ if (!Number.isFinite(result)) {
211
+ _core.log.error('byteLength not defined in tile data')();
212
+ }
143
213
 
144
- abort() {
145
- if (this.isLoaded) {
146
- return;
214
+ return result;
147
215
  }
148
-
149
- this._isCancelled = true;
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","constructor","x","y","z","isVisible","isSelected","parent","children","content","_loaderId","_isLoaded","_isCancelled","_needsReload","data","isLoading","_loader","then","isLoaded","Boolean","needsReload","byteLength","result","Number","isFinite","log","error","_loadData","getData","requestScheduler","onLoad","onError","bbox","loaderId","_abortController","AbortController","signal","requestToken","scheduleRequest","tile","done","tileData","err","undefined","loadData","opts","setNeedsReload","abort"],"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"}
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","getData","requestScheduler","onLoad","onError","bbox","loaderId","_abortController","AbortController","signal","scheduleRequest","tile","requestToken","done","tileData","error","_loader","undefined","opts","_loadData","isLoading","abort","isLoaded","then","data","Boolean","result","byteLength","Number","isFinite","log"],"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"}