@loaders.gl/tile-converter 4.2.0-alpha.4 → 4.2.0-alpha.6

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 (192) hide show
  1. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +4 -4
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  3. package/dist/3d-tiles-converter/3d-tiles-converter.js +349 -293
  4. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  5. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +261 -200
  6. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +14 -5
  7. package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -1
  8. package/dist/3d-tiles-converter/helpers/load-i3s.js +83 -77
  9. package/dist/3d-tiles-converter/helpers/texture-atlas.js +44 -21
  10. package/dist/3d-tiles-converter/json-templates/tileset.js +32 -33
  11. package/dist/constants.js +0 -1
  12. package/dist/converter-cli.js +257 -234
  13. package/dist/converter.min.cjs +95 -105
  14. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  15. package/dist/deps-installer/deps-installer.js +78 -59
  16. package/dist/i3s-converter/helpers/attribute-metadata-info.js +210 -153
  17. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +1 -1
  18. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  19. package/dist/i3s-converter/helpers/batch-ids-extensions.js +146 -103
  20. package/dist/i3s-converter/helpers/coordinate-converter.js +100 -65
  21. package/dist/i3s-converter/helpers/create-scene-server-path.js +14 -9
  22. package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
  23. package/dist/i3s-converter/helpers/feature-attributes.js +170 -105
  24. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +1 -1
  25. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -1
  26. package/dist/i3s-converter/helpers/geometry-attributes.js +205 -212
  27. package/dist/i3s-converter/helpers/geometry-converter.d.ts +17 -3
  28. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  29. package/dist/i3s-converter/helpers/geometry-converter.js +1189 -830
  30. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +1 -1
  31. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
  32. package/dist/i3s-converter/helpers/gltf-attributes.js +109 -97
  33. package/dist/i3s-converter/helpers/load-3d-tiles.js +103 -66
  34. package/dist/i3s-converter/helpers/node-debug.js +98 -54
  35. package/dist/i3s-converter/helpers/node-index-document.d.ts +11 -4
  36. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  37. package/dist/i3s-converter/helpers/node-index-document.js +255 -177
  38. package/dist/i3s-converter/helpers/node-pages.d.ts +1 -1
  39. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  40. package/dist/i3s-converter/helpers/node-pages.js +299 -193
  41. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +1 -1
  42. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
  43. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +92 -60
  44. package/dist/i3s-converter/helpers/progress.d.ts.map +1 -1
  45. package/dist/i3s-converter/helpers/progress.js +139 -83
  46. package/dist/i3s-converter/helpers/tileset-traversal.d.ts +9 -2
  47. package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -1
  48. package/dist/i3s-converter/helpers/tileset-traversal.js +33 -13
  49. package/dist/i3s-converter/i3s-converter.d.ts +7 -7
  50. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  51. package/dist/i3s-converter/i3s-converter.js +1165 -895
  52. package/dist/i3s-converter/json-templates/geometry-definitions.js +70 -79
  53. package/dist/i3s-converter/json-templates/layers.js +120 -121
  54. package/dist/i3s-converter/json-templates/metadata.js +19 -20
  55. package/dist/i3s-converter/json-templates/node.js +73 -71
  56. package/dist/i3s-converter/json-templates/scene-server.js +25 -26
  57. package/dist/i3s-converter/json-templates/shared-resources.js +107 -108
  58. package/dist/i3s-converter/json-templates/store.js +96 -94
  59. package/dist/i3s-converter/types.js +35 -23
  60. package/dist/i3s-server/app.js +15 -12
  61. package/dist/i3s-server/bin/i3s-server.min.cjs +69 -69
  62. package/dist/i3s-server/bin/www.js +16 -7
  63. package/dist/i3s-server/controllers/index-controller.js +18 -15
  64. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
  65. package/dist/i3s-server/controllers/slpk-controller.js +24 -11
  66. package/dist/i3s-server/routes/index.js +13 -9
  67. package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -1
  68. package/dist/i3s-server/routes/slpk-router.js +26 -19
  69. package/dist/i3s-server/utils/create-scene-server.js +15 -10
  70. package/dist/i3s-server/utils/server-utils.d.ts.map +1 -1
  71. package/dist/i3s-server/utils/server-utils.js +52 -32
  72. package/dist/index.cjs +616 -967
  73. package/dist/index.cjs.map +7 -0
  74. package/dist/index.d.ts +2 -2
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +0 -1
  77. package/dist/lib/json-schemas/conversion-dump-json-schema.js +243 -421
  78. package/dist/lib/utils/cli-utils.d.ts.map +1 -1
  79. package/dist/lib/utils/cli-utils.js +65 -36
  80. package/dist/lib/utils/compress-util.js +20 -15
  81. package/dist/lib/utils/conversion-dump.d.ts +10 -2
  82. package/dist/lib/utils/conversion-dump.d.ts.map +1 -1
  83. package/dist/lib/utils/conversion-dump.js +242 -197
  84. package/dist/lib/utils/file-utils.d.ts +1 -1
  85. package/dist/lib/utils/file-utils.d.ts.map +1 -1
  86. package/dist/lib/utils/file-utils.js +120 -74
  87. package/dist/lib/utils/geometry-utils.js +13 -7
  88. package/dist/lib/utils/lod-conversion-utils.js +65 -33
  89. package/dist/lib/utils/queue.js +12 -13
  90. package/dist/lib/utils/statistic-utills.d.ts +6 -23
  91. package/dist/lib/utils/statistic-utills.d.ts.map +1 -1
  92. package/dist/lib/utils/statistic-utills.js +58 -55
  93. package/dist/lib/utils/write-queue.d.ts +2 -2
  94. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  95. package/dist/lib/utils/write-queue.js +72 -86
  96. package/dist/pgm-loader.js +17 -13
  97. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
  98. package/dist/slpk-extractor/slpk-extractor.js +60 -50
  99. package/dist/slpk-extractor-cli.d.ts.map +1 -1
  100. package/dist/slpk-extractor-cli.js +90 -59
  101. package/dist/slpk-extractor.min.cjs +1 -1
  102. package/package.json +27 -26
  103. package/src/3d-tiles-converter/3d-tiles-converter.ts +21 -10
  104. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +1 -0
  105. package/src/3d-tiles-converter/helpers/load-i3s.ts +3 -27
  106. package/src/converter-cli.ts +4 -2
  107. package/src/deps-installer/deps-installer.ts +7 -0
  108. package/src/i3s-converter/helpers/attribute-metadata-info.ts +1 -1
  109. package/src/i3s-converter/helpers/batch-ids-extensions.ts +3 -1
  110. package/src/i3s-converter/helpers/coordinate-converter.ts +2 -2
  111. package/src/i3s-converter/helpers/feature-attributes.ts +5 -2
  112. package/src/i3s-converter/helpers/geometry-attributes.ts +6 -5
  113. package/src/i3s-converter/helpers/geometry-converter.ts +118 -72
  114. package/src/i3s-converter/helpers/gltf-attributes.ts +12 -13
  115. package/src/i3s-converter/helpers/node-index-document.ts +18 -10
  116. package/src/i3s-converter/helpers/node-pages.ts +27 -29
  117. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +1 -0
  118. package/src/i3s-converter/helpers/progress.ts +1 -0
  119. package/src/i3s-converter/helpers/tileset-traversal.ts +22 -13
  120. package/src/i3s-converter/i3s-converter.ts +173 -114
  121. package/src/i3s-converter/json-templates/node.ts +1 -1
  122. package/src/i3s-server/bin/www.ts +6 -4
  123. package/src/i3s-server/controllers/slpk-controller.ts +4 -2
  124. package/src/i3s-server/routes/index.ts +10 -7
  125. package/src/i3s-server/routes/slpk-router.ts +22 -16
  126. package/src/i3s-server/utils/server-utils.ts +6 -4
  127. package/src/lib/utils/cli-utils.ts +2 -0
  128. package/src/lib/utils/conversion-dump.ts +35 -20
  129. package/src/lib/utils/file-utils.ts +11 -11
  130. package/src/lib/utils/statistic-utills.ts +5 -6
  131. package/src/lib/utils/write-queue.ts +2 -2
  132. package/src/slpk-extractor/slpk-extractor.ts +2 -1
  133. package/src/slpk-extractor-cli.ts +16 -8
  134. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  135. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  136. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  137. package/dist/3d-tiles-converter/helpers/load-i3s.js.map +0 -1
  138. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  139. package/dist/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  140. package/dist/constants.js.map +0 -1
  141. package/dist/converter-cli.js.map +0 -1
  142. package/dist/deps-installer/deps-installer.js.map +0 -1
  143. package/dist/i3s-converter/helpers/attribute-metadata-info.js.map +0 -1
  144. package/dist/i3s-converter/helpers/batch-ids-extensions.js.map +0 -1
  145. package/dist/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  146. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  147. package/dist/i3s-converter/helpers/feature-attributes.js.map +0 -1
  148. package/dist/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  149. package/dist/i3s-converter/helpers/geometry-converter.js.map +0 -1
  150. package/dist/i3s-converter/helpers/gltf-attributes.js.map +0 -1
  151. package/dist/i3s-converter/helpers/load-3d-tiles.js.map +0 -1
  152. package/dist/i3s-converter/helpers/node-debug.js.map +0 -1
  153. package/dist/i3s-converter/helpers/node-index-document.js.map +0 -1
  154. package/dist/i3s-converter/helpers/node-pages.js.map +0 -1
  155. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js.map +0 -1
  156. package/dist/i3s-converter/helpers/progress.js.map +0 -1
  157. package/dist/i3s-converter/helpers/tileset-traversal.js.map +0 -1
  158. package/dist/i3s-converter/i3s-converter.js.map +0 -1
  159. package/dist/i3s-converter/json-templates/geometry-definitions.js.map +0 -1
  160. package/dist/i3s-converter/json-templates/layers.js.map +0 -1
  161. package/dist/i3s-converter/json-templates/metadata.js.map +0 -1
  162. package/dist/i3s-converter/json-templates/node.js.map +0 -1
  163. package/dist/i3s-converter/json-templates/scene-server.js.map +0 -1
  164. package/dist/i3s-converter/json-templates/shared-resources.js.map +0 -1
  165. package/dist/i3s-converter/json-templates/store.js.map +0 -1
  166. package/dist/i3s-converter/types.js.map +0 -1
  167. package/dist/i3s-server/README.md +0 -63
  168. package/dist/i3s-server/app.js.map +0 -1
  169. package/dist/i3s-server/bin/www.js.map +0 -1
  170. package/dist/i3s-server/certs/cert.pem +0 -19
  171. package/dist/i3s-server/certs/key.pem +0 -27
  172. package/dist/i3s-server/controllers/index-controller.js.map +0 -1
  173. package/dist/i3s-server/controllers/slpk-controller.js.map +0 -1
  174. package/dist/i3s-server/routes/index.js.map +0 -1
  175. package/dist/i3s-server/routes/slpk-router.js.map +0 -1
  176. package/dist/i3s-server/utils/create-scene-server.js.map +0 -1
  177. package/dist/i3s-server/utils/server-utils.js.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/lib/json-schemas/conversion-dump-json-schema.js.map +0 -1
  180. package/dist/lib/utils/cli-utils.js.map +0 -1
  181. package/dist/lib/utils/compress-util.js.map +0 -1
  182. package/dist/lib/utils/conversion-dump.js.map +0 -1
  183. package/dist/lib/utils/file-utils.js.map +0 -1
  184. package/dist/lib/utils/geometry-utils.js.map +0 -1
  185. package/dist/lib/utils/lod-conversion-utils.js.map +0 -1
  186. package/dist/lib/utils/queue.js.map +0 -1
  187. package/dist/lib/utils/statistic-utills.js.map +0 -1
  188. package/dist/lib/utils/write-queue.js.map +0 -1
  189. package/dist/pgm-loader.js.map +0 -1
  190. package/dist/slpk-extractor/slpk-extractor.js.map +0 -1
  191. package/dist/slpk-extractor-cli.js.map +0 -1
  192. package/src/lib/utils/statistic-utills.d.ts +0 -25
