@loaders.gl/tile-converter 3.1.8 → 3.2.0-alpha.3

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 (238) hide show
  1. package/dist/3d-tiles-attributes-worker.d.ts +28 -0
  2. package/dist/3d-tiles-attributes-worker.d.ts.map +1 -0
  3. package/dist/3d-tiles-attributes-worker.js +4 -0
  4. package/dist/3d-tiles-attributes-worker.js.map +7 -0
  5. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +82 -0
  6. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
  7. package/dist/3d-tiles-converter/3d-tiles-converter.js +268 -0
  8. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +84 -0
  9. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
  10. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +278 -0
  11. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +13 -0
  12. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
  13. package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +23 -0
  14. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
  15. package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
  16. package/dist/3d-tiles-converter/helpers/texture-atlas.js +52 -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/3d-tiles-converter/json-templates/tileset.js +43 -0
  20. package/dist/bundle.d.ts +2 -0
  21. package/dist/bundle.d.ts.map +1 -0
  22. package/dist/bundle.js +5 -0
  23. package/dist/converter-cli.d.ts +2 -0
  24. package/dist/converter-cli.d.ts.map +1 -0
  25. package/dist/converter-cli.js +232 -0
  26. package/dist/converter.min.js +68 -68
  27. package/dist/deps-installer/deps-installer.d.ts +14 -0
  28. package/dist/deps-installer/deps-installer.d.ts.map +1 -0
  29. package/dist/deps-installer/deps-installer.js +31 -0
  30. package/dist/dist.min.js +1151 -1264
  31. package/dist/es5/3d-tiles-attributes-worker.js +29 -0
  32. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -0
  33. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +104 -44
  34. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  35. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +34 -43
  36. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  37. package/dist/es5/converter-cli.js +306 -0
  38. package/dist/es5/converter-cli.js.map +1 -0
  39. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  40. package/dist/es5/i3s-attributes-worker.js +29 -0
  41. package/dist/es5/i3s-attributes-worker.js.map +1 -0
  42. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +19 -11
  43. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  44. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +2 -2
  45. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  46. package/dist/es5/i3s-converter/helpers/geometry-converter.js +271 -182
  47. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  48. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +71 -0
  49. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  50. package/dist/es5/i3s-converter/helpers/node-pages.js +47 -99
  51. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  52. package/dist/es5/i3s-converter/i3s-converter.js +311 -245
  53. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  54. package/dist/es5/index.js +0 -16
  55. package/dist/es5/index.js.map +1 -1
  56. package/dist/es5/lib/utils/compress-util.js +14 -17
  57. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  58. package/dist/es5/lib/utils/file-utils.js +39 -14
  59. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  60. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  61. package/dist/es5/lib/utils/queue.js +61 -0
  62. package/dist/es5/lib/utils/queue.js.map +1 -0
  63. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  64. package/dist/es5/lib/utils/write-queue.js +225 -0
  65. package/dist/es5/lib/utils/write-queue.js.map +1 -0
  66. package/dist/es5/pgm-loader.js +1 -1
  67. package/dist/es5/pgm-loader.js.map +1 -1
  68. package/dist/es5/workers/3d-tiles-attributes-worker.js +37 -0
  69. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -0
  70. package/dist/es5/workers/i3s-attributes-worker.js +40 -0
  71. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -0
  72. package/dist/esm/3d-tiles-attributes-worker.js +16 -0
  73. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -0
  74. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +32 -5
  75. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  76. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +23 -23
  77. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  78. package/dist/esm/converter-cli.js +230 -0
  79. package/dist/esm/converter-cli.js.map +1 -0
  80. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  81. package/dist/esm/i3s-attributes-worker.js +16 -0
  82. package/dist/esm/i3s-attributes-worker.js.map +1 -0
  83. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +19 -11
  84. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  85. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +2 -2
  86. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  87. package/dist/esm/i3s-converter/helpers/geometry-converter.js +121 -62
  88. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  89. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +54 -0
  90. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -0
  91. package/dist/esm/i3s-converter/helpers/node-pages.js +12 -4
  92. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  93. package/dist/esm/i3s-converter/i3s-converter.js +155 -50
  94. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  95. package/dist/esm/index.js +0 -2
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/lib/utils/compress-util.js +6 -8
  98. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  99. package/dist/esm/lib/utils/file-utils.js +11 -1
  100. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  101. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  102. package/dist/esm/lib/utils/queue.js +19 -0
  103. package/dist/esm/lib/utils/queue.js.map +1 -0
  104. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  105. package/dist/esm/lib/utils/write-queue.js +88 -0
  106. package/dist/esm/lib/utils/write-queue.js.map +1 -0
  107. package/dist/esm/pgm-loader.js +1 -1
  108. package/dist/esm/pgm-loader.js.map +1 -1
  109. package/dist/esm/workers/3d-tiles-attributes-worker.js +5 -0
  110. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -0
  111. package/dist/esm/workers/i3s-attributes-worker.js +4 -0
  112. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -0
  113. package/dist/i3s-attributes-worker.d.ts +33 -0
  114. package/dist/i3s-attributes-worker.d.ts.map +1 -0
  115. package/dist/i3s-attributes-worker.js +10 -0
  116. package/dist/i3s-attributes-worker.js.map +7 -0
  117. package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
  118. package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
  119. package/dist/i3s-converter/helpers/coordinate-converter.js +122 -0
  120. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
  121. package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
  122. package/dist/i3s-converter/helpers/create-scene-server-path.js +28 -0
  123. package/dist/i3s-converter/helpers/geometry-attributes.d.ts +8 -0
  124. package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
  125. package/dist/i3s-converter/helpers/geometry-attributes.js +177 -0
  126. package/dist/i3s-converter/helpers/geometry-converter.d.ts +29 -0
  127. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
  128. package/dist/i3s-converter/helpers/geometry-converter.js +901 -0
  129. package/dist/i3s-converter/helpers/gltf-attributes.d.ts +9 -0
  130. package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -0
  131. package/dist/i3s-converter/helpers/gltf-attributes.js +56 -0
  132. package/dist/i3s-converter/helpers/node-debug.d.ts +8 -0
  133. package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
  134. package/dist/i3s-converter/helpers/node-debug.js +114 -0
  135. package/dist/i3s-converter/helpers/node-pages.d.ts +117 -0
  136. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
  137. package/dist/i3s-converter/helpers/node-pages.js +208 -0
  138. package/dist/i3s-converter/i3s-converter.d.ts +323 -0
  139. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
  140. package/dist/i3s-converter/i3s-converter.js +1074 -0
  141. package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
  142. package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
  143. package/dist/i3s-converter/json-templates/layers.js +199 -0
  144. package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
  145. package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
  146. package/dist/i3s-converter/json-templates/metadata.js +25 -0
  147. package/dist/i3s-converter/json-templates/node.d.ts +61 -0
  148. package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
  149. package/dist/i3s-converter/json-templates/node.js +89 -0
  150. package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
  151. package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
  152. package/dist/i3s-converter/json-templates/scene-server.js +31 -0
  153. package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
  154. package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
  155. package/dist/i3s-converter/json-templates/shared-resources.js +129 -0
  156. package/dist/i3s-converter/json-templates/store.d.ts +95 -0
  157. package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
  158. package/dist/i3s-converter/json-templates/store.js +103 -0
  159. package/dist/i3s-converter/types.d.ts +114 -0
  160. package/dist/i3s-converter/types.d.ts.map +1 -0
  161. package/dist/i3s-converter/types.js +2 -0
  162. package/dist/i3s-server/app.d.ts +3 -0
  163. package/dist/i3s-server/app.d.ts.map +1 -0
  164. package/dist/i3s-server/app.js +14 -0
  165. package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
  166. package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
  167. package/dist/i3s-server/controllers/index-controller.js +23 -0
  168. package/dist/i3s-server/routes/index.d.ts +3 -0
  169. package/dist/i3s-server/routes/index.d.ts.map +1 -0
  170. package/dist/i3s-server/routes/index.js +16 -0
  171. package/dist/index.d.ts +3 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +10 -0
  174. package/dist/lib/utils/compress-util.d.ts +45 -0
  175. package/dist/lib/utils/compress-util.d.ts.map +1 -0
  176. package/dist/lib/utils/compress-util.js +257 -0
  177. package/dist/{esm/lib → lib}/utils/file-utils.d.ts +6 -14
  178. package/dist/lib/utils/file-utils.d.ts.map +1 -0
  179. package/dist/lib/utils/file-utils.js +81 -0
  180. package/dist/lib/utils/lod-conversion-utils.d.ts +41 -0
  181. package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
  182. package/dist/lib/utils/lod-conversion-utils.js +76 -0
  183. package/dist/lib/utils/queue.d.ts +7 -0
  184. package/dist/lib/utils/queue.d.ts.map +1 -0
  185. package/dist/lib/utils/queue.js +18 -0
  186. package/dist/lib/utils/statistic-utills.d.ts +3 -0
  187. package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
  188. package/dist/lib/utils/statistic-utills.js +64 -0
  189. package/dist/lib/utils/write-queue.d.ts +22 -0
  190. package/dist/lib/utils/write-queue.d.ts.map +1 -0
  191. package/dist/lib/utils/write-queue.js +62 -0
  192. package/dist/pgm-loader.d.ts +6 -0
  193. package/dist/pgm-loader.d.ts.map +1 -0
  194. package/dist/pgm-loader.js +23 -0
  195. package/dist/workers/3d-tiles-attributes-worker.d.ts +2 -0
  196. package/dist/workers/3d-tiles-attributes-worker.d.ts.map +1 -0
  197. package/dist/workers/3d-tiles-attributes-worker.js +9 -0
  198. package/dist/workers/i3s-attributes-worker.d.ts +2 -0
  199. package/dist/workers/i3s-attributes-worker.d.ts.map +1 -0
  200. package/dist/workers/i3s-attributes-worker.js +5 -0
  201. package/package.json +19 -18
  202. package/src/3d-tiles-attributes-worker.ts +43 -0
  203. package/src/3d-tiles-converter/3d-tiles-converter.ts +49 -6
  204. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +21 -18
  205. package/src/converter-cli.ts +310 -0
  206. package/src/deps-installer/{deps-installer.js → deps-installer.ts} +11 -1
  207. package/src/i3s-attributes-worker.ts +46 -0
  208. package/src/i3s-converter/helpers/coordinate-converter.ts +29 -24
  209. package/src/i3s-converter/helpers/geometry-attributes.ts +4 -3
  210. package/src/i3s-converter/helpers/{geometry-converter.js → geometry-converter.ts} +425 -179
  211. package/src/i3s-converter/helpers/gltf-attributes.ts +68 -0
  212. package/src/i3s-converter/helpers/node-pages.ts +25 -17
  213. package/src/i3s-converter/i3s-converter.ts +154 -87
  214. package/src/i3s-converter/types.ts +90 -8
  215. package/src/index.ts +0 -4
  216. package/src/lib/utils/{compress-util.js → compress-util.ts} +105 -18
  217. package/src/lib/utils/file-utils.ts +84 -0
  218. package/src/lib/utils/{lod-conversion-utils.js → lod-conversion-utils.ts} +27 -5
  219. package/src/lib/utils/queue.ts +17 -0
  220. package/src/lib/utils/{statistic-utills.js → statistic-utills.ts} +0 -0
  221. package/src/lib/utils/write-queue.ts +75 -0
  222. package/src/workers/3d-tiles-attributes-worker.ts +6 -0
  223. package/src/workers/i3s-attributes-worker.ts +6 -0
  224. package/dist/es5/deps-installer/deps-installer.d.ts +0 -10
  225. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  226. package/dist/es5/lib/utils/compress-util.d.ts +0 -53
  227. package/dist/es5/lib/utils/file-utils.d.ts +0 -43
  228. package/dist/es5/lib/utils/lod-conversion-utils.d.ts +0 -32
  229. package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
  230. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  231. package/dist/esm/lib/utils/compress-util.d.ts +0 -53
  232. package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
  233. package/src/deps-installer/deps-installer.d.ts +0 -10
  234. package/src/i3s-converter/helpers/geometry-converter.d.ts +0 -44
  235. package/src/lib/utils/compress-util.d.ts +0 -53
  236. package/src/lib/utils/file-utils.d.ts +0 -43
  237. package/src/lib/utils/file-utils.js +0 -38
  238. package/src/lib/utils/lod-conversion-utils.d.ts +0 -32
