@loaders.gl/tile-converter 3.1.3 → 4.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +78 -0
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  3. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/3d-tiles-converter.js +2 -1
  4. package/dist/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
  5. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +83 -0
  6. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  7. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/b3dm-converter.js +7 -5
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
  9. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +13 -0
  10. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  11. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/i3s-obb-to-3d-tiles-obb.js +0 -0
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
  13. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  14. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  15. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/texture-atlas.js +0 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
  17. package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
  18. package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
  19. package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/json-templates/tileset.js +0 -0
  20. package/dist/3d-tiles-converter/json-templates/tileset.js.map +1 -0
  21. package/dist/bundle.d.ts +2 -0
  22. package/dist/bundle.d.ts.map +1 -0
  23. package/dist/{esm/bundle.js → bundle.js} +0 -0
  24. package/dist/bundle.js.map +1 -0
  25. package/dist/converter.min.js +21 -21
  26. package/dist/{es5/deps-installer → deps-installer}/deps-installer.d.ts +0 -0
  27. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  28. package/dist/{esm/deps-installer → deps-installer}/deps-installer.js +0 -0
  29. package/dist/deps-installer/deps-installer.js.map +1 -0
  30. package/dist/dist.min.js +201 -445
  31. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
  32. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  33. package/dist/{esm/i3s-converter → i3s-converter}/helpers/coordinate-converter.js +0 -0
  34. package/dist/i3s-converter/helpers/coordinate-converter.js.map +1 -0
  35. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  36. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  37. package/dist/{esm/i3s-converter → i3s-converter}/helpers/create-scene-server-path.js +0 -0
  38. package/dist/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
  39. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +23 -0
  40. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  41. package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-attributes.js +0 -0
  42. package/dist/i3s-converter/helpers/geometry-attributes.js.map +1 -0
  43. package/dist/{es5/i3s-converter → i3s-converter}/helpers/geometry-converter.d.ts +0 -0
  44. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  45. package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-converter.js +31 -4
  46. package/dist/i3s-converter/helpers/geometry-converter.js.map +1 -0
  47. package/dist/i3s-converter/helpers/node-debug.d.ts +2 -0
  48. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  49. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-debug.js +0 -0
  50. package/dist/i3s-converter/helpers/node-debug.js.map +1 -0
  51. package/dist/i3s-converter/helpers/node-pages.d.ts +116 -0
  52. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  53. package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-pages.js +0 -0
  54. package/dist/i3s-converter/helpers/node-pages.js.map +1 -0
  55. package/dist/i3s-converter/i3s-converter.d.ts +320 -0
  56. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  57. package/dist/{esm/i3s-converter → i3s-converter}/i3s-converter.js +0 -0
  58. package/dist/i3s-converter/i3s-converter.js.map +1 -0
  59. package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
  60. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  61. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/layers.js +0 -0
  62. package/dist/i3s-converter/json-templates/layers.js.map +1 -0
  63. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  64. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  65. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/metadata.js +0 -0
  66. package/dist/i3s-converter/json-templates/metadata.js.map +1 -0
  67. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  68. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  69. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/node.js +0 -0
  70. package/dist/i3s-converter/json-templates/node.js.map +1 -0
  71. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  72. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  73. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/scene-server.js +0 -0
  74. package/dist/i3s-converter/json-templates/scene-server.js.map +1 -0
  75. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  76. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  77. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/shared-resources.js +0 -0
  78. package/dist/i3s-converter/json-templates/shared-resources.js.map +1 -0
  79. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  80. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  81. package/dist/{esm/i3s-converter → i3s-converter}/json-templates/store.js +0 -0
  82. package/dist/i3s-converter/json-templates/store.js.map +1 -0
  83. package/dist/i3s-converter/types.d.ts +14 -0
  84. package/dist/i3s-converter/types.d.ts.map +1 -0
  85. package/dist/{esm/i3s-converter → i3s-converter}/types.js +0 -0
  86. package/dist/{es5/i3s-converter → i3s-converter}/types.js.map +0 -0
  87. package/dist/i3s-server/app.d.ts +3 -0
  88. package/dist/i3s-server/app.d.ts.map +1 -0
  89. package/dist/{esm/i3s-server → i3s-server}/app.js +0 -0
  90. package/dist/i3s-server/app.js.map +1 -0
  91. package/dist/{es5/i3s-server → i3s-server}/bin/www +0 -0
  92. package/dist/{es5/i3s-server → i3s-server}/certs/cert.pem +0 -0
  93. package/dist/{es5/i3s-server → i3s-server}/certs/key.pem +0 -0
  94. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  95. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  96. package/dist/{esm/i3s-server → i3s-server}/controllers/index-controller.js +0 -0
  97. package/dist/i3s-server/controllers/index-controller.js.map +1 -0
  98. package/dist/i3s-server/routes/index.d.ts +3 -0
  99. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  100. package/dist/{esm/i3s-server → i3s-server}/routes/index.js +0 -0
  101. package/dist/i3s-server/routes/index.js.map +1 -0
  102. package/dist/index.d.ts +5 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/{esm/index.js → index.js} +0 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/{es5/lib → lib}/utils/compress-util.d.ts +0 -0
  107. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  108. package/dist/{esm/lib → lib}/utils/compress-util.js +0 -0
  109. package/dist/lib/utils/compress-util.js.map +1 -0
  110. package/dist/{es5/lib → lib}/utils/file-utils.d.ts +0 -0
  111. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  112. package/dist/{esm/lib → lib}/utils/file-utils.js +0 -0
  113. package/dist/lib/utils/file-utils.js.map +1 -0
  114. package/dist/{es5/lib → lib}/utils/lod-conversion-utils.d.ts +0 -0
  115. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  116. package/dist/{esm/lib → lib}/utils/lod-conversion-utils.js +0 -0
  117. package/dist/lib/utils/lod-conversion-utils.js.map +1 -0
  118. package/dist/{es5/lib → lib}/utils/statistic-utills.d.ts +0 -0
  119. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  120. package/dist/{esm/lib → lib}/utils/statistic-utills.js +0 -0
  121. package/dist/lib/utils/statistic-utills.js.map +1 -0
  122. package/dist/pgm-loader.d.ts +6 -0
  123. package/dist/pgm-loader.d.ts.map +1 -0
  124. package/dist/{esm/pgm-loader.js → pgm-loader.js} +1 -1
  125. package/dist/pgm-loader.js.map +1 -0
  126. package/package.json +18 -19
  127. package/src/3d-tiles-converter/3d-tiles-converter.ts +4 -1
  128. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +6 -5
  129. package/src/i3s-converter/helpers/geometry-converter.js +39 -4
  130. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +0 -507
  131. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  132. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +0 -366
  133. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  134. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -26
  135. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  136. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -40
  137. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  138. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -67
  139. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  140. package/dist/es5/bundle.js +0 -7
  141. package/dist/es5/bundle.js.map +0 -1
  142. package/dist/es5/deps-installer/deps-installer.js +0 -83
  143. package/dist/es5/deps-installer/deps-installer.js.map +0 -1
  144. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -104
  145. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  146. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -54
  147. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  148. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +0 -218
  149. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  150. package/dist/es5/i3s-converter/helpers/geometry-converter.js +0 -911
  151. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +0 -1
  152. package/dist/es5/i3s-converter/helpers/node-debug.js +0 -99
  153. package/dist/es5/i3s-converter/helpers/node-debug.js.map +0 -1
  154. package/dist/es5/i3s-converter/helpers/node-pages.js +0 -258
  155. package/dist/es5/i3s-converter/helpers/node-pages.js.map +0 -1
  156. package/dist/es5/i3s-converter/i3s-converter.js +0 -1860
  157. package/dist/es5/i3s-converter/i3s-converter.js.map +0 -1
  158. package/dist/es5/i3s-converter/json-templates/layers.js +0 -239
  159. package/dist/es5/i3s-converter/json-templates/layers.js.map +0 -1
  160. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -33
  161. package/dist/es5/i3s-converter/json-templates/metadata.js.map +0 -1
  162. package/dist/es5/i3s-converter/json-templates/node.js +0 -109
  163. package/dist/es5/i3s-converter/json-templates/node.js.map +0 -1
  164. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -41
  165. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +0 -1
  166. package/dist/es5/i3s-converter/json-templates/shared-resources.js +0 -196
  167. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +0 -1
  168. package/dist/es5/i3s-converter/json-templates/store.js +0 -107
  169. package/dist/es5/i3s-converter/json-templates/store.js.map +0 -1
  170. package/dist/es5/i3s-converter/types.js +0 -2
  171. package/dist/es5/i3s-server/app.js +0 -23
  172. package/dist/es5/i3s-server/app.js.map +0 -1
  173. package/dist/es5/i3s-server/controllers/index-controller.js +0 -73
  174. package/dist/es5/i3s-server/controllers/index-controller.js.map +0 -1
  175. package/dist/es5/i3s-server/routes/index.js +0 -49
  176. package/dist/es5/i3s-server/routes/index.js.map +0 -1
  177. package/dist/es5/index.js +0 -40
  178. package/dist/es5/index.js.map +0 -1
  179. package/dist/es5/lib/utils/compress-util.js +0 -424
  180. package/dist/es5/lib/utils/compress-util.js.map +0 -1
  181. package/dist/es5/lib/utils/file-utils.js +0 -137
  182. package/dist/es5/lib/utils/file-utils.js.map +0 -1
  183. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -52
  184. package/dist/es5/lib/utils/lod-conversion-utils.js.map +0 -1
  185. package/dist/es5/lib/utils/statistic-utills.js +0 -196
  186. package/dist/es5/lib/utils/statistic-utills.js.map +0 -1
  187. package/dist/es5/pgm-loader.js +0 -51
  188. package/dist/es5/pgm-loader.js.map +0 -1
  189. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
  190. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
  191. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
  192. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
  193. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +0 -1
  194. package/dist/esm/bundle.js.map +0 -1
  195. package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
  196. package/dist/esm/deps-installer/deps-installer.js.map +0 -1
  197. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +0 -1
  198. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
  199. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +0 -1
  200. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  201. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +0 -1
  202. package/dist/esm/i3s-converter/helpers/node-debug.js.map +0 -1
  203. package/dist/esm/i3s-converter/helpers/node-pages.js.map +0 -1
  204. package/dist/esm/i3s-converter/i3s-converter.js.map +0 -1
  205. package/dist/esm/i3s-converter/json-templates/layers.js.map +0 -1
  206. package/dist/esm/i3s-converter/json-templates/metadata.js.map +0 -1
  207. package/dist/esm/i3s-converter/json-templates/node.js.map +0 -1
  208. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +0 -1
  209. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +0 -1
  210. package/dist/esm/i3s-converter/json-templates/store.js.map +0 -1
  211. package/dist/esm/i3s-converter/types.js.map +0 -1
  212. package/dist/esm/i3s-server/app.js.map +0 -1
  213. package/dist/esm/i3s-server/bin/www +0 -102
  214. package/dist/esm/i3s-server/certs/cert.pem +0 -19
  215. package/dist/esm/i3s-server/certs/key.pem +0 -27
  216. package/dist/esm/i3s-server/controllers/index-controller.js.map +0 -1
  217. package/dist/esm/i3s-server/routes/index.js.map +0 -1
  218. package/dist/esm/index.js.map +0 -1
  219. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  220. package/dist/esm/lib/utils/compress-util.js.map +0 -1
  221. package/dist/esm/lib/utils/file-utils.d.ts +0 -43
  222. package/dist/esm/lib/utils/file-utils.js.map +0 -1
  223. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  224. package/dist/esm/lib/utils/lod-conversion-utils.js.map +0 -1
  225. package/dist/esm/lib/utils/statistic-utills.d.ts +0 -25
  226. package/dist/esm/lib/utils/statistic-utills.js.map +0 -1
  227. package/dist/esm/pgm-loader.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/tile-converter",
