@loaders.gl/tile-converter 3.1.0-beta.5 → 3.1.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 (153) hide show
  1. package/dist/converter.min.js +20 -20
  2. package/dist/{bundle.js → dist.min.js} +2228 -1482
  3. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +429 -189
  4. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  5. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +306 -209
  6. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  7. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +8 -4
  8. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  9. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +13 -13
  10. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  11. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +51 -32
  12. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  13. package/dist/es5/bundle.js +1 -1
  14. package/dist/es5/bundle.js.map +1 -1
  15. package/dist/es5/deps-installer/deps-installer.js +61 -17
  16. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  17. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +55 -16
  18. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  19. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +33 -9
  20. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  21. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +103 -93
  22. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  23. package/dist/es5/i3s-converter/helpers/geometry-converter.d.ts +5 -1
  24. package/dist/es5/i3s-converter/helpers/geometry-converter.js +547 -336
  25. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  26. package/dist/es5/i3s-converter/helpers/node-debug.js +27 -31
  27. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
  28. package/dist/es5/i3s-converter/helpers/node-pages.js +209 -101
  29. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  30. package/dist/es5/i3s-converter/i3s-converter.js +1645 -700
  31. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  32. package/dist/es5/i3s-converter/json-templates/layers.js +213 -177
  33. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  34. package/dist/es5/i3s-converter/json-templates/metadata.js +24 -20
  35. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
  36. package/dist/es5/i3s-converter/json-templates/node.js +92 -74
  37. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
  38. package/dist/es5/i3s-converter/json-templates/scene-server.js +34 -28
  39. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
  40. package/dist/es5/i3s-converter/json-templates/shared-resources.js +162 -107
  41. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  42. package/dist/es5/i3s-converter/json-templates/store.js +4 -2
  43. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
  44. package/dist/es5/i3s-converter/types.js +2 -0
  45. package/dist/es5/i3s-converter/types.js.map +1 -0
  46. package/dist/es5/i3s-server/app.js +6 -6
  47. package/dist/es5/i3s-server/app.js.map +1 -1
  48. package/dist/es5/i3s-server/controllers/index-controller.js +60 -20
  49. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  50. package/dist/es5/i3s-server/routes/index.js +41 -14
  51. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  52. package/dist/es5/index.js +4 -4
  53. package/dist/es5/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
  54. package/dist/es5/lib/utils/compress-util.js +345 -123
  55. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  56. package/dist/es5/lib/utils/file-utils.js +98 -20
  57. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  58. package/dist/es5/lib/utils/lod-conversion-utils.js +9 -9
  59. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  60. package/dist/es5/lib/utils/statistic-utills.js +152 -41
  61. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  62. package/dist/es5/pgm-loader.js +31 -4
  63. package/dist/es5/pgm-loader.js.map +1 -1
  64. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +7 -6
  65. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  66. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +7 -0
  67. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  68. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  69. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +1 -1
  70. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  71. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +12 -9
  72. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  73. package/dist/esm/deps-installer/deps-installer.js +2 -6
  74. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  75. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +35 -3
  76. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  77. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +2 -2
  78. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  79. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  80. package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +5 -1
  81. package/dist/esm/i3s-converter/helpers/geometry-converter.js +50 -16
  82. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  83. package/dist/esm/i3s-converter/helpers/node-debug.js +2 -4
  84. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
  85. package/dist/esm/i3s-converter/helpers/node-pages.js +15 -4
  86. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  87. package/dist/esm/i3s-converter/i3s-converter.js +147 -62
  88. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  89. package/dist/esm/i3s-converter/json-templates/layers.js +37 -27
  90. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  91. package/dist/esm/i3s-converter/json-templates/metadata.js +2 -2
  92. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
  93. package/dist/esm/i3s-converter/json-templates/node.js +16 -12
  94. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
  95. package/dist/esm/i3s-converter/json-templates/scene-server.js +2 -2
  96. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
  97. package/dist/esm/i3s-converter/json-templates/shared-resources.js +19 -14
  98. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  99. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
  100. package/dist/esm/i3s-converter/types.js +2 -0
  101. package/dist/esm/i3s-converter/types.js.map +1 -0
  102. package/dist/esm/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
  103. package/dist/esm/pgm-loader.js +3 -3
  104. package/dist/esm/pgm-loader.js.map +1 -1
  105. package/package.json +17 -15
  106. package/src/3d-tiles-converter/3d-tiles-converter.ts +21 -20
  107. package/src/3d-tiles-converter/helpers/{b3dm-converter.js → b3dm-converter.ts} +19 -2
  108. package/src/3d-tiles-converter/helpers/{i3s-obb-to-3d-tiles-obb.js → i3s-obb-to-3d-tiles-obb.ts} +16 -1
  109. package/src/3d-tiles-converter/helpers/texture-atlas.ts +4 -4
  110. package/src/3d-tiles-converter/json-templates/{tileset.js → tileset.ts} +9 -9
  111. package/src/deps-installer/deps-installer.js +2 -2
  112. package/src/i3s-converter/helpers/coordinate-converter.ts +62 -9
  113. package/src/i3s-converter/helpers/{create-scene-server-path.js → create-scene-server-path.ts} +2 -2
  114. package/src/i3s-converter/helpers/{geometry-attributes.js → geometry-attributes.ts} +4 -4
  115. package/src/i3s-converter/helpers/geometry-converter.d.ts +5 -1
  116. package/src/i3s-converter/helpers/geometry-converter.js +63 -13
  117. package/src/i3s-converter/helpers/{node-debug.js → node-debug.ts} +3 -2
  118. package/src/i3s-converter/helpers/{node-pages.js → node-pages.ts} +41 -26
  119. package/src/i3s-converter/i3s-converter.ts +204 -133
  120. package/src/i3s-converter/json-templates/{layers.js → layers.ts} +29 -27
  121. package/src/i3s-converter/json-templates/{metadata.js → metadata.ts} +2 -2
  122. package/src/i3s-converter/json-templates/{node.js → node.ts} +12 -12
  123. package/src/i3s-converter/json-templates/{scene-server.js → scene-server.ts} +2 -2
  124. package/src/i3s-converter/json-templates/{shared-resources.js → shared-resources.ts} +14 -14
  125. package/src/i3s-converter/json-templates/{store.js → store.ts} +0 -0
  126. package/src/i3s-converter/types.ts +14 -0
  127. package/src/lib/utils/{compress-utils.d.ts → compress-util.d.ts} +0 -0
  128. package/src/pgm-loader.ts +2 -2
  129. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  130. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  131. package/dist/es5/i3s-converter/helpers/node-pages.d.ts +0 -144
  132. package/dist/es5/lib/geoid-height-model.d.ts +0 -41
  133. package/dist/es5/lib/geoid-height-model.js +0 -149
  134. package/dist/es5/lib/geoid-height-model.js.map +0 -1
  135. package/dist/es5/lib/pgm-parser.d.ts +0 -14
  136. package/dist/es5/lib/pgm-parser.js +0 -192
  137. package/dist/es5/lib/pgm-parser.js.map +0 -1
  138. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  139. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  140. package/dist/esm/i3s-converter/helpers/node-pages.d.ts +0 -144
  141. package/dist/esm/lib/geoid-height-model.d.ts +0 -41
  142. package/dist/esm/lib/geoid-height-model.js +0 -140
  143. package/dist/esm/lib/geoid-height-model.js.map +0 -1
  144. package/dist/esm/lib/pgm-parser.d.ts +0 -14
  145. package/dist/esm/lib/pgm-parser.js +0 -183
  146. package/dist/esm/lib/pgm-parser.js.map +0 -1
  147. package/src/3d-tiles-converter/helpers/b3dm-converter.d.ts +0 -23
  148. package/src/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +0 -16
  149. package/src/i3s-converter/helpers/node-pages.d.ts +0 -144
  150. package/src/lib/geoid-height-model.d.ts +0 -41
  151. package/src/lib/geoid-height-model.js +0 -239
  152. package/src/lib/pgm-parser.d.ts +0 -14
  153. package/src/lib/pgm-parser.js +0 -179
