@loaders.gl/3d-tiles 3.3.0-alpha.5 → 3.3.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/dist.min.js +924 -1372
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/cesium-ion-loader.js +7 -26
  5. package/dist/es5/cesium-ion-loader.js.map +1 -1
  6. package/dist/es5/index.js +14 -23
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +1 -5
  9. package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  10. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +1 -40
  11. package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  12. package/dist/es5/lib/classes/tile-3d-batch-table.js +12 -59
  13. package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -1
  14. package/dist/es5/lib/classes/tile-3d-feature-table.js +4 -23
  15. package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -1
  16. package/dist/es5/lib/constants.js +3 -1
  17. package/dist/es5/lib/constants.js.map +1 -1
  18. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +7 -16
  19. package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  20. package/dist/es5/lib/encoders/encode-3d-tile-composite.js +2 -11
  21. package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  22. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +10 -17
  23. package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +8 -16
  25. package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  26. package/dist/es5/lib/encoders/encode-3d-tile.js +0 -12
  27. package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -1
  28. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +6 -9
  29. package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  30. package/dist/es5/lib/ion/ion.js +5 -46
  31. package/dist/es5/lib/ion/ion.js.map +1 -1
  32. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +2 -11
  33. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  34. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -8
  35. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  36. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +0 -5
  37. package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  38. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +17 -51
  39. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
  40. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +6 -25
  41. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  42. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +1 -1
  43. package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  44. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +0 -38
  45. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  46. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +6 -14
  47. package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  48. package/dist/es5/lib/parsers/helpers/parse-utils.js +1 -3
  49. package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -1
  50. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +0 -16
  51. package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  52. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +1 -11
  53. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  54. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +0 -8
  55. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  56. package/dist/es5/lib/parsers/parse-3d-tile-header.js +2 -70
  57. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  58. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +5 -41
  59. package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  60. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +4 -71
  61. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  62. package/dist/es5/lib/parsers/parse-3d-tile.js +5 -28
  63. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  64. package/dist/es5/lib/utils/version.js +1 -1
  65. package/dist/es5/lib/utils/version.js.map +1 -1
  66. package/dist/es5/tile-3d-subtree-loader.js +0 -4
  67. package/dist/es5/tile-3d-subtree-loader.js.map +1 -1
  68. package/dist/es5/tile-3d-writer.js +0 -6
  69. package/dist/es5/tile-3d-writer.js.map +1 -1
  70. package/dist/es5/tiles-3d-loader.js +0 -29
  71. package/dist/es5/tiles-3d-loader.js.map +1 -1
  72. package/dist/es5/types.js.map +1 -1
  73. package/dist/esm/bundle.js +1 -1
  74. package/dist/esm/bundle.js.map +1 -1
  75. package/dist/esm/cesium-ion-loader.js +9 -7
  76. package/dist/esm/cesium-ion-loader.js.map +1 -1
  77. package/dist/esm/index.js +4 -0
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +1 -0
  80. package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
  81. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +3 -40
  82. package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
  83. package/dist/esm/lib/classes/tile-3d-batch-table.js +7 -67
  84. package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -1
  85. package/dist/esm/lib/classes/tile-3d-feature-table.js +5 -26
  86. package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -1
  87. package/dist/esm/lib/constants.js +3 -0
  88. package/dist/esm/lib/constants.js.map +1 -1
  89. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +5 -3
  90. package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
  91. package/dist/esm/lib/encoders/encode-3d-tile-composite.js +2 -2
  92. package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -1
  93. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +5 -1
  94. package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
  95. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +4 -1
  96. package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
  97. package/dist/esm/lib/encoders/encode-3d-tile.js +2 -6
  98. package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -1
  99. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +3 -3
  100. package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
  101. package/dist/esm/lib/ion/ion.js +10 -8
  102. package/dist/esm/lib/ion/ion.js.map +1 -1
  103. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +1 -6
  104. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
  105. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -4
  106. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
  107. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +1 -2
  108. package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
  109. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +2 -16
  110. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
  111. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +6 -9
  112. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  113. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +5 -2
  114. package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
  115. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +1 -13
  116. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  117. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +4 -7
  118. package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
  119. package/dist/esm/lib/parsers/helpers/parse-utils.js +6 -1
  120. package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -1
  121. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +3 -4
  122. package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
  123. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +5 -1
  124. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  125. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  126. package/dist/esm/lib/parsers/parse-3d-tile-header.js +3 -26
  127. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  128. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +7 -25
  129. package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
  130. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +9 -37
  131. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  132. package/dist/esm/lib/parsers/parse-3d-tile.js +8 -6
  133. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  134. package/dist/esm/lib/utils/version.js +2 -1
  135. package/dist/esm/lib/utils/version.js.map +1 -1
  136. package/dist/esm/tile-3d-subtree-loader.js +1 -0
  137. package/dist/esm/tile-3d-subtree-loader.js.map +1 -1
  138. package/dist/esm/tile-3d-writer.js +1 -1
  139. package/dist/esm/tile-3d-writer.js.map +1 -1
  140. package/dist/esm/tiles-3d-loader.js +1 -8
  141. package/dist/esm/tiles-3d-loader.js.map +1 -1
  142. package/dist/esm/types.js.map +1 -1
  143. package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +1 -1
  144. package/dist/lib/classes/tile-3d-batch-table.d.ts +1 -1
  145. package/package.json +7 -7
@@ -1,30 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
11
  var _loaderUtils = require("@loaders.gl/loader-utils");
19
-
20
12
  var _tile3dAccessorUtils = require("./helpers/tile-3d-accessor-utils");
21
-
22
13
  var _tile3dBatchTableHierarchy = require("./tile-3d-batch-table-hierarchy");
23
14
 
24
15
  function defined(x) {
25
16
  return x !== undefined && x !== null;
26
17
  }
27
-
28
18
  var clone = function clone(x, y) {
29
19
  return x;
30
20
  };
@@ -36,9 +26,9 @@ var IGNORED_PROPERTY_FIELDS = {
36
26
  };
37
27
 