@@ -0,0 +1,323 @@
1
+ import type { WriteQueueItem } from '../lib/utils/write-queue';
2
+ import type { SceneLayer3D } from '@loaders.gl/i3s';
3
+ import { Tileset3D } from '@loaders.gl/tiles';
4
+ import { Geoid } from '@math.gl/geoid';
5
+ import NodePages from './helpers/node-pages';
6
+ import { LoaderWithParser } from '@loaders.gl/loader-utils';
7
+ import { I3SMaterialDefinition } from '@loaders.gl/i3s/src/types';
8
+ import WriteQueue from '../lib/utils/write-queue';
9
+ /**
10
+ * Converter from 3d-tiles tileset to i3s layer
11
+ */
12
+ export default class I3SConverter {
13
+ nodePages: NodePages;
14
+ options: any;
15
+ layers0Path: string;
16
+ materialMap: Map<any, any>;
17
+ materialDefinitions: I3SMaterialDefinition[];
18
+ vertexCounter: number;
19
+ layers0: SceneLayer3D | null;
20
+ featuresHashArray: string[];
21
+ refinementCounter: {
22
+ tilesCount: number;
23
+ tilesWithAddRefineCount: number;
24
+ };
25
+ validate: boolean;
26
+ boundingVolumeWarnings?: string[];
27
+ conversionStartTime: [number, number];
28
+ refreshTokenTime: [number, number];
29
+ sourceTileset: Tileset3D | null;
30
+ geoidHeightModel: Geoid | null;
31
+ Loader: LoaderWithParser;
32
+ generateTextures: boolean;
33
+ generateBoundingVolumes: boolean;
34
+ layersHasTexture: boolean;
35
+ workerSource: {
36
+ [key: string]: string;
37
+ };
38
+ writeQueue: WriteQueue<WriteQueueItem>;
39
+ constructor();
40
+ /**
41
+ * Convert a 3d tileset
42
+ * @param options
43
+ * @param options.inputUrl the url to read the tileset from
44
+ * @param options.outputPath the output filename
45
+ * @param options.tilesetName the output name of the tileset
46
+ * @param options.maxDepth The max tree depth of conversion
47
+ * @param options.slpk Generate slpk (Scene Layer Packages) output file
48
+ * @param options.sevenZipExe Location of 7z.exe archiver to create slpk on Windows
49
+ * @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format
50
+ * @param options.token Token for Cesium ION tilesets authentication
51
+ * @param options.draco Generate I3S 1.7 draco compressed geometries
52
+ * @param options.validate -enable validation
53
+ */
54
+ convert(options: {
55
+ inputUrl: string;
56
+ outputPath: string;
57
+ tilesetName: string;
58
+ sevenZipExe: string;
59
+ egmFilePath: string;
60
+ maxDepth?: number;
61
+ slpk?: boolean;
62
+ token?: string;
63
+ draco?: boolean;
64
+ validate?: boolean;
65
+ generateTextures?: boolean;
66
+ generateBoundingVolumes?: boolean;
67
+ }): Promise<any>;
68
+ /**
69
+ * Convert and save the layer and embedded tiles
70
+ * @param outputPath - path to save output data
71
+ * @param tilesetName - new tileset path
72
+ */
73
+ private _createAndSaveTileset;
74
+ /**
75
+ * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md
76
+ * @param tilesetName - Name of layer
77
+ */
78
+ private _formLayers0;
79
+ /**
80
+ * Convert and save the layer and embedded tiles
81
+ * @param boundingVolumes - mbs and obb data about node's bounding volume
82
+ * @return 3DNodeIndexDocument data https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
83
+ */
84
+ private _formRootNodeIndexDocument;
85
+ /**
86
+ * Form object of 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md
87
+ * @param root0 - 3DNodeIndexDocument of root node https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
88
+ * @param sourceRootTile - Source (3DTile) tile data
89
+ * @param parentId - node id in node pages
90
+ * @param boundingVolumes - mbs and obb data about node's bounding volume
91
+ */
92
+ private _convertNodesTree;
93
+ /**
94
+ * Write 3DSceneLayer https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md in file
95
+ */
96
+ private _writeLayers0;
97
+ /**
98
+ * Write 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md in file
99
+ */
100
+ private _writeNodeIndexDocument;
101
+ /**
102
+ * Pack files into *.slpk archive
103
+ * @param tilesetPath - Path to save file
104
+ */
105
+ private _createSlpk;
106
+ /**
107
+ * Add child nodes recursively and write them to files
108
+ * @param data - arguments
109
+ * @param data.sourceTiles - array of source child nodes
110
+ * @param data.parentNode - 3DNodeIndexDocument of parent node for processing child nodes
111
+ * @param data.parentId - id of parent node in node pages
112
+ * @param data.level - level of node (distanse to root node in the tree)
113
+ */
114
+ private _addChildrenWithNeighborsAndWriteFile;
115
+ /**
116
+ * Add child nodes recursively and write them to files
117
+ * @param data - arguments
118
+ * @param data.childNodes - array of target child nodes
119
+ * @param data.sourceTiles - array of source child nodes
120
+ * @param data.parentNode - 3DNodeIndexDocument of parent node for processing child nodes
121
+ * @param data.parentId - id of parent node in node pages
122
+ * @param data.level - level of node (distanse to root node in the tree)
123
+ */
124
+ private _addChildren;
125
+ /**
126
+ * Add neightbors to 3DNodeIndexDocument and write it in a file
127
+ * @param parentNode - arguments
128
+ * @param childNodes - array of target child nodes
129
+ */
130
+ private _addNeighborsAndWriteFile;
131
+ /**
132
+ * Convert tile to one or more I3S nodes
133
+ * @param parentTile - parent 3DNodeIndexDocument
134
+ * @param sourceTile - source tile (3DTile)
135
+ * @param parentId - id of parent node in node pages
136
+ * @param level - level of node (distanse to root node in the tree)
137
+ */
138
+ private _createNode;
139
+ /**
140
+ * Convert attributesStorageInfo https://github.com/Esri/i3s-spec/blob/master/docs/1.7/attributeStorageInfo.cmn.md
141
+ * from B3DM batch table
142
+ * @param sourceTileContent - tile content of 3DTile
143
+ * @return {void}
144
+ */
145
+ private _convertAttributeStorageInfo;
146
+ /**
147
+ * Convert tile to one or more I3S nodes
148
+ * @param sourceTile - source tile (3DTile)
149
+ * result.geometry - ArrayBuffer with geometry attributes
150
+ * result.compressedGeometry - ArrayBuffer with compressed (draco) geometry
151
+ * result.texture - texture image
152
+ * result.sharedResources - shared resource data object
153
+ * result.meshMaterial - PBR-like material object
154
+ * result.vertexCount - number of vertices in geometry
155
+ * result.attributes - feature attributes
156
+ * result.featureCount - number of features
157
+ */
158
+ private _convertResources;
159
+ /**
160
+ * Create a new node object (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md)
161
+ * in node pages (https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodePage.cmn.md)
162
+ * @param maxScreenThresholdSQ - Level of Details (LOD) metric
163
+ * @param boundingVolumes - Bounding volumes
164
+ * @param sourceTile - source tile (3DTile)
165
+ * @param parentId - id of parent node in node pages
166
+ * @param resources - the node resources data
167
+ * @param resources.meshMaterial - PBR-like material object
168
+ * @param resources.texture - texture image
169
+ * @param resources.vertexCount - number of vertices in geometry
170
+ * @param resources.featureCount - number of features
171
+ * @return the node object in node pages
172
+ */
173
+ private _createNodeInNodePages;
174
+ /**
175
+ * Create a new node page object in node pages
176
+ * @param parentNode - 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object of the parent node
177
+ * @param boundingVolumes - Bounding volumes
178
+ * @param lodSelection - Level of Details (LOD) metrics
179
+ * @param nodeInPage - corresponding node object in a node page
180
+ * @param resources - the node resources data
181
+ * @param resources.texture - texture image
182
+ * @param resources.attributes - feature attributes
183
+ * @return 3DNodeIndexDocument https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md object
184
+ */
185
+ private _createNodeIndexDocument;
186
+ /**
187
+ * Write node resources in files
188
+ * @param resources - source tile (3DTile)
189
+ * @param resources.geometry - Uint8Array with geometry attributes
190
+ * @param resources.compressedGeometry - Uint8Array with compressed (draco) geometry
191
+ * @param resources.texture - texture image
192
+ * @param resources.sharedResources - shared resource data object
193
+ * @param resources.attributes - feature attributes
194
+ * @return {Promise<void>}
195
+ */
196
+ private _writeResources;
197
+ /**
198
+ * Write non-compressed and compressed geometries in files
199
+ * @param geometryBuffer - Uint8Array with geometry attributes
200
+ * @param compressedGeometry - Uint8Array with compressed (draco) geometry
201
+ * @param childPath - a child path to write resources
202
+ * @param slpkChildPath - resource path inside *slpk file
203
+ */
204
+ private _writeGeometries;
205
+ /**
206
+ * Write shared resources in a file
207
+ * @param sharedResources - shared resource data object
208
+ * @param childPath - a child path to write resources
209
+ * @param slpkChildPath - resource path inside *slpk file
210
+ * @param nodePath - a node path
211
+ */
212
+ private _writeShared;
213
+ /**
214
+ * Generates textures based on texture mime type and fill in textureSetDefinitions data.
215
+ * @param texture - the texture image
216
+ * @param childPath - a child path to write resources
217
+ * @param slpkChildPath - the resource path inside *slpk file
218
+ */
219
+ private _writeTexture;
220
+ /**
221
+ * Write the texture image in a file
222
+ * @param textureData
223
+ * @param name
224
+ * @param format
225
+ * @param childPath
226
+ * @param slpkChildPath
227
+ */
228
+ private writeTextureFile;
229
+ /**
230
+ * Write feature attributes in files
231
+ * @param attributes - feature attributes
232
+ * @param childPath - a child path to write resources
233
+ * @param slpkChildPath - the resource path inside *slpk file
234
+ */
235
+ private _writeAttributes;
236
+ /**
237
+ * Return file format by its MIME type
238
+ * @param mimeType - feature attributes
239
+ */
240
+ private _getFormatByMimeType;
241
+ /**
242
+ * Find or create material in materialDefinitions array
243
+ * @param material - end-to-end index of the node
244
+ * @return material id
245
+ */
246
+ private _findOrCreateMaterial;
247
+ /**
248
+ * Generate storage attribute for map segmentation.
249
+ * @param attributeIndex - order index of attribute (f_0, f_1 ...).
250
+ * @param key - attribute key from batch table.\
251
+ * @param attributeType - attribute type.
252
+ * @return Updated storageAttribute.
253
+ */
254
+ private _createdStorageAttribute;
255
+ /**
256
+ * Get the attribute type for attributeStorageInfo https://github.com/Esri/i3s-spec/blob/master/docs/1.7/attributeStorageInfo.cmn.md
257
+ * @param key - attribute's key
258
+ * @param attribute - attribute's type in batchTable
259
+ */
260
+ private getAttributeType;
261
+ /**
262
+ * Setup storage attribute as string.
263
+ * @param storageAttribute - attribute for map segmentation.
264
+ */
265
+ private _setupStringAttribute;
266
+ /**
267
+ * Setup Id attribute for map segmentation.
268
+ * @param storageAttribute - attribute for map segmentation .
269
+ */
270
+ private _setupIdAttribute;
271
+ /**
272
+ * Setup double attribute for map segmentation.
273
+ * @param storageAttribute - attribute for map segmentation .
274
+ */
275
+ private _setupDoubleAttribute;
276
+ /**
277
+ * Setup field attribute for map segmentation.
278
+ * @param key - attribute for map segmentation.
279
+ * @param fieldAttributeType - esri attribute type ('esriFieldTypeString' or 'esriFieldTypeOID').
280
+ */
281
+ private _createFieldAttribute;
282
+ /**
283
+ * Do conversion of 3DTiles batch table to I3s node attributes.
284
+ * @param batchTable - Table with layer meta data.
285
+ */
286
+ private _convertBatchTableInfoToNodeAttributes;
287
+ /**
288
+ * Find and return attribute type based on key form Batch table.
289
+ * @param attributeType
290
+ */
291
+ private _getFieldAttributeType;
292
+ /**
293
+ * Generate popup info to show metadata on the map.
294
+ * @param batchTable - Batch table data with OBJECTID.
295
+ * @return data for correct rendering of popup.
296
+ */
297
+ private _createPopupInfo;
298
+ /**
299
+ * Print statistics in the end of conversion
300
+ * @param params - output files data
301
+ */
302
+ private _finishConversion;
303
+ /**
304
+ * Fetch preload options for ION tileset
305
+ */
306
+ private _fetchPreloadOptions;
307
+ /**
308
+ * Update options of source tileset
309
+ */
310
+ private _updateTilesetOptions;
311
+ /** Do calculations of all tiles and tiles with "ADD" type of refinement.
312
+ * @param tile
313
+ */
314
+ private _checkAddRefinementTypeForTile;
315
+ /**
316
+ * Check if the tile's content format is supported by the converter
317
+ * @param sourceRootTile
318
+ * @returns
319
+ */
320
+ private isContentSupported;
321
+ private loadWorkers;
322
+ }
323
+ //# sourceMappingURL=i3s-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}