@@ -1,7 +1,7 @@
1
1
  import transform from 'json-map-transform';
2
2
  import {STORE} from './store';
3
3
 
4
- const PLAIN_GEOMETRY_DEFINITION = {
4
+ const PLAIN_GEOMETRY_DEFINITION = () => ({
5
5
  offset: 8,
6
6
  position: {
7
7
  type: 'Float32',
@@ -29,9 +29,9 @@ const PLAIN_GEOMETRY_DEFINITION = {
29
29
  type: 'UInt32',
30
30
  component: 2
31
31
  }
32
- };
32
+ });
33
33
 
34
- const PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0 = {
34
+ const PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0 = () => ({
35
35
  offset: 8,
36
36
  position: {
37
37
  type: 'Float32',
@@ -55,23 +55,23 @@ const PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0 = {
55
55
  type: 'UInt32',
56
56
  component: 2
57
57
  }
58
- };
58
+ });
59
59
 
60
- const COMPRESSED_GEOMETRY_DEFINITION = {
60
+ const COMPRESSED_GEOMETRY_DEFINITION = () => ({
61
61
  compressedAttributes: {
62
62
  encoding: 'draco',
63
63
  attributes: ['position', 'normal', 'uv0', 'color', 'feature-index']
64
64
  }
65
- };
65
+ });
66
66
 
67
- const COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0 = {
67
+ const COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0 = () => ({
68
68
  compressedAttributes: {
69
69
  encoding: 'draco',
70
70
  attributes: ['position', 'normal', 'color', 'feature-index']
71
71
  }
72
- };
72
+ });
73
73
 
74
- const SPATIAL_REFERENCE = {
74
+ const SPATIAL_REFERENCE = () => ({
75
75
  wkid: {
76
76
  path: 'wkid',
77
77
  default: 4326
@@ -88,9 +88,9 @@ const SPATIAL_REFERENCE = {
88
88
  path: 'latestVcsWkid',
89
89
  default: 5773
90
90
  }
91
- };
91
+ });
92
92
 
93
- const HEIGHT_MODEL_INFO = {
93
+ const HEIGHT_MODEL_INFO = () => ({
94
94
  heightModel: {
95
95
  path: 'heightModel',
96
96
  default: 'gravity_related_height'
@@ -103,9 +103,9 @@ const HEIGHT_MODEL_INFO = {
103
103
  path: 'heightUnit',
104
104
  default: 'meter'
105
105
  }
106
- };
106
+ });
107
107
 
108
- const NODE_PAGES = {
108
+ const NODE_PAGES = () => ({
109
109
  nodesPerPage: {
110
110
  path: 'nodesPerPage'
111
111
  },
@@ -113,9 +113,9 @@ const NODE_PAGES = {
113
113
  path: 'lodSelectionMetricType',
114
114
  default: 'maxScreenThresholdSQ'
115
115
  }
116
- };
116
+ });
117
117
 
118
- export const LAYERS = {
118
+ export const LAYERS = () => ({
119
119
  version: {
120
120
  path: 'version',
121
121
  transform: (val) => val.toUpperCase()
@@ -137,7 +137,7 @@ export const LAYERS = {
137
137
  },
138
138
  spatialReference: {
139
139
  path: 'spatialReference',
140
- transform: (val) => transform(val, SPATIAL_REFERENCE)
140
+ transform: (val) => transform(val, SPATIAL_REFERENCE())
141
141
  },
142
142
  capabilities: {
143
143
  path: 'capabilities',
@@ -149,11 +149,11 @@ export const LAYERS = {
149
149
  },
150
150
  heightModelInfo: {
151
151
  path: 'heightModelInfo',
152
- transform: (val) => transform(val, HEIGHT_MODEL_INFO)
152
+ transform: (val) => transform(val, HEIGHT_MODEL_INFO())
153
153
  },
154
154
  nodePages: {
155
155
  path: 'nodePages',
156
- transform: (val) => transform(val, NODE_PAGES)
156
+ transform: (val) => transform(val, NODE_PAGES())
157
157
  },
158
158
  materialDefinitions: {
159
159
  path: 'materialDefinitions',
@@ -166,21 +166,23 @@ export const LAYERS = {
166
166
  geometryDefinitions: {
167
167
  path: 'compressGeometry',
168
168
  transform: (val) => {
169
- const result = [{}, {}];
170
- result[0].geometryBuffers = [];
171
- result[1].geometryBuffers = [];
169
+ const result = [{geometryBuffers: []}, {geometryBuffers: []}];
172
170
 
173
- result[0].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION);
174
- result[1].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0);
171
+ // @ts-expect-error
172
+ result[0].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION());
173
+ // @ts-expect-error
174
+ result[1].geometryBuffers.push(PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0());
175
175
  if (val) {
176
- result[0].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION);
177
- result[1].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0);
176
+ // @ts-expect-error
177
+ result[0].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION());
178
+ // @ts-expect-error
179
+ result[1].geometryBuffers.push(COMPRESSED_GEOMETRY_DEFINITION_WITHOUT_UV0());
178
180
  }
179
181
  return result;
180
182
  },
181
183
  default: [
182
184
  {
183
- geometryBuffers: [PLAIN_GEOMETRY_DEFINITION, PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0]
185
+ geometryBuffers: [PLAIN_GEOMETRY_DEFINITION(), PLAIN_GEOMETRY_DEFINITION_WITHOUT_UV0()]
184
186
  }
185
187
  ]
186
188
  },
@@ -196,4 +198,4 @@ export const LAYERS = {
196
198
  path: 'popupInfo',
197
199
  default: null
198
200
  }
199
- };
201
+ });
@@ -1,4 +1,4 @@
1
- export const METADATA = {
1
+ export const METADATA = () => ({
2
2
  folderPattern: {
3
3
  path: 'folderPattern',
4
4
  default: 'BASIC'
@@ -18,4 +18,4 @@ export const METADATA = {
18
18
  nodeCount: {
19
19
  path: 'nodeCount'
20
20
  }
21
- };
21
+ });
@@ -1,29 +1,29 @@
1
1
  import transform from 'json-map-transform';
2
2
 
3
- const COORDINATES = {
3
+ const COORDINATES = () => ({
4
4
  mbs: {
5
5
  path: 'mbs'
6
6
  },
7
7
  obb: {
8
8
  path: 'obb'
9
9
  }
10
- };
10
+ });
11
11
 
12
- const _href = {
12
+ const HREF = () => ({
13
13
  href: {
14
14
  path: 'href'
15
15
  }
16
- };
16
+ });
17
17
 
18
- const PARENT_NODE = {
18
+ const PARENT_NODE = () => ({
19
19
  id: {
20
20
  path: 'id'
21
21
  },
22
- ..._href,
23
- ...COORDINATES
24
- };
22
+ ...HREF(),
23
+ ...COORDINATES()
24
+ });
25
25
 
26
- export const NODE = {
26
+ export const NODE = () => ({
27
27
  version: {
28
28
  path: 'version'
29
29
  },
@@ -36,7 +36,7 @@ export const NODE = {
36
36
  level: {
37
37
  path: 'level'
38
38
  },
39
- ...COORDINATES,
39
+ ...COORDINATES(),
40
40
  lodSelection: {
41
41
  path: 'lodSelection',
42
42
  default: [
@@ -60,7 +60,7 @@ export const NODE = {
60
60
  },
61
61
  parentNode: {
62
62
  path: 'parentNode',
63
- transform: (val) => transform(val, PARENT_NODE),
63
+ transform: (val) => transform(val, PARENT_NODE()),
64
64
  default: null
65
65
  },
66
66
  sharedResource: {
@@ -83,4 +83,4 @@ export const NODE = {
83
83
  path: 'attributeData',
84
84
  default: null
85
85
  }
86
- };
86
+ });
@@ -1,4 +1,4 @@
1
- export const SCENE_SERVER_TEMPLATE = {
1
+ export const SCENE_SERVER = () => ({
2
2
  serviceItemId: {
3
3
  path: 'serviceItemId'
4
4
  },
@@ -24,4 +24,4 @@ export const SCENE_SERVER_TEMPLATE = {
24
24
  path: 'layers0',
25
25
  transform: (layers0) => [layers0]
26
26
  }
27
- };
27
+ });
@@ -1,6 +1,6 @@
1
1
  import transform from 'json-map-transform';
2
2
 
3
- const MATERIAL_DEFINITION_INFO_PARAMS = {
3
+ const MATERIAL_DEFINITION_INFO_PARAMS = () => ({
4
4
  renderMode: {
5
5
  path: 'renderMode',
6
6
  default: 'solid'
@@ -37,9 +37,9 @@ const MATERIAL_DEFINITION_INFO_PARAMS = {
37
37
  path: 'vertexColors',
38
38
  default: true
39
39
  }
40
- };
40
+ });
41
41
 
42
- const MATERIAL_DEFINITION_INFO = {
42
+ const MATERIAL_DEFINITION_INFO = () => ({
43
43
  name: {
44
44
  path: 'name',
45
45
  default: 'standard'
@@ -51,11 +51,11 @@ const MATERIAL_DEFINITION_INFO = {
51
51
  params: {
52
52
  path: 'params',
53
53
  transform: (val, thisObject, originalObject) =>
54
- transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS)
54
+ transform(originalObject, MATERIAL_DEFINITION_INFO_PARAMS())
55
55
  }
56
- };
56
+ });
57
57
 
58
- const TEXTURE_DEFINITION_IMAGE = {
58
+ const TEXTURE_DEFINITION_IMAGE = () => ({
59
59
  id: {
60
60
  path: 'id'
61
61
  },
@@ -69,9 +69,9 @@ const TEXTURE_DEFINITION_IMAGE = {
69
69
  length: {
70
70
  path: 'length'
71
71
  }
72
- };
72
+ });
73
73
 
74
- const TEXTURE_DEFINITION_INFO = {
74
+ const TEXTURE_DEFINITION_INFO = () => ({
75
75
  encoding: {
76
76
  path: 'encoding'
77
77
  },
@@ -94,11 +94,11 @@ const TEXTURE_DEFINITION_INFO = {
94
94
  images: {
95
95
  path: 'images',
96
96
  transform: (val, thisObject, originalObject) =>
97
- val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE))
97
+ val.map((image) => transform(image, TEXTURE_DEFINITION_IMAGE()))
98
98
  }
99
- };
99
+ });
100
100
 
101
- export const SHARED_RESOURCES_TEMPLATE = {
101
+ export const SHARED_RESOURCES = () => ({
102
102
  materialDefinitions: {
103
103
  path: 'materialDefinitionInfos',
104
104
  transform: transfromMaterialDefinitions
@@ -107,14 +107,14 @@ export const SHARED_RESOURCES_TEMPLATE = {
107
107
  path: 'textureDefinitionInfos',
108
108
  transform: transfromTextureDefinitions
109
109
  }
110
- };
110
+ });
111
111
 
112
112
  function transfromMaterialDefinitions(materialDefinitionInfos, thisObject, originalObject) {
113
113
  const result = {};
114
114
  for (const [index, materialDefinitionInfo] of materialDefinitionInfos.entries()) {
115
115
  result[`Mat${originalObject.nodePath}${index}`] = transform(
116
116
  materialDefinitionInfo,
117
- MATERIAL_DEFINITION_INFO
117
+ MATERIAL_DEFINITION_INFO()
118
118
  );
119
119
  }
120
120
  return result;
@@ -128,7 +128,7 @@ function transfromTextureDefinitions(textureDefinitionInfos, thisObject, origina
128
128
  for (const [index, textureDefinitionInfo] of textureDefinitionInfos.entries()) {
129
129
  const imageIndex = `${originalObject.nodePath}${index}`;
130
130
  textureDefinitionInfo.imageIndex = imageIndex;
131
- result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO);
131
+ result[imageIndex] = transform(textureDefinitionInfo, TEXTURE_DEFINITION_INFO());
132
132
  }
133
133
  return result;
134
134
  }
@@ -0,0 +1,14 @@
1
+ import {BoundingVolumes, I3SMaterialDefinition, SharedResources} from '@loaders.gl/i3s';
2
+
3
+ export type I3SConvertedResources = {
4
+ geometry: ArrayBuffer | null;
5
+ compressedGeometry?: ArrayBuffer | null;
6
+ texture: any | null;
7
+ sharedResources: SharedResources | null;
8
+ meshMaterial?: I3SMaterialDefinition | null;
9
+ vertexCount: number | null;
10
+ attributes: any | null;
11
+ featureCount: number | null;
12
+ geometryBuffer?: ArrayBuffer;
13
+ boundingVolumes: BoundingVolumes | null;
14
+ };
package/src/pgm-loader.ts CHANGED
@@ -4,7 +4,7 @@ import type {LoaderWithParser} from '@loaders.gl/loader-utils';
4
4
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
5
5
  const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
6
6
 
7
- import {parsePgm} from './lib/pgm-parser';
7
+ import {parsePGM} from '@math.gl/geoid';
8
8
 
9
9
  /**
10
10
  * Loader for PGM - Netpbm grayscale image format
@@ -15,7 +15,7 @@ export const PGMLoader: LoaderWithParser = {
15
15
  module: 'tile-converter',
16
16
  version: VERSION,
17
17
  mimeTypes: ['image/x-portable-graymap'],
18
- parse: (arrayBuffer, options) => parsePgm(new Uint8Array(arrayBuffer), options),
18
+ parse: async (arrayBuffer, options) => parsePGM(new Uint8Array(arrayBuffer), options),
19
19
  extensions: ['pgm'],
20
20
  options: {
21
21
  // TODO - use pgm namespace
@@ -1,23 +0,0 @@
1
- /**
2
- * Converts content of an I3S node to *.b3dm's file content
3
- */
4
- export default class B3dmConverter {
5
- rtcCenter: Float32Array;
6
- i3sTile: any;
7
-
8
- constructor();
9
-
10
- /**
11
- * The starter of content conversion
12
- * @param i3sTile - Tile3D instance for I3S node
13
- * @returns - encoded content
14
- */
15
- convert(i3sTile: Object, attributes?: any): ArrayBuffer;
16
-
17
- /**
18
- * Build and encode gltf
19
- * @param i3sTile - Tile3D instance for I3S node
20
- * @returns - encoded glb content
21
- */
22
- buildGltf(i3sTile): ArrayBuffer;
23
- }
@@ -1,16 +0,0 @@
1
- import {GeoidHeightModel} from '@loaders.gl/tile-converter/lib/geoid-height-model';
2
-
3
- /**
4
- * Convert quaternion-based OBB to half-axes-based OBB
5
- * @param i3SObb quaternion based OBB
6
- * @param geoidHeightModel the Earth Gravity Model instance
7
- * @returns number[12] 3DTiles OBB https://github.com/CesiumGS/3d-tiles/tree/master/specification#box
8
- */
9
- export function i3sObbTo3dTilesObb(
10
- i3SObb: {
11
- center: number[];
12
- halfSize: number[];
13
- quaternion: number[];
14
- },
15
- geoidHeightModel: GeoidHeightModel
16
- ): number[];
@@ -1,144 +0,0 @@
1
- /**
2
- * Represents one page node
3
- * {@link https://github.com/Esri/i3s-spec/blob/master/docs/1.7/node.cmn.md}
4
- */
5
- export type PageNodeType = {
6
- lodThreshold: number;
7
- obb: any;
8
- children: any[];
9
- mesh?: {
10
- geometry: {
11
- resource?: number;
12
- definition?: number;
13
- };
14
- material?: {
15
- resource?: number;
16
- definition?: number;
17
- };
18
- };
19
- };
20
-
21
- /**
22
- * class NodePages - wrapper of nodePages array
23
- *
24
- * @example
25
- * import writeFile from './helpers/write-file';
26
- *
27
- * // create an instance of the class
28
- * const nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE);
29
- * ...
30
- * // push root node
31
- * const parentId = nodePages.push({
32
- lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
33
- obb: coordinates.obb,
34
- children: []
35
- });
36
- * ...
37
- * // push node with parent relation
38
- * const nodeInPage = {
39
- lodThreshold: HARDCODED_MAX_SCREEN_THRESHOLD_SQ,
40
- obb: coordinates.obb,
41
- children: [],
42
- mesh: {
43
- geometry: {
44
- definition: 0
45
- }
46
- }
47
- };
48
- * const nodeId = this.nodePages.push(nodeInPage, parentId);
49
- * ...
50
- * // save all the nodePages in the end of pushing all the nodes
51
- * await this.nodePages.save(layers0path);
52
- */
53
- export default class NodePages {
54
- readonly nodesPerPage: number;
55
- readonly nodesCounter: number;
56
- readonly writeFile: any;
57
- readonly nodePages: {nodes: PageNodeType[]}[];
58
-
59
- /**
60
- * @constructs
61
- * Create a nodePages instance.
62
- * @param writeFileFunc - function to save one nodePage into a file
63
- * @param nodesPerPage - length limit for one nodePage. An additional nodePage is created when this limit is met
64
- */
65
- constructor(writeFileFunc, nodesPerPage);
66
-
67
- /**
68
- * Setup function to save node pages
69
- * @param func - function which should be used to save node pages
70
- */
71
- useWriteFunction(func: Function): void;
72
-
73
- /**
74
- * Get the node by its end-to-end index
75
- * @param id - end-to-end index of the node
76
- * @return the node object
77
- */
78
- getNodeById(id: number): object;
79
-
80
- /**
81
- * Add a child id into the parent node.children array
82
- * @param parentId - end-to-end parent node index
83
- * @param childId - end-to-end child node index
84
- */
85
- addChildRelation(parentId: number, childId: number): void;
86
-
87
- /**
88
- * Update resource index in node.mesh object
89
- * @param {object} node - node object
90
- */
91
- updateResourceInMesh(node: object): void;
92
-
93
- /**
94
- * Update material in node.mesh object by node id
95
- * @param id - end-to-end index of the node
96
- * @param materialId - id from scene layer materialDefinitions
97
- */
98
- updateMaterialByNodeId(id: number, materialId: number);
99
-
100
- /**
101
- * Update vertexCount in node.mesh.geometry object by node id
102
- * @param id - end-to-end index of the node
103
- * @param vertexCount - vertex count for particular node
104
- */
105
- updateVertexCountByNodeId(id: number, vertexCount: number);
106
-
107
- /**
108
- * Update resource in node.mesh.attribute object by node id
109
- * @param id - end-to-end index of the node
110
- */
111
- updateNodeAttributeByNodeId(id: number);
112
-
113
- /**
114
- * Update featureCount in node.mesh.geometry object by node id
115
- * @param id - end-to-end index of the node
116
- * @param featureCount - features count of the node
117
- */
118
- updateFeatureCountByNodeId(id: number, featureCount: number);
119
-
120
- /**
121
- * Update texelCountHint in node.mesh.material object by node id
122
- * @param id - end-to-end index of the node
123
- * @param texelCountHint - texelCountHint of particular node
124
- */
125
- updateTexelCountHintByNodeId(id: number, texelCountHint: number);
126
-
127
- /**
128
- * Put new node in nodePages array
129
- * @param node - node object
130
- * @param parentId - index of parent node
131
- * @return
132
- */
133
- push(node: PageNodeType, parentId?: number): number;
134
-
135
- /**
136
- * Save all the node pages
137
- * Run this method when all nodes is pushed in nodePages
138
- * @param {string} layers0path - path of layer
139
- * @param {Object} fileMap - fileMap which keep info for slpk archive
140
- * @param {boolean} slpk
141
- * @return {promise}
142
- */
143
- save(layers0path: string, fileMap: Object, slpk: boolean): Promise<void>;
144
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * class GeoidHeightModel - "Gravity Height Model"
3
- * Calculates difference between mean see level height and WGS84 ellipsoid height
4
- * Input data have to be loaded from "Earth Gravity Model" *.pgm file with "PGMLoader"
5
- * A particular model file can be loaded on https://geographiclib.sourceforge.io/html/geoid.html
6
- *
7
- * The implementation is ported from GeographicLib-1.50.1
8
- */
9
- export class GeoidHeightModel {
10
- /**
11
- * @constructs
12
- * Create a GeoidHeightModel instance.
13
- * @param options - object which includes parameters parsed from *.pgm header
14
- * @param options.data - binary buffer of *.pgm file
15
- */
16
- constructor(options: {
17
- cubic: boolean;
18
- _width: number;
19
- _height: number;
20
- _rlonres: number;
21
- _rlatres: number;
22
- _offset: number;
23
- _scale: number;
24
- _swidth: number;
25
- _datastart: number;
26
- _maxerror: number;
27
- _rmserror: number;
28
- _description: string;
29
- _datetime: string;
30
- data: Uint8Array;
31
- });
32
-
33
- /**
34
- * Calculates difference between mean see level height and WGS84 ellipsoid height
35
- * Code is ported from /GeographicLib-1.50.1/src/Geoid.cpp
36
- * @param lat - latitude
37
- * @param lon - longitude
38
- * @returns height in meters
39
- */
40
- getHeight(lat: number, lon: number): number;
41
- }