3
- "version": "3.1.3",
3
+ "version": "4.0.0-alpha.5",
4
4
  "description": "Converter",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -16,8 +16,8 @@
16
16
  "i3s"
17
17
  ],
18
18
  "types": "dist/index.d.ts",
19
- "main": "dist/es5/index.js",
20
- "module": "dist/esm/index.js",
19
+ "main": "dist/index.js",
20
+ "module": "dist/index.js",
21
21
  "sideEffects": false,
22
22
  "bin": {
23
23
  "tile-converter": "./bin/converter.js",
@@ -33,25 +33,24 @@
33
33
  "fs": false
34
34
  },
35
35
  "scripts": {
36
- "pre-build": "npm run build-bundle",
37
- "post-build": "npm run build-converter-bundle",
36
+ "pre-build": "npm run build-bundle && npm run build-converter-bundle",
38
37
  "build-bundle": "esbuild ./src/index.ts --bundle --outfile=dist/dist.min.js --platform=node",
39
38
  "build-converter-bundle": "webpack --display errors-only --config ./converter-webpack/bundle.js",
40
39
  "build-bin": "BABEL_ENV=es5 babel scripts --config-file ../../babel.config.js --out-dir dist/scripts"
41
40
  },
42
41
  "dependencies": {
43
- "@loaders.gl/3d-tiles": "3.1.3",
44
- "@loaders.gl/crypto": "3.1.3",
45
- "@loaders.gl/draco": "3.1.3",
46
- "@loaders.gl/gltf": "3.1.3",
47
- "@loaders.gl/i3s": "3.1.3",
48
- "@loaders.gl/images": "3.1.3",
49
- "@loaders.gl/loader-utils": "3.1.3",
50
- "@loaders.gl/polyfills": "3.1.3",
51
- "@loaders.gl/textures": "3.1.3",
52
- "@loaders.gl/tiles": "3.1.3",
53
- "@loaders.gl/worker-utils": "3.1.3",
54
- "@loaders.gl/zip": "3.1.3",
42
+ "@loaders.gl/3d-tiles": "4.0.0-alpha.5",
43
+ "@loaders.gl/crypto": "4.0.0-alpha.5",
44
+ "@loaders.gl/draco": "4.0.0-alpha.5",
45
+ "@loaders.gl/gltf": "4.0.0-alpha.5",
46
+ "@loaders.gl/i3s": "4.0.0-alpha.5",
47
+ "@loaders.gl/images": "4.0.0-alpha.5",
48
+ "@loaders.gl/loader-utils": "4.0.0-alpha.5",
49
+ "@loaders.gl/polyfills": "4.0.0-alpha.5",
50
+ "@loaders.gl/textures": "4.0.0-alpha.5",
51
+ "@loaders.gl/tiles": "4.0.0-alpha.5",
52
+ "@loaders.gl/worker-utils": "4.0.0-alpha.5",
53
+ "@loaders.gl/zip": "4.0.0-alpha.5",
55
54
  "@luma.gl/engine": "^8.5.4",
56
55
  "@math.gl/core": "^3.5.1",
57
56
  "@math.gl/culling": "^3.5.1",
@@ -69,7 +68,7 @@
69
68
  "uuid": "^8.1.0"
70
69
  },
