@loaders.gl/tile-converter 3.4.0-alpha.3 → 3.4.0-alpha.4

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 (91) hide show
  1. package/dist/3d-tiles-attributes-worker.js +1 -1
  2. package/dist/converter.min.js +90 -2875
  3. package/dist/dist.min.js +595 -18844
  4. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  5. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  6. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  7. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  8. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  9. package/dist/es5/converter-cli.js.map +1 -1
  10. package/dist/es5/deps-installer/deps-installer.js +1 -1
  11. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  12. package/dist/es5/i3s-attributes-worker.js +1 -1
  13. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  14. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  15. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  16. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  18. package/dist/es5/i3s-converter/helpers/geometry-converter.js +30 -8
  19. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  20. package/dist/es5/i3s-converter/helpers/node-debug.js +2 -4
  21. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
  22. package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
  23. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  24. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  25. package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
  26. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  27. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
  28. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  29. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
  30. package/dist/es5/i3s-converter/types.js.map +1 -1
  31. package/dist/es5/i3s-server/app.js.map +1 -1
  32. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  33. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  34. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  35. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  36. package/dist/es5/lib/utils/queue.js.map +1 -1
  37. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  38. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  39. package/dist/es5/pgm-loader.js +1 -1
  40. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
  41. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
  42. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  43. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  44. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  45. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  46. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  47. package/dist/esm/converter-cli.js.map +1 -1
  48. package/dist/esm/deps-installer/deps-installer.js +1 -1
  49. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  50. package/dist/esm/i3s-attributes-worker.js +1 -1
  51. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  52. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  53. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  54. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  55. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  56. package/dist/esm/i3s-converter/helpers/geometry-converter.js +30 -8
  57. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  58. package/dist/esm/i3s-converter/helpers/node-debug.js +2 -4
  59. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
  60. package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
  61. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  62. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  63. package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
  64. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  65. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
  66. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  67. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
  68. package/dist/esm/i3s-converter/types.js.map +1 -1
  69. package/dist/esm/i3s-server/app.js.map +1 -1
  70. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
  71. package/dist/esm/i3s-server/routes/index.js.map +1 -1
  72. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  73. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  74. package/dist/esm/lib/utils/queue.js.map +1 -1
  75. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  76. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  77. package/dist/esm/pgm-loader.js +1 -1
  78. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
  79. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
  80. package/dist/i3s-attributes-worker.js +2 -2
  81. package/dist/i3s-attributes-worker.js.map +3 -3
  82. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  83. package/dist/i3s-converter/helpers/geometry-converter.js +44 -6
  84. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -1
  85. package/dist/i3s-converter/helpers/node-debug.js +10 -4
  86. package/dist/i3s-converter/types.d.ts +1 -0
  87. package/dist/i3s-converter/types.d.ts.map +1 -1
  88. package/package.json +15 -16
  89. package/src/i3s-converter/helpers/geometry-converter.ts +59 -14
  90. package/src/i3s-converter/helpers/node-debug.ts +11 -5
  91. package/src/i3s-converter/types.ts +10 -0
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-converter.js","names":["_core","require","_tiles","_dTiles","_path","_uuid","_process","_interopRequireDefault","_jsonMapTransform","_md","_nodePages","_fileUtils","_compressUtil","_statisticUtills","_geometryConverter","_interopRequireWildcard","_coordinateConverter","_createSceneServerPath","_lodConversionUtils","_pgmLoader","_layers","_geometryDefinitions","_sharedResources","_nodeDebug","_textures","_images","_workerUtils","_draco","_writeQueue","_i3sAttributesWorker","_constants","_featureAttributes","_nodeIndexDocument","_process$env","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ION_DEFAULT_TOKEN","process","env","IonToken","HARDCODED_NODES_PER_PAGE","_3D_TILES","_3D_OBJECT_LAYER_TYPE","REFRESH_TOKEN_TIMEOUT","CESIUM_DATASET_PREFIX","I3SConverter","_classCallCheck2","Tiles3DLoader","WriteQueue","nodePages","NodePages","writeFile","options","layers0Path","materialMap","Map","materialDefinitions","geometryMap","geometryConfigs","vertexCounter","layers0","featuresHashArray","refinementCounter","tilesCount","tilesWithAddRefineCount","validate","generateTextures","generateBoundingVolumes","layersHasTexture","compressList","_createClass2","_convert","_asyncToGenerator2","_regenerator","mark","_callee","tilesetName","slpk","egmFilePath","inputUrl","outputPath","_options$draco","draco","sevenZipExe","maxDepth","token","_options$instantNodeW","instantNodeWriting","_options$mergeMateria","mergeMaterials","_sourceTilesetJson$ro","_sourceTilesetJson$ro2","preloadOptions","tilesetOptions","sourceTilesetJson","workerFarm","wrap","_callee$","_context","prev","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","conversionStartTime","hrtime","Boolean","Loader","indexOf","CesiumIonLoader","writeQueue","startListening","load","PGMLoader","geoidHeightModel","sent","useWriteFunction","writeFileForSlpk","loadWorkers","_fetchPreloadOptions","loadOptions","_nodeWorkers","reuseWorkers","basis","format","workerUrl","headers","fetch","assign","sourceTileset","Tileset3D","_createAndSaveTileset","root","boundingVolume","region","_finishConversion","t0","WorkerFarm","getWorkerFarm","destroy","finish","stop","convert","_x","_createAndSaveTileset2","_callee2","boundingVolumeRegion","_this","tilesetPath","sourceRootTile","boundingVolumes","rootNode","_iterator","_step","filePath","_callee2$","_context2","join","concat","removeDir","_formLayers0","createBoundingVolumes","index","lodThreshold","obb","children","NodeIndexDocument","createRootNode","_convertNodesTree","geometryDefinitions","transform","map","config","geometryConfig","geometryDefinitionTemlate","store","defaultGeometrySchema","ordering","attribute","_writeLayers0","createSceneServerPath","compressFileWithGzip","removeFile","t1","save","finalize","_createSlpk","_x2","_x3","_x4","_this$sourceTileset","_this$sourceTileset2","_this$sourceTileset2$","fullExtent","convertBoundingVolumeToI3SFullExtent","zmin","zmax","extent","xmin","ymin","xmax","ymax","layers0data","version","uuidv4","toUpperCase","id","href","nodesPerPage","compressGeometry","layersTemplate","_convertNodesTree2","_callee3","childNodes","_iterator2","_step2","childNode","_callee3$","_context3","_loadTile","isContentSupported","_createNode","addChildren","_addChildrenWithNeighborsAndWriteFile","parentNode","sourceTiles","level","unloadContent","_x5","_x6","_writeLayers","_callee4","_this2","_callee4$","_context4","enqueue","archiveKey","writePromise","JSON","stringify","_createSlpk2","_callee5","slpkTilesetPath","slpkFileName","_callee5$","_context5","compressWithChildProcess","_x7","_addChildrenWithNeighborsAndWriteFile2","_callee6","data","_callee6$","_context6","_addChildren","addNeighbors","_x8","_convertNestedTileset","_callee7","_ref","sourceTile","_callee7$","_context7","convertNestedTileset","_x9","_convertNode","_callee8","_ref2","_callee8$","_context8","convertNode","_x10","_addChildren2","_callee9","_iterator3","_step3","_callee9$","_context9","type","_x11","_createNode2","_callee10","_this$layers","_this$layers$attribut","propertyTable","resourcesData","nodes","nodeIds","nodesInPage","emptyResources","_iterator4","_step4","resources","lodSelection","maxScreenThresholdSQ","nodeInPage","nodeData","node","_console","_callee10$","_context10","_checkAddRefinementTypeForTile","_updateTilesetOptions","getPropertyTable","content","attributeStorageInfo","_convertPropertyTableToNodeAttributes","_convertResources","inPageId","geometry","compressedGeometry","texture","hasUvRegions","sharedResources","meshMaterial","vertexCount","attributes","featureCount","convertGeometricErrorToScreenThreshold","find","val","metricType","maxError","_updateNodeInNodePages","createNodeIndexDocument","addData","mesh","_writeResources","boundingVolumeWarnings","validateNodeBoundingVolumes","warn","_toConsumableArray2","_x12","_x13","_x14","_convertResources2","_callee12","parentId","_this3","_this$layers2","draftObb","_callee12$","_context12","center","halfSize","quaternion","convertB3dmToI3sGeometry","_callee11","_callee11$","_context11","workerSource","_x15","_x16","_x17","_updateNodeInNodePages2","_callee13","nodeId","texelCountHint","_callee13$","_context13","definition","findOrCreateGeometryDefinition","resource","material","getNodeById","updateAll","updateMaterialByNodeId","_findOrCreateMaterial","image","height","width","updateTexelCountHintByNodeId","updateVertexCountByNodeId","updateNodeAttributeByNodeId","updateFeatureCountByNodeId","saveNode","_x18","_x19","_x20","_x21","_x22","_writeResources2","_callee14","nodePath","geometryBuffer","childPath","slpkChildPath","_callee14$","_context14","_writeGeometries","_writeShared","_writeTexture","_writeAttributes","_x23","_x24","_writeGeometries2","_callee15","slpkGeometryPath","geometryPath","slpkCompressedGeometryPath","compressedGeometryPath","_callee15$","_context15","_x25","_x26","_x27","_x28","_writeShared2","_callee16","sharedData","sharedDataStr","slpkSharedPath","sharedPath","_callee16$","_context16","sharedResourcesTemplate","_x29","_x30","_x31","_x32","_writeTexture2","_callee17","formats","textureData","copyArrayBuffer","arrayToEncode","ktx2TextureData","decodedFromKTX2TextureData","_callee17$","_context17","_getFormatByMimeType","mimeType","bufferView","writeTextureFile","subarray","Uint8Array","encode","KTX2BasisWriterWorker","ktx2","ImageWriter","textureSetDefinitions","atlas","_x33","_x34","_x35","_writeTextureFile","_callee18","slpkTexturePath","compress","texturePath","_callee18$","_context18","_x36","_x37","_x38","_x39","_x40","_writeAttributes2","_callee19","_this$layers3","_this$layers3$attribu","_this4","_loop","_args20","_callee19$","_context20","undefined","folderName","fileBuffer","slpkAttributesPath","attributesPath","_loop$","_context19","delegateYield","hash","md5","newMaterialId","hasTexture","newGeometryId","attributeIndex","propertyTableWithObjectId","OBJECTID","firstAttribute","attributeType","getAttributeType","storageAttribute","createdStorageAttribute","fieldAttributeType","getFieldAttributeType","fieldAttribute","createFieldAttribute","popupInfo","createPopupInfo","fields","layerType","_finishConversion2","_callee20","params","_this$refinementCount","addRefinementPercentage","filesSize","diff","conversionTime","_callee20$","_context21","calculateFilesSize","timeConverter","_x41","_fetchPreloadOptions2","_callee21","_callee21$","_context22","preload","accessToken","refreshTokenTime","_updateTilesetOptions2","_callee22","_callee22$","_context23","tile","ADD_TILE_REFINEMENT","refine","_sourceRootTile$conte","includes","_loadWorkers","_callee23","url","_sourceResponse","_source","_url","_sourceResponse2","_source2","i3sAttributesWorkerUrl","sourceResponse","_callee23$","_context24","getWorkerURL","DracoWriterWorker","getLoaderOptions","fetchFile","text","I3SAttributesWorker","I3SAttributes","exports"],"sources":["../../../src/i3s-converter/i3s-converter.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Tileset3DProps} from '@loaders.gl/tiles';\nimport type {FeatureTableJson} from '@loaders.gl/3d-tiles';\nimport type {WriteQueueItem} from '../lib/utils/write-queue';\nimport type {\n SceneLayer3D,\n BoundingVolumes,\n MaxScreenThresholdSQ,\n NodeInPage\n} from '@loaders.gl/i3s';\nimport {load, encode, fetchFile, getLoaderOptions, isBrowser} from '@loaders.gl/core';\nimport {Tileset3D} from '@loaders.gl/tiles';\nimport {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';\nimport {Geoid} from '@math.gl/geoid';\nimport {join} from 'path';\nimport {v4 as uuidv4} from 'uuid';\nimport process from 'process';\nimport transform from 'json-map-transform';\nimport md5 from 'md5';\n\nimport NodePages from './helpers/node-pages';\nimport {writeFile, removeDir, writeFileForSlpk, removeFile} from '../lib/utils/file-utils';\nimport {\n compressFileWithGzip,\n compressWithChildProcess\n // generateHash128FromZip,\n // addFileToZip\n} from '../lib/utils/compress-util';\nimport {calculateFilesSize, timeConverter} from '../lib/utils/statistic-utills';\nimport convertB3dmToI3sGeometry, {getPropertyTable} from './helpers/geometry-converter';\nimport {\n createBoundingVolumes,\n convertBoundingVolumeToI3SFullExtent\n} from './helpers/coordinate-converter';\nimport {createSceneServerPath} from './helpers/create-scene-server-path';\nimport {convertGeometricErrorToScreenThreshold} from '../lib/utils/lod-conversion-utils';\nimport {PGMLoader} from '../pgm-loader';\n\nimport {LAYERS as layersTemplate} from './json-templates/layers';\nimport {GEOMETRY_DEFINITION as geometryDefinitionTemlate} from './json-templates/geometry-definitions';\nimport {SHARED_RESOURCES as sharedResourcesTemplate} from './json-templates/shared-resources';\nimport {validateNodeBoundingVolumes} from './helpers/node-debug';\n// loaders.gl, MIT license\n\nimport {Tile3D} from '@loaders.gl/tiles';\nimport {KTX2BasisWriterWorker} from '@loaders.gl/textures';\nimport {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {I3SMaterialDefinition, TextureSetDefinitionFormats} from '@loaders.gl/i3s/src/types';\nimport {ImageWriter} from '@loaders.gl/images';\nimport {GLTFImagePostprocessed} from '@loaders.gl/gltf';\nimport {I3SConvertedResources, SharedResourcesArrays} from './types';\nimport {getWorkerURL, WorkerFarm} from '@loaders.gl/worker-utils';\nimport {DracoWriterWorker} from '@loaders.gl/draco';\nimport WriteQueue from '../lib/utils/write-queue';\nimport {I3SAttributesWorker} from '../i3s-attributes-worker';\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {\n createdStorageAttribute,\n createFieldAttribute,\n createPopupInfo,\n getAttributeType,\n getFieldAttributeType\n} from './helpers/feature-attributes';\nimport {NodeIndexDocument} from './helpers/node-index-document';\n\nconst ION_DEFAULT_TOKEN =\n process.env?.IonToken || // eslint-disable-line\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line\nconst HARDCODED_NODES_PER_PAGE = 64;\nconst _3D_TILES = '3DTILES';\nconst _3D_OBJECT_LAYER_TYPE = '3DObject';\nconst REFRESH_TOKEN_TIMEOUT = 1800; // 30 minutes in seconds\nconst CESIUM_DATASET_PREFIX = 'https://';\n// const FS_FILE_TOO_LARGE = 'ERR_FS_FILE_TOO_LARGE';\n\n/**\n * Converter from 3d-tiles tileset to i3s layer\n */\nexport default class I3SConverter {\n nodePages: NodePages;\n options: any;\n layers0Path: string;\n materialMap: Map<string, number>;\n materialDefinitions: I3SMaterialDefinition[];\n geometryMap: Map<string, number>;\n geometryConfigs: {hasTexture: boolean; hasUvRegions: boolean}[];\n vertexCounter: number;\n layers0: SceneLayer3D | null;\n featuresHashArray: string[];\n refinementCounter: {\n tilesCount: number;\n tilesWithAddRefineCount: number;\n };\n validate: boolean;\n boundingVolumeWarnings?: string[] = [];\n conversionStartTime: [number, number] = [0, 0];\n refreshTokenTime: [number, number] = [0, 0];\n sourceTileset: Tileset3D | null = null;\n geoidHeightModel: Geoid | null = null;\n Loader: LoaderWithParser = Tiles3DLoader;\n generateTextures: boolean;\n generateBoundingVolumes: boolean;\n layersHasTexture: boolean;\n workerSource: {[key: string]: string} = {};\n writeQueue: WriteQueue<WriteQueueItem> = new WriteQueue();\n compressList: string[] | null = null;\n\n constructor() {\n this.nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE, this);\n this.options = {};\n this.layers0Path = '';\n this.materialMap = new Map();\n this.materialDefinitions = [];\n this.geometryMap = new Map();\n this.geometryConfigs = [];\n this.vertexCounter = 0;\n this.layers0 = null;\n this.featuresHashArray = [];\n this.refinementCounter = {\n tilesCount: 0,\n tilesWithAddRefineCount: 0\n };\n this.validate = false;\n this.generateTextures = false;\n this.generateBoundingVolumes = false;\n this.layersHasTexture = false;\n this.compressList = null;\n }\n\n /**\n * Convert a 3d tileset\n * @param options\n * @param options.inputUrl the url to read the tileset from\n * @param options.outputPath the output filename\n * @param options.tilesetName the output name of the tileset\n * @param options.maxDepth The max tree depth of conversion\n * @param options.slpk Generate slpk (Scene Layer Packages) output file\n * @param options.sevenZipExe Location of 7z.exe archiver to create slpk on Windows\n * @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format\n * @param options.token Token for Cesium ION tilesets authentication\n * @param options.draco Generate I3S 1.7 draco compressed geometries\n * @param options.validate -enable validation\n * @param options.generateTextures - generate alternative type of textures (to have non-compressed jpeg/png and compressed ktx2)\n * @param options.generateBoundingVolumes - generate bounding volumes from vertices coordinates instead of source tiles bounding volumes\n * @param options.instantNodeWriting - Keep created 3DNodeIndexDocument files on disk instead of memory. This option reduce memory usage but decelerates conversion speed\n */\n async convert(options: {\n inputUrl: string;\n outputPath: string;\n tilesetName: string;\n sevenZipExe: string;\n egmFilePath: string;\n maxDepth?: number;\n slpk?: boolean;\n token?: string;\n draco?: boolean;\n mergeMaterials?: boolean;\n validate?: boolean;\n generateTextures?: boolean;\n generateBoundingVolumes?: boolean;\n instantNodeWriting?: boolean;\n }): Promise<any> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n this.conversionStartTime = process.hrtime();\n const {\n tilesetName,\n slpk,\n egmFilePath,\n inputUrl,\n validate,\n outputPath,\n draco = true,\n sevenZipExe,\n maxDepth,\n token,\n generateTextures,\n generateBoundingVolumes,\n instantNodeWriting = false,\n mergeMaterials = true\n } = options;\n this.options = {\n maxDepth,\n slpk,\n sevenZipExe,\n egmFilePath,\n draco,\n token,\n inputUrl,\n instantNodeWriting,\n mergeMaterials\n };\n this.compressList = (this.options.instantNodeWriting && []) || null;\n this.validate = Boolean(validate);\n this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;\n this.generateTextures = Boolean(generateTextures);\n this.generateBoundingVolumes = Boolean(generateBoundingVolumes);\n\n this.writeQueue = new WriteQueue();\n this.writeQueue.startListening();\n\n console.log('Loading egm file...'); // eslint-disable-line\n this.geoidHeightModel = await load(egmFilePath, PGMLoader);\n console.log('Loading egm file completed!'); // eslint-disable-line\n\n if (slpk) {\n this.nodePages.useWriteFunction(writeFileForSlpk);\n }\n\n await this.loadWorkers();\n\n try {\n const preloadOptions = await this._fetchPreloadOptions();\n const tilesetOptions: Tileset3DProps = {\n loadOptions: {\n _nodeWorkers: true,\n reuseWorkers: true,\n basis: {format: 'rgba32'},\n 'basis-nodejs': {\n format: 'rgba32',\n workerUrl: './modules/textures/dist/basis-nodejs-worker.js'\n },\n 'draco-nodejs': {workerUrl: './modules/draco/dist/draco-nodejs-worker.js'}\n }\n };\n if (preloadOptions.headers) {\n tilesetOptions.loadOptions!.fetch = {headers: preloadOptions.headers};\n }\n Object.assign(tilesetOptions, preloadOptions);\n const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);\n // console.log(tilesetJson); // eslint-disable-line\n this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);\n\n await this._createAndSaveTileset(\n outputPath,\n tilesetName,\n sourceTilesetJson?.root?.boundingVolume?.region\n );\n await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});\n return sourceTilesetJson;\n } catch (error) {\n throw error;\n } finally {\n // Clean up worker pools\n const workerFarm = WorkerFarm.getWorkerFarm({});\n workerFarm.destroy();\n }\n }\n\n /**\n * Convert and save the layer and embedded tiles\n * @param outputPath - path to save output data\n * @param tilesetName - new tileset path\n */\n private async _createAndSaveTileset(\n outputPath: string,\n tilesetName: string,\n boundingVolumeRegion?: number[]\n ): Promise<void> {\n const tilesetPath = join(`${outputPath}`, `${tilesetName}`);\n // Removing the tilesetPath needed to exclude erroneous files after conversion\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n\n this.layers0Path = join(tilesetPath, 'SceneServer', 'layers', '0');\n\n this._formLayers0(tilesetName, boundingVolumeRegion);\n\n this.materialDefinitions = [];\n this.materialMap = new Map();\n\n const sourceRootTile: Tile3D = this.sourceTileset!.root!;\n const boundingVolumes = createBoundingVolumes(sourceRootTile, this.geoidHeightModel!);\n await this.nodePages.push({\n index: 0,\n lodThreshold: 0,\n obb: boundingVolumes.obb,\n children: []\n });\n\n const rootNode = await NodeIndexDocument.createRootNode(boundingVolumes, this);\n await this._convertNodesTree(rootNode, sourceRootTile);\n\n this.layers0!.materialDefinitions = this.materialDefinitions;\n // @ts-ignore\n this.layers0.geometryDefinitions = transform(\n this.geometryConfigs.map((config) => ({\n geometryConfig: {...config, draco: this.options.draco}\n })),\n geometryDefinitionTemlate()\n );\n\n if (this.layersHasTexture === false) {\n this.layers0!.store.defaultGeometrySchema.ordering =\n this.layers0!.store.defaultGeometrySchema.ordering.filter(\n (attribute) => attribute !== 'uv0'\n );\n }\n\n await this._writeLayers0();\n createSceneServerPath(tilesetName, this.layers0!, tilesetPath);\n for (const filePath of this.compressList || []) {\n await compressFileWithGzip(filePath);\n await removeFile(filePath);\n }\n await this.nodePages.save();\n await this.writeQueue.finalize();\n await this._createSlpk(tilesetPath);\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param tilesetName - Name of layer\n */\n private _formLayers0(tilesetName: string, boundingVolumeRegion?: number[]): void {\n const fullExtent = convertBoundingVolumeToI3SFullExtent(\n this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume\n );\n if (boundingVolumeRegion) {\n fullExtent.zmin = boundingVolumeRegion[4];\n fullExtent.zmax = boundingVolumeRegion[5];\n }\n const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];\n const layers0data = {\n version: `{${uuidv4().toUpperCase()}}`,\n id: 0,\n name: tilesetName,\n href: './layers/0',\n store: {\n id: `{${uuidv4().toUpperCase()}}`,\n extent\n },\n nodePages: {\n nodesPerPage: HARDCODED_NODES_PER_PAGE\n },\n compressGeometry: this.options.draco,\n fullExtent\n };\n this.layers0 = transform(layers0data, layersTemplate());\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param rootNode - 3DNodeIndexDocument of root node https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md\n * @param sourceRootTile - Source (3DTile) tile data\n */\n private async _convertNodesTree(\n rootNode: NodeIndexDocument,\n sourceRootTile: Tile3D\n ): Promise<void> {\n await this.sourceTileset!._loadTile(sourceRootTile);\n if (this.isContentSupported(sourceRootTile)) {\n const childNodes = await this._createNode(rootNode, sourceRootTile, 0);\n for (const childNode of childNodes) {\n await childNode.save();\n }\n await rootNode.addChildren(childNodes);\n } else {\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: rootNode,\n sourceTiles: sourceRootTile.children,\n level: 1\n });\n }\n await sourceRootTile.unloadContent();\n await rootNode.save();\n }\n\n /**\n * Write 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md in file\n */\n private async _writeLayers0(): Promise<void> {\n if (this.options.slpk) {\n await this.writeQueue.enqueue({\n archiveKey: '3dSceneLayer.json.gz',\n writePromise: () =>\n writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')\n });\n } else {\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(this.layers0Path, JSON.stringify(this.layers0))\n });\n }\n }\n\n /**\n * Pack files into *.slpk archive\n * @param tilesetPath - Path to save file\n */\n private async _createSlpk(tilesetPath: string): Promise<void> {\n if (this.options.slpk) {\n const slpkTilesetPath = join(tilesetPath, 'SceneServer', 'layers', '0');\n const slpkFileName = `${tilesetPath}.slpk`;\n await compressWithChildProcess(\n slpkTilesetPath,\n slpkFileName,\n 0,\n '.',\n this.options.sevenZipExe\n );\n\n // TODO: `addFileToZip` corrupts archive so it can't be validated with windows i3s_converter.exe\n // const fileHash128Path = `${tilesetPath}/@specialIndexFileHASH128@`;\n // try {\n // await generateHash128FromZip(slpkFileName, fileHash128Path);\n // await addFileToZip(\n // tilesetPath,\n // '@specialIndexFileHASH128@',\n // slpkFileName,\n // this.options.sevenZipExe\n // );\n // } catch (error) {\n // if (error.code === FS_FILE_TOO_LARGE) {\n // console.warn(`${slpkFileName} file is too big to generate a hash`); // eslint-disable-line\n // } else {\n // console.error(error); // eslint-disable-line\n // }\n // }\n // All converted files are contained in slpk now they can be deleted\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n }\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param data - arguments\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param data.sourceTiles - array of source child nodes\n * @param data.level - level of node (distanse to root node in the tree)\n */\n private async _addChildrenWithNeighborsAndWriteFile(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n await this._addChildren(data);\n await data.parentNode.addNeighbors();\n }\n\n /**\n * Convert nested subtree of 3DTiles dataset\n * @param param0\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNestedTileset({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n await this.sourceTileset!._loadTile(sourceTile);\n await this._addChildren({\n parentNode,\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n await sourceTile.unloadContent();\n }\n\n /**\n * Convert 3DTiles tile to I3S node\n * @param param0\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNode({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n const childNodes = await this._createNode(parentNode, sourceTile, level);\n await parentNode.addChildren(childNodes);\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param param0 - arguments\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async _addChildren(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n const {sourceTiles, parentNode, level} = data;\n if (this.options.maxDepth && level > this.options.maxDepth) {\n return;\n }\n for (const sourceTile of sourceTiles) {\n if (sourceTile.type === 'json') {\n await this.convertNestedTileset({parentNode, sourceTile, level});\n } else {\n await this.convertNode({parentNode, sourceTile, level});\n }\n if (sourceTile.id) {\n console.log(sourceTile.id); // eslint-disable-line\n }\n }\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param parentNode - 3DNodeIndexDocument of parent node\n * @param sourceTile - source 3DTile data\n * @param level - tree level\n */\n private async _createNode(\n parentNode: NodeIndexDocument,\n sourceTile: Tile3D,\n level: number\n ): Promise<NodeIndexDocument[]> {\n this._checkAddRefinementTypeForTile(sourceTile);\n\n await this._updateTilesetOptions();\n await this.sourceTileset!._loadTile(sourceTile);\n\n let boundingVolumes = createBoundingVolumes(sourceTile, this.geoidHeightModel!);\n\n const propertyTable = getPropertyTable(sourceTile.content);\n\n if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {\n this._convertPropertyTableToNodeAttributes(propertyTable);\n }\n\n const resourcesData = await this._convertResources(\n sourceTile,\n parentNode.inPageId,\n propertyTable\n );\n\n const nodes: NodeIndexDocument[] = [];\n const nodeIds: number[] = [];\n const nodesInPage: NodeInPage[] = [];\n const emptyResources = {\n geometry: null,\n compressedGeometry: null,\n texture: null,\n hasUvRegions: false,\n sharedResources: null,\n meshMaterial: null,\n vertexCount: null,\n attributes: null,\n featureCount: null,\n boundingVolumes: null\n };\n\n for (const resources of resourcesData || [emptyResources]) {\n this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);\n\n if (this.generateBoundingVolumes && resources.boundingVolumes) {\n boundingVolumes = resources.boundingVolumes;\n }\n\n const lodSelection = convertGeometricErrorToScreenThreshold(sourceTile, boundingVolumes);\n const maxScreenThresholdSQ = lodSelection.find(\n (val) => val.metricType === 'maxScreenThresholdSQ'\n ) || {maxError: 0};\n\n const nodeInPage = await this._updateNodeInNodePages(\n maxScreenThresholdSQ,\n boundingVolumes,\n sourceTile,\n parentNode.inPageId,\n resources\n );\n\n const nodeData = await NodeIndexDocument.createNodeIndexDocument(\n parentNode,\n boundingVolumes,\n lodSelection,\n nodeInPage,\n resources\n );\n const node = await new NodeIndexDocument(nodeInPage.index, this).addData(nodeData);\n nodes.push(node);\n\n if (nodeInPage.mesh) {\n await this._writeResources(resources, node.id);\n }\n\n if (this.validate) {\n this.boundingVolumeWarnings = validateNodeBoundingVolumes(nodeData);\n\n if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {\n console.warn('Bounding Volume Warnings: ', ...this.boundingVolumeWarnings); //eslint-disable-line\n }\n }\n\n nodeIds.push(nodeInPage.index);\n nodesInPage.push(nodeInPage);\n }\n\n sourceTile.unloadContent();\n\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: nodes[0],\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n return nodes;\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA\n * @returns - converted node resources\n */\n private async _convertResources(\n sourceTile: Tile3D,\n parentId: number,\n propertyTable: FeatureTableJson | null\n ): Promise<I3SConvertedResources[] | null> {\n if (!this.isContentSupported(sourceTile)) {\n return null;\n }\n const draftObb = {\n center: [],\n halfSize: [],\n quaternion: []\n };\n const resourcesData = await convertB3dmToI3sGeometry(\n sourceTile.content,\n async () => (await this.nodePages.push({index: 0, obb: draftObb}, parentId)).index,\n propertyTable,\n this.featuresHashArray,\n this.layers0?.attributeStorageInfo,\n this.options.draco,\n this.generateBoundingVolumes,\n this.options.mergeMaterials,\n this.geoidHeightModel!,\n this.workerSource\n );\n return resourcesData;\n }\n\n /**\n * Update node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)\n * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)\n * @param maxScreenThresholdSQ - Level of Details (LOD) metric\n * @param boundingVolumes - Bounding volumes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param resources - the node resources data\n * @param resources.meshMaterial - PBR-like material object\n * @param resources.texture - texture image\n * @param resources.vertexCount - number of vertices in geometry\n * @param resources.featureCount - number of features\n * @param resources.geometry - Uint8Array with geometry attributes\n * @return the node object in node pages\n */\n private async _updateNodeInNodePages(\n maxScreenThresholdSQ: MaxScreenThresholdSQ,\n boundingVolumes: BoundingVolumes,\n sourceTile: Tile3D,\n parentId: number,\n resources: I3SConvertedResources\n ): Promise<NodeInPage> {\n const {meshMaterial, texture, vertexCount, featureCount, geometry, hasUvRegions} = resources;\n const nodeInPage: NodeInPage = {\n index: 0,\n lodThreshold: maxScreenThresholdSQ.maxError,\n obb: boundingVolumes.obb,\n children: []\n };\n if (geometry && this.isContentSupported(sourceTile)) {\n nodeInPage.mesh = {\n geometry: {\n definition: this.findOrCreateGeometryDefinition(Boolean(texture), hasUvRegions),\n resource: 0\n },\n attribute: {\n resource: 0\n },\n material: {\n definition: 0\n }\n };\n }\n\n let nodeId = resources.nodeId;\n let node;\n if (!nodeId) {\n node = await this.nodePages.push(nodeInPage, parentId);\n } else {\n node = await this.nodePages.getNodeById(nodeId);\n }\n\n NodePages.updateAll(node, nodeInPage);\n if (meshMaterial) {\n NodePages.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));\n }\n if (texture) {\n const texelCountHint = texture.image.height * texture.image.width;\n NodePages.updateTexelCountHintByNodeId(node, texelCountHint);\n }\n if (vertexCount) {\n this.vertexCounter += vertexCount;\n NodePages.updateVertexCountByNodeId(node, vertexCount);\n }\n NodePages.updateNodeAttributeByNodeId(node);\n if (featureCount) {\n NodePages.updateFeatureCountByNodeId(node, featureCount);\n }\n\n this.nodePages.saveNode(node);\n\n return node;\n }\n\n /**\n * Write node resources in files\n * @param resources - source tile (3DTile)\n * @param resources.geometry - Uint8Array with geometry attributes\n * @param resources.compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param resources.texture - texture image\n * @param resources.sharedResources - shared resource data object\n * @param resources.attributes - feature attributes\n * @return {Promise<void>}\n */\n private async _writeResources(resources: I3SConvertedResources, nodePath: string): Promise<void> {\n const {\n geometry: geometryBuffer,\n compressedGeometry,\n texture,\n sharedResources,\n attributes\n } = resources;\n const childPath = join(this.layers0Path, 'nodes', nodePath);\n const slpkChildPath = join('nodes', nodePath);\n\n await this._writeGeometries(geometryBuffer!, compressedGeometry!, childPath, slpkChildPath);\n await this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);\n await this._writeTexture(texture, childPath, slpkChildPath);\n await this._writeAttributes(attributes, childPath, slpkChildPath);\n }\n\n /**\n * Write non-compressed and compressed geometries in files\n * @param geometryBuffer - Uint8Array with geometry attributes\n * @param compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n */\n private async _writeGeometries(\n geometryBuffer: ArrayBuffer,\n compressedGeometry: Promise<ArrayBuffer>,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkGeometryPath, geometryBuffer, '0.bin')\n });\n } else {\n const geometryPath = join(childPath, 'geometries/0/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(geometryPath, geometryBuffer, 'index.bin')\n });\n }\n\n if (this.options.draco) {\n if (this.options.slpk) {\n const slpkCompressedGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,\n writePromise: () =>\n writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, '1.bin')\n });\n } else {\n const compressedGeometryPath = join(childPath, 'geometries/1/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(compressedGeometryPath, compressedGeometry, 'index.bin')\n });\n }\n }\n }\n\n /**\n * Write shared resources in a file\n * @param sharedResources - shared resource data object\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n * @param nodePath - a node path\n */\n private async _writeShared(\n sharedResources: SharedResourcesArrays | null,\n childPath: string,\n slpkChildPath: string,\n nodePath: string\n ): Promise<void> {\n if (!sharedResources) {\n return;\n }\n sharedResources.nodePath = nodePath;\n const sharedData = transform(sharedResources, sharedResourcesTemplate());\n const sharedDataStr = JSON.stringify(sharedData);\n if (this.options.slpk) {\n const slpkSharedPath = join(childPath, 'shared');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,\n writePromise: () => writeFileForSlpk(slpkSharedPath, sharedDataStr, 'sharedResource.json')\n });\n } else {\n const sharedPath = join(childPath, 'shared/');\n await this.writeQueue.enqueue({writePromise: () => writeFile(sharedPath, sharedDataStr)});\n }\n }\n\n /**\n * Generates textures based on texture mime type and fill in textureSetDefinitions data.\n * @param texture - the texture image\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeTexture(\n texture: GLTFImagePostprocessed,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (texture) {\n const format = this._getFormatByMimeType(texture?.mimeType);\n const formats: TextureSetDefinitionFormats = [];\n const textureData = texture.bufferView!.data;\n\n switch (format) {\n case 'jpg':\n case 'png': {\n formats.push({name: '0', format});\n await this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '1', format: 'ktx2'});\n // For Node.js texture.image.data is type of Buffer\n const copyArrayBuffer = texture.image.data.subarray();\n const arrayToEncode = new Uint8Array(copyArrayBuffer);\n const ktx2TextureData = encode(\n {...texture.image, data: arrayToEncode},\n KTX2BasisWriterWorker,\n {\n ...KTX2BasisWriterWorker.options,\n source: this.workerSource.ktx2,\n reuseWorkers: true,\n _nodeWorkers: true\n }\n );\n\n await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);\n }\n\n break;\n }\n\n case 'ktx2': {\n formats.push({name: '1', format});\n await this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '0', format: 'jpg'});\n const decodedFromKTX2TextureData = encode(texture.image!.data[0], ImageWriter);\n await this.writeTextureFile(\n decodedFromKTX2TextureData,\n '0',\n 'jpg',\n childPath,\n slpkChildPath\n );\n }\n }\n }\n\n if (!this.layers0!.textureSetDefinitions!.length) {\n this.layers0!.textureSetDefinitions!.push({formats});\n this.layers0!.textureSetDefinitions!.push({formats, atlas: true});\n }\n }\n }\n\n /**\n * Write the texture image in a file\n * @param textureData\n * @param name\n * @param format\n * @param childPath\n * @param slpkChildPath\n */\n private async writeTextureFile(\n textureData: Promise<ArrayBuffer>,\n name: string,\n format: 'jpg' | 'png' | 'ktx2',\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkTexturePath = join(childPath, 'textures');\n const compress = false;\n\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/textures/${name}.${format}`,\n writePromise: () =>\n writeFileForSlpk(slpkTexturePath, textureData, `${name}.${format}`, compress)\n });\n } else {\n const texturePath = join(childPath, `textures/${name}/`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(texturePath, textureData, `index.${format}`)\n });\n }\n }\n\n /**\n * Write feature attributes in files\n * @param attributes - feature attributes\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeAttributes(\n attributes: ArrayBuffer[] | null = [],\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (attributes?.length && this.layers0?.attributeStorageInfo?.length) {\n for (let index = 0; index < attributes.length; index++) {\n const folderName = this.layers0.attributeStorageInfo[index].key;\n const fileBuffer = new Uint8Array(attributes[index]);\n\n if (this.options.slpk) {\n const slpkAttributesPath = join(childPath, 'attributes', folderName);\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkAttributesPath, fileBuffer, '0.bin')\n });\n } else {\n const attributesPath = join(childPath, `attributes/${folderName}/0`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(attributesPath, fileBuffer, 'index.bin')\n });\n }\n }\n }\n }\n\n /**\n * Return file format by its MIME type\n * @param mimeType - feature attributes\n */\n private _getFormatByMimeType(mimeType: string | undefined): 'jpg' | 'png' | 'ktx2' {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg';\n case 'image/png':\n return 'png';\n case 'image/ktx2':\n return 'ktx2';\n default:\n return 'jpg';\n }\n }\n\n /**\n * Find or create material in materialDefinitions array\n * @param material - end-to-end index of the node\n * @return material id\n */\n private _findOrCreateMaterial(material: I3SMaterialDefinition): number {\n const hash = md5(JSON.stringify(material));\n if (this.materialMap.has(hash)) {\n return this.materialMap.get(hash) || 0;\n }\n const newMaterialId = this.materialDefinitions.push(material) - 1;\n this.materialMap.set(hash, newMaterialId);\n return newMaterialId;\n }\n\n /**\n * Get unique geometry configuration index\n * In the end of conversion configurations will be transformed to geometryDefinitions array\n * @param hasTexture\n * @param hasUvRegions\n * @returns\n */\n private findOrCreateGeometryDefinition(hasTexture: boolean, hasUvRegions: boolean): number {\n const geometryConfig = {hasTexture, hasUvRegions};\n const hash = md5(JSON.stringify(geometryConfig));\n if (this.geometryMap.has(hash)) {\n return this.geometryMap.get(hash) || 0;\n }\n const newGeometryId = this.geometryConfigs.push(geometryConfig) - 1;\n this.geometryMap.set(hash, newGeometryId);\n return newGeometryId;\n }\n\n /**\n * Do conversion of 3DTiles property table to I3s node attributes.\n * @param propertyTable - Table with layer meta data.\n */\n private _convertPropertyTableToNodeAttributes(propertyTable: FeatureTableJson): void {\n let attributeIndex = 0;\n const propertyTableWithObjectId = {\n OBJECTID: [0],\n ...propertyTable\n };\n\n for (const key in propertyTableWithObjectId) {\n const firstAttribute = propertyTableWithObjectId[key][0];\n const attributeType = getAttributeType(key, firstAttribute);\n\n const storageAttribute = createdStorageAttribute(attributeIndex, key, attributeType);\n const fieldAttributeType = getFieldAttributeType(attributeType);\n const fieldAttribute = createFieldAttribute(key, fieldAttributeType);\n const popupInfo = createPopupInfo(propertyTableWithObjectId);\n\n this.layers0!.attributeStorageInfo!.push(storageAttribute);\n this.layers0!.fields!.push(fieldAttribute);\n this.layers0!.popupInfo = popupInfo;\n this.layers0!.layerType = _3D_OBJECT_LAYER_TYPE;\n\n attributeIndex += 1;\n }\n }\n\n /**\n * Print statistics in the end of conversion\n * @param params - output files data\n */\n private async _finishConversion(params: {\n slpk: boolean;\n outputPath: string;\n tilesetName: string;\n }): Promise<void> {\n const {tilesCount, tilesWithAddRefineCount} = this.refinementCounter;\n const addRefinementPercentage = tilesWithAddRefineCount\n ? (tilesWithAddRefineCount / tilesCount) * 100\n : 0;\n const filesSize = await calculateFilesSize(params);\n const diff = process.hrtime(this.conversionStartTime);\n const conversionTime = timeConverter(diff);\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n console.log(`Finishing conversion of ${_3D_TILES}`); // eslint-disable-line no-undef, no-console\n console.log(`Total conversion time: ${conversionTime}`); // eslint-disable-line no-undef, no-console\n console.log(`Vertex count: `, this.vertexCounter); // eslint-disable-line no-undef, no-console\n console.log(`File(s) size: `, filesSize, ' bytes'); // eslint-disable-line no-undef, no-console\n console.log(`Percentage of tiles with \"ADD\" refinement type:`, addRefinementPercentage, '%'); // eslint-disable-line no-undef, no-console\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n }\n\n /**\n * Fetch preload options for ION tileset\n */\n private async _fetchPreloadOptions(): Promise<any> {\n if (!this.Loader.preload) {\n return {};\n }\n const options = {\n 'cesium-ion': {accessToken: this.options.token || ION_DEFAULT_TOKEN}\n };\n const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);\n this.refreshTokenTime = process.hrtime();\n return {...options, ...preloadOptions};\n }\n\n /**\n * Update options of source tileset\n */\n private async _updateTilesetOptions(): Promise<void> {\n const diff = process.hrtime(this.refreshTokenTime);\n if (diff[0] < REFRESH_TOKEN_TIMEOUT) {\n return;\n }\n this.refreshTokenTime = process.hrtime();\n\n const preloadOptions = await this._fetchPreloadOptions();\n this.sourceTileset!.options = {...this.sourceTileset!.options, ...preloadOptions};\n if (preloadOptions.headers) {\n this.sourceTileset!.loadOptions.fetch = {\n ...this.sourceTileset!.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n console.log('Authorization Bearer token has been updated'); // eslint-disable-line no-undef, no-console\n }\n }\n\n /** Do calculations of all tiles and tiles with \"ADD\" type of refinement.\n * @param tile\n */\n private _checkAddRefinementTypeForTile(tile: Tile3D): void {\n const ADD_TILE_REFINEMENT = 1;\n\n if (tile.refine === ADD_TILE_REFINEMENT) {\n this.refinementCounter.tilesWithAddRefineCount += 1;\n console.warn('This tile uses \"ADD\" type of refinement'); // eslint-disable-line\n }\n\n this.refinementCounter.tilesCount += 1;\n }\n /**\n * Check if the tile's content format is supported by the converter\n * @param sourceRootTile\n * @returns\n */\n private isContentSupported(sourceRootTile: Tile3D): boolean {\n return ['b3dm', 'glTF'].includes(sourceRootTile?.content?.type);\n }\n\n private async loadWorkers(): Promise<void> {\n console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console\n if (this.options.draco) {\n const url = getWorkerURL(DracoWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.draco = source;\n }\n\n if (this.generateTextures) {\n const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.ktx2 = source;\n }\n\n const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);\n const source = await sourceResponse.text();\n this.workerSource.I3SAttributes = source;\n console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"i3s-converter.js","names":["_core","require","_tiles","_dTiles","_path","_uuid","_process","_interopRequireDefault","_jsonMapTransform","_md","_nodePages","_fileUtils","_compressUtil","_statisticUtills","_geometryConverter","_interopRequireWildcard","_coordinateConverter","_createSceneServerPath","_lodConversionUtils","_pgmLoader","_layers","_geometryDefinitions","_sharedResources","_nodeDebug","_textures","_images","_workerUtils","_draco","_writeQueue","_i3sAttributesWorker","_constants","_featureAttributes","_nodeIndexDocument","_process$env","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ION_DEFAULT_TOKEN","process","env","IonToken","HARDCODED_NODES_PER_PAGE","_3D_TILES","_3D_OBJECT_LAYER_TYPE","REFRESH_TOKEN_TIMEOUT","CESIUM_DATASET_PREFIX","I3SConverter","_classCallCheck2","Tiles3DLoader","WriteQueue","nodePages","NodePages","writeFile","options","layers0Path","materialMap","Map","materialDefinitions","geometryMap","geometryConfigs","vertexCounter","layers0","featuresHashArray","refinementCounter","tilesCount","tilesWithAddRefineCount","validate","generateTextures","generateBoundingVolumes","layersHasTexture","compressList","_createClass2","_convert","_asyncToGenerator2","_regenerator","mark","_callee","tilesetName","slpk","egmFilePath","inputUrl","outputPath","_options$draco","draco","sevenZipExe","maxDepth","token","_options$instantNodeW","instantNodeWriting","_options$mergeMateria","mergeMaterials","_sourceTilesetJson$ro","_sourceTilesetJson$ro2","preloadOptions","tilesetOptions","sourceTilesetJson","workerFarm","wrap","_callee$","_context","prev","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","conversionStartTime","hrtime","Boolean","Loader","indexOf","CesiumIonLoader","writeQueue","startListening","load","PGMLoader","geoidHeightModel","sent","useWriteFunction","writeFileForSlpk","loadWorkers","_fetchPreloadOptions","loadOptions","_nodeWorkers","reuseWorkers","basis","format","workerUrl","headers","fetch","assign","sourceTileset","Tileset3D","_createAndSaveTileset","root","boundingVolume","region","_finishConversion","t0","WorkerFarm","getWorkerFarm","destroy","finish","stop","convert","_x","_createAndSaveTileset2","_callee2","boundingVolumeRegion","_this","tilesetPath","sourceRootTile","boundingVolumes","rootNode","_iterator","_step","filePath","_callee2$","_context2","join","concat","removeDir","_formLayers0","createBoundingVolumes","index","lodThreshold","obb","children","NodeIndexDocument","createRootNode","_convertNodesTree","geometryDefinitions","transform","map","config","geometryConfig","geometryDefinitionTemlate","store","defaultGeometrySchema","ordering","attribute","_writeLayers0","createSceneServerPath","compressFileWithGzip","removeFile","t1","save","finalize","_createSlpk","_x2","_x3","_x4","_this$sourceTileset","_this$sourceTileset2","_this$sourceTileset2$","fullExtent","convertBoundingVolumeToI3SFullExtent","zmin","zmax","extent","xmin","ymin","xmax","ymax","layers0data","version","uuidv4","toUpperCase","id","href","nodesPerPage","compressGeometry","layersTemplate","_convertNodesTree2","_callee3","childNodes","_iterator2","_step2","childNode","_callee3$","_context3","_loadTile","isContentSupported","_createNode","addChildren","_addChildrenWithNeighborsAndWriteFile","parentNode","sourceTiles","level","unloadContent","_x5","_x6","_writeLayers","_callee4","_this2","_callee4$","_context4","enqueue","archiveKey","writePromise","JSON","stringify","_createSlpk2","_callee5","slpkTilesetPath","slpkFileName","_callee5$","_context5","compressWithChildProcess","_x7","_addChildrenWithNeighborsAndWriteFile2","_callee6","data","_callee6$","_context6","_addChildren","addNeighbors","_x8","_convertNestedTileset","_callee7","_ref","sourceTile","_callee7$","_context7","convertNestedTileset","_x9","_convertNode","_callee8","_ref2","_callee8$","_context8","convertNode","_x10","_addChildren2","_callee9","_iterator3","_step3","_callee9$","_context9","type","_x11","_createNode2","_callee10","_this$layers","_this$layers$attribut","propertyTable","resourcesData","nodes","nodeIds","nodesInPage","emptyResources","_iterator4","_step4","resources","lodSelection","maxScreenThresholdSQ","nodeInPage","nodeData","node","_console","_callee10$","_context10","_checkAddRefinementTypeForTile","_updateTilesetOptions","getPropertyTable","content","attributeStorageInfo","_convertPropertyTableToNodeAttributes","_convertResources","inPageId","geometry","compressedGeometry","texture","hasUvRegions","sharedResources","meshMaterial","vertexCount","attributes","featureCount","convertGeometricErrorToScreenThreshold","find","val","metricType","maxError","_updateNodeInNodePages","createNodeIndexDocument","addData","mesh","_writeResources","boundingVolumeWarnings","validateNodeBoundingVolumes","warn","_toConsumableArray2","_x12","_x13","_x14","_convertResources2","_callee12","parentId","_this3","_this$layers2","draftObb","_callee12$","_context12","center","halfSize","quaternion","convertB3dmToI3sGeometry","_callee11","_callee11$","_context11","workerSource","_x15","_x16","_x17","_updateNodeInNodePages2","_callee13","nodeId","texelCountHint","_callee13$","_context13","definition","findOrCreateGeometryDefinition","resource","material","getNodeById","updateAll","updateMaterialByNodeId","_findOrCreateMaterial","image","height","width","updateTexelCountHintByNodeId","updateVertexCountByNodeId","updateNodeAttributeByNodeId","updateFeatureCountByNodeId","saveNode","_x18","_x19","_x20","_x21","_x22","_writeResources2","_callee14","nodePath","geometryBuffer","childPath","slpkChildPath","_callee14$","_context14","_writeGeometries","_writeShared","_writeTexture","_writeAttributes","_x23","_x24","_writeGeometries2","_callee15","slpkGeometryPath","geometryPath","slpkCompressedGeometryPath","compressedGeometryPath","_callee15$","_context15","_x25","_x26","_x27","_x28","_writeShared2","_callee16","sharedData","sharedDataStr","slpkSharedPath","sharedPath","_callee16$","_context16","sharedResourcesTemplate","_x29","_x30","_x31","_x32","_writeTexture2","_callee17","formats","textureData","copyArrayBuffer","arrayToEncode","ktx2TextureData","decodedFromKTX2TextureData","_callee17$","_context17","_getFormatByMimeType","mimeType","bufferView","writeTextureFile","subarray","Uint8Array","encode","KTX2BasisWriterWorker","ktx2","ImageWriter","textureSetDefinitions","atlas","_x33","_x34","_x35","_writeTextureFile","_callee18","slpkTexturePath","compress","texturePath","_callee18$","_context18","_x36","_x37","_x38","_x39","_x40","_writeAttributes2","_callee19","_this$layers3","_this$layers3$attribu","_this4","_loop","_args20","_callee19$","_context20","undefined","folderName","fileBuffer","slpkAttributesPath","attributesPath","_loop$","_context19","delegateYield","hash","md5","newMaterialId","hasTexture","newGeometryId","attributeIndex","propertyTableWithObjectId","OBJECTID","firstAttribute","attributeType","getAttributeType","storageAttribute","createdStorageAttribute","fieldAttributeType","getFieldAttributeType","fieldAttribute","createFieldAttribute","popupInfo","createPopupInfo","fields","layerType","_finishConversion2","_callee20","params","_this$refinementCount","addRefinementPercentage","filesSize","diff","conversionTime","_callee20$","_context21","calculateFilesSize","timeConverter","_x41","_fetchPreloadOptions2","_callee21","_callee21$","_context22","preload","accessToken","refreshTokenTime","_updateTilesetOptions2","_callee22","_callee22$","_context23","tile","ADD_TILE_REFINEMENT","refine","_sourceRootTile$conte","includes","_loadWorkers","_callee23","url","_sourceResponse","_source","_url","_sourceResponse2","_source2","i3sAttributesWorkerUrl","sourceResponse","_callee23$","_context24","getWorkerURL","DracoWriterWorker","getLoaderOptions","fetchFile","text","I3SAttributesWorker","I3SAttributes","exports"],"sources":["../../../src/i3s-converter/i3s-converter.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Tileset3DProps} from '@loaders.gl/tiles';\nimport type {FeatureTableJson} from '@loaders.gl/3d-tiles';\nimport type {WriteQueueItem} from '../lib/utils/write-queue';\nimport type {\n SceneLayer3D,\n BoundingVolumes,\n MaxScreenThresholdSQ,\n NodeInPage\n} from '@loaders.gl/i3s';\nimport {load, encode, fetchFile, getLoaderOptions, isBrowser} from '@loaders.gl/core';\nimport {Tileset3D} from '@loaders.gl/tiles';\nimport {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';\nimport {Geoid} from '@math.gl/geoid';\nimport {join} from 'path';\nimport {v4 as uuidv4} from 'uuid';\nimport process from 'process';\nimport transform from 'json-map-transform';\nimport md5 from 'md5';\n\nimport NodePages from './helpers/node-pages';\nimport {writeFile, removeDir, writeFileForSlpk, removeFile} from '../lib/utils/file-utils';\nimport {\n compressFileWithGzip,\n compressWithChildProcess\n // generateHash128FromZip,\n // addFileToZip\n} from '../lib/utils/compress-util';\nimport {calculateFilesSize, timeConverter} from '../lib/utils/statistic-utills';\nimport convertB3dmToI3sGeometry, {getPropertyTable} from './helpers/geometry-converter';\nimport {\n createBoundingVolumes,\n convertBoundingVolumeToI3SFullExtent\n} from './helpers/coordinate-converter';\nimport {createSceneServerPath} from './helpers/create-scene-server-path';\nimport {convertGeometricErrorToScreenThreshold} from '../lib/utils/lod-conversion-utils';\nimport {PGMLoader} from '../pgm-loader';\n\nimport {LAYERS as layersTemplate} from './json-templates/layers';\nimport {GEOMETRY_DEFINITION as geometryDefinitionTemlate} from './json-templates/geometry-definitions';\nimport {SHARED_RESOURCES as sharedResourcesTemplate} from './json-templates/shared-resources';\nimport {validateNodeBoundingVolumes} from './helpers/node-debug';\n// loaders.gl, MIT license\n\nimport {Tile3D} from '@loaders.gl/tiles';\nimport {KTX2BasisWriterWorker} from '@loaders.gl/textures';\nimport {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {I3SMaterialDefinition, TextureSetDefinitionFormats} from '@loaders.gl/i3s/src/types';\nimport {ImageWriter} from '@loaders.gl/images';\nimport {GLTFImagePostprocessed} from '@loaders.gl/gltf';\nimport {I3SConvertedResources, SharedResourcesArrays} from './types';\nimport {getWorkerURL, WorkerFarm} from '@loaders.gl/worker-utils';\nimport {DracoWriterWorker} from '@loaders.gl/draco';\nimport WriteQueue from '../lib/utils/write-queue';\nimport {I3SAttributesWorker} from '../i3s-attributes-worker';\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {\n createdStorageAttribute,\n createFieldAttribute,\n createPopupInfo,\n getAttributeType,\n getFieldAttributeType\n} from './helpers/feature-attributes';\nimport {NodeIndexDocument} from './helpers/node-index-document';\n\nconst ION_DEFAULT_TOKEN =\n process.env?.IonToken || // eslint-disable-line\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line\nconst HARDCODED_NODES_PER_PAGE = 64;\nconst _3D_TILES = '3DTILES';\nconst _3D_OBJECT_LAYER_TYPE = '3DObject';\nconst REFRESH_TOKEN_TIMEOUT = 1800; // 30 minutes in seconds\nconst CESIUM_DATASET_PREFIX = 'https://';\n// const FS_FILE_TOO_LARGE = 'ERR_FS_FILE_TOO_LARGE';\n\n/**\n * Converter from 3d-tiles tileset to i3s layer\n */\nexport default class I3SConverter {\n nodePages: NodePages;\n options: any;\n layers0Path: string;\n materialMap: Map<string, number>;\n materialDefinitions: I3SMaterialDefinition[];\n geometryMap: Map<string, number>;\n geometryConfigs: {hasTexture: boolean; hasUvRegions: boolean}[];\n vertexCounter: number;\n layers0: SceneLayer3D | null;\n featuresHashArray: string[];\n refinementCounter: {\n tilesCount: number;\n tilesWithAddRefineCount: number;\n };\n validate: boolean;\n boundingVolumeWarnings?: string[] = [];\n conversionStartTime: [number, number] = [0, 0];\n refreshTokenTime: [number, number] = [0, 0];\n sourceTileset: Tileset3D | null = null;\n geoidHeightModel: Geoid | null = null;\n Loader: LoaderWithParser = Tiles3DLoader;\n generateTextures: boolean;\n generateBoundingVolumes: boolean;\n layersHasTexture: boolean;\n workerSource: {[key: string]: string} = {};\n writeQueue: WriteQueue<WriteQueueItem> = new WriteQueue();\n compressList: string[] | null = null;\n\n constructor() {\n this.nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE, this);\n this.options = {};\n this.layers0Path = '';\n this.materialMap = new Map();\n this.materialDefinitions = [];\n this.geometryMap = new Map();\n this.geometryConfigs = [];\n this.vertexCounter = 0;\n this.layers0 = null;\n this.featuresHashArray = [];\n this.refinementCounter = {\n tilesCount: 0,\n tilesWithAddRefineCount: 0\n };\n this.validate = false;\n this.generateTextures = false;\n this.generateBoundingVolumes = false;\n this.layersHasTexture = false;\n this.compressList = null;\n }\n\n /**\n * Convert a 3d tileset\n * @param options\n * @param options.inputUrl the url to read the tileset from\n * @param options.outputPath the output filename\n * @param options.tilesetName the output name of the tileset\n * @param options.maxDepth The max tree depth of conversion\n * @param options.slpk Generate slpk (Scene Layer Packages) output file\n * @param options.sevenZipExe Location of 7z.exe archiver to create slpk on Windows\n * @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format\n * @param options.token Token for Cesium ION tilesets authentication\n * @param options.draco Generate I3S 1.7 draco compressed geometries\n * @param options.validate -enable validation\n * @param options.generateTextures - generate alternative type of textures (to have non-compressed jpeg/png and compressed ktx2)\n * @param options.generateBoundingVolumes - generate bounding volumes from vertices coordinates instead of source tiles bounding volumes\n * @param options.instantNodeWriting - Keep created 3DNodeIndexDocument files on disk instead of memory. This option reduce memory usage but decelerates conversion speed\n */\n async convert(options: {\n inputUrl: string;\n outputPath: string;\n tilesetName: string;\n sevenZipExe: string;\n egmFilePath: string;\n maxDepth?: number;\n slpk?: boolean;\n token?: string;\n draco?: boolean;\n mergeMaterials?: boolean;\n validate?: boolean;\n generateTextures?: boolean;\n generateBoundingVolumes?: boolean;\n instantNodeWriting?: boolean;\n }): Promise<any> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n this.conversionStartTime = process.hrtime();\n const {\n tilesetName,\n slpk,\n egmFilePath,\n inputUrl,\n validate,\n outputPath,\n draco = true,\n sevenZipExe,\n maxDepth,\n token,\n generateTextures,\n generateBoundingVolumes,\n instantNodeWriting = false,\n mergeMaterials = true\n } = options;\n this.options = {\n maxDepth,\n slpk,\n sevenZipExe,\n egmFilePath,\n draco,\n token,\n inputUrl,\n instantNodeWriting,\n mergeMaterials\n };\n this.compressList = (this.options.instantNodeWriting && []) || null;\n this.validate = Boolean(validate);\n this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;\n this.generateTextures = Boolean(generateTextures);\n this.generateBoundingVolumes = Boolean(generateBoundingVolumes);\n\n this.writeQueue = new WriteQueue();\n this.writeQueue.startListening();\n\n console.log('Loading egm file...'); // eslint-disable-line\n this.geoidHeightModel = await load(egmFilePath, PGMLoader);\n console.log('Loading egm file completed!'); // eslint-disable-line\n\n if (slpk) {\n this.nodePages.useWriteFunction(writeFileForSlpk);\n }\n\n await this.loadWorkers();\n\n try {\n const preloadOptions = await this._fetchPreloadOptions();\n const tilesetOptions: Tileset3DProps = {\n loadOptions: {\n _nodeWorkers: true,\n reuseWorkers: true,\n basis: {format: 'rgba32'},\n 'basis-nodejs': {\n format: 'rgba32',\n workerUrl: './modules/textures/dist/basis-nodejs-worker.js'\n },\n 'draco-nodejs': {workerUrl: './modules/draco/dist/draco-nodejs-worker.js'}\n }\n };\n if (preloadOptions.headers) {\n tilesetOptions.loadOptions!.fetch = {headers: preloadOptions.headers};\n }\n Object.assign(tilesetOptions, preloadOptions);\n const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);\n // console.log(tilesetJson); // eslint-disable-line\n this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);\n\n await this._createAndSaveTileset(\n outputPath,\n tilesetName,\n sourceTilesetJson?.root?.boundingVolume?.region\n );\n await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});\n return sourceTilesetJson;\n } catch (error) {\n throw error;\n } finally {\n // Clean up worker pools\n const workerFarm = WorkerFarm.getWorkerFarm({});\n workerFarm.destroy();\n }\n }\n\n /**\n * Convert and save the layer and embedded tiles\n * @param outputPath - path to save output data\n * @param tilesetName - new tileset path\n */\n private async _createAndSaveTileset(\n outputPath: string,\n tilesetName: string,\n boundingVolumeRegion?: number[]\n ): Promise<void> {\n const tilesetPath = join(`${outputPath}`, `${tilesetName}`);\n // Removing the tilesetPath needed to exclude erroneous files after conversion\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n\n this.layers0Path = join(tilesetPath, 'SceneServer', 'layers', '0');\n\n this._formLayers0(tilesetName, boundingVolumeRegion);\n\n this.materialDefinitions = [];\n this.materialMap = new Map();\n\n const sourceRootTile: Tile3D = this.sourceTileset!.root!;\n const boundingVolumes = createBoundingVolumes(sourceRootTile, this.geoidHeightModel!);\n await this.nodePages.push({\n index: 0,\n lodThreshold: 0,\n obb: boundingVolumes.obb,\n children: []\n });\n\n const rootNode = await NodeIndexDocument.createRootNode(boundingVolumes, this);\n await this._convertNodesTree(rootNode, sourceRootTile);\n\n this.layers0!.materialDefinitions = this.materialDefinitions;\n // @ts-ignore\n this.layers0.geometryDefinitions = transform(\n this.geometryConfigs.map((config) => ({\n geometryConfig: {...config, draco: this.options.draco}\n })),\n geometryDefinitionTemlate()\n );\n\n if (this.layersHasTexture === false) {\n this.layers0!.store.defaultGeometrySchema.ordering =\n this.layers0!.store.defaultGeometrySchema.ordering.filter(\n (attribute) => attribute !== 'uv0'\n );\n }\n\n await this._writeLayers0();\n createSceneServerPath(tilesetName, this.layers0!, tilesetPath);\n for (const filePath of this.compressList || []) {\n await compressFileWithGzip(filePath);\n await removeFile(filePath);\n }\n await this.nodePages.save();\n await this.writeQueue.finalize();\n await this._createSlpk(tilesetPath);\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param tilesetName - Name of layer\n */\n private _formLayers0(tilesetName: string, boundingVolumeRegion?: number[]): void {\n const fullExtent = convertBoundingVolumeToI3SFullExtent(\n this.sourceTileset?.boundingVolume || this.sourceTileset?.root?.boundingVolume\n );\n if (boundingVolumeRegion) {\n fullExtent.zmin = boundingVolumeRegion[4];\n fullExtent.zmax = boundingVolumeRegion[5];\n }\n const extent = [fullExtent.xmin, fullExtent.ymin, fullExtent.xmax, fullExtent.ymax];\n const layers0data = {\n version: `{${uuidv4().toUpperCase()}}`,\n id: 0,\n name: tilesetName,\n href: './layers/0',\n store: {\n id: `{${uuidv4().toUpperCase()}}`,\n extent\n },\n nodePages: {\n nodesPerPage: HARDCODED_NODES_PER_PAGE\n },\n compressGeometry: this.options.draco,\n fullExtent\n };\n this.layers0 = transform(layers0data, layersTemplate());\n }\n\n /**\n * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md\n * @param rootNode - 3DNodeIndexDocument of root node https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md\n * @param sourceRootTile - Source (3DTile) tile data\n */\n private async _convertNodesTree(\n rootNode: NodeIndexDocument,\n sourceRootTile: Tile3D\n ): Promise<void> {\n await this.sourceTileset!._loadTile(sourceRootTile);\n if (this.isContentSupported(sourceRootTile)) {\n const childNodes = await this._createNode(rootNode, sourceRootTile, 0);\n for (const childNode of childNodes) {\n await childNode.save();\n }\n await rootNode.addChildren(childNodes);\n } else {\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: rootNode,\n sourceTiles: sourceRootTile.children,\n level: 1\n });\n }\n await sourceRootTile.unloadContent();\n await rootNode.save();\n }\n\n /**\n * Write 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md in file\n */\n private async _writeLayers0(): Promise<void> {\n if (this.options.slpk) {\n await this.writeQueue.enqueue({\n archiveKey: '3dSceneLayer.json.gz',\n writePromise: () =>\n writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), '3dSceneLayer.json')\n });\n } else {\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(this.layers0Path, JSON.stringify(this.layers0))\n });\n }\n }\n\n /**\n * Pack files into *.slpk archive\n * @param tilesetPath - Path to save file\n */\n private async _createSlpk(tilesetPath: string): Promise<void> {\n if (this.options.slpk) {\n const slpkTilesetPath = join(tilesetPath, 'SceneServer', 'layers', '0');\n const slpkFileName = `${tilesetPath}.slpk`;\n await compressWithChildProcess(\n slpkTilesetPath,\n slpkFileName,\n 0,\n '.',\n this.options.sevenZipExe\n );\n\n // TODO: `addFileToZip` corrupts archive so it can't be validated with windows i3s_converter.exe\n // const fileHash128Path = `${tilesetPath}/@specialIndexFileHASH128@`;\n // try {\n // await generateHash128FromZip(slpkFileName, fileHash128Path);\n // await addFileToZip(\n // tilesetPath,\n // '@specialIndexFileHASH128@',\n // slpkFileName,\n // this.options.sevenZipExe\n // );\n // } catch (error) {\n // if (error.code === FS_FILE_TOO_LARGE) {\n // console.warn(`${slpkFileName} file is too big to generate a hash`); // eslint-disable-line\n // } else {\n // console.error(error); // eslint-disable-line\n // }\n // }\n // All converted files are contained in slpk now they can be deleted\n try {\n await removeDir(tilesetPath);\n } catch (e) {\n // do nothing\n }\n }\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param data - arguments\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param data.sourceTiles - array of source child nodes\n * @param data.level - level of node (distanse to root node in the tree)\n */\n private async _addChildrenWithNeighborsAndWriteFile(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n await this._addChildren(data);\n await data.parentNode.addNeighbors();\n }\n\n /**\n * Convert nested subtree of 3DTiles dataset\n * @param param0\n * @param data.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNestedTileset({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n await this.sourceTileset!._loadTile(sourceTile);\n await this._addChildren({\n parentNode,\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n await sourceTile.unloadContent();\n }\n\n /**\n * Convert 3DTiles tile to I3S node\n * @param param0\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async convertNode({\n parentNode,\n sourceTile,\n level\n }: {\n parentNode: NodeIndexDocument;\n sourceTile: Tile3D;\n level: number;\n }) {\n const childNodes = await this._createNode(parentNode, sourceTile, level);\n await parentNode.addChildren(childNodes);\n }\n\n /**\n * Add child nodes recursively and write them to files\n * @param param0 - arguments\n * @param param0.parentNode - 3DNodeIndexDocument of parent node\n * @param param0.sourceTile - source 3DTile data\n * @param param0.level - tree level\n */\n private async _addChildren(data: {\n parentNode: NodeIndexDocument;\n sourceTiles: Tile3D[];\n level: number;\n }): Promise<void> {\n const {sourceTiles, parentNode, level} = data;\n if (this.options.maxDepth && level > this.options.maxDepth) {\n return;\n }\n for (const sourceTile of sourceTiles) {\n if (sourceTile.type === 'json') {\n await this.convertNestedTileset({parentNode, sourceTile, level});\n } else {\n await this.convertNode({parentNode, sourceTile, level});\n }\n if (sourceTile.id) {\n console.log(sourceTile.id); // eslint-disable-line\n }\n }\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param parentNode - 3DNodeIndexDocument of parent node\n * @param sourceTile - source 3DTile data\n * @param level - tree level\n */\n private async _createNode(\n parentNode: NodeIndexDocument,\n sourceTile: Tile3D,\n level: number\n ): Promise<NodeIndexDocument[]> {\n this._checkAddRefinementTypeForTile(sourceTile);\n\n await this._updateTilesetOptions();\n await this.sourceTileset!._loadTile(sourceTile);\n\n let boundingVolumes = createBoundingVolumes(sourceTile, this.geoidHeightModel!);\n\n const propertyTable = getPropertyTable(sourceTile.content);\n\n if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {\n this._convertPropertyTableToNodeAttributes(propertyTable);\n }\n\n const resourcesData = await this._convertResources(\n sourceTile,\n parentNode.inPageId,\n propertyTable\n );\n\n const nodes: NodeIndexDocument[] = [];\n const nodeIds: number[] = [];\n const nodesInPage: NodeInPage[] = [];\n const emptyResources = {\n geometry: null,\n compressedGeometry: null,\n texture: null,\n hasUvRegions: false,\n sharedResources: null,\n meshMaterial: null,\n vertexCount: null,\n attributes: null,\n featureCount: null,\n boundingVolumes: null\n };\n\n for (const resources of resourcesData || [emptyResources]) {\n this.layersHasTexture = this.layersHasTexture || Boolean(resources.texture);\n\n if (this.generateBoundingVolumes && resources.boundingVolumes) {\n boundingVolumes = resources.boundingVolumes;\n }\n\n const lodSelection = convertGeometricErrorToScreenThreshold(sourceTile, boundingVolumes);\n const maxScreenThresholdSQ = lodSelection.find(\n (val) => val.metricType === 'maxScreenThresholdSQ'\n ) || {maxError: 0};\n\n const nodeInPage = await this._updateNodeInNodePages(\n maxScreenThresholdSQ,\n boundingVolumes,\n sourceTile,\n parentNode.inPageId,\n resources\n );\n\n const nodeData = await NodeIndexDocument.createNodeIndexDocument(\n parentNode,\n boundingVolumes,\n lodSelection,\n nodeInPage,\n resources\n );\n const node = await new NodeIndexDocument(nodeInPage.index, this).addData(nodeData);\n nodes.push(node);\n\n if (nodeInPage.mesh) {\n await this._writeResources(resources, node.id);\n }\n\n if (this.validate) {\n this.boundingVolumeWarnings = validateNodeBoundingVolumes(nodeData);\n\n if (this.boundingVolumeWarnings && this.boundingVolumeWarnings.length) {\n console.warn('Bounding Volume Warnings: ', ...this.boundingVolumeWarnings); //eslint-disable-line\n }\n }\n\n nodeIds.push(nodeInPage.index);\n nodesInPage.push(nodeInPage);\n }\n\n sourceTile.unloadContent();\n\n await this._addChildrenWithNeighborsAndWriteFile({\n parentNode: nodes[0],\n sourceTiles: sourceTile.children,\n level: level + 1\n });\n return nodes;\n }\n\n /**\n * Convert tile to one or more I3S nodes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param propertyTable - batch table from b3dm / feature properties from EXT_FEATURE_METADATA\n * @returns - converted node resources\n */\n private async _convertResources(\n sourceTile: Tile3D,\n parentId: number,\n propertyTable: FeatureTableJson | null\n ): Promise<I3SConvertedResources[] | null> {\n if (!this.isContentSupported(sourceTile)) {\n return null;\n }\n const draftObb = {\n center: [],\n halfSize: [],\n quaternion: []\n };\n const resourcesData = await convertB3dmToI3sGeometry(\n sourceTile.content,\n async () => (await this.nodePages.push({index: 0, obb: draftObb}, parentId)).index,\n propertyTable,\n this.featuresHashArray,\n this.layers0?.attributeStorageInfo,\n this.options.draco,\n this.generateBoundingVolumes,\n this.options.mergeMaterials,\n this.geoidHeightModel!,\n this.workerSource\n );\n return resourcesData;\n }\n\n /**\n * Update node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)\n * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)\n * @param maxScreenThresholdSQ - Level of Details (LOD) metric\n * @param boundingVolumes - Bounding volumes\n * @param sourceTile - source tile (3DTile)\n * @param parentId - id of parent node in node pages\n * @param resources - the node resources data\n * @param resources.meshMaterial - PBR-like material object\n * @param resources.texture - texture image\n * @param resources.vertexCount - number of vertices in geometry\n * @param resources.featureCount - number of features\n * @param resources.geometry - Uint8Array with geometry attributes\n * @return the node object in node pages\n */\n private async _updateNodeInNodePages(\n maxScreenThresholdSQ: MaxScreenThresholdSQ,\n boundingVolumes: BoundingVolumes,\n sourceTile: Tile3D,\n parentId: number,\n resources: I3SConvertedResources\n ): Promise<NodeInPage> {\n const {meshMaterial, texture, vertexCount, featureCount, geometry, hasUvRegions} = resources;\n const nodeInPage: NodeInPage = {\n index: 0,\n lodThreshold: maxScreenThresholdSQ.maxError,\n obb: boundingVolumes.obb,\n children: []\n };\n if (geometry && this.isContentSupported(sourceTile)) {\n nodeInPage.mesh = {\n geometry: {\n definition: this.findOrCreateGeometryDefinition(Boolean(texture), hasUvRegions),\n resource: 0\n },\n attribute: {\n resource: 0\n },\n material: {\n definition: 0\n }\n };\n }\n\n let nodeId = resources.nodeId;\n let node;\n if (!nodeId) {\n node = await this.nodePages.push(nodeInPage, parentId);\n } else {\n node = await this.nodePages.getNodeById(nodeId);\n }\n\n NodePages.updateAll(node, nodeInPage);\n if (meshMaterial) {\n NodePages.updateMaterialByNodeId(node, this._findOrCreateMaterial(meshMaterial));\n }\n if (texture) {\n const texelCountHint = texture.image.height * texture.image.width;\n NodePages.updateTexelCountHintByNodeId(node, texelCountHint);\n }\n if (vertexCount) {\n this.vertexCounter += vertexCount;\n NodePages.updateVertexCountByNodeId(node, vertexCount);\n }\n NodePages.updateNodeAttributeByNodeId(node);\n if (featureCount) {\n NodePages.updateFeatureCountByNodeId(node, featureCount);\n }\n\n this.nodePages.saveNode(node);\n\n return node;\n }\n\n /**\n * Write node resources in files\n * @param resources - source tile (3DTile)\n * @param resources.geometry - Uint8Array with geometry attributes\n * @param resources.compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param resources.texture - texture image\n * @param resources.sharedResources - shared resource data object\n * @param resources.attributes - feature attributes\n * @return {Promise<void>}\n */\n private async _writeResources(resources: I3SConvertedResources, nodePath: string): Promise<void> {\n const {\n geometry: geometryBuffer,\n compressedGeometry,\n texture,\n sharedResources,\n attributes\n } = resources;\n const childPath = join(this.layers0Path, 'nodes', nodePath);\n const slpkChildPath = join('nodes', nodePath);\n\n await this._writeGeometries(geometryBuffer!, compressedGeometry!, childPath, slpkChildPath);\n await this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);\n await this._writeTexture(texture, childPath, slpkChildPath);\n await this._writeAttributes(attributes, childPath, slpkChildPath);\n }\n\n /**\n * Write non-compressed and compressed geometries in files\n * @param geometryBuffer - Uint8Array with geometry attributes\n * @param compressedGeometry - Uint8Array with compressed (draco) geometry\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n */\n private async _writeGeometries(\n geometryBuffer: ArrayBuffer,\n compressedGeometry: Promise<ArrayBuffer>,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkGeometryPath, geometryBuffer, '0.bin')\n });\n } else {\n const geometryPath = join(childPath, 'geometries/0/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(geometryPath, geometryBuffer, 'index.bin')\n });\n }\n\n if (this.options.draco) {\n if (this.options.slpk) {\n const slpkCompressedGeometryPath = join(childPath, 'geometries');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,\n writePromise: () =>\n writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, '1.bin')\n });\n } else {\n const compressedGeometryPath = join(childPath, 'geometries/1/');\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(compressedGeometryPath, compressedGeometry, 'index.bin')\n });\n }\n }\n }\n\n /**\n * Write shared resources in a file\n * @param sharedResources - shared resource data object\n * @param childPath - a child path to write resources\n * @param slpkChildPath - resource path inside *slpk file\n * @param nodePath - a node path\n */\n private async _writeShared(\n sharedResources: SharedResourcesArrays | null,\n childPath: string,\n slpkChildPath: string,\n nodePath: string\n ): Promise<void> {\n if (!sharedResources) {\n return;\n }\n sharedResources.nodePath = nodePath;\n const sharedData = transform(sharedResources, sharedResourcesTemplate());\n const sharedDataStr = JSON.stringify(sharedData);\n if (this.options.slpk) {\n const slpkSharedPath = join(childPath, 'shared');\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,\n writePromise: () => writeFileForSlpk(slpkSharedPath, sharedDataStr, 'sharedResource.json')\n });\n } else {\n const sharedPath = join(childPath, 'shared/');\n await this.writeQueue.enqueue({writePromise: () => writeFile(sharedPath, sharedDataStr)});\n }\n }\n\n /**\n * Generates textures based on texture mime type and fill in textureSetDefinitions data.\n * @param texture - the texture image\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeTexture(\n texture: GLTFImagePostprocessed,\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (texture) {\n const format = this._getFormatByMimeType(texture?.mimeType);\n const formats: TextureSetDefinitionFormats = [];\n const textureData = texture.bufferView!.data;\n\n switch (format) {\n case 'jpg':\n case 'png': {\n formats.push({name: '0', format});\n await this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '1', format: 'ktx2'});\n // For Node.js texture.image.data is type of Buffer\n const copyArrayBuffer = texture.image.data.subarray();\n const arrayToEncode = new Uint8Array(copyArrayBuffer);\n const ktx2TextureData = encode(\n {...texture.image, data: arrayToEncode},\n KTX2BasisWriterWorker,\n {\n ...KTX2BasisWriterWorker.options,\n source: this.workerSource.ktx2,\n reuseWorkers: true,\n _nodeWorkers: true\n }\n );\n\n await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);\n }\n\n break;\n }\n\n case 'ktx2': {\n formats.push({name: '1', format});\n await this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);\n\n if (this.generateTextures) {\n formats.push({name: '0', format: 'jpg'});\n const decodedFromKTX2TextureData = encode(texture.image!.data[0], ImageWriter);\n await this.writeTextureFile(\n decodedFromKTX2TextureData,\n '0',\n 'jpg',\n childPath,\n slpkChildPath\n );\n }\n }\n }\n\n if (!this.layers0!.textureSetDefinitions!.length) {\n this.layers0!.textureSetDefinitions!.push({formats});\n this.layers0!.textureSetDefinitions!.push({formats, atlas: true});\n }\n }\n }\n\n /**\n * Write the texture image in a file\n * @param textureData\n * @param name\n * @param format\n * @param childPath\n * @param slpkChildPath\n */\n private async writeTextureFile(\n textureData: Promise<ArrayBuffer>,\n name: string,\n format: 'jpg' | 'png' | 'ktx2',\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (this.options.slpk) {\n const slpkTexturePath = join(childPath, 'textures');\n const compress = false;\n\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/textures/${name}.${format}`,\n writePromise: () =>\n writeFileForSlpk(slpkTexturePath, textureData, `${name}.${format}`, compress)\n });\n } else {\n const texturePath = join(childPath, `textures/${name}/`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(texturePath, textureData, `index.${format}`)\n });\n }\n }\n\n /**\n * Write feature attributes in files\n * @param attributes - feature attributes\n * @param childPath - a child path to write resources\n * @param slpkChildPath - the resource path inside *slpk file\n */\n private async _writeAttributes(\n attributes: ArrayBuffer[] | null = [],\n childPath: string,\n slpkChildPath: string\n ): Promise<void> {\n if (attributes?.length && this.layers0?.attributeStorageInfo?.length) {\n for (let index = 0; index < attributes.length; index++) {\n const folderName = this.layers0.attributeStorageInfo[index].key;\n const fileBuffer = new Uint8Array(attributes[index]);\n\n if (this.options.slpk) {\n const slpkAttributesPath = join(childPath, 'attributes', folderName);\n await this.writeQueue.enqueue({\n archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,\n writePromise: () => writeFileForSlpk(slpkAttributesPath, fileBuffer, '0.bin')\n });\n } else {\n const attributesPath = join(childPath, `attributes/${folderName}/0`);\n await this.writeQueue.enqueue({\n writePromise: () => writeFile(attributesPath, fileBuffer, 'index.bin')\n });\n }\n }\n }\n }\n\n /**\n * Return file format by its MIME type\n * @param mimeType - feature attributes\n */\n private _getFormatByMimeType(mimeType: string | undefined): 'jpg' | 'png' | 'ktx2' {\n switch (mimeType) {\n case 'image/jpeg':\n return 'jpg';\n case 'image/png':\n return 'png';\n case 'image/ktx2':\n return 'ktx2';\n default:\n return 'jpg';\n }\n }\n\n /**\n * Find or create material in materialDefinitions array\n * @param material - end-to-end index of the node\n * @return material id\n */\n private _findOrCreateMaterial(material: I3SMaterialDefinition): number {\n const hash = md5(JSON.stringify(material));\n if (this.materialMap.has(hash)) {\n return this.materialMap.get(hash) || 0;\n }\n const newMaterialId = this.materialDefinitions.push(material) - 1;\n this.materialMap.set(hash, newMaterialId);\n return newMaterialId;\n }\n\n /**\n * Get unique geometry configuration index\n * In the end of conversion configurations will be transformed to geometryDefinitions array\n * @param hasTexture\n * @param hasUvRegions\n * @returns\n */\n private findOrCreateGeometryDefinition(hasTexture: boolean, hasUvRegions: boolean): number {\n const geometryConfig = {hasTexture, hasUvRegions};\n const hash = md5(JSON.stringify(geometryConfig));\n if (this.geometryMap.has(hash)) {\n return this.geometryMap.get(hash) || 0;\n }\n const newGeometryId = this.geometryConfigs.push(geometryConfig) - 1;\n this.geometryMap.set(hash, newGeometryId);\n return newGeometryId;\n }\n\n /**\n * Do conversion of 3DTiles property table to I3s node attributes.\n * @param propertyTable - Table with layer meta data.\n */\n private _convertPropertyTableToNodeAttributes(propertyTable: FeatureTableJson): void {\n let attributeIndex = 0;\n const propertyTableWithObjectId = {\n OBJECTID: [0],\n ...propertyTable\n };\n\n for (const key in propertyTableWithObjectId) {\n const firstAttribute = propertyTableWithObjectId[key][0];\n const attributeType = getAttributeType(key, firstAttribute);\n\n const storageAttribute = createdStorageAttribute(attributeIndex, key, attributeType);\n const fieldAttributeType = getFieldAttributeType(attributeType);\n const fieldAttribute = createFieldAttribute(key, fieldAttributeType);\n const popupInfo = createPopupInfo(propertyTableWithObjectId);\n\n this.layers0!.attributeStorageInfo!.push(storageAttribute);\n this.layers0!.fields!.push(fieldAttribute);\n this.layers0!.popupInfo = popupInfo;\n this.layers0!.layerType = _3D_OBJECT_LAYER_TYPE;\n\n attributeIndex += 1;\n }\n }\n\n /**\n * Print statistics in the end of conversion\n * @param params - output files data\n */\n private async _finishConversion(params: {\n slpk: boolean;\n outputPath: string;\n tilesetName: string;\n }): Promise<void> {\n const {tilesCount, tilesWithAddRefineCount} = this.refinementCounter;\n const addRefinementPercentage = tilesWithAddRefineCount\n ? (tilesWithAddRefineCount / tilesCount) * 100\n : 0;\n const filesSize = await calculateFilesSize(params);\n const diff = process.hrtime(this.conversionStartTime);\n const conversionTime = timeConverter(diff);\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n console.log(`Finishing conversion of ${_3D_TILES}`); // eslint-disable-line no-undef, no-console\n console.log(`Total conversion time: ${conversionTime}`); // eslint-disable-line no-undef, no-console\n console.log(`Vertex count: `, this.vertexCounter); // eslint-disable-line no-undef, no-console\n console.log(`File(s) size: `, filesSize, ' bytes'); // eslint-disable-line no-undef, no-console\n console.log(`Percentage of tiles with \"ADD\" refinement type:`, addRefinementPercentage, '%'); // eslint-disable-line no-undef, no-console\n console.log(`------------------------------------------------`); // eslint-disable-line no-undef, no-console\n }\n\n /**\n * Fetch preload options for ION tileset\n */\n private async _fetchPreloadOptions(): Promise<any> {\n if (!this.Loader.preload) {\n return {};\n }\n const options = {\n 'cesium-ion': {accessToken: this.options.token || ION_DEFAULT_TOKEN}\n };\n const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);\n this.refreshTokenTime = process.hrtime();\n return {...options, ...preloadOptions};\n }\n\n /**\n * Update options of source tileset\n */\n private async _updateTilesetOptions(): Promise<void> {\n const diff = process.hrtime(this.refreshTokenTime);\n if (diff[0] < REFRESH_TOKEN_TIMEOUT) {\n return;\n }\n this.refreshTokenTime = process.hrtime();\n\n const preloadOptions = await this._fetchPreloadOptions();\n this.sourceTileset!.options = {...this.sourceTileset!.options, ...preloadOptions};\n if (preloadOptions.headers) {\n this.sourceTileset!.loadOptions.fetch = {\n ...this.sourceTileset!.loadOptions.fetch,\n headers: preloadOptions.headers\n };\n console.log('Authorization Bearer token has been updated'); // eslint-disable-line no-undef, no-console\n }\n }\n\n /** Do calculations of all tiles and tiles with \"ADD\" type of refinement.\n * @param tile\n */\n private _checkAddRefinementTypeForTile(tile: Tile3D): void {\n const ADD_TILE_REFINEMENT = 1;\n\n if (tile.refine === ADD_TILE_REFINEMENT) {\n this.refinementCounter.tilesWithAddRefineCount += 1;\n console.warn('This tile uses \"ADD\" type of refinement'); // eslint-disable-line\n }\n\n this.refinementCounter.tilesCount += 1;\n }\n /**\n * Check if the tile's content format is supported by the converter\n * @param sourceRootTile\n * @returns\n */\n private isContentSupported(sourceRootTile: Tile3D): boolean {\n return ['b3dm', 'glTF'].includes(sourceRootTile?.content?.type);\n }\n\n private async loadWorkers(): Promise<void> {\n console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console\n if (this.options.draco) {\n const url = getWorkerURL(DracoWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.draco = source;\n }\n\n if (this.generateTextures) {\n const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(url);\n const source = await sourceResponse.text();\n this.workerSource.ktx2 = source;\n }\n\n const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, {...getLoaderOptions()});\n const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);\n const source = await sourceResponse.text();\n this.workerSource.I3SAttributes = source;\n console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"geometry-definitions.js","names":["_jsonMapTransform","_interopRequireDefault","require","PLAIN_GEOMETRY_DEFINITION","offset","default","position","type","component","normal","uv0","path","transform","val","omitValues","color","uvRegion","featureId","binding","faceRange","COMPRESSED_GEOMETRY_DEFINITION","result","hasTexture","push","hasUvRegions","GEOMETRY_DEFINITION","geometryBuffers","draco","geometryConfig","exports"],"sources":["../../../../src/i3s-converter/json-templates/geometry-definitions.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst PLAIN_GEOMETRY_DEFINITION = () => ({\n offset: {\n default: 8\n },\n position: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n normal: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n uv0: {\n path: 'hasTexture',\n transform: (val) => (val && {type: 'Float32', component: 2}) || false,\n omitValues: [false]\n },\n color: {\n default: {\n type: 'UInt8',\n component: 4\n }\n },\n uvRegion: {\n path: 'hasUvRegions',\n transform: (val) => (val && {type: 'UInt16', component: 4}) || false,\n omitValues: [false]\n },\n featureId: {\n default: {\n binding: 'per-feature',\n type: 'UInt64',\n component: 1\n }\n },\n faceRange: {\n default: {\n binding: 'per-feature',\n type: 'UInt32',\n component: 2\n }\n }\n});\n\nconst COMPRESSED_GEOMETRY_DEFINITION = () => ({\n 'compressedAttributes.encoding': {\n default: 'draco'\n },\n 'compressedAttributes.attributes': {\n path: 'geometryConfig',\n transform: (val) => {\n const result = ['position', 'normal'];\n if (val.hasTexture) {\n result.push('uv0');\n }\n result.push('color');\n if (val.hasUvRegions) {\n result.push('uv-region');\n }\n result.push('feature-index');\n return result;\n }\n }\n});\n\nexport const GEOMETRY_DEFINITION = () => ({\n geometryBuffers: {\n path: 'geometryConfig',\n transform: (val) => {\n const result = [transform(val, PLAIN_GEOMETRY_DEFINITION())];\n if (val.draco) {\n result.push(transform({geometryConfig: val}, COMPRESSED_GEOMETRY_DEFINITION()));\n }\n return result;\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA;EAAA,OAAU;IACvCC,MAAM,EAAE;MACNC,OAAO,EAAE;IACX,CAAC;IACDC,QAAQ,EAAE;MACRD,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDC,MAAM,EAAE;MACNJ,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDE,GAAG,EAAE;MACHC,IAAI,EAAE,YAAY;MAClBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,SAAS;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACrEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDC,KAAK,EAAE;MACLV,OAAO,EAAE;QACPE,IAAI,EAAE,OAAO;QACbC,SAAS,EAAE;MACb;IACF,CAAC;IACDQ,QAAQ,EAAE;MACRL,IAAI,EAAE,cAAc;MACpBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,QAAQ;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACpEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDG,SAAS,EAAE;MACTZ,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF,CAAC;IACDW,SAAS,EAAE;MACTd,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF;EACF,CAAC;AAAA,CAAC;AAEF,IAAMY,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAA;EAAA,OAAU;IAC5C,+BAA+B,EAAE;MAC/Bf,OAAO,EAAE;IACX,CAAC;IACD,iCAAiC,EAAE;MACjCM,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QACrC,IAAIR,GAAG,CAACS,UAAU,EAAE;UAClBD,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC;QACpB;QACAF,MAAM,CAACE,IAAI,CAAC,OAAO,CAAC;QACpB,IAAIV,GAAG,CAACW,YAAY,EAAE;UACpBH,MAAM,CAACE,IAAI,CAAC,WAAW,CAAC;QAC1B;QACAF,MAAM,CAACE,IAAI,CAAC,eAAe,CAAC;QAC5B,OAAOF,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAEK,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA;EAAA,OAAU;IACxCC,eAAe,EAAE;MACff,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,IAAAT,yBAAS,EAACC,GAAG,EAAEV,yBAAyB,EAAE,CAAC,CAAC;QAC5D,IAAIU,GAAG,CAACc,KAAK,EAAE;UACbN,MAAM,CAACE,IAAI,CAAC,IAAAX,yBAAS,EAAC;YAACgB,cAAc,EAAEf;UAAG,CAAC,EAAEO,8BAA8B,EAAE,CAAC,CAAC;QACjF;QACA,OAAOC,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAACQ,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"file":"geometry-definitions.js","names":["_jsonMapTransform","_interopRequireDefault","require","PLAIN_GEOMETRY_DEFINITION","offset","default","position","type","component","normal","uv0","path","transform","val","omitValues","color","uvRegion","featureId","binding","faceRange","COMPRESSED_GEOMETRY_DEFINITION","result","hasTexture","push","hasUvRegions","GEOMETRY_DEFINITION","geometryBuffers","draco","geometryConfig","exports"],"sources":["../../../../src/i3s-converter/json-templates/geometry-definitions.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst PLAIN_GEOMETRY_DEFINITION = () => ({\n offset: {\n default: 8\n },\n position: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n normal: {\n default: {\n type: 'Float32',\n component: 3\n }\n },\n uv0: {\n path: 'hasTexture',\n transform: (val) => (val && {type: 'Float32', component: 2}) || false,\n omitValues: [false]\n },\n color: {\n default: {\n type: 'UInt8',\n component: 4\n }\n },\n uvRegion: {\n path: 'hasUvRegions',\n transform: (val) => (val && {type: 'UInt16', component: 4}) || false,\n omitValues: [false]\n },\n featureId: {\n default: {\n binding: 'per-feature',\n type: 'UInt64',\n component: 1\n }\n },\n faceRange: {\n default: {\n binding: 'per-feature',\n type: 'UInt32',\n component: 2\n }\n }\n});\n\nconst COMPRESSED_GEOMETRY_DEFINITION = () => ({\n 'compressedAttributes.encoding': {\n default: 'draco'\n },\n 'compressedAttributes.attributes': {\n path: 'geometryConfig',\n transform: (val) => {\n const result = ['position', 'normal'];\n if (val.hasTexture) {\n result.push('uv0');\n }\n result.push('color');\n if (val.hasUvRegions) {\n result.push('uv-region');\n }\n result.push('feature-index');\n return result;\n }\n }\n});\n\nexport const GEOMETRY_DEFINITION = () => ({\n geometryBuffers: {\n path: 'geometryConfig',\n transform: (val) => {\n const result = [transform(val, PLAIN_GEOMETRY_DEFINITION())];\n if (val.draco) {\n result.push(transform({geometryConfig: val}, COMPRESSED_GEOMETRY_DEFINITION()));\n }\n return result;\n }\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA;EAAA,OAAU;IACvCC,MAAM,EAAE;MACNC,OAAO,EAAE;IACX,CAAC;IACDC,QAAQ,EAAE;MACRD,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDC,MAAM,EAAE;MACNJ,OAAO,EAAE;QACPE,IAAI,EAAE,SAAS;QACfC,SAAS,EAAE;MACb;IACF,CAAC;IACDE,GAAG,EAAE;MACHC,IAAI,EAAE,YAAY;MAClBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,SAAS;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACrEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDC,KAAK,EAAE;MACLV,OAAO,EAAE;QACPE,IAAI,EAAE,OAAO;QACbC,SAAS,EAAE;MACb;IACF,CAAC;IACDQ,QAAQ,EAAE;MACRL,IAAI,EAAE,cAAc;MACpBC,SAAS,EAAE,SAAAA,UAACC,GAAG;QAAA,OAAMA,GAAG,IAAI;UAACN,IAAI,EAAE,QAAQ;UAAEC,SAAS,EAAE;QAAC,CAAC,IAAK,KAAK;MAAA;MACpEM,UAAU,EAAE,CAAC,KAAK;IACpB,CAAC;IACDG,SAAS,EAAE;MACTZ,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF,CAAC;IACDW,SAAS,EAAE;MACTd,OAAO,EAAE;QACPa,OAAO,EAAE,aAAa;QACtBX,IAAI,EAAE,QAAQ;QACdC,SAAS,EAAE;MACb;IACF;EACF,CAAC;AAAA,CAAC;AAEF,IAAMY,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAA;EAAA,OAAU;IAC5C,+BAA+B,EAAE;MAC/Bf,OAAO,EAAE;IACX,CAAC;IACD,iCAAiC,EAAE;MACjCM,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;QACrC,IAAIR,GAAG,CAACS,UAAU,EAAE;UAClBD,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC;QACpB;QACAF,MAAM,CAACE,IAAI,CAAC,OAAO,CAAC;QACpB,IAAIV,GAAG,CAACW,YAAY,EAAE;UACpBH,MAAM,CAACE,IAAI,CAAC,WAAW,CAAC;QAC1B;QACAF,MAAM,CAACE,IAAI,CAAC,eAAe,CAAC;QAC5B,OAAOF,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAEK,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA;EAAA,OAAU;IACxCC,eAAe,EAAE;MACff,IAAI,EAAE,gBAAgB;MACtBC,SAAS,EAAE,SAAAA,UAACC,GAAG,EAAK;QAClB,IAAMQ,MAAM,GAAG,CAAC,IAAAT,yBAAS,EAACC,GAAG,EAAEV,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAIU,GAAG,CAACc,KAAK,EAAE;UACbN,MAAM,CAACE,IAAI,CAAC,IAAAX,yBAAS,EAAC;YAACgB,cAAc,EAAEf;UAAG,CAAC,EAAEO,8BAA8B,CAAC,CAAC,CAAC,CAAC;QACjF;QACA,OAAOC,MAAM;MACf;IACF;EACF,CAAC;AAAA,CAAC;AAACQ,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"layers.js","names":["_jsonMapTransform","_interopRequireDefault","require","_store","SPATIAL_REFERENCE","wkid","path","default","latestWkid","vcsWkid","latestVcsWkid","HEIGHT_MODEL_INFO","heightModel","vertCRS","heightUnit","NODE_PAGES","nodesPerPage","lodSelectionMetricType","FULL_EXTENT","xmin","ymin","xmax","ymax","zmin","zmax","LAYERS","version","transform","val","toUpperCase","id","name","href","layerType","spatialReference","capabilities","store","STORE","fullExtent","heightModelInfo","nodePages","materialDefinitions","textureSetDefinitions","geometryDefinitions","attributeStorageInfo","fields","popupInfo","exports"],"sources":["../../../../src/i3s-converter/json-templates/layers.ts"],"sourcesContent":["import transform from 'json-map-transform';\nimport {STORE} from './store';\n\nconst SPATIAL_REFERENCE = () => ({\n wkid: {\n path: 'wkid',\n default: 4326\n },\n latestWkid: {\n path: 'latestWkid',\n default: 4326\n },\n vcsWkid: {\n path: 'vcsWkid',\n default: 5773\n },\n latestVcsWkid: {\n path: 'latestVcsWkid',\n default: 5773\n }\n});\n\nconst HEIGHT_MODEL_INFO = () => ({\n heightModel: {\n path: 'heightModel',\n default: 'gravity_related_height'\n },\n vertCRS: {\n path: 'vertCRS',\n default: 'EGM96_Geoid'\n },\n heightUnit: {\n path: 'heightUnit',\n default: 'meter'\n }\n});\n\nconst NODE_PAGES = () => ({\n nodesPerPage: {\n path: 'nodesPerPage'\n },\n lodSelectionMetricType: {\n path: 'lodSelectionMetricType',\n default: 'maxScreenThresholdSQ'\n }\n});\n\nconst FULL_EXTENT = () => ({\n xmin: {\n path: 'xmin'\n },\n ymin: {\n path: 'ymin'\n },\n xmax: {\n path: 'xmax'\n },\n ymax: {\n path: 'ymax'\n },\n zmin: {\n path: 'zmin'\n },\n zmax: {\n path: 'zmax'\n }\n});\n\nexport const LAYERS = () => ({\n version: {\n path: 'version',\n transform: (val) => val.toUpperCase()\n },\n id: {\n path: 'id',\n default: 0\n },\n name: {\n path: 'name'\n },\n href: {\n path: 'href',\n default: './layers/0'\n },\n layerType: {\n path: 'layerType',\n default: 'IntegratedMesh'\n },\n spatialReference: {\n path: 'spatialReference',\n transform: (val) => transform(val, SPATIAL_REFERENCE())\n },\n capabilities: {\n path: 'capabilities',\n default: ['View', 'Query']\n },\n store: {\n path: 'store',\n transform: (val) => transform(val, STORE)\n },\n fullExtent: {\n path: 'fullExtent',\n transform: (val) => transform(val, FULL_EXTENT())\n },\n heightModelInfo: {\n path: 'heightModelInfo',\n transform: (val) => transform(val, HEIGHT_MODEL_INFO())\n },\n nodePages: {\n path: 'nodePages',\n transform: (val) => transform(val, NODE_PAGES())\n },\n materialDefinitions: {\n path: 'materialDefinitions',\n default: []\n },\n textureSetDefinitions: {\n path: 'textureSetDefinitions',\n default: []\n },\n geometryDefinitions: {\n path: 'geometryDefinitions',\n default: []\n },\n attributeStorageInfo: {\n path: 'attributeStorageInfo',\n default: []\n },\n fields: {\n path: 'fields',\n default: []\n },\n popupInfo: {\n path: 'popupInfo',\n default: null\n }\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"layers.js","names":["_jsonMapTransform","_interopRequireDefault","require","_store","SPATIAL_REFERENCE","wkid","path","default","latestWkid","vcsWkid","latestVcsWkid","HEIGHT_MODEL_INFO","heightModel","vertCRS","heightUnit","NODE_PAGES","nodesPerPage","lodSelectionMetricType","FULL_EXTENT","xmin","ymin","xmax","ymax","zmin","zmax","LAYERS","version","transform","val","toUpperCase","id","name","href","layerType","spatialReference","capabilities","store","STORE","fullExtent","heightModelInfo","nodePages","materialDefinitions","textureSetDefinitions","geometryDefinitions","attributeStorageInfo","fields","popupInfo","exports"],"sources":["../../../../src/i3s-converter/json-templates/layers.ts"],"sourcesContent":["import transform from 'json-map-transform';\nimport {STORE} from './store';\n\nconst SPATIAL_REFERENCE = () => ({\n wkid: {\n path: 'wkid',\n default: 4326\n },\n latestWkid: {\n path: 'latestWkid',\n default: 4326\n },\n vcsWkid: {\n path: 'vcsWkid',\n default: 5773\n },\n latestVcsWkid: {\n path: 'latestVcsWkid',\n default: 5773\n }\n});\n\nconst HEIGHT_MODEL_INFO = () => ({\n heightModel: {\n path: 'heightModel',\n default: 'gravity_related_height'\n },\n vertCRS: {\n path: 'vertCRS',\n default: 'EGM96_Geoid'\n },\n heightUnit: {\n path: 'heightUnit',\n default: 'meter'\n }\n});\n\nconst NODE_PAGES = () => ({\n nodesPerPage: {\n path: 'nodesPerPage'\n },\n lodSelectionMetricType: {\n path: 'lodSelectionMetricType',\n default: 'maxScreenThresholdSQ'\n }\n});\n\nconst FULL_EXTENT = () => ({\n xmin: {\n path: 'xmin'\n },\n ymin: {\n path: 'ymin'\n },\n xmax: {\n path: 'xmax'\n },\n ymax: {\n path: 'ymax'\n },\n zmin: {\n path: 'zmin'\n },\n zmax: {\n path: 'zmax'\n }\n});\n\nexport const LAYERS = () => ({\n version: {\n path: 'version',\n transform: (val) => val.toUpperCase()\n },\n id: {\n path: 'id',\n default: 0\n },\n name: {\n path: 'name'\n },\n href: {\n path: 'href',\n default: './layers/0'\n },\n layerType: {\n path: 'layerType',\n default: 'IntegratedMesh'\n },\n spatialReference: {\n path: 'spatialReference',\n transform: (val) => transform(val, SPATIAL_REFERENCE())\n },\n capabilities: {\n path: 'capabilities',\n default: ['View', 'Query']\n },\n store: {\n path: 'store',\n transform: (val) => transform(val, STORE)\n },\n fullExtent: {\n path: 'fullExtent',\n transform: (val) => transform(val, FULL_EXTENT())\n },\n heightModelInfo: {\n path: 'heightModelInfo',\n transform: (val) => transform(val, HEIGHT_MODEL_INFO())\n },\n nodePages: {\n path: 'nodePages',\n transform: (val) => transform(val, NODE_PAGES())\n },\n materialDefinitions: {\n path: 'materialDefinitions',\n default: []\n },\n textureSetDefinitions: {\n path: 'textureSetDefinitions',\n default: []\n },\n geometryDefinitions: {\n path: 'geometryDefinitions',\n default: []\n },\n attributeStorageInfo: {\n path: 'attributeStorageInfo',\n default: []\n },\n fields: {\n path: 'fields',\n default: []\n },\n popupInfo: {\n path: 'popupInfo',\n default: null\n }\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","names":["_jsonMapTransform","_interopRequireDefault","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","COORDINATES","mbs","path","obb","HREF","href","PARENT_NODE","id","NODE","version","level","lodSelection","metricType","maxError","children","neighbors","parentNode","transform","val","sharedResource","featureData","geometryData","textureData","attributeData","exports"],"sources":["../../../../src/i3s-converter/json-templates/node.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst COORDINATES = () => ({\n mbs: {\n path: 'mbs'\n },\n obb: {\n path: 'obb'\n }\n});\n\nconst HREF = () => ({\n href: {\n path: 'href'\n }\n});\n\nconst PARENT_NODE = () => ({\n id: {\n path: 'id'\n },\n ...HREF(),\n ...COORDINATES()\n});\n\nexport const NODE = () => ({\n version: {\n path: 'version'\n },\n id: {\n path: 'id'\n },\n path: {\n path: 'path'\n },\n level: {\n path: 'level'\n },\n ...COORDINATES(),\n lodSelection: {\n path: 'lodSelection',\n default: [\n {\n metricType: 'maxScreenThresholdSQ',\n maxError: 196349.54374999998\n },\n {\n metricType: 'maxScreenThreshold',\n maxError: 999.99999999999994\n }\n ]\n },\n children: {\n path: 'children',\n default: null\n },\n neighbors: {\n path: 'neighbors',\n default: null\n },\n parentNode: {\n path: 'parentNode',\n transform: (val) => transform(val, PARENT_NODE()),\n default: null\n },\n sharedResource: {\n path: 'sharedResource',\n default: null\n },\n featureData: {\n path: 'featureData',\n default: null\n },\n geometryData: {\n path: 'geometryData',\n default: null\n },\n textureData: {\n path: 'textureData',\n default: null\n },\n attributeData: {\n path: 'attributeData',\n default: null\n }\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"node.js","names":["_jsonMapTransform","_interopRequireDefault","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","COORDINATES","mbs","path","obb","HREF","href","PARENT_NODE","id","NODE","version","level","lodSelection","metricType","maxError","children","neighbors","parentNode","transform","val","sharedResource","featureData","geometryData","textureData","attributeData","exports"],"sources":["../../../../src/i3s-converter/json-templates/node.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst COORDINATES = () => ({\n mbs: {\n path: 'mbs'\n },\n obb: {\n path: 'obb'\n }\n});\n\nconst HREF = () => ({\n href: {\n path: 'href'\n }\n});\n\nconst PARENT_NODE = () => ({\n id: {\n path: 'id'\n },\n ...HREF(),\n ...COORDINATES()\n});\n\nexport const NODE = () => ({\n version: {\n path: 'version'\n },\n id: {\n path: 'id'\n },\n path: {\n path: 'path'\n },\n level: {\n path: 'level'\n },\n ...COORDINATES(),\n lodSelection: {\n path: 'lodSelection',\n default: [\n {\n metricType: 'maxScreenThresholdSQ',\n maxError: 196349.54374999998\n },\n {\n metricType: 'maxScreenThreshold',\n maxError: 999.99999999999994\n }\n ]\n },\n children: {\n path: 'children',\n default: null\n },\n neighbors: {\n path: 'neighbors',\n default: null\n },\n parentNode: {\n path: 'parentNode',\n transform: (val) => transform(val, PARENT_NODE()),\n default: null\n },\n sharedResource: {\n path: 'sharedResource',\n default: null\n },\n featureData: {\n path: 'featureData',\n default: null\n },\n geometryData: {\n path: 'geometryData',\n default: null\n },\n textureData: {\n path: 'textureData',\n default: null\n },\n attributeData: {\n path: 'attributeData',\n default: null\n }\n});\n"],"mappings":"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"}