@@ -2,90 +2,96 @@ import { load } from '@loaders.gl/core';
2
2
  import { I3SLoader, parseSLPKArchive } from '@loaders.gl/i3s';
3
3
  import { FileHandleFile } from '@loaders.gl/loader-utils';
4
4
  import { ZipFileSystem, makeZipCDHeaderIterator } from '@loaders.gl/zip';
5
+ /**
6
+ * Load I3S node content
7
+ * @param sourceTileset - source layer JSON
8
+ * @param sourceTile - source I3S node metadata
9
+ * @param tilesetLoadOptions - load options for Tiles3DLoader
10
+ * @param slpkFilesystem - loaded instance of ZipFileSystem for local convertion from SLPK file
11
+ * @returns - 3DTiles tile content or null
12
+ */
5
13
  export const loadI3SContent = async (sourceTileset, sourceTile, tilesetLoadOptions, slpkFilesystem) => {
6
- if (!sourceTileset || !sourceTile.contentUrl) {
7
- return null;
8
- }
9
- const loadOptions = {
10
- ...tilesetLoadOptions,
11
- i3s: {
12
- ...tilesetLoadOptions.i3s,
13
- isTileset: false,
14
- isTileHeader: false,
15
- _tileOptions: {
16
- attributeUrls: sourceTile.attributeUrls || [],
17
- textureUrl: sourceTile.textureUrl,
18
- textureFormat: sourceTile.textureFormat,
19
- textureLoaderOptions: sourceTile.textureLoaderOptions,
20
- materialDefinition: sourceTile.materialDefinition,
21
- isDracoGeometry: sourceTile.isDracoGeometry,
22
- mbs: sourceTile.mbs
23
- },
24
- _tilesetOptions: {
25
- store: sourceTileset.store,
26
- attributeStorageInfo: sourceTileset.attributeStorageInfo,
27
- fields: sourceTileset.fields
28
- }
14
+ if (!sourceTileset || !sourceTile.contentUrl) {
15
+ return null;
29
16
  }
30
- };
31
- const tileContent = await loadFromArchive(sourceTile.contentUrl, I3SLoader, loadOptions, slpkFilesystem);
32
- return tileContent;
17
+ const loadOptions = {
18
+ ...tilesetLoadOptions,
19
+ i3s: {
20
+ ...tilesetLoadOptions.i3s,
21
+ // @ts-expect-error
22
+ isTileset: false,
23
+ // @ts-expect-error
24
+ isTileHeader: false,
25
+ _tileOptions: {
26
+ attributeUrls: sourceTile.attributeUrls || [],
27
+ textureUrl: sourceTile.textureUrl,
28
+ textureFormat: sourceTile.textureFormat,
29
+ textureLoaderOptions: sourceTile.textureLoaderOptions,
30
+ materialDefinition: sourceTile.materialDefinition,
31
+ isDracoGeometry: sourceTile.isDracoGeometry,
32
+ mbs: sourceTile.mbs
33
+ },
34
+ _tilesetOptions: {
35
+ store: sourceTileset.store,
36
+ // @ts-expect-error
37
+ attributeStorageInfo: sourceTileset.attributeStorageInfo,
38
+ // @ts-expect-error
39
+ fields: sourceTileset.fields
40
+ }
41
+ }
42
+ };
43
+ const tileContent = await loadFromArchive(sourceTile.contentUrl, I3SLoader, loadOptions, slpkFilesystem);
44
+ return tileContent;
33
45
  };
46
+ /**
47
+ * Load local SLPK file to ZipFileSystem instance
48
+ * @param url - path to SLPK file
49
+ * @returns instance of ZipFileSystem or null if url is not an SLPK file
50
+ */
34
51
  export async function openSLPK(url) {
35
- const slpkUrlParts = url.split('.slpk');
36
- const {
37
- slpkFileName
38
- } = getSlpkUrlParts(url) || {};
39
- if (slpkFileName) {
40
- const slpkFileName = `${slpkUrlParts[0]}.slpk`;
41
- const fileProvider = new FileHandleFile(slpkFileName);
42
- const archive = await parseSLPKArchive(fileProvider, undefined, slpkFileName);
43
- const fileSystem = new ZipFileSystem(archive);
44
- return fileSystem;
45
- }
46
- return null;
52
+ const slpkUrlParts = url.split('.slpk');
53
+ if (slpkUrlParts.length === 2) {
54
+ const slpkFileName = `${slpkUrlParts[0]}.slpk`;
55
+ const fileProvider = new FileHandleFile(slpkFileName);
56
+ const archive = await parseSLPKArchive(fileProvider, undefined, slpkFileName);
57
+ const fileSystem = new ZipFileSystem(archive);
58
+ return fileSystem;
59
+ }
60
+ return null;
47
61
  }
62
+ /**
63
+ * Load a resource with load options and .3tz format support
64
+ * @param url - resource URL
65
+ * @param loader - loader to parse data (Tiles3DLoader / CesiumIonLoader)
66
+ * @param loadOptions - i3s loader options
67
+ * @returns i3s resource
68
+ */
48
69
  export async function loadFromArchive(url, loader, loadOptions, fileSystem) {
49
- const slpkUrlParts = getSlpkUrlParts(url);
50
- if (fileSystem !== null && slpkUrlParts !== null) {
51
- const {
52
- internalFileName
53
- } = slpkUrlParts;
54
- const content = await load(internalFileName, loader, {
55
- ...loadOptions,
56
- fetch: fileSystem.fetch.bind(fileSystem)
57
- });
58
- return content;
59
- }
60
- return await load(url, loader, loadOptions);
61
- }
62
- function getSlpkUrlParts(url) {
63
- const slpkUrlParts = url.split('.slpk');
64
- let result;
65
- if (slpkUrlParts.length === 1) {
66
- result = null;
67
- } else if (slpkUrlParts.length === 2) {
68
- result = {
69
- slpkFileName: `${slpkUrlParts[0]}.slpk`,
70
- internalFileName: slpkUrlParts[1].slice(1)
71
- };
72
- } else {
73
- throw new Error('Unexpected URL format');
74
- }
75
- return result;
70
+ if (fileSystem !== null) {
71
+ const content = await load(url, loader, {
72
+ ...loadOptions,
73
+ fetch: fileSystem.fetch.bind(fileSystem)
74
+ });
75
+ return content;
76
+ }
77
+ return await load(url, loader, loadOptions);
76
78
  }
79
+ /**
80
+ * Get nodes count inside SLPK
81
+ * @param fileSystem - file system of SLPK
82
+ * @returns number of nodes
83
+ */
77
84
  export async function getNodeCount(fileSystem) {
78
- if (!(fileSystem !== null && fileSystem !== void 0 && fileSystem.fileProvider)) {
79
- return 0;
80
- }
81
- let count = 0;
82
- const filesIterator = makeZipCDHeaderIterator(fileSystem.fileProvider);
83
- for await (const file of filesIterator) {
84
- const filename = file.fileName;
85
- if (filename.indexOf('3dNodeIndexDocument.json.gz') >= 0) {
86
- count++;
85
+ if (!fileSystem?.fileProvider) {
86
+ return 0;
87
+ }
88
+ let count = 0;
89
+ const filesIterator = makeZipCDHeaderIterator(fileSystem.fileProvider);
90
+ for await (const file of filesIterator) {
91
+ const filename = file.fileName;
92
+ if (filename.indexOf('3dNodeIndexDocument.json.gz') >= 0) {
93
+ count++;
94
+ }
87
95
  }
88
- }
89
- return count;
96
+ return count;
90
97
  }
91
- //# sourceMappingURL=load-i3s.js.map
@@ -1,27 +1,50 @@
1
+ /**
2
+ * Apply uvRegions to texture coordinates.
3
+ * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md
4
+ * Shader formula vec2 uv = fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;
5
+ * @param texCoords
6
+ * @param uvRegions
7
+ */
1
8
  export function convertTextureAtlas(texCoords, uvRegions) {
2
- const convertedTexCoords = new Float32Array(texCoords.length);
3
- const normalisedRegions = normalizeRegions(uvRegions);
4
- for (let index = 0; index < texCoords.length; index += 2) {
5
- const uv = texCoords.subarray(index, index + 2);
6
- const regions = normalisedRegions.slice(index * 2, index * 2 + 4);
7
- const fractatedUV = fract([uv[0], uv[1]]);
8
- const subtracted = [regions[2] - regions[0], regions[3] - regions[1]];
9
- const multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];
10
- const convertedUV = [multiplicationResult[0] + regions[0], multiplicationResult[1] + regions[1]];
11
- convertedTexCoords[index] = convertedUV[0];
12
- convertedTexCoords[index + 1] = convertedUV[1];
13
- }
14
- return convertedTexCoords;
9
+ const convertedTexCoords = new Float32Array(texCoords.length);
10
+ const normalisedRegions = normalizeRegions(uvRegions);
11
+ for (let index = 0; index < texCoords.length; index += 2) {
12
+ const uv = texCoords.subarray(index, index + 2);
13
+ const regions = normalisedRegions.slice(index * 2, index * 2 + 4);
14
+ // fract(texCoords)
15
+ const fractatedUV = fract([uv[0], uv[1]]);
16
+ // (uvRegions.zw - uvRegions.xy)
17
+ const subtracted = [regions[2] - regions[0], regions[3] - regions[1]];
18
+ // fract(texCoords) * (uvRegions.zw - uvRegions.xy)
19
+ const multiplicationResult = [fractatedUV[0] * subtracted[0], fractatedUV[1] * subtracted[1]];
20
+ // fract(texCoords) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;
21
+ const convertedUV = [
22
+ multiplicationResult[0] + regions[0],
23
+ multiplicationResult[1] + regions[1]
24
+ ];
25
+ convertedTexCoords[index] = convertedUV[0];
26
+ convertedTexCoords[index + 1] = convertedUV[1];
27
+ }
28
+ return convertedTexCoords;
15
29
  }
30
+ /**
31
+ * Do fractation of UV array.
32
+ * @param uv
33
+ */
16
34
  function fract(uv) {
17
- return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];
35
+ return [uv[0] - Math.floor(uv[0]), uv[1] - Math.floor(uv[1])];
18
36
  }
