@loaders.gl/tile-converter 3.1.7 → 3.2.0-alpha.2

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