71
70
  "peerDependencies": {
72
- "@loaders.gl/core": "3.1.0"
71
+ "@loaders.gl/core": "4.0.0-alpha.4"
73
72
  },
74
- "gitHead": "4a690c369779346d73c9a27395d1c08d77d279a4"
73
+ "gitHead": "7a71a54bdf1ddf985cc3af3db90b82e7fa97d025"
75
74
  }
@@ -67,8 +67,11 @@ export default class Tiles3DConverter {
67
67
  console.log('Loading egm file completed!'); // eslint-disable-line
68
68
 
69
69
  const sourceTilesetJson = await load(inputUrl, I3SLoader, {});
70
+
70
71
  this.sourceTileset = new Tileset3D(sourceTilesetJson, {
71
- loadOptions: {i3s: {coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS}}
72
+ loadOptions: {
73
+ i3s: {coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false}
74
+ }
72
75
  });
73
76
 
74
77
  const rootNode = this.sourceTileset.root!;
@@ -1,7 +1,6 @@
1
- import {encode, encodeSync} from '@loaders.gl/core';
1
+ import {encodeSync} from '@loaders.gl/core';
2
2
  import {GLTFScenegraph, GLTFWriter} from '@loaders.gl/gltf';
3
3
  import {Tile3DWriter} from '@loaders.gl/3d-tiles';
4
- import {ImageWriter} from '@loaders.gl/images';
5
4
  import {Matrix4, Vector3} from '@math.gl/core';
6
5
  import {Ellipsoid} from '@math.gl/geospatial';
7
6
  import {convertTextureAtlas} from './texture-atlas';
@@ -81,7 +80,8 @@ export default class B3dmConverter {
81
80
  const meshIndex = gltfBuilder.addMesh({
82
81
  attributes,
83
82
  indices,
84
- material: materialIndex
83
+ material: materialIndex,
84
+ mode: 4
85
85
  });
86
86
  const transformMatrix = this._generateTransformMatrix(cartesianOrigin);
87
87
  const nodeIndex = gltfBuilder.addNode({meshIndex, matrix: transformMatrix});
@@ -116,8 +116,7 @@ export default class B3dmConverter {
116
116
  }
117
117
  if (selectedTexture) {
118
118
  const mimeType = this._deduceMimeTypeFromFormat(textureFormat);
119
- const imageBuffer = await encode(selectedTexture, ImageWriter);
120
- const imageIndex = gltfBuilder.addImage(imageBuffer, mimeType);
119
+ const imageIndex = gltfBuilder.addImage(selectedTexture, mimeType);
121
120
  textureIndex = gltfBuilder.addTexture({imageIndex});
122
121
  delete attributes.colors;
123
122
  }
@@ -210,6 +209,8 @@ export default class B3dmConverter {
210
209
  return 'image/jpeg';
211
210
  case 'png':
212
211
  return 'image/png';
212
+ case 'ktx2':
213
+ return 'image/ktx2';
213
214
  default:
214
215
  console.warn(`Unexpected texture format in I3S: ${format}`); // eslint-disable-line no-console, no-undef
215
216
  return 'image/jpeg';
@@ -243,6 +243,36 @@ function convertNodes(
243
243
  }
244
244
  }
245
245
 
246
+ /**
247
+ * Generate transformation matrix for node
248
+ * Aapply all gltf transformations to initial transformation matrix.
249
+ * @param node
250
+ * @param matrix
251
+ */
252
+ function getCompositeTransformationMatrix(node, matrix) {
253
+ let transformationMatrix = matrix;
254
+
255
+ const {matrix: nodeMatrix, rotation, scale, translation} = node;
256
+
257
+ if (nodeMatrix) {
258
+ transformationMatrix = matrix.multiplyRight(nodeMatrix);
259
+ }
260
+
261
+ if (rotation) {
262
+ transformationMatrix = transformationMatrix.rotateXYZ(rotation);
263
+ }
264
+
265
+ if (scale) {
266
+ transformationMatrix = transformationMatrix.scale(scale);
267
+ }
268
+
269
+ if (translation) {
270
+ transformationMatrix = transformationMatrix.translate(translation);
271
+ }
272
+
273
+ return transformationMatrix;
274
+ }
275
+
246
276
  /**
247
277
  * Convert all primitives of node and all children nodes
248
278
  * @param {Object} node - gltf node
@@ -259,15 +289,20 @@ function convertNode(
259
289
  useCartesianPositions,
260
290
  matrix = new Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
261
291
  ) {
262
- const nodeMatrix = node.matrix;
263
- const compositeMatrix = nodeMatrix ? matrix.multiplyRight(nodeMatrix) : matrix;
292
+ const transformationMatrix = getCompositeTransformationMatrix(node, matrix);
264
293
 
265
294
  const mesh = node.mesh;
266
295
  if (mesh) {
267
- convertMesh(mesh, tileContent, attributesMap, useCartesianPositions, compositeMatrix);
296
+ convertMesh(mesh, tileContent, attributesMap, useCartesianPositions, transformationMatrix);
268
297
  }
269
298
 
270
- convertNodes(node.children, tileContent, attributesMap, useCartesianPositions, compositeMatrix);
299
+ convertNodes(
300
+ node.children,
301
+ tileContent,
302
+ attributesMap,
303
+ useCartesianPositions,
304
+ transformationMatrix
305
+ );
271
306
  }
272
307
 
273
308
  /**
@@ -1,507 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _path = require("path");
23
-
24
- var _process = _interopRequireDefault(require("process"));
25
-
26
- var _jsonMapTransform = _interopRequireDefault(require("json-map-transform"));
27
-
28
- var _core = require("@loaders.gl/core");
29
-
30
- var _i3s = require("@loaders.gl/i3s");
31
-
32
- var _tiles = require("@loaders.gl/tiles");
33
-
34
- var _pgmLoader = require("../pgm-loader");
35
-
36
- var _i3sObbTo3dTilesObb = require("./helpers/i3s-obb-to-3d-tiles-obb");
37
-
38
- var _lodConversionUtils = require("../lib/utils/lod-conversion-utils");
39
-
40
- var _fileUtils = require("../lib/utils/file-utils");
41
-
42
- var _statisticUtills = require("../lib/utils/statistic-utills");
43
-
44
- var _tileset = require("./json-templates/tileset");
45
-
46
- var _b3dmConverter = _interopRequireDefault(require("./helpers/b3dm-converter"));
47
-
48
- var _coordinateConverter = require("../i3s-converter/helpers/coordinate-converter");
49
-
50
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
51
-
52
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
53
-
54
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
55
-
56
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
57
-
58
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
59
-
60
- var I3S = 'I3S';
61
-
62
- var Tiles3DConverter = function () {
63
- function Tiles3DConverter() {
64
- (0, _classCallCheck2.default)(this, Tiles3DConverter);
65
- (0, _defineProperty2.default)(this, "options", void 0);
66
- (0, _defineProperty2.default)(this, "tilesetPath", void 0);
67
- (0, _defineProperty2.default)(this, "vertexCounter", void 0);
68
- (0, _defineProperty2.default)(this, "conversionStartTime", void 0);
69
- (0, _defineProperty2.default)(this, "geoidHeightModel", void 0);
70
- (0, _defineProperty2.default)(this, "sourceTileset", void 0);
71
- (0, _defineProperty2.default)(this, "attributeStorageInfo", void 0);
72
- this.options = {};
73
- this.tilesetPath = '';
74
- this.vertexCounter = 0;
75
- this.conversionStartTime = [0, 0];
76
- this.geoidHeightModel = null;
77
- this.sourceTileset = null;
78
- this.attributeStorageInfo = null;
79
- }
80
-
81
- (0, _createClass2.default)(Tiles3DConverter, [{
82
- key: "convert",
83
- value: function () {
84
- var _convert = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
85
- var inputUrl, outputPath, tilesetName, maxDepth, egmFilePath, sourceTilesetJson, rootNode, rootTile, tileset;
86
- return _regenerator.default.wrap(function _callee$(_context) {
87
- while (1) {
88
- switch (_context.prev = _context.next) {
89
- case 0:
90
- inputUrl = options.inputUrl, outputPath = options.outputPath, tilesetName = options.tilesetName, maxDepth = options.maxDepth, egmFilePath = options.egmFilePath;
91
- this.conversionStartTime = _process.default.hrtime();
92
- this.options = {
93
- maxDepth: maxDepth
94
- };
95
- console.log('Loading egm file...');
96
- _context.next = 6;
97
- return (0, _core.load)(egmFilePath, _pgmLoader.PGMLoader);
98
-
99
- case 6:
100
- this.geoidHeightModel = _context.sent;
101
- console.log('Loading egm file completed!');
102
- _context.next = 10;
103
- return (0, _core.load)(inputUrl, _i3s.I3SLoader, {});
104
-
105
- case 10:
106
- sourceTilesetJson = _context.sent;
107
- this.sourceTileset = new _tiles.Tileset3D(sourceTilesetJson, {
108
- loadOptions: {
109
- i3s: {
110
- coordinateSystem: _i3s.COORDINATE_SYSTEM.LNGLAT_OFFSETS
111
- }
112
- }
113
- });
114
- rootNode = this.sourceTileset.root;
115
-
116
- if (!rootNode.header.obb) {
117
- rootNode.header.obb = (0, _coordinateConverter.createObbFromMbs)(rootNode.header.mbs);
118
- }
119
-
120
- this.tilesetPath = (0, _path.join)("".concat(outputPath), "".concat(tilesetName));
121
- this.attributeStorageInfo = sourceTilesetJson.attributeStorageInfo;
122
- _context.prev = 16;
123
- _context.next = 19;
124
- return (0, _fileUtils.removeDir)(this.tilesetPath);
125
-
126
- case 19:
127
- _context.next = 23;
128
- break;
129
-
130
- case 21:
131
- _context.prev = 21;
132
- _context.t0 = _context["catch"](16);
133
-
134
- case 23:
135
- rootTile = {
136
- boundingVolume: {
137
- box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(rootNode.header.obb, this.geoidHeightModel)
138
- },
139
- geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(rootNode),
140
- children: []
141
- };
142
- _context.next = 26;
143
- return this._addChildren(rootNode, rootTile, 1);
144
-
145
- case 26:
146
- tileset = (0, _jsonMapTransform.default)({
147
- root: rootTile
148
- }, (0, _tileset.TILESET)());
149
- _context.next = 29;
150
- return (0, _fileUtils.writeFile)(this.tilesetPath, JSON.stringify(tileset), 'tileset.json');
151
-
152
- case 29:
153
- this._finishConversion({
154
- slpk: false,
155
- outputPath: outputPath,
156
- tilesetName: tilesetName
157
- });
158
-
159
- case 30:
160
- case "end":
161
- return _context.stop();
162
- }
163
- }
164
- }, _callee, this, [[16, 21]]);
165
- }));
166
-
167
- function convert(_x) {
168
- return _convert.apply(this, arguments);
169
- }
170
-
171
- return convert;
172
- }()
173
- }, {
174
- key: "_addChildren",
175
- value: function () {
176
- var _addChildren2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(parentSourceNode, parentNode, level) {
177
- var _iterator, _step, childNodeInfo, sourceChild, attributes, boundingVolume, child, b3dm;
178
-
179
- return _regenerator.default.wrap(function _callee2$(_context2) {
180
- while (1) {
181
- switch (_context2.prev = _context2.next) {
182
- case 0:
183
- if (!(this.options.maxDepth && level > this.options.maxDepth)) {
184
- _context2.next = 2;
185
- break;
186
- }
187
-
188
- return _context2.abrupt("return");
189
-
190
- case 2:
191
- _iterator = _createForOfIteratorHelper(parentSourceNode.header.children || []);
192
- _context2.prev = 3;
193
-
194
- _iterator.s();
195
-
196
- case 5:
197
- if ((_step = _iterator.n()).done) {
198
- _context2.next = 39;
199
- break;
200
- }
201
-
202
- childNodeInfo = _step.value;
203
- _context2.next = 9;
204
- return this._loadChildNode(parentSourceNode, childNodeInfo);
205
-
206
- case 9:
207
- sourceChild = _context2.sent;
208
- parentSourceNode.children.push(sourceChild);
209
-
210
- if (!sourceChild.contentUrl) {
211
- _context2.next = 35;
212
- break;
213
- }
214
-
215
- _context2.next = 14;
216
- return this.sourceTileset._loadTile(sourceChild);
217
-
218
- case 14:
219
- this.vertexCounter += sourceChild.content.vertexCount;
220
- attributes = null;
221
-
222
- if (!this.attributeStorageInfo) {
223
- _context2.next = 20;
224
- break;
225
- }
226
-
227
- _context2.next = 19;
228
- return this._loadChildAttributes(sourceChild, this.attributeStorageInfo);
229
-
230
- case 19:
231
- attributes = _context2.sent;
232
-
233
- case 20:
234
- if (!sourceChild.header.obb) {
235
- sourceChild.header.obb = (0, _coordinateConverter.createObbFromMbs)(sourceChild.header.mbs);
236
- }
237
-
238
- boundingVolume = {
239
- box: (0, _i3sObbTo3dTilesObb.i3sObbTo3dTilesObb)(sourceChild.header.obb, this.geoidHeightModel)
240
- };
241
- child = {
242
- boundingVolume: boundingVolume,
243
- geometricError: (0, _lodConversionUtils.convertScreenThresholdToGeometricError)(sourceChild),
244
- children: []
245
- };
246
- _context2.next = 25;
247
- return new _b3dmConverter.default().convert(sourceChild, attributes);
248
-
249
- case 25:
250
- b3dm = _context2.sent;
251
- child.content = {
252
- uri: "".concat(sourceChild.id, ".b3dm"),
253
- boundingVolume: boundingVolume
254
- };
255
- _context2.next = 29;
256
- return (0, _fileUtils.writeFile)(this.tilesetPath, new Uint8Array(b3dm), "".concat(sourceChild.id, ".b3dm"));
257
-
258
- case 29:
259
- parentNode.children.push(child);
260
- sourceChild.unloadContent();
261
- _context2.next = 33;
262
- return this._addChildren(sourceChild, child, level + 1);
263
-
264
- case 33:
265
- _context2.next = 37;
266
- break;
267
-
268
- case 35:
269
- _context2.next = 37;
270
- return this._addChildren(sourceChild, parentNode, level + 1);
271
-
272
- case 37:
273
- _context2.next = 5;
274
- break;
275
-
276
- case 39:
277
- _context2.next = 44;
278
- break;
279
-
280
- case 41:
281
- _context2.prev = 41;
282
- _context2.t0 = _context2["catch"](3);
283
-
284
- _iterator.e(_context2.t0);
285
-
286
- case 44:
287
- _context2.prev = 44;
288
-
289
- _iterator.f();
290
-
291
- return _context2.finish(44);
292
-
293
- case 47:
294
- case "end":
295
- return _context2.stop();
296
- }
297
- }
298
- }, _callee2, this, [[3, 41, 44, 47]]);
299
- }));
300
-
301
- function _addChildren(_x2, _x3, _x4) {
302
- return _addChildren2.apply(this, arguments);
303
- }
304
-
305
- return _addChildren;
306
- }()
307
- }, {
308
- key: "_loadChildNode",
309
- value: function () {
310
- var _loadChildNode2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(parentNode, childNodeInfo) {
311
- var header, _ref, loader, nodeUrl, options;
312
-
313
- return _regenerator.default.wrap(function _callee3$(_context3) {
314
- while (1) {
315
- switch (_context3.prev = _context3.next) {
316
- case 0:
317
- if (!this.sourceTileset.tileset.nodePages) {
318
- _context3.next = 7;
319
- break;
320
- }
321
-
322
- console.log("Node conversion: ".concat(childNodeInfo.id));
323
- _context3.next = 4;
324
- return this.sourceTileset.tileset.nodePagesTile.formTileFromNodePages(childNodeInfo.id);
325
-
326
- case 4:
327
- header = _context3.sent;
328
- _context3.next = 14;
329
- break;
330
-
331
- case 7:
332
- _ref = this.sourceTileset, loader = _ref.loader;
333
- nodeUrl = this._relativeUrlToFullUrl(parentNode.url, childNodeInfo.href);
334
- options = {
335
- i3s: _objectSpread(_objectSpread({}, this.sourceTileset.loadOptions), {}, {
336
- isTileHeader: true,
337
- loadContent: false
338
- })
339
- };
340
- console.log("Node conversion: ".concat(nodeUrl));
341
- _context3.next = 13;
342
- return (0, _core.load)(nodeUrl, loader, options);
343
-
344
- case 13:
345
- header = _context3.sent;
346
-
347
- case 14:
348
- return _context3.abrupt("return", new _tiles.Tile3D(this.sourceTileset, header, parentNode));
349
-
350
- case 15:
351
- case "end":
352
- return _context3.stop();
353
- }
354
- }
355
- }, _callee3, this);
356
- }));
357
-
358
- function _loadChildNode(_x5, _x6) {
359
- return _loadChildNode2.apply(this, arguments);
360
- }
361
-
362
- return _loadChildNode;
363
- }()
364
- }, {
365
- key: "_relativeUrlToFullUrl",
366
- value: function _relativeUrlToFullUrl(baseUrl, relativeUrl) {
367
- var resultArray = baseUrl.split('/');
368
- var relativeUrlArray = relativeUrl.split('/');
369
-
370
- var _iterator2 = _createForOfIteratorHelper(relativeUrlArray),
371
- _step2;
372
-
373
- try {
374
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
375
- var folder = _step2.value;
376
-
377
- switch (folder) {
378
- case '.':
379
- continue;
380
-
381
- case '..':
382
- resultArray = resultArray.slice(0, -1);
383
- break;
384
-
385
- default:
386
- resultArray.push(folder);
387
- }
388
- }
389
- } catch (err) {
390
- _iterator2.e(err);
391
- } finally {
392
- _iterator2.f();
393
- }
394
-
395
- return resultArray.join('/');
396
- }
397
- }, {
398
- key: "_loadChildAttributes",
399
- value: function () {
400
- var _loadChildAttributes2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(sourceChild, attributeStorageInfo) {
401
- var promises, attributeUrls, index, inputUrl, attribute, options, attributesList;
402
- return _regenerator.default.wrap(function _callee4$(_context4) {
403
- while (1) {
404
- switch (_context4.prev = _context4.next) {
405
- case 0:
406
- promises = [];
407
- attributeUrls = sourceChild.header.attributeUrls;
408
-
409
- for (index = 0; index < attributeUrls.length; index++) {
410
- inputUrl = attributeUrls[index];
411
- attribute = attributeStorageInfo[index];
412
- options = {
413
- attributeName: attribute.name,
414
- attributeType: this._getAttributeType(attribute)
415
- };
416
- promises.push((0, _core.load)(inputUrl, _i3s.I3SAttributeLoader, options));
417
- }
418
-
419
- _context4.next = 5;
420
- return Promise.all(promises);
421
-
422
- case 5:
423
- attributesList = _context4.sent;
424
-
425
- this._replaceNestedArrays(attributesList);
426
-
427
- return _context4.abrupt("return", Object.assign.apply(Object, [{}].concat((0, _toConsumableArray2.default)(attributesList))));
428
-
429
- case 8:
430
- case "end":
431
- return _context4.stop();
432
- }
433
- }
434
- }, _callee4, this);
435
- }));
436
-
437
- function _loadChildAttributes(_x7, _x8) {
438
- return _loadChildAttributes2.apply(this, arguments);
439
- }
440
-
441
- return _loadChildAttributes;
442
- }()
443
- }, {
444
- key: "_getAttributeType",
445
- value: function _getAttributeType(attribute) {
446
- if (attribute.attributeValues) {
447
- return attribute.attributeValues.valueType;
448
- } else if (attribute.objectIds) {
449
- return 'Oid32';
450
- }
451
-
452
- return '';
453
- }
454
- }, {
455
- key: "_replaceNestedArrays",
456
- value: function _replaceNestedArrays(attributesList) {
457
- for (var index = 0; index < attributesList.length; index++) {
458
- var attributeObject = attributesList[index];
459
-
460
- for (var key in attributeObject) {
461
- attributeObject[key] = Array.from(attributeObject[key]);
462
- }
463
- }
464
- }
465
- }, {
466
- key: "_finishConversion",
467
- value: function () {
468
- var _finishConversion2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(params) {
469
- var filesSize, diff, conversionTime;
470
- return _regenerator.default.wrap(function _callee5$(_context5) {
471
- while (1) {
472
- switch (_context5.prev = _context5.next) {
473
- case 0:
474
- _context5.next = 2;
475
- return (0, _statisticUtills.calculateFilesSize)(params);
476
-
477
- case 2:
478
- filesSize = _context5.sent;
479
- diff = _process.default.hrtime(this.conversionStartTime);
480
- conversionTime = (0, _statisticUtills.timeConverter)(diff);
481
- console.log("------------------------------------------------");
482
- console.log("Finish conversion of ".concat(I3S));
483
- console.log("Total conversion time: ".concat(conversionTime));
484
- console.log("Vertex count: ", this.vertexCounter);
485
- console.log("File(s) size: ", filesSize, ' bytes');
486
- console.log("------------------------------------------------");
487
-
488
- case 11:
489
- case "end":
490
- return _context5.stop();
491
- }
492
- }
493
- }, _callee5, this);
494
- }));
495
-
496
- function _finishConversion(_x9) {
497
- return _finishConversion2.apply(this, arguments);
498
- }
499
-
500
- return _finishConversion;
501
- }()
502
- }]);
503
- return Tiles3DConverter;
504
- }();
505
-
506
- exports.default = Tiles3DConverter;
507
- //# sourceMappingURL=3d-tiles-converter.js.map