@loaders.gl/tile-converter 3.3.0-alpha.8 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-attributes-worker.js +2 -2
- package/dist/3d-tiles-attributes-worker.js.map +3 -3
- package/dist/converter-cli.js +14 -2
- package/dist/converter.min.js +22 -22
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +8 -0
- package/dist/dist.min.js +1167 -848
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/converter-cli.js +14 -2
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +13 -2
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-attributes-worker.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +16 -7
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +363 -113
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +6 -11
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-index-document.js +517 -0
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -0
- package/dist/es5/i3s-converter/helpers/node-pages.js +455 -173
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +549 -618
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js +107 -0
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
- package/dist/es5/i3s-converter/json-templates/layers.js +2 -93
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +3 -3
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +93 -9
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +38 -25
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/es5/workers/i3s-attributes-worker.js +1 -1
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/converter-cli.js +14 -2
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +9 -1
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +16 -7
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +150 -40
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +6 -9
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js +202 -0
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -0
- package/dist/esm/i3s-converter/helpers/node-pages.js +162 -76
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +115 -220
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js +89 -0
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -0
- package/dist/esm/i3s-converter/json-templates/layers.js +2 -85
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js +3 -3
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +44 -3
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +19 -10
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/pgm-loader.js.map +1 -1
- package/dist/esm/workers/i3s-attributes-worker.js +1 -1
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/i3s-attributes-worker.js +2 -2
- package/dist/i3s-attributes-worker.js.map +2 -2
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +3 -3
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +3 -3
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-attributes.js +16 -10
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +8 -4
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +200 -44
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.js +2 -3
- package/dist/i3s-converter/helpers/node-index-document.d.ts +95 -0
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -0
- package/dist/i3s-converter/helpers/node-index-document.js +250 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts +78 -43
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +194 -93
- package/dist/i3s-converter/i3s-converter.d.ts +33 -58
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +122 -233
- package/dist/i3s-converter/json-templates/geometry-definitions.d.ts +7 -0
- package/dist/i3s-converter/json-templates/geometry-definitions.d.ts.map +1 -0
- package/dist/i3s-converter/json-templates/geometry-definitions.js +87 -0
- package/dist/i3s-converter/json-templates/layers.d.ts +1 -30
- package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -1
- package/dist/i3s-converter/json-templates/layers.js +2 -86
- package/dist/i3s-converter/json-templates/shared-resources.js +3 -3
- package/dist/i3s-converter/types.d.ts +28 -2
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/lib/utils/file-utils.d.ts +17 -1
- package/dist/lib/utils/file-utils.d.ts.map +1 -1
- package/dist/lib/utils/file-utils.js +64 -7
- package/dist/lib/utils/write-queue.d.ts +18 -2
- package/dist/lib/utils/write-queue.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.js +18 -12
- package/dist/workers/i3s-attributes-worker.js +1 -1
- package/package.json +25 -20
- package/src/converter-cli.ts +22 -2
- package/src/deps-installer/deps-installer.ts +9 -0
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +3 -3
- package/src/i3s-converter/helpers/geometry-attributes.ts +16 -11
- package/src/i3s-converter/helpers/geometry-converter.ts +217 -48
- package/src/i3s-converter/helpers/gltf-attributes.ts +2 -3
- package/src/i3s-converter/helpers/node-index-document.ts +315 -0
- package/src/i3s-converter/helpers/node-pages.ts +215 -110
- package/src/i3s-converter/i3s-converter.ts +170 -312
- package/src/i3s-converter/json-templates/geometry-definitions.ts +83 -0
- package/src/i3s-converter/json-templates/layers.ts +2 -91
- package/src/i3s-converter/json-templates/shared-resources.ts +3 -3
- package/src/i3s-converter/types.ts +29 -2
- package/src/lib/utils/file-utils.ts +62 -7
- package/src/lib/utils/write-queue.ts +36 -15
- package/src/workers/i3s-attributes-worker.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.js","names":["PLAIN_GEOMETRY_DEFINITION","offset","position","type","component","normal","uv0","color","featureId","binding","faceRange","PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0","COMPRESSED_GEOMETRY_DEFINITION","compressedAttributes","encoding","attributes","COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0","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","result","geometryBuffers","push","attributeStorageInfo","fields","popupInfo"],"sources":["../../../../src/i3s-converter/json-templates/layers.ts"],"sourcesContent":["import transform from 'json-map-transform';\nimport {STORE} from './store';\n\nconst PLAIN_GEOMETRY_DEFINITION = () => ({\n offset: 8,\n position: {\n type: 'Float32',\n component: 3\n },\n normal: {\n type: 'Float32',\n component: 3\n },\n uv0: {\n type: 'Float32',\n component: 2\n },\n color: {\n type: 'UInt8',\n component: 4\n },\n featureId: {\n binding: 'per-feature',\n type: 'UInt64',\n component: 1\n },\n faceRange: {\n binding: 'per-feature',\n type: 'UInt32',\n component: 2\n }\n});\n\nconst PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0 = () => ({\n offset: 8,\n position: {\n type: 'Float32',\n component: 3\n },\n normal: {\n type: 'Float32',\n component: 3\n },\n color: {\n type: 'UInt8',\n component: 4\n },\n featureId: {\n binding: 'per-feature',\n type: 'UInt64',\n component: 1\n },\n faceRange: {\n binding: 'per-feature',\n type: 'UInt32',\n component: 2\n }\n});\n\nconst COMPRESSED_GEOMETRY_DEFINITION = () => ({\n compressedAttributes: {\n encoding: 'draco',\n attributes: ['position', 'normal', 'uv0', 'color', 'feature-index']\n }\n});\n\nconst COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0 = () => ({\n compressedAttributes: {\n encoding: 'draco',\n attributes: ['position', 'normal', 'color', 'feature-index']\n }\n});\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: 'compressGeometry',\n transform: (val) => {\n const result = [{geometryBuffers: []}, {geometryBuffers: []}];\n\n // @ts-expect-error\n result[0].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION());\n // @ts-expect-error\n result[1].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0());\n if (val) {\n // @ts-expect-error\n result[0].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION());\n // @ts-expect-error\n result[1].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0());\n }\n return result;\n },\n default: [\n {\n geometryBuffers: [PLAIN_GEOMETRY_DEFINITION(), PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0()]\n }\n ]\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":["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"],"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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"}
|
|
@@ -26,15 +26,15 @@ var MATERIAL_DEFINITION_INFO_PARAMS = function MATERIAL_DEFINITION_INFO_PARAMS()
|
|
|
26
26
|
},
|
|
27
27
|
ambient: {
|
|
28
28
|
path: 'ambient',
|
|
29
|
-
default: [1, 1, 1
|
|
29
|
+
default: [1, 1, 1]
|
|
30
30
|
},
|
|
31
31
|
diffuse: {
|
|
32
32
|
path: 'diffuse',
|
|
33
|
-
default: [1, 1, 1
|
|
33
|
+
default: [1, 1, 1]
|
|
34
34
|
},
|
|
35
35
|
specular: {
|
|
36
36
|
path: 'specular',
|
|
37
|
-
default: [0, 0, 0
|
|
37
|
+
default: [0, 0, 0]
|
|
38
38
|
},
|
|
39
39
|
useVertexColorAlpha: {
|
|
40
40
|
path: 'useVertexColorAlpha',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-resources.js","names":["MATERIAL_DEFINITION_INFO_PARAMS","renderMode","path","default","shininess","reflectivity","ambient","diffuse","specular","useVertexColorAlpha","vertexRegions","vertexColors","MATERIAL_DEFINITION_INFO","name","type","params","transform","val","thisObject","originalObject","TEXTURE_DEFINITION_IMAGE","id","size","href","length","TEXTURE_DEFINITION_INFO","encoding","wrap","atlas","uvSet","channels","images","map","image","SHARED_RESOURCES","materialDefinitions","transfromMaterialDefinitions","textureDefinitions","transfromTextureDefinitions","materialDefinitionInfos","result","entries","index","materialDefinitionInfo","nodePath","textureDefinitionInfos","textureDefinitionInfo","imageIndex"],"sources":["../../../../src/i3s-converter/json-templates/shared-resources.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst MATERIAL_DEFINITION_INFO_PARAMS = () => ({\n renderMode: {\n path: 'renderMode',\n default: 'solid'\n },\n shininess: {\n path: 'shininess',\n default: 1\n },\n reflectivity: {\n path: 'reflectivity',\n default: 0\n },\n ambient: {\n path: 'ambient',\n default: [1, 1, 1
|
|
1
|
+
{"version":3,"file":"shared-resources.js","names":["MATERIAL_DEFINITION_INFO_PARAMS","renderMode","path","default","shininess","reflectivity","ambient","diffuse","specular","useVertexColorAlpha","vertexRegions","vertexColors","MATERIAL_DEFINITION_INFO","name","type","params","transform","val","thisObject","originalObject","TEXTURE_DEFINITION_IMAGE","id","size","href","length","TEXTURE_DEFINITION_INFO","encoding","wrap","atlas","uvSet","channels","images","map","image","SHARED_RESOURCES","materialDefinitions","transfromMaterialDefinitions","textureDefinitions","transfromTextureDefinitions","materialDefinitionInfos","result","entries","index","materialDefinitionInfo","nodePath","textureDefinitionInfos","textureDefinitionInfo","imageIndex"],"sources":["../../../../src/i3s-converter/json-templates/shared-resources.ts"],"sourcesContent":["import transform from 'json-map-transform';\n\nconst MATERIAL_DEFINITION_INFO_PARAMS = () => ({\n renderMode: {\n path: 'renderMode',\n default: 'solid'\n },\n shininess: {\n path: 'shininess',\n default: 1\n },\n reflectivity: {\n path: 'reflectivity',\n default: 0\n },\n ambient: {\n path: 'ambient',\n default: [1, 1, 1]\n },\n diffuse: {\n path: 'diffuse',\n default: [1, 1, 1]\n },\n specular: {\n path: 'specular',\n default: [0, 0, 0]\n },\n useVertexColorAlpha: {\n path: 'useVertexColorAlpha',\n default: false\n },\n vertexRegions: {\n path: 'vertexRegions',\n default: false\n },\n vertexColors: {\n path: 'vertexColors',\n default: true\n }\n});\n\nconst MATERIAL_DEFINITION_INFO = () => ({\n name: {\n path: 'name',\n default: 'standard'\n },\n type: {\n path: 'type',\n default: 'standard'\n },\n params: {\n path: 'params',\n transform: (val, thisObject, originalObject) =>\n transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())\n }\n});\n\nconst TEXTURE_DEFINITION_IMAGE = () => ({\n id: {\n path: 'id'\n },\n size: {\n path: 'size'\n },\n href: {\n path: 'href',\n default: ['../textures/0']\n },\n length: {\n path: 'length'\n }\n});\n\nconst TEXTURE_DEFINITION_INFO = () => ({\n encoding: {\n path: 'encoding'\n },\n wrap: {\n path: 'wrap',\n default: ['none']\n },\n atlas: {\n path: 'atlas',\n default: false\n },\n uvSet: {\n path: 'uvSet',\n default: 'uv0'\n },\n channels: {\n path: 'channels',\n default: 'rgb'\n },\n images: {\n path: 'images',\n transform: (val, thisObject, originalObject) =>\n val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))\n }\n});\n\nexport const SHARED_RESOURCES = () => ({\n materialDefinitions: {\n path: 'materialDefinitionInfos',\n transform: transfromMaterialDefinitions\n },\n textureDefinitions: {\n path: 'textureDefinitionInfos',\n transform: transfromTextureDefinitions\n }\n});\n\nfunction transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {\n const result = {};\n for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {\n result[`Mat${originalObject.nodePath}${index}`] = transform(\n materialDefinitionInfo,\n MATERIAL_DEFINITION_INFO()\n );\n }\n return result;\n}\n\nfunction transfromTextureDefinitions(textureDefinitionInfos, thisObject, originalObject) {\n if (!textureDefinitionInfos) {\n return null;\n }\n const result = {};\n for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {\n const imageIndex = `${originalObject.nodePath}${index}`;\n textureDefinitionInfo.imageIndex = imageIndex;\n result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());\n }\n return result;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/i3s-converter/types.ts"],"sourcesContent":["import {\n BoundingVolumes,\n I3SMaterialDefinition,\n MaterialDefinitionInfo,\n TextureDefinitionInfo\n} from '@loaders.gl/i3s';\
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/i3s-converter/types.ts"],"sourcesContent":["import {GLTFImagePostprocessed} from '@loaders.gl/gltf';\nimport {\n BoundingVolumes,\n I3SMaterialDefinition,\n MaterialDefinitionInfo,\n TextureDefinitionInfo\n} from '@loaders.gl/i3s';\n\n/** Converted resources for specific node */\nexport type I3SConvertedResources = {\n /**\n * Node id\n */\n nodeId?: number;\n /** Non-compressed geometry buffer that have structure met\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md\n * (Geometry buffer)\n */\n geometry: ArrayBuffer | null;\n /**\n * Draco compressed geometry\n */\n compressedGeometry?: Promise<ArrayBuffer> | null;\n /**\n * Texture image content\n */\n texture: any | null;\n /**\n * If the resource has uvRegions geometry attribute\n */\n hasUvRegions: boolean;\n /**\n * Shared resources built from GLTF material\n */\n sharedResources: SharedResourcesArrays | null;\n /**\n * Material definition of the node\n */\n meshMaterial?: I3SMaterialDefinition | null;\n /**\n * Number of vertices in the node\n */\n vertexCount: number | null;\n /**\n * Feature attributes contents\n */\n attributes: ArrayBuffer[] | null;\n /**\n * Number of features in the node\n */\n featureCount: number | null;\n /**\n * MBS and/or OBB bounding volumes of the node\n */\n boundingVolumes: BoundingVolumes | null;\n};\n\n/**\n * Geometry and feature attributes converted from GLTF primitives\n */\nexport type ConvertedAttributes = {\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** Feature indices grouped by ...\n * converted from \"batch ids\" of GLTF\n */\n featureIndicesGroups?: number[][];\n /** Feature indices converted from \"batch ids\" */\n featureIndices: number[];\n /**\n * MBS and/or OBB bounding volumes of the node\n */\n boundingVolumes: null | BoundingVolumes;\n /** merged materials data */\n mergedMaterials: MergedMaterial[];\n};\n\n/** Postprocessed geometry and feature attributes\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md\n */\nexport type GeometryAttributes = {\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** faceRanges attribute value */\n faceRange: Uint32Array;\n /** feature Ids attribute value */\n featureIds: number[];\n /** number of features in the node */\n featureCount: number;\n};\n\n/** Geometry attributes specific for the particular feature */\nexport type GroupedByFeatureIdAttributes = {\n /** Feature Id */\n featureId: number;\n /** POSITION attribute value */\n positions: Float32Array;\n /** NORMAL attribute value */\n normals: Float32Array;\n /** COLOR_0 attribute value */\n colors: Uint8Array;\n /** uvRegion attribute for a texture atlas */\n uvRegions: Uint16Array;\n /** TEXCOORD_0 attribute value */\n texCoords: Float32Array;\n};\n\n/** Shared resources made from GLTF material */\nexport type SharedResourcesArrays = {\n /** material definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitionInfo.cmn.md */\n materialDefinitionInfos?: MaterialDefinitionInfo[];\n /** texture definitions list https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureDefinitionInfo.cmn.md*/\n textureDefinitionInfos?: TextureDefinitionInfo[];\n /** node id to make unique SharedResource ids */\n nodePath?: string;\n};\n\n/** I3S material definition and texture content taken from GLTF material */\nexport type I3SMaterialWithTexture = {\n /** Material definition https://github.com/Esri/i3s-spec/blob/master/docs/1.8/materialDefinitions.cmn.md */\n material: I3SMaterialDefinition;\n /** Texture content (image) */\n texture?: GLTFImagePostprocessed;\n /** Metadata of all merged materials */\n mergedMaterials: MergedMaterial[];\n};\n\n/** Metadata of some original texture */\nexport type MergedMaterial = {\n /** Gltf material Id */\n originalMaterialId: string;\n /** Original texture size */\n textureSize?: {\n width: number;\n height: number;\n };\n /** Uint16Array of 4 elements https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md */\n uvRegion?: Uint16Array;\n};\n"],"mappings":""}
|
|
@@ -5,12 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getAbsoluteFilePath = getAbsoluteFilePath;
|
|
8
|
+
exports.isFileExists = isFileExists;
|
|
9
|
+
exports.openJson = openJson;
|
|
8
10
|
exports.removeDir = removeDir;
|
|
9
11
|
exports.removeFile = removeFile;
|
|
10
12
|
exports.writeFile = writeFile;
|
|
11
13
|
exports.writeFileForSlpk = writeFileForSlpk;
|
|
12
14
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
+
var _core = require("@loaders.gl/core");
|
|
17
|
+
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
14
18
|
var _fs = require("fs");
|
|
15
19
|
var _path = require("path");
|
|
16
20
|
var _compressUtil = require("./compress-util");
|
|
@@ -82,6 +86,7 @@ function _writeFileForSlpk() {
|
|
|
82
86
|
_writeFileForSlpk = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path, data) {
|
|
83
87
|
var fileName,
|
|
84
88
|
compress,
|
|
89
|
+
compressList,
|
|
85
90
|
pathFile,
|
|
86
91
|
pathGzFile,
|
|
87
92
|
_args2 = arguments;
|
|
@@ -91,25 +96,42 @@ function _writeFileForSlpk() {
|
|
|
91
96
|
case 0:
|
|
92
97
|
fileName = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 'index.json';
|
|
93
98
|
compress = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : true;
|
|
94
|
-
|
|
99
|
+
compressList = _args2.length > 4 ? _args2[4] : undefined;
|
|
100
|
+
_context2.next = 5;
|
|
95
101
|
return writeFile(path, data, fileName);
|
|
96
|
-
case
|
|
102
|
+
case 5:
|
|
97
103
|
pathFile = _context2.sent;
|
|
98
104
|
if (!compress) {
|
|
99
|
-
_context2.next =
|
|
105
|
+
_context2.next = 22;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
if (!compressList) {
|
|
109
|
+
_context2.next = 16;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
if (compressList.includes(pathFile)) {
|
|
113
|
+
_context2.next = 13;
|
|
100
114
|
break;
|
|
101
115
|
}
|
|
102
|
-
|
|
116
|
+
compressList.push(pathFile);
|
|
117
|
+
return _context2.abrupt("return", "".concat(pathFile, ".gz"));
|
|
118
|
+
case 13:
|
|
119
|
+
return _context2.abrupt("return", null);
|
|
120
|
+
case 14:
|
|
121
|
+
_context2.next = 22;
|
|
122
|
+
break;
|
|
123
|
+
case 16:
|
|
124
|
+
_context2.next = 18;
|
|
103
125
|
return (0, _compressUtil.compressFileWithGzip)(pathFile);
|
|
104
|
-
case
|
|
126
|
+
case 18:
|
|
105
127
|
pathGzFile = _context2.sent;
|
|
106
|
-
_context2.next =
|
|
128
|
+
_context2.next = 21;
|
|
107
129
|
return removeFile(pathFile);
|
|
108
|
-
case
|
|
130
|
+
case 21:
|
|
109
131
|
return _context2.abrupt("return", pathGzFile);
|
|
110
|
-
case
|
|
132
|
+
case 22:
|
|
111
133
|
return _context2.abrupt("return", pathFile);
|
|
112
|
-
case
|
|
134
|
+
case 23:
|
|
113
135
|
case "end":
|
|
114
136
|
return _context2.stop();
|
|
115
137
|
}
|
|
@@ -118,6 +140,68 @@ function _writeFileForSlpk() {
|
|
|
118
140
|
}));
|
|
119
141
|
return _writeFileForSlpk.apply(this, arguments);
|
|
120
142
|
}
|
|
143
|
+
function openJson(_x5, _x6) {
|
|
144
|
+
return _openJson.apply(this, arguments);
|
|
145
|
+
}
|
|
146
|
+
function _openJson() {
|
|
147
|
+
_openJson = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(path, fileName) {
|
|
148
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
149
|
+
while (1) {
|
|
150
|
+
switch (_context3.prev = _context3.next) {
|
|
151
|
+
case 0:
|
|
152
|
+
return _context3.abrupt("return", new Promise(function (resolve, reject) {
|
|
153
|
+
var count = 0;
|
|
154
|
+
console.log("load ".concat(path, "/").concat(fileName, "."));
|
|
155
|
+
var intervalId = setInterval(function () {
|
|
156
|
+
var pathFile = (0, _path.join)(path, fileName);
|
|
157
|
+
(0, _core.load)(pathFile, _loaderUtils.JSONLoader).then(function (result) {
|
|
158
|
+
clearInterval(intervalId);
|
|
159
|
+
resolve(result);
|
|
160
|
+
}).catch(function () {
|
|
161
|
+
count++;
|
|
162
|
+
if (count > 100) {
|
|
163
|
+
clearInterval(intervalId);
|
|
164
|
+
reject(new Error("Cannon load ".concat(path, "/").concat(fileName, ".")));
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}, 200);
|
|
168
|
+
}));
|
|
169
|
+
case 1:
|
|
170
|
+
case "end":
|
|
171
|
+
return _context3.stop();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}, _callee3);
|
|
175
|
+
}));
|
|
176
|
+
return _openJson.apply(this, arguments);
|
|
177
|
+
}
|
|
178
|
+
function isFileExists(_x7) {
|
|
179
|
+
return _isFileExists.apply(this, arguments);
|
|
180
|
+
}
|
|
181
|
+
function _isFileExists() {
|
|
182
|
+
_isFileExists = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(fileName) {
|
|
183
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
184
|
+
while (1) {
|
|
185
|
+
switch (_context4.prev = _context4.next) {
|
|
186
|
+
case 0:
|
|
187
|
+
_context4.prev = 0;
|
|
188
|
+
_context4.next = 3;
|
|
189
|
+
return _fs.promises.stat(fileName);
|
|
190
|
+
case 3:
|
|
191
|
+
return _context4.abrupt("return", true);
|
|
192
|
+
case 6:
|
|
193
|
+
_context4.prev = 6;
|
|
194
|
+
_context4.t0 = _context4["catch"](0);
|
|
195
|
+
return _context4.abrupt("return", false);
|
|
196
|
+
case 9:
|
|
197
|
+
case "end":
|
|
198
|
+
return _context4.stop();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}, _callee4, null, [[0, 6]]);
|
|
202
|
+
}));
|
|
203
|
+
return _isFileExists.apply(this, arguments);
|
|
204
|
+
}
|
|
121
205
|
function removeDir(path) {
|
|
122
206
|
return _fs.promises.rmdir(path, {
|
|
123
207
|
recursive: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","join","console","log","writeFileForSlpk","compress","compressFileWithGzip","pathGzFile","removeFile","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","isAbsolute","process","cwd"],"sources":["../../../../src/lib/utils/file-utils.ts"],"sourcesContent":["import {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true\n): Promise<string> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n const pathGzFile = await compressFileWithGzip(pathFile);\n
|
|
1
|
+
{"version":3,"file":"file-utils.js","names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","join","console","log","writeFileForSlpk","compress","compressList","includes","push","compressFileWithGzip","pathGzFile","removeFile","openJson","resolve","reject","count","intervalId","setInterval","load","JSONLoader","then","result","clearInterval","catch","Error","isFileExists","stat","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","isAbsolute","process","cwd"],"sources":["../../../../src/lib/utils/file-utils.ts"],"sourcesContent":["import {load} from '@loaders.gl/core';\nimport {JSONLoader} from '@loaders.gl/loader-utils';\nimport {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n * @param compressList - if set - the file should be added to this list and compressed in the end of conversion\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true,\n compressList?: string[] | null\n): Promise<string | null> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n if (compressList) {\n if (!compressList.includes(pathFile)) {\n compressList.push(pathFile);\n return `${pathFile}.gz`;\n } else {\n return null;\n }\n } else {\n const pathGzFile = await compressFileWithGzip(pathFile);\n // After compression, we don't need an uncompressed file\n await removeFile(pathFile);\n return pathGzFile;\n }\n }\n return pathFile;\n}\n\n/**\n * Open json file\n * @param path - path to the file\n * @param fileName - file name\n * @returns object\n */\nexport async function openJson(path: string, fileName: string): Promise<{[key: string]: any}> {\n return new Promise((resolve, reject) => {\n let count = 0;\n console.log(`load ${path}/${fileName}.`); // eslint-disable-line\n const intervalId = setInterval(() => {\n const pathFile = join(path, fileName);\n load(pathFile, JSONLoader)\n .then((result) => {\n clearInterval(intervalId);\n resolve(result);\n })\n .catch(() => {\n count++;\n if (count > 100) {\n clearInterval(intervalId);\n reject(new Error(`Cannon load ${path}/${fileName}.`));\n }\n });\n }, 200);\n });\n}\n\n/**\n * Check if the file exists\n * @param fileName - full name of file\n * @returns true if file exists, otherwise - false\n */\nexport async function isFileExists(fileName: string): Promise<boolean> {\n try {\n await fs.stat(fileName);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Remove dir with path\n *\n * @param path\n */\nexport function removeDir(path: string) {\n return fs.rmdir(path, {recursive: true});\n}\n\n/**\n * Remove file with path\n *\n * @param path\n */\nexport function removeFile(path: string) {\n return fs.unlink(path);\n}\n\n/**\n * Generates absolute file path\n * @param filePath\n */\nexport function getAbsoluteFilePath(filePath: string) {\n return isAbsolute(filePath) ? filePath : join(process.cwd(), filePath);\n}\n"],"mappings":"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"}
|
|
@@ -42,18 +42,40 @@ var WriteQueue = function (_Queue) {
|
|
|
42
42
|
key: "enqueue",
|
|
43
43
|
value: function () {
|
|
44
44
|
var _enqueue = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(val) {
|
|
45
|
+
var writeImmediately,
|
|
46
|
+
_ref,
|
|
47
|
+
archiveKey,
|
|
48
|
+
writePromise,
|
|
49
|
+
result,
|
|
50
|
+
_args = arguments;
|
|
45
51
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
46
52
|
while (1) {
|
|
47
53
|
switch (_context.prev = _context.next) {
|
|
48
54
|
case 0:
|
|
55
|
+
writeImmediately = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
|
|
56
|
+
if (!writeImmediately) {
|
|
57
|
+
_context.next = 9;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
_ref = val, archiveKey = _ref.archiveKey, writePromise = _ref.writePromise;
|
|
61
|
+
_context.next = 5;
|
|
62
|
+
return writePromise();
|
|
63
|
+
case 5:
|
|
64
|
+
result = _context.sent;
|
|
65
|
+
if (archiveKey && result) {
|
|
66
|
+
this.fileMap[archiveKey] = result;
|
|
67
|
+
}
|
|
68
|
+
_context.next = 13;
|
|
69
|
+
break;
|
|
70
|
+
case 9:
|
|
49
71
|
(0, _get2.default)((0, _getPrototypeOf2.default)(WriteQueue.prototype), "enqueue", this).call(this, val);
|
|
50
72
|
if (!(_process.default.memoryUsage().rss > MEMORY_LIMIT)) {
|
|
51
|
-
_context.next =
|
|
73
|
+
_context.next = 13;
|
|
52
74
|
break;
|
|
53
75
|
}
|
|
54
|
-
_context.next =
|
|
76
|
+
_context.next = 13;
|
|
55
77
|
return this.startWrite();
|
|
56
|
-
case
|
|
78
|
+
case 13:
|
|
57
79
|
case "end":
|
|
58
80
|
return _context.stop();
|
|
59
81
|
}
|
|
@@ -86,21 +108,13 @@ var WriteQueue = function (_Queue) {
|
|
|
86
108
|
switch (_context2.prev = _context2.next) {
|
|
87
109
|
case 0:
|
|
88
110
|
if (!this.writePromise) {
|
|
89
|
-
|
|
90
|
-
break;
|
|
111
|
+
this.writePromise = this.doWrite();
|
|
91
112
|
}
|
|
92
113
|
_context2.next = 3;
|
|
93
114
|
return this.writePromise;
|
|
94
115
|
case 3:
|
|
95
116
|
this.writePromise = null;
|
|
96
|
-
|
|
97
|
-
case 5:
|
|
98
|
-
this.writePromise = this.doWrite();
|
|
99
|
-
_context2.next = 8;
|
|
100
|
-
return this.writePromise;
|
|
101
|
-
case 8:
|
|
102
|
-
this.writePromise = null;
|
|
103
|
-
case 9:
|
|
117
|
+
case 4:
|
|
104
118
|
case "end":
|
|
105
119
|
return _context2.stop();
|
|
106
120
|
}
|
|
@@ -139,13 +153,13 @@ var WriteQueue = function (_Queue) {
|
|
|
139
153
|
key: "doWrite",
|
|
140
154
|
value: function () {
|
|
141
155
|
var _doWrite = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
|
|
142
|
-
var promises, archiveKeys, i, item,
|
|
156
|
+
var promises, archiveKeys, i, item, _ref2, archiveKey, writePromise, promise, writeResults;
|
|
143
157
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
144
158
|
while (1) {
|
|
145
159
|
switch (_context4.prev = _context4.next) {
|
|
146
160
|
case 0:
|
|
147
161
|
if (!this.length) {
|
|
148
|
-
_context4.next =
|
|
162
|
+
_context4.next = 21;
|
|
149
163
|
break;
|
|
150
164
|
}
|
|
151
165
|
promises = [];
|
|
@@ -153,7 +167,7 @@ var WriteQueue = function (_Queue) {
|
|
|
153
167
|
i = 0;
|
|
154
168
|
case 4:
|
|
155
169
|
if (!(i < this.writeConcurrency)) {
|
|
156
|
-
_context4.next =
|
|
170
|
+
_context4.next = 15;
|
|
157
171
|
break;
|
|
158
172
|
}
|
|
159
173
|
item = this.dequeue();
|
|
@@ -161,25 +175,24 @@ var WriteQueue = function (_Queue) {
|
|
|
161
175
|
_context4.next = 8;
|
|
162
176
|
break;
|
|
163
177
|
}
|
|
164
|
-
return _context4.abrupt("break",
|
|
178
|
+
return _context4.abrupt("break", 15);
|
|
165
179
|
case 8:
|
|
166
|
-
|
|
180
|
+
_ref2 = item, archiveKey = _ref2.archiveKey, writePromise = _ref2.writePromise;
|
|
167
181
|
archiveKeys.push(archiveKey);
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
promise = writePromise();
|
|
183
|
+
promises.push(promise);
|
|
184
|
+
case 12:
|
|
170
185
|
i++;
|
|
171
186
|
_context4.next = 4;
|
|
172
187
|
break;
|
|
173
|
-
case
|
|
174
|
-
_context4.next =
|
|
188
|
+
case 15:
|
|
189
|
+
_context4.next = 17;
|
|
175
190
|
return Promise.allSettled(promises);
|
|
176
|
-
case
|
|
191
|
+
case 17:
|
|
177
192
|
writeResults = _context4.sent;
|
|
178
193
|
this.updateFileMap(archiveKeys, writeResults);
|
|
179
194
|
_context4.next = 0;
|
|
180
195
|
break;
|
|
181
|
-
case 20:
|
|
182
|
-
this.writePromise = null;
|
|
183
196
|
case 21:
|
|
184
197
|
case "end":
|
|
185
198
|
return _context4.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-queue.js","names":["MEMORY_LIMIT","WriteQueue","listeningInterval","writeConcurrency","val","process","memoryUsage","rss","startWrite","intervalId","setInterval","bind","clearInterval","
|
|
1
|
+
{"version":3,"file":"write-queue.js","names":["MEMORY_LIMIT","WriteQueue","listeningInterval","writeConcurrency","val","writeImmediately","archiveKey","writePromise","result","fileMap","process","memoryUsage","rss","startWrite","intervalId","setInterval","bind","clearInterval","doWrite","stopListening","length","promises","archiveKeys","i","item","dequeue","push","promise","Promise","allSettled","writeResults","updateFileMap","value","Queue"],"sources":["../../../../src/lib/utils/write-queue.ts"],"sourcesContent":["import {Queue} from './queue';\nimport process from 'process';\n\n/** Memory limit size is based on testing */\nconst MEMORY_LIMIT = 4 * 1024 * 1024 * 1024; // 4GB\n\nexport type WriteQueueItem = {\n archiveKey?: string;\n /**\n * writePromise() returns a Promise that will be awaited in Promise.allSettled(promises);\n * Arguments for this call are specified in writeQueue.enqueue call like this:\n * await writeQueue.enqueue({\n * archiveKey: `nodePages/xxx.json.gz`,\n * writePromise: () => writeFileForSlpk(slpkPath, data, `xxx.json`)\n * });\n * Note, a function like writeFileForSlpk should NOT be called when initializing the object for enqueue().\n * If he function is called, the promise will be created\n * and the function will allocate resources (file descriptors) for file writing.\n * It will be done for ALL items in the queue, which is not supposed to happen.\n * That's why the function should be passed as\n * writePromise: () => writeFileForSlpk(slpkPath, content, `xxx.json`)\n * instead of\n * writePromise: writeFileForSlpk(slpkPath, content, `xxx.json`) // INCORRECT !\n */\n writePromise: () => Promise<string | null>;\n};\n\nexport default class WriteQueue<T extends WriteQueueItem> extends Queue<T> {\n private intervalId?: NodeJS.Timeout;\n public writePromise: Promise<void> | null = null;\n public fileMap: {[key: string]: string} = {};\n public listeningInterval: number;\n public writeConcurrency: number;\n\n constructor(listeningInterval: number = 2000, writeConcurrency: number = 400) {\n super();\n this.listeningInterval = listeningInterval;\n this.writeConcurrency = writeConcurrency;\n }\n\n async enqueue(val: T, writeImmediately: boolean = false) {\n if (writeImmediately) {\n const {archiveKey, writePromise} = val as WriteQueueItem;\n const result = await writePromise();\n if (archiveKey && result) {\n this.fileMap[archiveKey] = result;\n }\n } else {\n super.enqueue(val);\n /** https://nodejs.org/docs/latest-v14.x/api/process.html#process_process_memoryusage */\n if (process.memoryUsage().rss > MEMORY_LIMIT) {\n await this.startWrite();\n }\n }\n }\n\n startListening() {\n this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);\n }\n\n stopListening() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n async startWrite(): Promise<void> {\n if (!this.writePromise) {\n this.writePromise = this.doWrite();\n }\n await this.writePromise;\n this.writePromise = null;\n }\n\n async finalize(): Promise<void> {\n this.stopListening();\n await this.startWrite();\n }\n\n private async doWrite(): Promise<void> {\n while (this.length) {\n const promises: Promise<string | null>[] = [];\n const archiveKeys: (string | undefined)[] = [];\n for (let i = 0; i < this.writeConcurrency; i++) {\n const item = this.dequeue();\n if (!item) {\n break;\n }\n const {archiveKey, writePromise} = item as WriteQueueItem;\n archiveKeys.push(archiveKey);\n const promise = writePromise();\n promises.push(promise);\n }\n const writeResults = await Promise.allSettled(promises);\n this.updateFileMap(archiveKeys, writeResults);\n }\n }\n\n private updateFileMap(\n archiveKeys: (string | undefined)[],\n writeResults: PromiseSettledResult<string | null>[]\n ) {\n for (let i = 0; i < archiveKeys.length; i++) {\n const archiveKey = archiveKeys[i];\n if (archiveKey && 'value' in writeResults[i]) {\n this.fileMap[archiveKey] = (writeResults[i] as PromiseFulfilledResult<string>).value;\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAA8B;AAAA;AAG9B,IAAMA,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAAC,IAuBvBC,UAAU;EAAA;EAAA;EAO7B,sBAA8E;IAAA;IAAA,IAAlEC,iBAAyB,uEAAG,IAAI;IAAA,IAAEC,gBAAwB,uEAAG,GAAG;IAAA;IAC1E;IAAQ;IAAA,2FANkC,IAAI;IAAA,sFACN,CAAC,CAAC;IAAA;IAAA;IAM1C,MAAKD,iBAAiB,GAAGA,iBAAiB;IAC1C,MAAKC,gBAAgB,GAAGA,gBAAgB;IAAC;EAC3C;EAAC;IAAA;IAAA;MAAA,yEAED,iBAAcC,GAAM;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAAEC,gBAAyB,2DAAG,KAAK;gBAAA,KACjDA,gBAAgB;kBAAA;kBAAA;gBAAA;gBAAA,OACiBD,GAAG,EAA/BE,UAAU,QAAVA,UAAU,EAAEC,YAAY,QAAZA,YAAY;gBAAA;gBAAA,OACVA,YAAY,EAAE;cAAA;gBAA7BC,MAAM;gBACZ,IAAIF,UAAU,IAAIE,MAAM,EAAE;kBACxB,IAAI,CAACC,OAAO,CAACH,UAAU,CAAC,GAAGE,MAAM;gBACnC;gBAAC;gBAAA;cAAA;gBAED,oGAAcJ,GAAG;gBAAE,MAEfM,gBAAO,CAACC,WAAW,EAAE,CAACC,GAAG,GAAGZ,YAAY;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACpC,IAAI,CAACa,UAAU,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAG5B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,0BAAiB;MACf,IAAI,CAACC,UAAU,GAAGC,WAAW,CAAC,IAAI,CAACF,UAAU,CAACG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAACd,iBAAiB,CAAC;IACnF;EAAC;IAAA;IAAA,OAED,yBAAgB;MACd,IAAI,IAAI,CAACY,UAAU,EAAE;QACnBG,aAAa,CAAC,IAAI,CAACH,UAAU,CAAC;MAChC;IACF;EAAC;IAAA;IAAA;MAAA,4EAED;QAAA;UAAA;YAAA;cAAA;gBACE,IAAI,CAAC,IAAI,CAACP,YAAY,EAAE;kBACtB,IAAI,CAACA,YAAY,GAAG,IAAI,CAACW,OAAO,EAAE;gBACpC;gBAAC;gBAAA,OACK,IAAI,CAACX,YAAY;cAAA;gBACvB,IAAI,CAACA,YAAY,GAAG,IAAI;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0EAED;QAAA;UAAA;YAAA;cAAA;gBACE,IAAI,CAACY,aAAa,EAAE;gBAAC;gBAAA,OACf,IAAI,CAACN,UAAU,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yEAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,KACS,IAAI,CAACO,MAAM;kBAAA;kBAAA;gBAAA;gBACVC,QAAkC,GAAG,EAAE;gBACvCC,WAAmC,GAAG,EAAE;gBACrCC,CAAC,GAAG,CAAC;cAAA;gBAAA,MAAEA,CAAC,GAAG,IAAI,CAACpB,gBAAgB;kBAAA;kBAAA;gBAAA;gBACjCqB,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;gBAAA,IACtBD,IAAI;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA,QAG0BA,IAAI,EAAhClB,UAAU,SAAVA,UAAU,EAAEC,YAAY,SAAZA,YAAY;gBAC/Be,WAAW,CAACI,IAAI,CAACpB,UAAU,CAAC;gBACtBqB,OAAO,GAAGpB,YAAY,EAAE;gBAC9Bc,QAAQ,CAACK,IAAI,CAACC,OAAO,CAAC;cAAC;gBARkBJ,CAAC,EAAE;gBAAA;gBAAA;cAAA;gBAAA;gBAAA,OAUnBK,OAAO,CAACC,UAAU,CAACR,QAAQ,CAAC;cAAA;gBAAjDS,YAAY;gBAClB,IAAI,CAACC,aAAa,CAACT,WAAW,EAAEQ,YAAY,CAAC;gBAAC;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEjD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,uBACER,WAAmC,EACnCQ,YAAmD,EACnD;MACA,KAAK,IAAIP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,WAAW,CAACF,MAAM,EAAEG,CAAC,EAAE,EAAE;QAC3C,IAAMjB,UAAU,GAAGgB,WAAW,CAACC,CAAC,CAAC;QACjC,IAAIjB,UAAU,IAAI,OAAO,IAAIwB,YAAY,CAACP,CAAC,CAAC,EAAE;UAC5C,IAAI,CAACd,OAAO,CAACH,UAAU,CAAC,GAAIwB,YAAY,CAACP,CAAC,CAAC,CAAoCS,KAAK;QACtF;MACF;IACF;EAAC;EAAA;AAAA,EAjF+DC,YAAK;AAAA"}
|
package/dist/es5/pgm-loader.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.PGMLoader = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _geoid = require("@math.gl/geoid");
|
|
11
|
-
var VERSION = typeof "3.3.
|
|
11
|
+
var VERSION = typeof "3.3.1" !== 'undefined' ? "3.3.1" : 'latest';
|
|
12
12
|
|
|
13
13
|
var PGMLoader = {
|
|
14
14
|
name: 'PGM - Netpbm grayscale image format',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgm-loader.js","names":["VERSION","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","parsePGM","Uint8Array","extensions","cubic"],"sources":["../../src/pgm-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parsePGM} from '@math.gl/geoid';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n // @ts-expect-error LoaderOptions does not have cubic parameter\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"mappings":";;;;;;;;;AACA;AAIA,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"pgm-loader.js","names":["VERSION","PGMLoader","name","id","module","version","mimeTypes","parse","arrayBuffer","options","parsePGM","Uint8Array","extensions","cubic"],"sources":["../../src/pgm-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parsePGM} from '@math.gl/geoid';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Loader for PGM - Netpbm grayscale image format\n */\nexport const PGMLoader: LoaderWithParser = {\n name: 'PGM - Netpbm grayscale image format',\n id: 'pgm',\n module: 'tile-converter',\n version: VERSION,\n mimeTypes: ['image/x-portable-graymap'],\n // @ts-expect-error LoaderOptions does not have cubic parameter\n parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),\n extensions: ['pgm'],\n options: {\n // TODO - use pgm namespace\n cubic: false\n }\n};\n"],"mappings":";;;;;;;;;AACA;AAIA,IAAMA,OAAO,GAAG,cAAkB,KAAK,WAAW,aAAiB,QAAQ;;AAKpE,IAAMC,SAA2B,GAAG;EACzCC,IAAI,EAAE,qCAAqC;EAC3CC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,gBAAgB;EACxBC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAEvCC,KAAK;IAAA,uEAAE,iBAAOC,WAAW,EAAEC,OAAO;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAK,IAAAC,eAAQ,EAAC,IAAIC,UAAU,CAACH,WAAW,CAAC,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACrFG,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBH,OAAO,EAAE;IAEPI,KAAK,EAAE;EACT;AACF,CAAC;AAAC"}
|
|
@@ -15,7 +15,7 @@ var _geometryConverter = require("../i3s-converter/helpers/geometry-converter");
|
|
|
15
15
|
case 0:
|
|
16
16
|
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
17
17
|
_context.next = 3;
|
|
18
|
-
return (0, _geometryConverter.convertAttributes)(data, options.useCartesianPositions);
|
|
18
|
+
return (0, _geometryConverter.convertAttributes)(data, options.materialAndTextureList, options.useCartesianPositions);
|
|
19
19
|
case 3:
|
|
20
20
|
return _context.abrupt("return", _context.sent);
|
|
21
21
|
case 4:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-attributes-worker.js","names":["createWorker","data","options","convertAttributes","useCartesianPositions"],"sources":["../../../src/workers/i3s-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {convertAttributes} from '../i3s-converter/helpers/geometry-converter';\n\ncreateWorker(\n async (data, options = {})
|
|
1
|
+
{"version":3,"file":"i3s-attributes-worker.js","names":["createWorker","data","options","convertAttributes","materialAndTextureList","useCartesianPositions"],"sources":["../../../src/workers/i3s-attributes-worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {convertAttributes} from '../i3s-converter/helpers/geometry-converter';\n\ncreateWorker(\n async (data, options = {}) =>\n await convertAttributes(data, options.materialAndTextureList, options.useCartesianPositions)\n);\n"],"mappings":";;;;;AAAA;AACA;AAEA,IAAAA,yBAAY;EAAA,qEACV,iBAAOC,IAAI;IAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEC,OAAO,2DAAG,CAAC,CAAC;YAAA;YAAA,OACjB,IAAAC,oCAAiB,EAACF,IAAI,EAAEC,OAAO,CAACE,sBAAsB,EAAEF,OAAO,CAACG,qBAAqB,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;AAAA,IAC/F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { processOnWorker } from '@loaders.gl/worker-utils';
|
|
2
2
|
|
|
3
|
-
const VERSION = typeof "3.3.
|
|
3
|
+
const VERSION = typeof "3.3.1" !== 'undefined' ? "3.3.1" : 'latest';
|
|
4
4
|
export const Tile3dAttributesWorker = {
|
|
5
5
|
id: '3d-tiles-attributes',
|
|
6
6
|
name: '3DTiles Attributes Worker',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3d-tiles-attributes-worker.js","names":["processOnWorker","VERSION","Tile3dAttributesWorker","id","name","module","version","options","featureAttributes","transform3DTilesAttributesOnWorker","i3sAttributesData","_typecheckI3SAttributesWorker"],"sources":["../../src/3d-tiles-attributes-worker.ts"],"sourcesContent":["import type {WorkerObject} from '@loaders.gl/worker-utils';\nimport type {FeatureAttribute} from '@loaders.gl/i3s';\n\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type Tile3DAttributesWorkerOptions = {\n featureAttributes: FeatureAttribute | null;\n source: string;\n};\n\nexport type I3SAttributesData = {\n tileContent: any;\n textureFormat: string;\n};\n\n/**\n * I3S Attributes Worker to handle B3DM object\n */\nexport const Tile3dAttributesWorker = {\n id: '3d-tiles-attributes',\n name: '3DTiles Attributes Worker',\n module: 'tile-converter',\n version: VERSION,\n options: {\n featureAttributes: null\n }\n};\n\n/**\n * Performs I3S attributes transformation\n */\nexport function transform3DTilesAttributesOnWorker(\n i3sAttributesData: I3SAttributesData,\n options: Tile3DAttributesWorkerOptions\n): Promise<ArrayBuffer> {\n return processOnWorker(Tile3dAttributesWorker, i3sAttributesData, options);\n}\n\nexport const _typecheckI3SAttributesWorker: WorkerObject = Tile3dAttributesWorker;\n"],"mappings":"AAGA,SAAQA,eAAe,QAAO,0BAA0B;;AAIxD,MAAMC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"3d-tiles-attributes-worker.js","names":["processOnWorker","VERSION","Tile3dAttributesWorker","id","name","module","version","options","featureAttributes","transform3DTilesAttributesOnWorker","i3sAttributesData","_typecheckI3SAttributesWorker"],"sources":["../../src/3d-tiles-attributes-worker.ts"],"sourcesContent":["import type {WorkerObject} from '@loaders.gl/worker-utils';\nimport type {FeatureAttribute} from '@loaders.gl/i3s';\n\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type Tile3DAttributesWorkerOptions = {\n featureAttributes: FeatureAttribute | null;\n source: string;\n};\n\nexport type I3SAttributesData = {\n tileContent: any;\n textureFormat: string;\n};\n\n/**\n * I3S Attributes Worker to handle B3DM object\n */\nexport const Tile3dAttributesWorker = {\n id: '3d-tiles-attributes',\n name: '3DTiles Attributes Worker',\n module: 'tile-converter',\n version: VERSION,\n options: {\n featureAttributes: null\n }\n};\n\n/**\n * Performs I3S attributes transformation\n */\nexport function transform3DTilesAttributesOnWorker(\n i3sAttributesData: I3SAttributesData,\n options: Tile3DAttributesWorkerOptions\n): Promise<ArrayBuffer> {\n return processOnWorker(Tile3dAttributesWorker, i3sAttributesData, options);\n}\n\nexport const _typecheckI3SAttributesWorker: WorkerObject = Tile3dAttributesWorker;\n"],"mappings":"AAGA,SAAQA,eAAe,QAAO,0BAA0B;;AAIxD,MAAMC,OAAO,GAAG,cAAkB,KAAK,WAAW,aAAiB,QAAQ;AAe3E,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,EAAE,EAAE,qBAAqB;EACzBC,IAAI,EAAE,2BAA2B;EACjCC,MAAM,EAAE,gBAAgB;EACxBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE;IACPC,iBAAiB,EAAE;EACrB;AACF,CAAC;;AAKD,OAAO,SAASC,kCAAkC,CAChDC,iBAAoC,EACpCH,OAAsC,EAChB;EACtB,OAAOP,eAAe,CAACE,sBAAsB,EAAEQ,iBAAiB,EAAEH,OAAO,CAAC;AAC5E;AAEA,OAAO,MAAMI,6BAA2C,GAAGT,sBAAsB"}
|
|
@@ -34,6 +34,8 @@ function printHelp() {
|
|
|
34
34
|
console.log('--max-depth [Maximal depth of hierarchical tiles tree traversal, default: infinite]');
|
|
35
35
|
console.log('--name [Tileset name]');
|
|
36
36
|
console.log('--output [Output folder, default: "data" folder]');
|
|
37
|
+
console.log('--instant-node-writing [Keep created 3DNodeIndexDocument files on disk instead of memory. This option reduce memory usage but decelerates conversion speed]');
|
|
38
|
+
console.log('--split-nodes [Prevent to merge similar materials that could lead to incorrect visualization (I3S to 3DTiles conversion only)]');
|
|
37
39
|
console.log('--slpk [Generate slpk (Scene Layer Packages) I3S output file]');
|
|
38
40
|
console.log('--tileset [tileset.json file (3DTiles) / http://..../SceneServer/layers/0 resource (I3S)]');
|
|
39
41
|
console.log('--input-type [tileset input type: I3S or 3DTILES]');
|
|
@@ -75,9 +77,11 @@ async function convert(options) {
|
|
|
75
77
|
egmFilePath: options.egm,
|
|
76
78
|
token: options.token,
|
|
77
79
|
draco: options.draco,
|
|
80
|
+
mergeMaterials: options.mergeMaterials,
|
|
78
81
|
generateTextures: options.generateTextures,
|
|
79
82
|
generateBoundingVolumes: options.generateBoundingVolumes,
|
|
80
|
-
validate: options.validate
|
|
83
|
+
validate: options.validate,
|
|
84
|
+
instantNodeWriting: options.instantNodeWriting
|
|
81
85
|
});
|
|
82
86
|
break;
|
|
83
87
|
default:
|
|
@@ -124,6 +128,8 @@ function validateOptionsWithEqual(args) {
|
|
|
124
128
|
function parseOptions(args) {
|
|
125
129
|
const opts = {
|
|
126
130
|
output: 'data',
|
|
131
|
+
instantNodeWriting: false,
|
|
132
|
+
mergeMaterials: true,
|
|
127
133
|
sevenZipExe: 'C:\\Program Files\\7-Zip\\7z.exe',
|
|
128
134
|
egm: join(process.cwd(), 'deps', 'egm2008-5.pgm'),
|
|
129
135
|
draco: true,
|
|
@@ -149,6 +155,12 @@ function parseOptions(args) {
|
|
|
149
155
|
case '--output':
|
|
150
156
|
opts.output = getStringValue(index, args);
|
|
151
157
|
break;
|
|
158
|
+
case '--instant-node-writing':
|
|
159
|
+
opts.instantNodeWriting = getBooleanValue(index, args);
|
|
160
|
+
break;
|
|
161
|
+
case '--split-nodes':
|
|
162
|
+
opts.mergeMaterials = getBooleanValue(index, args);
|
|
163
|
+
break;
|
|
152
164
|
case '--max-depth':
|
|
153
165
|
opts.maxDepth = getIntegerValue(index, args);
|
|
154
166
|
break;
|
|
@@ -220,7 +232,7 @@ function getIntegerValue(index, args) {
|
|
|
220
232
|
}
|
|
221
233
|
function getBooleanValue(index, args) {
|
|
222
234
|
const stringValue = getStringValue(index, args).toLowerCase().trim();
|
|
223
|
-
if (
|
|
235
|
+
if (['--no-draco', '--split-nodes'].includes(args[index]) && !stringValue) {
|
|
224
236
|
return false;
|
|
225
237
|
}
|
|
226
238
|
if (!stringValue || stringValue === 'true') {
|