37
+ /**
38
+ * Normalize uvRegions by dividing by the maximum Uint16 value
39
+ * @param regions
40
+ */
19
41
  function normalizeRegions(regions) {
20
- const MAX_UINT_16_VALUE = 65535;
21
- const normalizedRegions = [];
22
- for (let index = 0; index < regions.length; index++) {
23
- normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;
24
- }
25
- return normalizedRegions;
42
+ // The code is for Uint16Array because it is the spec requirement
43
+ // https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryUVRegion.cmn.md
44
+ const MAX_UINT_16_VALUE = 65535;
45
+ const normalizedRegions = [];
46
+ for (let index = 0; index < regions.length; index++) {
47
+ normalizedRegions[index] = regions[index] / MAX_UINT_16_VALUE;
48
+ }
49
+ return normalizedRegions;
26
50
  }
27
- //# sourceMappingURL=texture-atlas.js.map
@@ -1,40 +1,39 @@
1
1
  import transform from 'json-map-transform';
2
2
  const ASSET = () => ({
3
- version: {
4
- path: 'version',
5
- default: '1.0'
6
- }
3
+ version: {
4
+ path: 'version',
5
+ default: '1.0'
6
+ }
7
7
  });
8
8
  const TILE = () => ({
9
- boundingVolume: {
10
- path: 'boundingVolume'
11
- },
12
- geometricError: {
13
- path: 'geometricError'
14
- },
15
- refine: {
16
- path: 'refine'
17
- },
18
- content: {
19
- path: 'content'
20
- },
21
- children: {
22
- path: 'children',
23
- transform: val => val.map(tile => transform(tile, TILE()))
24
- }
9
+ boundingVolume: {
10
+ path: 'boundingVolume'
11
+ },
12
+ geometricError: {
13
+ path: 'geometricError'
14
+ },
15
+ refine: {
16
+ path: 'refine'
17
+ },
18
+ content: {
19
+ path: 'content'
20
+ },
21
+ children: {
22
+ path: 'children',
23
+ transform: (val) => val.map((tile) => transform(tile, TILE()))
24
+ }
25
25
  });
26
26
  export const TILESET = () => ({
27
- asset: {
28
- path: 'asset',
29
- transform: val => transform(val, ASSET())
30
- },
31
- geometricError: {
32
- path: 'root',
33
- transform: val => val.geometricError
34
- },
35
- root: {
36
- path: 'root',
37
- transform: val => transform(val, TILE())
38
- }
27
+ asset: {
28
+ path: 'asset',
29
+ transform: (val) => transform(val, ASSET())
30
+ },
31
+ geometricError: {
32
+ path: 'root',
33
+ transform: (val) => val.geometricError
34
+ },
35
+ root: {
36
+ path: 'root',
37
+ transform: (val) => transform(val, TILE())
38
+ }
39
39
  });
40
- //# sourceMappingURL=tileset.js.map
package/dist/constants.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export const BROWSER_ERROR_MESSAGE = 'Tile converter does not work in browser, only in node js environment';
2
2
  export const DUMP_FILE_SUFFIX = '.dump.json';
3
- //# sourceMappingURL=constants.js.map