38
28
  var Tile3DBatchTableParser = function () {
29
+
39
30
  function Tile3DBatchTableParser(json, binary, featureCount) {
40
31
  var _this$json;
41
-
42
32
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
43
33
  (0, _classCallCheck2.default)(this, Tile3DBatchTableParser);
44
34
  (0, _defineProperty2.default)(this, "json", void 0);
@@ -53,21 +43,19 @@ var Tile3DBatchTableParser = function () {
53
43
  this.binary = binary;
54
44
  this.featureCount = featureCount;
55
45
  this._extensions = ((_this$json = this.json) === null || _this$json === void 0 ? void 0 : _this$json.extensions) || {};
56
- this._properties = {};
57
46
 
47
+ this._properties = {};
58
48
  for (var propertyName in this.json) {
59
49
  if (!IGNORED_PROPERTY_FIELDS[propertyName]) {
60
50
  this._properties[propertyName] = this.json[propertyName];
61
51
  }
62
52
  }
63
-
64
53
  this._binaryProperties = this._initializeBinaryProperties();
65
54
 
66
55
  if (options['3DTILES_batch_table_hierarchy']) {
67
56
  this._hierarchy = (0, _tile3dBatchTableHierarchy.initializeHierarchy)(this, this.json, this.binary);
68
57
  }
69
58
  }
70
-
71
59
  (0, _createClass2.default)(Tile3DBatchTableParser, [{
72
60
  key: "getExtension",
73
61
  value: function getExtension(extensionName) {
@@ -82,7 +70,6 @@ var Tile3DBatchTableParser = function () {
82
70
  key: "isClass",
83
71
  value: function isClass(batchId, className) {
84
72
  this._checkBatchId(batchId);
85
-
86
73
  (0, _loaderUtils.assert)(typeof className === 'string', className);
87
74
 
88
75
  if (this._hierarchy) {
@@ -93,7 +80,6 @@ var Tile3DBatchTableParser = function () {
93
80
  });
94
81
  return defined(result);
95
82
  }
96
-
97
83
  return false;
98
84
  }
99
85
  }, {
@@ -112,14 +98,12 @@ var Tile3DBatchTableParser = function () {
112
98
  var instanceClass = this._hierarchy.classes[classId];
113
99
  return instanceClass.name;
114
100
  }
115
-
116
101
  return undefined;
117
102
  }
118
103
  }, {
119
104
  key: "hasProperty",
120
105
  value: function hasProperty(batchId, name) {
121
106
  this._checkBatchId(batchId);
122
-
123
107
  (0, _loaderUtils.assert)(typeof name === 'string', name);
124
108
  return defined(this._properties[name]) || this._hasPropertyInHierarchy(batchId, name);
125
109
  }
@@ -127,67 +111,50 @@ var Tile3DBatchTableParser = function () {
127
111
  key: "getPropertyNames",
128
112
  value: function getPropertyNames(batchId, results) {
129
113
  var _results;
130
-
131
114
  this._checkBatchId(batchId);
132
-
133
115
  results = defined(results) ? results : [];
134
116
  results.length = 0;
135
117
  var propertyNames = Object.keys(this._properties);
136
-
137
- (_results = results).push.apply(_results, (0, _toConsumableArray2.default)(propertyNames));
138
-
118
+ (_results = results).push.apply(_results, propertyNames);
139
119
  if (this._hierarchy) {
140
120
  this._getPropertyNamesInHierarchy(batchId, results);
141
121
  }
142
-
143
122
  return results;
144
123
  }
145
124
  }, {
146
125
  key: "getProperty",
147
126
  value: function getProperty(batchId, name) {
148
127
  this._checkBatchId(batchId);
149
-
150
128
  (0, _loaderUtils.assert)(typeof name === 'string', name);
151
-
152
129
  if (this._binaryProperties) {
153
130
  var binaryProperty = this._binaryProperties[name];
154
-
155
131
  if (defined(binaryProperty)) {
156
132
  return this._getBinaryProperty(binaryProperty, batchId);
157
133
  }
158
134
  }
159
-
160
135
  var propertyValues = this._properties[name];
161
-
162
136
  if (defined(propertyValues)) {
163
137
  return clone(propertyValues[batchId], true);
164
138
  }
165
139
 
166
140
  if (this._hierarchy) {
167
141
  var hierarchyProperty = this._getHierarchyProperty(batchId, name);
168
-
169
142
  if (defined(hierarchyProperty)) {
170
143
  return hierarchyProperty;
171
144
  }
172
145
  }
173
-
174
146
  return undefined;
175
147
  }
176
148
  }, {
177
149
  key: "setProperty",
178
150
  value: function setProperty(batchId, name, value) {
179
151
  var featureCount = this.featureCount;
180
-
181
152
  this._checkBatchId(batchId);
182
-
183
153
  (0, _loaderUtils.assert)(typeof name === 'string', name);
184
-
185
154
  if (this._binaryProperties) {
186
155
  var binaryProperty = this._binaryProperties[name];
187
-
188
156
  if (binaryProperty) {
189
157
  this._setBinaryProperty(binaryProperty, batchId, value);
190
-
191
158
  return;
192
159
  }
193
160
  }
@@ -197,21 +164,20 @@ var Tile3DBatchTableParser = function () {
197
164
  return;
198
165
  }
199
166
  }
200
-
201
167
  var propertyValues = this._properties[name];
202
-
203
168
  if (!defined(propertyValues)) {
204
169
  this._properties[name] = new Array(featureCount);
205
170
  propertyValues = this._properties[name];
206
171
  }
207
-
208
172
  propertyValues[batchId] = clone(value, true);
209
173
  }
174
+
210
175
  }, {
211
176
  key: "_checkBatchId",
212
- value: function _checkBatchId(batchId) {
213
- var valid = batchId >= 0 && batchId < this.featureCount;
177
+ value:
214
178
 
179
+ function _checkBatchId(batchId) {
180
+ var valid = batchId >= 0 && batchId < this.featureCount;
215
181
  if (!valid) {
216
182
  throw new Error('batchId not in range [0, featureCount - 1].');
217
183
  }
@@ -230,18 +196,14 @@ var Tile3DBatchTableParser = function () {
230
196
  key: "_initializeBinaryProperties",
231
197
  value: function _initializeBinaryProperties() {
232
198
  var binaryProperties = null;
233
-
234
199
  for (var name in this._properties) {
235
200
  var property = this._properties[name];
236
-
237
201
  var binaryProperty = this._initializeBinaryProperty(name, property);
238
-
239
202
  if (binaryProperty) {
240
203
  binaryProperties = binaryProperties || {};
241
204
  binaryProperties[name] = binaryProperty;
242
205
  }
243
206
  }
244
-
245
207
  return binaryProperties;
246
208
  }
247
209
  }, {
@@ -252,6 +214,7 @@ var Tile3DBatchTableParser = function () {
252
214
  (0, _loaderUtils.assert)(this.binary, "Property ".concat(name, " requires a batch table binary."));
253
215
  (0, _loaderUtils.assert)(tile3DAccessor.type, "Property ".concat(name, " requires a type."));
254
216
  var accessor = (0, _tile3dAccessorUtils.createTypedArrayFromAccessor)(tile3DAccessor, this.binary.buffer, this.binary.byteOffset | 0, this.featureCount);
217
+
255
218
  return {
256
219
  typedArray: accessor.values,
257
220
  componentCount: accessor.size,
@@ -259,16 +222,17 @@ var Tile3DBatchTableParser = function () {
259
222
  pack: accessor.packer
260
223
  };
261
224
  }
262
-
263
225
  return null;
264
226
  }
227
+
265
228
  }, {
266
229
  key: "_hasPropertyInHierarchy",
267
- value: function _hasPropertyInHierarchy(batchId, name) {
230
+ value:
231
+
232
+ function _hasPropertyInHierarchy(batchId, name) {
268
233
  if (!this._hierarchy) {
269
234
  return false;
270
235
  }
271
-
272
236
  var result = (0, _tile3dBatchTableHierarchy.traverseHierarchy)(this._hierarchy, batchId, function (hierarchy, instanceIndex) {
273
237
  var classId = hierarchy.classIds[instanceIndex];
274
238
  var instances = hierarchy.classes[classId].instances;
@@ -282,7 +246,6 @@ var Tile3DBatchTableParser = function () {
282
246
  (0, _tile3dBatchTableHierarchy.traverseHierarchy)(this._hierarchy, batchId, function (hierarchy, instanceIndex) {
283
247
  var classId = hierarchy.classIds[instanceIndex];
284
248
  var instances = hierarchy.classes[classId].instances;
285
-
286
249
  for (var name in instances) {
287
250
  if (instances.hasOwnProperty(name)) {
288
251
  if (results.indexOf(name) === -1) {
@@ -296,21 +259,17 @@ var Tile3DBatchTableParser = function () {
296
259
  key: "_getHierarchyProperty",
297
260
  value: function _getHierarchyProperty(batchId, name) {
298
261
  var _this = this;
299
-
300
262
  return (0, _tile3dBatchTableHierarchy.traverseHierarchy)(this._hierarchy, batchId, function (hierarchy, instanceIndex) {
301
263
  var classId = hierarchy.classIds[instanceIndex];
302
264
  var instanceClass = hierarchy.classes[classId];
303
265
  var indexInClass = hierarchy.classIndexes[instanceIndex];
304
266
  var propertyValues = instanceClass.instances[name];
305
-
306
267
  if (defined(propertyValues)) {
307
268
  if (defined(propertyValues.typedArray)) {
308
269
  return _this._getBinaryProperty(propertyValues, indexInClass);
309
270
  }
310
-
311
271
  return clone(propertyValues[indexInClass], true);
312
272
  }
313
-
314
273
  return null;
315
274
  });
316
275
  }
@@ -318,25 +277,20 @@ var Tile3DBatchTableParser = function () {
318
277
  key: "_setHierarchyProperty",
319
278
  value: function _setHierarchyProperty(batchTable, batchId, name, value) {
320
279
  var _this2 = this;
321
-
322
280
  var result = (0, _tile3dBatchTableHierarchy.traverseHierarchy)(this._hierarchy, batchId, function (hierarchy, instanceIndex) {
323
281
  var classId = hierarchy.classIds[instanceIndex];
324
282
  var instanceClass = hierarchy.classes[classId];
325
283
  var indexInClass = hierarchy.classIndexes[instanceIndex];
326
284
  var propertyValues = instanceClass.instances[name];
327
-
328
285
  if (defined(propertyValues)) {
329
286
  (0, _loaderUtils.assert)(instanceIndex === batchId, "Inherited property \"".concat(name, "\" is read-only."));
330
-
331
287
  if (defined(propertyValues.typedArray)) {
332
288
  _this2._setBinaryProperty(propertyValues, indexInClass, value);
333
289
  } else {
334
290
  propertyValues[indexInClass] = clone(value, true);
335
291
  }
336
-
337
292
  return true;
338
293
  }
339
-
340
294
  return false;
341
295
  });
342
296
  return defined(result);
@@ -344,6 +298,5 @@ var Tile3DBatchTableParser = function () {
344
298
  }]);
345
299
  return Tile3DBatchTableParser;
346
300
  }();
347
-
348
301
  exports.default = Tile3DBatchTableParser;
349
302
  //# sourceMappingURL=tile-3d-batch-table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/classes/tile-3d-batch-table.ts"],"names":["defined","x","undefined","clone","y","IGNORED_PROPERTY_FIELDS","HIERARCHY","extensions","extras","Tile3DBatchTableParser","json","binary","featureCount","options","_extensions","_properties","propertyName","_binaryProperties","_initializeBinaryProperties","_hierarchy","extensionName","batchId","className","_checkBatchId","result","hierarchy","instanceIndex","classId","classIds","instanceClass","classes","name","getExactClassName","_hasPropertyInHierarchy","results","length","propertyNames","Object","keys","push","_getPropertyNamesInHierarchy","binaryProperty","_getBinaryProperty","propertyValues","hierarchyProperty","_getHierarchyProperty","value","_setBinaryProperty","_setHierarchyProperty","Array","valid","Error","index","unpack","typedArray","pack","binaryProperties","property","_initializeBinaryProperty","tile3DAccessor","type","accessor","buffer","byteOffset","values","componentCount","size","unpacker","packer","instances","hasOwnProperty","indexOf","indexInClass","classIndexes","batchTable"],"mappings":"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","sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {assert} from '@loaders.gl/loader-utils';\n\nimport {createTypedArrayFromAccessor} from './helpers/tile-3d-accessor-utils';\nimport {initializeHierarchy, traverseHierarchy} from './tile-3d-batch-table-hierarchy';\n\nfunction defined(x) {\n return x !== undefined && x !== null;\n}\n\nconst clone = (x, y) => x;\n\n// These top level fields in the batch table json are not properties\nconst IGNORED_PROPERTY_FIELDS = {\n HIERARCHY: true, // Deprecated HIERARCHY property\n extensions: true,\n extras: true\n};\n\n// The size of this array equals the maximum instance count among all loaded tiles, which has the potential to be large.\nexport default class Tile3DBatchTableParser {\n json;\n binary;\n featureCount;\n _extensions;\n // Copy all top-level property fields from the json object, ignoring special fields\n _properties;\n _binaryProperties;\n // TODO: hierarchy support is only partially implemented and not tested\n _hierarchy;\n\n constructor(json, binary, featureCount, options = {}) {\n assert(featureCount >= 0);\n this.json = json || {};\n this.binary = binary;\n this.featureCount = featureCount;\n\n this._extensions = this.json?.extensions || {};\n\n // Copy all top-level property fields from the json object, ignoring special fields\n this._properties = {};\n for (const propertyName in this.json) {\n if (!IGNORED_PROPERTY_FIELDS[propertyName]) {\n this._properties[propertyName] = this.json[propertyName];\n }\n }\n\n this._binaryProperties = this._initializeBinaryProperties();\n\n // TODO: hierarchy support is only partially implemented and not tested\n if (options['3DTILES_batch_table_hierarchy']) {\n this._hierarchy = initializeHierarchy(this, this.json, this.binary);\n }\n }\n\n getExtension(extensionName) {\n return this.json && this.json.extensions && this.json.extensions[extensionName];\n }\n\n memorySizeInBytes(): number {\n return 0;\n }\n\n isClass(batchId, className: string): boolean {\n this._checkBatchId(batchId);\n assert(typeof className === 'string', className);\n\n // extension: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n // PERFORMANCE_IDEA : cache results in the ancestor classes\n // to speed up this check if this area becomes a hotspot\n // PERFORMANCE_IDEA : treat class names as integers for faster comparisons\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n return instanceClass.name === className;\n });\n return defined(result);\n }\n\n return false;\n }\n\n isExactClass(batchId, className) {\n assert(typeof className === 'string', className);\n\n return this.getExactClassName(batchId) === className;\n }\n\n getExactClassName(batchId) {\n this._checkBatchId(batchId);\n\n // extension: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n const classId = this._hierarchy.classIds[batchId];\n const instanceClass = this._hierarchy.classes[classId];\n return instanceClass.name;\n }\n\n return undefined;\n }\n\n hasProperty(batchId, name) {\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n return defined(this._properties[name]) || this._hasPropertyInHierarchy(batchId, name);\n }\n\n getPropertyNames(batchId, results) {\n this._checkBatchId(batchId);\n\n results = defined(results) ? results : [];\n results.length = 0;\n\n const propertyNames = Object.keys(this._properties);\n results.push(...propertyNames);\n\n if (this._hierarchy) {\n this._getPropertyNamesInHierarchy(batchId, results);\n }\n\n return results;\n }\n\n getProperty(batchId, name) {\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n if (this._binaryProperties) {\n const binaryProperty = this._binaryProperties[name];\n if (defined(binaryProperty)) {\n return this._getBinaryProperty(binaryProperty, batchId);\n }\n }\n\n const propertyValues = this._properties[name];\n if (defined(propertyValues)) {\n return clone(propertyValues[batchId], true);\n }\n\n // EXTENSION: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n const hierarchyProperty = this._getHierarchyProperty(batchId, name);\n if (defined(hierarchyProperty)) {\n return hierarchyProperty;\n }\n }\n\n return undefined;\n }\n\n setProperty(batchId, name, value) {\n const featureCount = this.featureCount;\n\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n if (this._binaryProperties) {\n const binaryProperty = this._binaryProperties[name];\n if (binaryProperty) {\n this._setBinaryProperty(binaryProperty, batchId, value);\n return;\n }\n }\n\n // EXTENSION: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n if (this._setHierarchyProperty(this, batchId, name, value)) {\n return;\n }\n }\n\n let propertyValues = this._properties[name];\n if (!defined(propertyValues)) {\n // Property does not exist. Create it.\n this._properties[name] = new Array(featureCount);\n propertyValues = this._properties[name];\n }\n\n propertyValues[batchId] = clone(value, true);\n }\n\n // PRIVATE METHODS\n\n _checkBatchId(batchId) {\n const valid = batchId >= 0 && batchId < this.featureCount;\n if (!valid) {\n throw new Error('batchId not in range [0, featureCount - 1].');\n }\n }\n\n _getBinaryProperty(binaryProperty, index) {\n return binaryProperty.unpack(binaryProperty.typedArray, index);\n }\n\n _setBinaryProperty(binaryProperty, index, value) {\n binaryProperty.pack(value, binaryProperty.typedArray, index);\n }\n\n _initializeBinaryProperties() {\n let binaryProperties: Record<string, any> | null = null;\n for (const name in this._properties) {\n const property = this._properties[name];\n const binaryProperty = this._initializeBinaryProperty(name, property);\n // Store any information needed to access the binary data, including the typed array,\n // componentCount (e.g. a VEC4 would be 4), and the type used to pack and unpack (e.g. Cartesian4).\n if (binaryProperty) {\n binaryProperties = binaryProperties || {};\n binaryProperties[name] = binaryProperty;\n }\n }\n return binaryProperties;\n }\n\n _initializeBinaryProperty(name, property) {\n if ('byteOffset' in property) {\n // This is a binary property\n const tile3DAccessor = property;\n\n assert(this.binary, `Property ${name} requires a batch table binary.`);\n assert(tile3DAccessor.type, `Property ${name} requires a type.`);\n\n const accessor = createTypedArrayFromAccessor(\n tile3DAccessor,\n this.binary.buffer,\n this.binary.byteOffset | 0,\n this.featureCount\n );\n\n // Store any information needed to access the binary data, including the typed array,\n // componentCount (e.g. a VEC4 would be 4), and the type used to pack and unpack (e.g. Cartesian4).\n return {\n typedArray: accessor.values,\n componentCount: accessor.size,\n unpack: accessor.unpacker,\n pack: accessor.packer\n };\n }\n\n return null;\n }\n\n // EXTENSION SUPPORT: 3DTILES_batch_table_hierarchy\n\n _hasPropertyInHierarchy(batchId, name) {\n if (!this._hierarchy) {\n return false;\n }\n\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instances = hierarchy.classes[classId].instances;\n return defined(instances[name]);\n });\n\n return defined(result);\n }\n\n _getPropertyNamesInHierarchy(batchId, results) {\n traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instances = hierarchy.classes[classId].instances;\n for (const name in instances) {\n if (instances.hasOwnProperty(name)) {\n if (results.indexOf(name) === -1) {\n results.push(name);\n }\n }\n }\n });\n }\n\n _getHierarchyProperty(batchId, name) {\n return traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n const indexInClass = hierarchy.classIndexes[instanceIndex];\n const propertyValues = instanceClass.instances[name];\n if (defined(propertyValues)) {\n if (defined(propertyValues.typedArray)) {\n return this._getBinaryProperty(propertyValues, indexInClass);\n }\n return clone(propertyValues[indexInClass], true);\n }\n return null;\n });\n }\n\n _setHierarchyProperty(batchTable, batchId, name, value) {\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n const indexInClass = hierarchy.classIndexes[instanceIndex];\n const propertyValues = instanceClass.instances[name];\n if (defined(propertyValues)) {\n assert(instanceIndex === batchId, `Inherited property \"${name}\" is read-only.`);\n if (defined(propertyValues.typedArray)) {\n this._setBinaryProperty(propertyValues, indexInClass, value);\n } else {\n propertyValues[indexInClass] = clone(value, true);\n }\n return true;\n }\n return false;\n });\n return defined(result);\n }\n}\n"],"file":"tile-3d-batch-table.js"}
1
+ {"version":3,"file":"tile-3d-batch-table.js","names":["defined","x","undefined","clone","y","IGNORED_PROPERTY_FIELDS","HIERARCHY","extensions","extras","Tile3DBatchTableParser","json","binary","featureCount","options","assert","_extensions","_properties","propertyName","_binaryProperties","_initializeBinaryProperties","_hierarchy","initializeHierarchy","extensionName","batchId","className","_checkBatchId","result","traverseHierarchy","hierarchy","instanceIndex","classId","classIds","instanceClass","classes","name","getExactClassName","_hasPropertyInHierarchy","results","length","propertyNames","Object","keys","push","_getPropertyNamesInHierarchy","binaryProperty","_getBinaryProperty","propertyValues","hierarchyProperty","_getHierarchyProperty","value","_setBinaryProperty","_setHierarchyProperty","Array","valid","Error","index","unpack","typedArray","pack","binaryProperties","property","_initializeBinaryProperty","tile3DAccessor","type","accessor","createTypedArrayFromAccessor","buffer","byteOffset","values","componentCount","size","unpacker","packer","instances","hasOwnProperty","indexOf","indexInClass","classIndexes","batchTable"],"sources":["../../../../src/lib/classes/tile-3d-batch-table.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {assert} from '@loaders.gl/loader-utils';\n\nimport {createTypedArrayFromAccessor} from './helpers/tile-3d-accessor-utils';\nimport {initializeHierarchy, traverseHierarchy} from './tile-3d-batch-table-hierarchy';\n\nfunction defined(x) {\n return x !== undefined && x !== null;\n}\n\nconst clone = (x, y) => x;\n\n// These top level fields in the batch table json are not properties\nconst IGNORED_PROPERTY_FIELDS = {\n HIERARCHY: true, // Deprecated HIERARCHY property\n extensions: true,\n extras: true\n};\n\n// The size of this array equals the maximum instance count among all loaded tiles, which has the potential to be large.\nexport default class Tile3DBatchTableParser {\n json;\n binary;\n featureCount;\n _extensions;\n // Copy all top-level property fields from the json object, ignoring special fields\n _properties;\n _binaryProperties;\n // TODO: hierarchy support is only partially implemented and not tested\n _hierarchy;\n\n constructor(json, binary, featureCount, options = {}) {\n assert(featureCount >= 0);\n this.json = json || {};\n this.binary = binary;\n this.featureCount = featureCount;\n\n this._extensions = this.json?.extensions || {};\n\n // Copy all top-level property fields from the json object, ignoring special fields\n this._properties = {};\n for (const propertyName in this.json) {\n if (!IGNORED_PROPERTY_FIELDS[propertyName]) {\n this._properties[propertyName] = this.json[propertyName];\n }\n }\n\n this._binaryProperties = this._initializeBinaryProperties();\n\n // TODO: hierarchy support is only partially implemented and not tested\n if (options['3DTILES_batch_table_hierarchy']) {\n this._hierarchy = initializeHierarchy(this, this.json, this.binary);\n }\n }\n\n getExtension(extensionName) {\n return this.json && this.json.extensions && this.json.extensions[extensionName];\n }\n\n memorySizeInBytes(): number {\n return 0;\n }\n\n isClass(batchId, className: string): boolean {\n this._checkBatchId(batchId);\n assert(typeof className === 'string', className);\n\n // extension: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n // PERFORMANCE_IDEA : cache results in the ancestor classes\n // to speed up this check if this area becomes a hotspot\n // PERFORMANCE_IDEA : treat class names as integers for faster comparisons\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n return instanceClass.name === className;\n });\n return defined(result);\n }\n\n return false;\n }\n\n isExactClass(batchId, className) {\n assert(typeof className === 'string', className);\n\n return this.getExactClassName(batchId) === className;\n }\n\n getExactClassName(batchId) {\n this._checkBatchId(batchId);\n\n // extension: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n const classId = this._hierarchy.classIds[batchId];\n const instanceClass = this._hierarchy.classes[classId];\n return instanceClass.name;\n }\n\n return undefined;\n }\n\n hasProperty(batchId, name) {\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n return defined(this._properties[name]) || this._hasPropertyInHierarchy(batchId, name);\n }\n\n getPropertyNames(batchId, results) {\n this._checkBatchId(batchId);\n\n results = defined(results) ? results : [];\n results.length = 0;\n\n const propertyNames = Object.keys(this._properties);\n results.push(...propertyNames);\n\n if (this._hierarchy) {\n this._getPropertyNamesInHierarchy(batchId, results);\n }\n\n return results;\n }\n\n getProperty(batchId, name) {\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n if (this._binaryProperties) {\n const binaryProperty = this._binaryProperties[name];\n if (defined(binaryProperty)) {\n return this._getBinaryProperty(binaryProperty, batchId);\n }\n }\n\n const propertyValues = this._properties[name];\n if (defined(propertyValues)) {\n return clone(propertyValues[batchId], true);\n }\n\n // EXTENSION: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n const hierarchyProperty = this._getHierarchyProperty(batchId, name);\n if (defined(hierarchyProperty)) {\n return hierarchyProperty;\n }\n }\n\n return undefined;\n }\n\n setProperty(batchId, name, value) {\n const featureCount = this.featureCount;\n\n this._checkBatchId(batchId);\n assert(typeof name === 'string', name);\n\n if (this._binaryProperties) {\n const binaryProperty = this._binaryProperties[name];\n if (binaryProperty) {\n this._setBinaryProperty(binaryProperty, batchId, value);\n return;\n }\n }\n\n // EXTENSION: 3DTILES_batch_table_hierarchy\n if (this._hierarchy) {\n if (this._setHierarchyProperty(this, batchId, name, value)) {\n return;\n }\n }\n\n let propertyValues = this._properties[name];\n if (!defined(propertyValues)) {\n // Property does not exist. Create it.\n this._properties[name] = new Array(featureCount);\n propertyValues = this._properties[name];\n }\n\n propertyValues[batchId] = clone(value, true);\n }\n\n // PRIVATE METHODS\n\n _checkBatchId(batchId) {\n const valid = batchId >= 0 && batchId < this.featureCount;\n if (!valid) {\n throw new Error('batchId not in range [0, featureCount - 1].');\n }\n }\n\n _getBinaryProperty(binaryProperty, index) {\n return binaryProperty.unpack(binaryProperty.typedArray, index);\n }\n\n _setBinaryProperty(binaryProperty, index, value) {\n binaryProperty.pack(value, binaryProperty.typedArray, index);\n }\n\n _initializeBinaryProperties() {\n let binaryProperties: Record<string, any> | null = null;\n for (const name in this._properties) {\n const property = this._properties[name];\n const binaryProperty = this._initializeBinaryProperty(name, property);\n // Store any information needed to access the binary data, including the typed array,\n // componentCount (e.g. a VEC4 would be 4), and the type used to pack and unpack (e.g. Cartesian4).\n if (binaryProperty) {\n binaryProperties = binaryProperties || {};\n binaryProperties[name] = binaryProperty;\n }\n }\n return binaryProperties;\n }\n\n _initializeBinaryProperty(name, property) {\n if ('byteOffset' in property) {\n // This is a binary property\n const tile3DAccessor = property;\n\n assert(this.binary, `Property ${name} requires a batch table binary.`);\n assert(tile3DAccessor.type, `Property ${name} requires a type.`);\n\n const accessor = createTypedArrayFromAccessor(\n tile3DAccessor,\n this.binary.buffer,\n this.binary.byteOffset | 0,\n this.featureCount\n );\n\n // Store any information needed to access the binary data, including the typed array,\n // componentCount (e.g. a VEC4 would be 4), and the type used to pack and unpack (e.g. Cartesian4).\n return {\n typedArray: accessor.values,\n componentCount: accessor.size,\n unpack: accessor.unpacker,\n pack: accessor.packer\n };\n }\n\n return null;\n }\n\n // EXTENSION SUPPORT: 3DTILES_batch_table_hierarchy\n\n _hasPropertyInHierarchy(batchId, name) {\n if (!this._hierarchy) {\n return false;\n }\n\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instances = hierarchy.classes[classId].instances;\n return defined(instances[name]);\n });\n\n return defined(result);\n }\n\n _getPropertyNamesInHierarchy(batchId, results) {\n traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instances = hierarchy.classes[classId].instances;\n for (const name in instances) {\n if (instances.hasOwnProperty(name)) {\n if (results.indexOf(name) === -1) {\n results.push(name);\n }\n }\n }\n });\n }\n\n _getHierarchyProperty(batchId, name) {\n return traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n const indexInClass = hierarchy.classIndexes[instanceIndex];\n const propertyValues = instanceClass.instances[name];\n if (defined(propertyValues)) {\n if (defined(propertyValues.typedArray)) {\n return this._getBinaryProperty(propertyValues, indexInClass);\n }\n return clone(propertyValues[indexInClass], true);\n }\n return null;\n });\n }\n\n _setHierarchyProperty(batchTable, batchId, name, value) {\n const result = traverseHierarchy(this._hierarchy, batchId, (hierarchy, instanceIndex) => {\n const classId = hierarchy.classIds[instanceIndex];\n const instanceClass = hierarchy.classes[classId];\n const indexInClass = hierarchy.classIndexes[instanceIndex];\n const propertyValues = instanceClass.instances[name];\n if (defined(propertyValues)) {\n assert(instanceIndex === batchId, `Inherited property \"${name}\" is read-only.`);\n if (defined(propertyValues.typedArray)) {\n this._setBinaryProperty(propertyValues, indexInClass, value);\n } else {\n propertyValues[indexInClass] = clone(value, true);\n }\n return true;\n }\n return false;\n });\n return defined(result);\n }\n}\n"],"mappings":"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"}
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _math = require("@loaders.gl/math");
17
-
18
12
  var Tile3DFeatureTable = function () {
19
13
  function Tile3DFeatureTable(featureTableJson, featureTableBinary) {
20
14
  (0, _classCallCheck2.default)(this, Tile3DFeatureTable);
@@ -25,7 +19,6 @@ var Tile3DFeatureTable = function () {
25
19
  this.json = featureTableJson;
26
20
  this.buffer = featureTableBinary;
27
21
  }
28
-
29
22
  (0, _createClass2.default)(Tile3DFeatureTable, [{
30
23
  key: "getExtension",
31
24
  value: function getExtension(extensionName) {
@@ -42,60 +35,51 @@ var Tile3DFeatureTable = function () {
42
35
  var componentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _math.GL.UNSIGNED_INT;
43
36
  var componentLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
44
37
  var jsonValue = this.json[propertyName];
45
-
46
38
  if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {
47
39
  return this._getTypedArrayFromBinary(propertyName, componentType, componentLength, 1, jsonValue.byteOffset);
48
40
  }
49
-
50
41
  return jsonValue;
51
42
  }
52
43
  }, {
53
44
  key: "getPropertyArray",
54
45
  value: function getPropertyArray(propertyName, componentType, componentLength) {
55
46
  var jsonValue = this.json[propertyName];
56
-
57
47
  if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {
58
48
  if ('componentType' in jsonValue) {
59
49
  componentType = _math.GLType.fromName(jsonValue.componentType);
60
50
  }
61
-
62
51
  return this._getTypedArrayFromBinary(propertyName, componentType, componentLength, this.featuresLength, jsonValue.byteOffset);
63
52
  }
64
-
65
53
  return this._getTypedArrayFromArray(propertyName, componentType, jsonValue);
66
54
  }
67
55
  }, {
68
56
  key: "getProperty",
69
57
  value: function getProperty(propertyName, componentType, componentLength, featureId, result) {
70
58
  var jsonValue = this.json[propertyName];
71
-
72
59
  if (!jsonValue) {
73
60
  return jsonValue;
74
61
  }
75
-
76
62
  var typedArray = this.getPropertyArray(propertyName, componentType, componentLength);
77
-
78
63
  if (componentLength === 1) {
79
64
  return typedArray[featureId];
80
65
  }
81
-
82
66
  for (var i = 0; i < componentLength; ++i) {
83
67
  result[i] = typedArray[componentLength * featureId + i];
84
68
  }
85
-
86
69
  return result;
87
70
  }
71
+
88
72
  }, {
89
73
  key: "_getTypedArrayFromBinary",
90
- value: function _getTypedArrayFromBinary(propertyName, componentType, componentLength, count, byteOffset) {
74
+ value:
75
+
76
+ function _getTypedArrayFromBinary(propertyName, componentType, componentLength, count, byteOffset) {
91
77
  var cachedTypedArrays = this._cachedTypedArrays;
92
78
  var typedArray = cachedTypedArrays[propertyName];
93
-
94
79
  if (!typedArray) {
95
80
  typedArray = _math.GLType.createTypedArray(componentType, this.buffer.buffer, this.buffer.byteOffset + byteOffset, count * componentLength);
96
81
  cachedTypedArrays[propertyName] = typedArray;
97
82
  }
98
-
99
83
  return typedArray;
100
84
  }
101
85
  }, {
@@ -103,17 +87,14 @@ var Tile3DFeatureTable = function () {
103
87
  value: function _getTypedArrayFromArray(propertyName, componentType, array) {
104
88
  var cachedTypedArrays = this._cachedTypedArrays;
105
89
  var typedArray = cachedTypedArrays[propertyName];
106
-
107
90
  if (!typedArray) {
108
91
  typedArray = _math.GLType.createTypedArray(componentType, array);
109
92
  cachedTypedArrays[propertyName] = typedArray;
110
93
  }
111
-
112
94
  return typedArray;
113
95
  }
114
96
  }]);
115
97
  return Tile3DFeatureTable;
116
98
  }();
117
-
118
99
  exports.default = Tile3DFeatureTable;
119
100
  //# sourceMappingURL=tile-3d-feature-table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/classes/tile-3d-feature-table.ts"],"names":["Tile3DFeatureTable","featureTableJson","featureTableBinary","json","buffer","extensionName","extensions","propertyName","Boolean","componentType","GL","UNSIGNED_INT","componentLength","jsonValue","Number","isFinite","byteOffset","_getTypedArrayFromBinary","GLType","fromName","featuresLength","_getTypedArrayFromArray","featureId","result","typedArray","getPropertyArray","i","count","cachedTypedArrays","_cachedTypedArrays","createTypedArray","array"],"mappings":";;;;;;;;;;;;;;;AAGA;;IAIqBA,kB;AAMnB,8BAAYC,gBAAZ,EAA8BC,kBAA9B,EAAkD;AAAA;AAAA;AAAA;AAAA,0DAHjC,CAGiC;AAAA,8DAF7B,EAE6B;AAChD,SAAKC,IAAL,GAAYF,gBAAZ;AACA,SAAKG,MAAL,GAAcF,kBAAd;AACD;;;;WAED,sBAAaG,aAAb,EAA4B;AAC1B,aAAO,KAAKF,IAAL,CAAUG,UAAV,IAAwB,KAAKH,IAAL,CAAUG,UAAV,CAAqBD,aAArB,CAA/B;AACD;;;WAED,qBAAYE,YAAZ,EAA0B;AACxB,aAAOC,OAAO,CAAC,KAAKL,IAAL,CAAUI,YAAV,CAAD,CAAd;AACD;;;WAED,2BAAkBA,YAAlB,EAAsF;AAAA,UAAtDE,aAAsD,uEAAtCC,SAAGC,YAAmC;AAAA,UAArBC,eAAqB,uEAAH,CAAG;AACpF,UAAMC,SAAS,GAAG,KAAKV,IAAL,CAAUI,YAAV,CAAlB;;AAEA,UAAIM,SAAS,IAAIC,MAAM,CAACC,QAAP,CAAgBF,SAAS,CAACG,UAA1B,CAAjB,EAAwD;AACtD,eAAO,KAAKC,wBAAL,CACLV,YADK,EAELE,aAFK,EAGLG,eAHK,EAIL,CAJK,EAKLC,SAAS,CAACG,UALL,CAAP;AAOD;;AAED,aAAOH,SAAP;AACD;;;WAED,0BAAiBN,YAAjB,EAA+BE,aAA/B,EAA8CG,eAA9C,EAA+D;AAC7D,UAAMC,SAAS,GAAG,KAAKV,IAAL,CAAUI,YAAV,CAAlB;;AAEA,UAAIM,SAAS,IAAIC,MAAM,CAACC,QAAP,CAAgBF,SAAS,CAACG,UAA1B,CAAjB,EAAwD;AACtD,YAAI,mBAAmBH,SAAvB,EAAkC;AAChCJ,UAAAA,aAAa,GAAGS,aAAOC,QAAP,CAAgBN,SAAS,CAACJ,aAA1B,CAAhB;AACD;;AACD,eAAO,KAAKQ,wBAAL,CACLV,YADK,EAELE,aAFK,EAGLG,eAHK,EAIL,KAAKQ,cAJA,EAKLP,SAAS,CAACG,UALL,CAAP;AAOD;;AAED,aAAO,KAAKK,uBAAL,CAA6Bd,YAA7B,EAA2CE,aAA3C,EAA0DI,SAA1D,CAAP;AACD;;;WAED,qBAAYN,YAAZ,EAA0BE,aAA1B,EAAyCG,eAAzC,EAA0DU,SAA1D,EAAqEC,MAArE,EAA6E;AAC3E,UAAMV,SAAS,GAAG,KAAKV,IAAL,CAAUI,YAAV,CAAlB;;AACA,UAAI,CAACM,SAAL,EAAgB;AACd,eAAOA,SAAP;AACD;;AAED,UAAMW,UAAU,GAAG,KAAKC,gBAAL,CAAsBlB,YAAtB,EAAoCE,aAApC,EAAmDG,eAAnD,CAAnB;;AAEA,UAAIA,eAAe,KAAK,CAAxB,EAA2B;AACzB,eAAOY,UAAU,CAACF,SAAD,CAAjB;AACD;;AAED,WAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,eAApB,EAAqC,EAAEc,CAAvC,EAA0C;AACxCH,QAAAA,MAAM,CAACG,CAAD,CAAN,GAAYF,UAAU,CAACZ,eAAe,GAAGU,SAAlB,GAA8BI,CAA/B,CAAtB;AACD;;AAED,aAAOH,MAAP;AACD;;;WAID,kCAAyBhB,YAAzB,EAAuCE,aAAvC,EAAsDG,eAAtD,EAAuEe,KAAvE,EAA8EX,UAA9E,EAA0F;AACxF,UAAMY,iBAAiB,GAAG,KAAKC,kBAA/B;AACA,UAAIL,UAAU,GAAGI,iBAAiB,CAACrB,YAAD,CAAlC;;AACA,UAAI,CAACiB,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAGN,aAAOY,gBAAP,CACXrB,aADW,EAEX,KAAKL,MAAL,CAAYA,MAFD,EAGX,KAAKA,MAAL,CAAYY,UAAZ,GAAyBA,UAHd,EAIXW,KAAK,GAAGf,eAJG,CAAb;AAMAgB,QAAAA,iBAAiB,CAACrB,YAAD,CAAjB,GAAkCiB,UAAlC;AACD;;AACD,aAAOA,UAAP;AACD;;;WAED,iCAAwBjB,YAAxB,EAAsCE,aAAtC,EAAqDsB,KAArD,EAA4D;AAC1D,UAAMH,iBAAiB,GAAG,KAAKC,kBAA/B;AACA,UAAIL,UAAU,GAAGI,iBAAiB,CAACrB,YAAD,CAAlC;;AACA,UAAI,CAACiB,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAGN,aAAOY,gBAAP,CAAwBrB,aAAxB,EAAuCsB,KAAvC,CAAb;AACAH,QAAAA,iBAAiB,CAACrB,YAAD,CAAjB,GAAkCiB,UAAlC;AACD;;AACD,aAAOA,UAAP;AACD","sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {GL, GLType} from '@loaders.gl/math';\n\n// Reference:\n// https://github.com/AnalyticalGraphicsInc/cesium/blob/1de96d087f0b17575eb1a3f736407b348c765d59/Source/Scene/Cesium3DTileFeatureTable.js\nexport default class Tile3DFeatureTable {\n json;\n buffer;\n featuresLength = 0;\n _cachedTypedArrays = {};\n\n constructor(featureTableJson, featureTableBinary) {\n this.json = featureTableJson;\n this.buffer = featureTableBinary;\n }\n\n getExtension(extensionName) {\n return this.json.extensions && this.json.extensions[extensionName];\n }\n\n hasProperty(propertyName) {\n return Boolean(this.json[propertyName]);\n }\n\n getGlobalProperty(propertyName, componentType = GL.UNSIGNED_INT, componentLength = 1) {\n const jsonValue = this.json[propertyName];\n\n if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {\n return this._getTypedArrayFromBinary(\n propertyName,\n componentType,\n componentLength,\n 1,\n jsonValue.byteOffset\n );\n }\n\n return jsonValue;\n }\n\n getPropertyArray(propertyName, componentType, componentLength) {\n const jsonValue = this.json[propertyName];\n\n if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {\n if ('componentType' in jsonValue) {\n componentType = GLType.fromName(jsonValue.componentType);\n }\n return this._getTypedArrayFromBinary(\n propertyName,\n componentType,\n componentLength,\n this.featuresLength,\n jsonValue.byteOffset\n );\n }\n\n return this._getTypedArrayFromArray(propertyName, componentType, jsonValue);\n }\n\n getProperty(propertyName, componentType, componentLength, featureId, result) {\n const jsonValue = this.json[propertyName];\n if (!jsonValue) {\n return jsonValue;\n }\n\n const typedArray = this.getPropertyArray(propertyName, componentType, componentLength);\n\n if (componentLength === 1) {\n return typedArray[featureId];\n }\n\n for (let i = 0; i < componentLength; ++i) {\n result[i] = typedArray[componentLength * featureId + i];\n }\n\n return result;\n }\n\n // HELPERS\n\n _getTypedArrayFromBinary(propertyName, componentType, componentLength, count, byteOffset) {\n const cachedTypedArrays = this._cachedTypedArrays;\n let typedArray = cachedTypedArrays[propertyName];\n if (!typedArray) {\n typedArray = GLType.createTypedArray(\n componentType,\n this.buffer.buffer,\n this.buffer.byteOffset + byteOffset,\n count * componentLength\n );\n cachedTypedArrays[propertyName] = typedArray;\n }\n return typedArray;\n }\n\n _getTypedArrayFromArray(propertyName, componentType, array) {\n const cachedTypedArrays = this._cachedTypedArrays;\n let typedArray = cachedTypedArrays[propertyName];\n if (!typedArray) {\n typedArray = GLType.createTypedArray(componentType, array);\n cachedTypedArrays[propertyName] = typedArray;\n }\n return typedArray;\n }\n}\n"],"file":"tile-3d-feature-table.js"}
1
+ {"version":3,"file":"tile-3d-feature-table.js","names":["Tile3DFeatureTable","featureTableJson","featureTableBinary","json","buffer","extensionName","extensions","propertyName","Boolean","componentType","GL","UNSIGNED_INT","componentLength","jsonValue","Number","isFinite","byteOffset","_getTypedArrayFromBinary","GLType","fromName","featuresLength","_getTypedArrayFromArray","featureId","result","typedArray","getPropertyArray","i","count","cachedTypedArrays","_cachedTypedArrays","createTypedArray","array"],"sources":["../../../../src/lib/classes/tile-3d-feature-table.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {GL, GLType} from '@loaders.gl/math';\n\n// Reference:\n// https://github.com/AnalyticalGraphicsInc/cesium/blob/1de96d087f0b17575eb1a3f736407b348c765d59/Source/Scene/Cesium3DTileFeatureTable.js\nexport default class Tile3DFeatureTable {\n json;\n buffer;\n featuresLength = 0;\n _cachedTypedArrays = {};\n\n constructor(featureTableJson, featureTableBinary) {\n this.json = featureTableJson;\n this.buffer = featureTableBinary;\n }\n\n getExtension(extensionName) {\n return this.json.extensions && this.json.extensions[extensionName];\n }\n\n hasProperty(propertyName) {\n return Boolean(this.json[propertyName]);\n }\n\n getGlobalProperty(propertyName, componentType = GL.UNSIGNED_INT, componentLength = 1) {\n const jsonValue = this.json[propertyName];\n\n if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {\n return this._getTypedArrayFromBinary(\n propertyName,\n componentType,\n componentLength,\n 1,\n jsonValue.byteOffset\n );\n }\n\n return jsonValue;\n }\n\n getPropertyArray(propertyName, componentType, componentLength) {\n const jsonValue = this.json[propertyName];\n\n if (jsonValue && Number.isFinite(jsonValue.byteOffset)) {\n if ('componentType' in jsonValue) {\n componentType = GLType.fromName(jsonValue.componentType);\n }\n return this._getTypedArrayFromBinary(\n propertyName,\n componentType,\n componentLength,\n this.featuresLength,\n jsonValue.byteOffset\n );\n }\n\n return this._getTypedArrayFromArray(propertyName, componentType, jsonValue);\n }\n\n getProperty(propertyName, componentType, componentLength, featureId, result) {\n const jsonValue = this.json[propertyName];\n if (!jsonValue) {\n return jsonValue;\n }\n\n const typedArray = this.getPropertyArray(propertyName, componentType, componentLength);\n\n if (componentLength === 1) {\n return typedArray[featureId];\n }\n\n for (let i = 0; i < componentLength; ++i) {\n result[i] = typedArray[componentLength * featureId + i];\n }\n\n return result;\n }\n\n // HELPERS\n\n _getTypedArrayFromBinary(propertyName, componentType, componentLength, count, byteOffset) {\n const cachedTypedArrays = this._cachedTypedArrays;\n let typedArray = cachedTypedArrays[propertyName];\n if (!typedArray) {\n typedArray = GLType.createTypedArray(\n componentType,\n this.buffer.buffer,\n this.buffer.byteOffset + byteOffset,\n count * componentLength\n );\n cachedTypedArrays[propertyName] = typedArray;\n }\n return typedArray;\n }\n\n _getTypedArrayFromArray(propertyName, componentType, array) {\n const cachedTypedArrays = this._cachedTypedArrays;\n let typedArray = cachedTypedArrays[propertyName];\n if (!typedArray) {\n typedArray = GLType.createTypedArray(componentType, array);\n cachedTypedArrays[propertyName] = typedArray;\n }\n return typedArray;\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TILE3D_OPTIMIZATION_HINT = exports.MAGIC_ARRAY = exports.TILE3D_TYPES = exports.TILE3D_TYPE = void 0;
6
+ exports.TILE3D_TYPES = exports.TILE3D_TYPE = exports.TILE3D_OPTIMIZATION_HINT = exports.MAGIC_ARRAY = void 0;
7
+
7
8
  var TILE3D_TYPE = {
8
9
  COMPOSITE: 'cmpt',
9
10
  POINT_CLOUD: 'pnts',
@@ -22,6 +23,7 @@ var MAGIC_ARRAY = {
22
23
  POINT_CLOUD: [112, 110, 116, 115],
23
24
  COMPOSITE: [99, 109, 112, 116]
24
25
  };
26
+
25
27
  exports.MAGIC_ARRAY = MAGIC_ARRAY;
26
28
  var TILE3D_OPTIMIZATION_HINT = {
27
29
  NOT_COMPUTED: -1,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/constants.ts"],"names":["TILE3D_TYPE","COMPOSITE","POINT_CLOUD","BATCHED_3D_MODEL","INSTANCED_3D_MODEL","GEOMETRY","VECTOR","GLTF","TILE3D_TYPES","Object","keys","MAGIC_ARRAY","BATCHED_MODEL","INSTANCED_MODEL","TILE3D_OPTIMIZATION_HINT","NOT_COMPUTED","USE_OPTIMIZATION","SKIP_OPTIMIZATION"],"mappings":";;;;;;AAEO,IAAMA,WAAW,GAAG;AACzBC,EAAAA,SAAS,EAAE,MADc;AAEzBC,EAAAA,WAAW,EAAE,MAFY;AAGzBC,EAAAA,gBAAgB,EAAE,MAHO;AAIzBC,EAAAA,kBAAkB,EAAE,MAJK;AAKzBC,EAAAA,QAAQ,EAAE,MALe;AAMzBC,EAAAA,MAAM,EAAE,MANiB;AAOzBC,EAAAA,IAAI,EAAE;AAPmB,CAApB;;AAUA,IAAMC,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYV,WAAZ,CAArB;;AAEA,IAAMW,WAAW,GAAG;AACzBC,EAAAA,aAAa,EAAE,CAAC,EAAD,EAAK,EAAL,EAAS,GAAT,EAAc,GAAd,CADU;AAEzBC,EAAAA,eAAe,EAAE,CAAC,GAAD,EAAM,EAAN,EAAU,GAAV,EAAe,GAAf,CAFQ;AAGzBX,EAAAA,WAAW,EAAE,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,CAHY;AAIzBD,EAAAA,SAAS,EAAE,CAAC,EAAD,EAAK,GAAL,EAAU,GAAV,EAAe,GAAf;AAJc,CAApB;;AAQA,IAAMa,wBAAwB,GAAG;AACtCC,EAAAA,YAAY,EAAE,CAAC,CADuB;AAEtCC,EAAAA,gBAAgB,EAAE,CAFoB;AAGtCC,EAAAA,iBAAiB,EAAE;AAHmB,CAAjC","sourcesContent":["// TILE TYPES\n\nexport const TILE3D_TYPE = {\n COMPOSITE: 'cmpt',\n POINT_CLOUD: 'pnts',\n BATCHED_3D_MODEL: 'b3dm',\n INSTANCED_3D_MODEL: 'i3dm',\n GEOMETRY: 'geom',\n VECTOR: 'vect',\n GLTF: 'glTF'\n};\n\nexport const TILE3D_TYPES = Object.keys(TILE3D_TYPE);\n\nexport const MAGIC_ARRAY = {\n BATCHED_MODEL: [98, 51, 100, 109],\n INSTANCED_MODEL: [105, 51, 100, 109],\n POINT_CLOUD: [112, 110, 116, 115],\n COMPOSITE: [99, 109, 112, 116]\n};\n\n// TILE CONSTANTS\nexport const TILE3D_OPTIMIZATION_HINT = {\n NOT_COMPUTED: -1,\n USE_OPTIMIZATION: 1,\n SKIP_OPTIMIZATION: 0\n};\n"],"file":"constants.js"}
1
+ {"version":3,"file":"constants.js","names":["TILE3D_TYPE","COMPOSITE","POINT_CLOUD","BATCHED_3D_MODEL","INSTANCED_3D_MODEL","GEOMETRY","VECTOR","GLTF","TILE3D_TYPES","Object","keys","MAGIC_ARRAY","BATCHED_MODEL","INSTANCED_MODEL","TILE3D_OPTIMIZATION_HINT","NOT_COMPUTED","USE_OPTIMIZATION","SKIP_OPTIMIZATION"],"sources":["../../../src/lib/constants.ts"],"sourcesContent":["// TILE TYPES\n\nexport const TILE3D_TYPE = {\n COMPOSITE: 'cmpt',\n POINT_CLOUD: 'pnts',\n BATCHED_3D_MODEL: 'b3dm',\n INSTANCED_3D_MODEL: 'i3dm',\n GEOMETRY: 'geom',\n VECTOR: 'vect',\n GLTF: 'glTF'\n};\n\nexport const TILE3D_TYPES = Object.keys(TILE3D_TYPE);\n\nexport const MAGIC_ARRAY = {\n BATCHED_MODEL: [98, 51, 100, 109],\n INSTANCED_MODEL: [105, 51, 100, 109],\n POINT_CLOUD: [112, 110, 116, 115],\n COMPOSITE: [99, 109, 112, 116]\n};\n\n// TILE CONSTANTS\nexport const TILE3D_OPTIMIZATION_HINT = {\n NOT_COMPUTED: -1,\n USE_OPTIMIZATION: 1,\n SKIP_OPTIMIZATION: 0\n};\n"],"mappings":";;;;;;;AAEO,IAAMA,WAAW,GAAG;EACzBC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,MAAM;EACnBC,gBAAgB,EAAE,MAAM;EACxBC,kBAAkB,EAAE,MAAM;EAC1BC,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE;AACR,CAAC;AAAC;AAEK,IAAMC,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACV,WAAW,CAAC;AAAC;AAE9C,IAAMW,WAAW,GAAG;EACzBC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;EACjCC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;EACpCX,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACjCD,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC/B,CAAC;;AAAC;AAGK,IAAMa,wBAAwB,GAAG;EACtCC,YAAY,EAAE,CAAC,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,iBAAiB,EAAE;AACrB,CAAC;AAAC"}
@@ -1,29 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.encodeBatchedModel3DTile = encodeBatchedModel3DTile;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _loaderUtils = require("@loaders.gl/loader-utils");
13
-
14
10
  var _constants = require("../constants");
15
-
16
11
  var _encode3dTileHeader = require("./helpers/encode-3d-tile-header");
17
-
18
- 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; }
19
-
20
- 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; }
21
-
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
14
  function encodeBatchedModel3DTile(tile, dataView, byteOffset, options) {
23
15
  var _tile = tile,
24
- _tile$featuresLength = _tile.featuresLength,
25
- featuresLength = _tile$featuresLength === void 0 ? 0 : _tile$featuresLength,
26
- batchTable = _tile.batchTable;
16
+ _tile$featuresLength = _tile.featuresLength,
17
+ featuresLength = _tile$featuresLength === void 0 ? 0 : _tile$featuresLength,
18
+ batchTable = _tile.batchTable;
27
19
  var featureTableJson = {
28
20
  BATCH_LENGTH: featuresLength
29
21
  };
@@ -31,12 +23,12 @@ function encodeBatchedModel3DTile(tile, dataView, byteOffset, options) {
31
23
  var batchTableJsonString = batchTable ? JSON.stringify(batchTable) : '';
32
24
  var featureTableJsonByteLength = (0, _loaderUtils.padToNBytes)(featureTableJsonString.length, 8);
33
25
  var batchTableJsonByteLength = batchTableJsonString ? (0, _loaderUtils.padToNBytes)(batchTableJsonString.length, 8) : 0;
26
+
34
27
  tile = _objectSpread({
35
28
  magic: _constants.MAGIC_ARRAY.BATCHED_MODEL
36
29
  }, tile);
37
30
  var byteOffsetStart = byteOffset;
38
31
  byteOffset = (0, _encode3dTileHeader.encode3DTileHeader)(tile, dataView, byteOffset);
39
-
40
32
  if (dataView) {
41
33
  dataView.setUint32(12, featureTableJsonByteLength, true);
42
34
  dataView.setUint32(16, 0, true);
@@ -45,14 +37,13 @@ function encodeBatchedModel3DTile(tile, dataView, byteOffset, options) {
45
37
  }
46
38
 
47
39
  byteOffset += 16;
48
- byteOffset = (0, _loaderUtils.copyPaddedStringToDataView)(dataView, byteOffset, featureTableJsonString, 8);
49
40
 
41
+ byteOffset = (0, _loaderUtils.copyPaddedStringToDataView)(dataView, byteOffset, featureTableJsonString, 8);
50
42
  if (batchTable) {
51
43
  byteOffset = (0, _loaderUtils.copyPaddedStringToDataView)(dataView, byteOffset, batchTableJsonString, 8);
52
44
  }
53
45
 
54
46
  var gltfEncoded = tile.gltfEncoded;
55
-
56
47
  if (gltfEncoded) {
57
48
  byteOffset = (0, _loaderUtils.copyBinaryToDataView)(dataView, byteOffset, gltfEncoded, gltfEncoded.byteLength);
58
49
  }