earthsdk3-assets 3.0.4 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/assets/gaussianSplatting/gaussianSplatSorter.js +43 -300
  2. package/assets/gaussianSplatting/gaussianSplatTextureGenerator.js +56 -105
  3. package/assets/gaussianSplatting/wasm_splats_bg.wasm +0 -0
  4. package/assets/img/skybox/baiyun/bottom.png +0 -0
  5. package/assets/img/skybox/baiyun/east.png +0 -0
  6. package/assets/img/skybox/baiyun/north.png +0 -0
  7. package/assets/img/skybox/baiyun/south.png +0 -0
  8. package/assets/img/skybox/baiyun/top.png +0 -0
  9. package/assets/img/skybox/baiyun/west.png +0 -0
  10. package/assets/img/skybox/clearSky/bottom.png +0 -0
  11. package/assets/img/skybox/clearSky/east.png +0 -0
  12. package/assets/img/skybox/clearSky/north.png +0 -0
  13. package/assets/img/skybox/clearSky/south.png +0 -0
  14. package/assets/img/skybox/clearSky/top.png +0 -0
  15. package/assets/img/skybox/clearSky/west.png +0 -0
  16. package/assets/img/skybox/dream/bottom.png +0 -0
  17. package/assets/img/skybox/dream/east.png +0 -0
  18. package/assets/img/skybox/dream/north.png +0 -0
  19. package/assets/img/skybox/dream/south.png +0 -0
  20. package/assets/img/skybox/dream/top.png +0 -0
  21. package/assets/img/skybox/dream/west.png +0 -0
  22. package/assets/img/skybox/starrySky/bottom.png +0 -0
  23. package/assets/img/skybox/starrySky/east.png +0 -0
  24. package/assets/img/skybox/starrySky/north.png +0 -0
  25. package/assets/img/skybox/starrySky/south.png +0 -0
  26. package/assets/img/skybox/starrySky/top.png +0 -0
  27. package/assets/img/skybox/starrySky/west.png +0 -0
  28. package/assets/img/skybox/sunSets/bottom.png +0 -0
  29. package/assets/img/skybox/sunSets/east.png +0 -0
  30. package/assets/img/skybox/sunSets/north.png +0 -0
  31. package/assets/img/skybox/sunSets/south.png +0 -0
  32. package/assets/img/skybox/sunSets/top.png +0 -0
  33. package/assets/img/skybox/sunSets/west.png +0 -0
  34. package/assets/img/skybox/sunnySky/bottom.png +0 -0
  35. package/assets/img/skybox/sunnySky/east.png +0 -0
  36. package/assets/img/skybox/sunnySky/north.png +0 -0
  37. package/assets/img/skybox/sunnySky/south.png +0 -0
  38. package/assets/img/skybox/sunnySky/top.png +0 -0
  39. package/assets/img/skybox/sunnySky/west.png +0 -0
  40. package/package.json +1 -1
  41. package/assets/img/skybox/baiyun/bottom.jpg +0 -0
  42. package/assets/img/skybox/baiyun/east.jpg +0 -0
  43. package/assets/img/skybox/baiyun/north.jpg +0 -0
  44. package/assets/img/skybox/baiyun/south.jpg +0 -0
  45. package/assets/img/skybox/baiyun/top.jpg +0 -0
  46. package/assets/img/skybox/baiyun/west.jpg +0 -0
  47. package/assets/img/skybox/clearSky/bottom.jpg +0 -0
  48. package/assets/img/skybox/clearSky/east.jpg +0 -0
  49. package/assets/img/skybox/clearSky/north.jpg +0 -0
  50. package/assets/img/skybox/clearSky/south.jpg +0 -0
  51. package/assets/img/skybox/clearSky/top.jpg +0 -0
  52. package/assets/img/skybox/clearSky/west.jpg +0 -0
  53. package/assets/img/skybox/dream/bottom.jpg +0 -0
  54. package/assets/img/skybox/dream/east.jpg +0 -0
  55. package/assets/img/skybox/dream/north.jpg +0 -0
  56. package/assets/img/skybox/dream/south.jpg +0 -0
  57. package/assets/img/skybox/dream/top.jpg +0 -0
  58. package/assets/img/skybox/dream/west.jpg +0 -0
  59. package/assets/img/skybox/starrySky/bottom.jpg +0 -0
  60. package/assets/img/skybox/starrySky/east.jpg +0 -0
  61. package/assets/img/skybox/starrySky/north.jpg +0 -0
  62. package/assets/img/skybox/starrySky/south.jpg +0 -0
  63. package/assets/img/skybox/starrySky/top.jpg +0 -0
  64. package/assets/img/skybox/starrySky/west.jpg +0 -0
  65. package/assets/img/skybox/sunSets/bottom.jpg +0 -0
  66. package/assets/img/skybox/sunSets/east.jpg +0 -0
  67. package/assets/img/skybox/sunSets/north.jpg +0 -0
  68. package/assets/img/skybox/sunSets/south.jpg +0 -0
  69. package/assets/img/skybox/sunSets/top.jpg +0 -0
  70. package/assets/img/skybox/sunSets/west.jpg +0 -0
  71. package/assets/img/skybox/sunnySky/bottom.jpg +0 -0
  72. package/assets/img/skybox/sunnySky/east.jpg +0 -0
  73. package/assets/img/skybox/sunnySky/north.jpg +0 -0
  74. package/assets/img/skybox/sunnySky/south.jpg +0 -0
  75. package/assets/img/skybox/sunnySky/top.jpg +0 -0
  76. package/assets/img/skybox/sunnySky/west.jpg +0 -0
@@ -122,55 +122,8 @@ function createTaskProcessorWorker(workerFunction) {
122
122
  self.onmessageerror = onMessageErrorHandler;
123
123
  return self;
124
124
  }
125
-
126
- /**
127
- * A function that performs a calculation in a Web Worker.
128
- * @callback createTaskProcessorWorker.WorkerFunction
129
- *
130
- * @param {object} parameters Parameters to the calculation.
131
- * @param {Array} transferableObjects An array that should be filled with references to objects inside
132
- * the result that should be transferred back to the main document instead of copied.
133
- * @returns {object} The result of the calculation.
134
- *
135
- * @example
136
- * function calculate(parameters, transferableObjects) {
137
- * // perform whatever calculation is necessary.
138
- * const typedArray = new Float32Array(0);
139
- *
140
- * // typed arrays are transferable
141
- * transferableObjects.push(typedArray)
142
- *
143
- * return {
144
- * typedArray : typedArray
145
- * };
146
- * }
147
- */
148
-
149
- /**
150
- * A Web Worker message event handler function that handles the interaction with TaskProcessor,
151
- * specifically, task ID management and posting a response message containing the result.
152
- * @callback createTaskProcessorWorker.TaskProcessorWorkerFunction
153
- *
154
- * @param {object} event The onmessage event object.
155
- */
156
-
157
125
  let wasm;
158
126
 
159
- function addToExternrefTable0(obj) {
160
- const idx = wasm.__externref_table_alloc();
161
- wasm.__wbindgen_export_2.set(idx, obj);
162
- return idx;
163
- }
164
-
165
- function handleError(f, args) {
166
- try {
167
- return f.apply(this, args);
168
- } catch (e) {
169
- const idx = addToExternrefTable0(e);
170
- wasm.__wbindgen_exn_store(idx);
171
- }
172
- }
173
-
174
127
  const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } });
175
128
 
176
129
  if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };
@@ -213,212 +166,52 @@ function passArray32ToWasm0(arg, malloc) {
213
166
  }
214
167
 
215
168
  function takeFromExternrefTable0(idx) {
216
- const value = wasm.__wbindgen_export_2.get(idx);
169
+ const value = wasm.__wbindgen_export_0.get(idx);
217
170
  wasm.__externref_table_dealloc(idx);
218
171
  return value;
219
172
  }
220
173
  /**
174
+ * Generate a splat texture from the given attributes.
175
+ *
176
+ * Wraps the [`texture_gen::generate_texture_from_attrs`] function for access from JavaScript.
221
177
  * @param {Float32Array} positions
222
178
  * @param {Float32Array} scales
223
- * @param {Float32Array} rots
179
+ * @param {Float32Array} rotations
224
180
  * @param {Uint8Array} colors
225
181
  * @param {number} count
226
182
  * @returns {TextureData}
227
183
  */
228
- export function generate_texture_from_attrs(positions, scales, rots, colors, count) {
229
- const ret = wasm.generate_texture_from_attrs(positions, scales, rots, colors, count);
184
+ export function generate_splat_texture(positions, scales, rotations, colors, count) {
185
+ const ret = wasm.generate_splat_texture(positions, scales, rotations, colors, count);
230
186
  if (ret[2]) {
231
187
  throw takeFromExternrefTable0(ret[1]);
232
188
  }
233
189
  return TextureData.__wrap(ret[0]);
234
190
  }
235
191
 
236
- let cachedFloat32ArrayMemory0 = null;
237
-
238
- function getFloat32ArrayMemory0() {
239
- if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
240
- cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
241
- }
242
- return cachedFloat32ArrayMemory0;
243
- }
244
-
245
- function passArrayF32ToWasm0(arg, malloc) {
246
- const ptr = malloc(arg.length * 4, 4) >>> 0;
247
- getFloat32ArrayMemory0().set(arg, ptr / 4);
248
- WASM_VECTOR_LEN = arg.length;
249
- return ptr;
250
- }
251
-
252
- function passArray8ToWasm0(arg, malloc) {
253
- const ptr = malloc(arg.length * 1, 1) >>> 0;
254
- getUint8ArrayMemory0().set(arg, ptr / 1);
255
- WASM_VECTOR_LEN = arg.length;
256
- return ptr;
257
- }
258
-
259
- function _assertClass(instance, klass) {
260
- if (!(instance instanceof klass)) {
261
- throw new Error(`expected instance of ${klass.name}`);
262
- }
263
- }
264
192
  /**
265
- * @param {GSplatData} data
266
- */
267
- export function radix_sort_simd(data) {
268
- _assertClass(data, GSplatData);
269
- const ret = wasm.radix_sort_simd(data.__wbg_ptr);
270
- if (ret[1]) {
271
- throw takeFromExternrefTable0(ret[0]);
272
- }
273
- }
274
-
275
- /**
276
- * @param {Float32Array} positions
277
- * @param {Float32Array} scales
278
- * @param {Float32Array} rotations
279
- * @param {Uint8Array} colors
280
- * @param {Float32Array} model_view
281
- * @param {number} count
282
- * @returns {Array<any>}
283
- */
284
- export function radix_sort_gaussians_attrs(positions, scales, rotations, colors, model_view, count) {
285
- const ret = wasm.radix_sort_gaussians_attrs(positions, scales, rotations, colors, model_view, count);
286
- if (ret[2]) {
287
- throw takeFromExternrefTable0(ret[1]);
288
- }
289
- return takeFromExternrefTable0(ret[0]);
290
- }
291
-
292
- /**
293
- * @param {Float32Array} positions
294
- * @param {Float32Array} model_view
295
- * @param {number} texture_width
193
+ * Sorts the Gaussian Splats by depth using a radix sort.
194
+ *
195
+ * Wraps the [`radix::radix_sort_gaussians_indexes`] function for access from JavaScript.
196
+ * @param {Float32Array} positions_arr
197
+ * @param {Float32Array} model_view_arr
296
198
  * @param {number} count
297
199
  * @returns {Uint32Array}
298
200
  */
299
- export function radix_sort_gaussians_indexes(positions, model_view, texture_width, count) {
300
- const ret = wasm.radix_sort_gaussians_indexes(positions, model_view, texture_width, count);
201
+ export function radix_sort_gaussians_indexes(positions_arr, model_view_arr, count) {
202
+ const ret = wasm.radix_sort_gaussians_indexes(positions_arr, model_view_arr, count);
301
203
  if (ret[2]) {
302
204
  throw takeFromExternrefTable0(ret[1]);
303
205
  }
304
206
  return takeFromExternrefTable0(ret[0]);
305
207
  }
306
208
 
307
- /**
308
- * @param {Float32Array} positions
309
- * @param {Float32Array} scales
310
- * @param {Float32Array} rotations
311
- * @param {Uint8Array} colors
312
- * @param {number} count
313
- * @returns {object}
314
- */
315
- export function generate_splat_texture_from_attrs(positions, scales, rotations, colors, count) {
316
- const ret = wasm.generate_splat_texture_from_attrs(positions, scales, rotations, colors, count);
317
- if (ret[2]) {
318
- throw takeFromExternrefTable0(ret[1]);
319
- }
320
- return takeFromExternrefTable0(ret[0]);
321
- }
322
-
323
- const GSplatDataFinalization = (typeof FinalizationRegistry === 'undefined')
324
- ? { register: () => { }, unregister: () => { } }
325
- : new FinalizationRegistry(ptr => wasm.__wbg_gsplatdata_free(ptr >>> 0, 1));
326
-
327
- export class GSplatData {
328
-
329
- static __wrap(ptr) {
330
- ptr = ptr >>> 0;
331
- const obj = Object.create(GSplatData.prototype);
332
- obj.__wbg_ptr = ptr;
333
- GSplatDataFinalization.register(obj, obj.__wbg_ptr, obj);
334
- return obj;
335
- }
336
-
337
- __destroy_into_raw() {
338
- const ptr = this.__wbg_ptr;
339
- this.__wbg_ptr = 0;
340
- GSplatDataFinalization.unregister(this);
341
- return ptr;
342
- }
343
-
344
- free() {
345
- const ptr = this.__destroy_into_raw();
346
- wasm.__wbg_gsplatdata_free(ptr, 0);
347
- }
348
- /**
349
- * @param {Float32Array} positions
350
- * @param {Float32Array} scales
351
- * @param {Float32Array} rotations
352
- * @param {Uint8Array} colors
353
- * @param {Float32Array} model_view
354
- * @param {number} count
355
- */
356
- constructor(positions, scales, rotations, colors, model_view, count) {
357
- const ptr0 = passArrayF32ToWasm0(positions, wasm.__wbindgen_malloc);
358
- const len0 = WASM_VECTOR_LEN;
359
- const ptr1 = passArrayF32ToWasm0(scales, wasm.__wbindgen_malloc);
360
- const len1 = WASM_VECTOR_LEN;
361
- const ptr2 = passArrayF32ToWasm0(rotations, wasm.__wbindgen_malloc);
362
- const len2 = WASM_VECTOR_LEN;
363
- const ptr3 = passArray8ToWasm0(colors, wasm.__wbindgen_malloc);
364
- const len3 = WASM_VECTOR_LEN;
365
- const ptr4 = passArrayF32ToWasm0(model_view, wasm.__wbindgen_malloc);
366
- const len4 = WASM_VECTOR_LEN;
367
- const ret = wasm.gsplatdata_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, count);
368
- this.__wbg_ptr = ret >>> 0;
369
- GSplatDataFinalization.register(this, this.__wbg_ptr, this);
370
- return this;
371
- }
372
- /**
373
- * @param {Float32Array} positions
374
- * @param {Float32Array} scales
375
- * @param {Float32Array} rotations
376
- * @param {Uint8Array} colors
377
- * @param {Float32Array} model_view
378
- * @param {number} count
379
- * @returns {GSplatData}
380
- */
381
- static fromFloat32Arrays(positions, scales, rotations, colors, model_view, count) {
382
- const ret = wasm.gsplatdata_fromFloat32Arrays(positions, scales, rotations, colors, model_view, count);
383
- if (ret[2]) {
384
- throw takeFromExternrefTable0(ret[1]);
385
- }
386
- return GSplatData.__wrap(ret[0]);
387
- }
388
- /**
389
- * @returns {Float32Array}
390
- */
391
- getPositions() {
392
- const ret = wasm.gsplatdata_getPositions(this.__wbg_ptr);
393
- return ret;
394
- }
395
- /**
396
- * @returns {Float32Array}
397
- */
398
- getScales() {
399
- const ret = wasm.gsplatdata_getScales(this.__wbg_ptr);
400
- return ret;
401
- }
402
- /**
403
- * @returns {Float32Array}
404
- */
405
- getRotations() {
406
- const ret = wasm.gsplatdata_getRotations(this.__wbg_ptr);
407
- return ret;
408
- }
409
- /**
410
- * @returns {Uint8Array}
411
- */
412
- getColors() {
413
- const ret = wasm.gsplatdata_getColors(this.__wbg_ptr);
414
- return ret;
415
- }
416
- }
417
-
418
209
  const TextureDataFinalization = (typeof FinalizationRegistry === 'undefined')
419
210
  ? { register: () => { }, unregister: () => { } }
420
211
  : new FinalizationRegistry(ptr => wasm.__wbg_texturedata_free(ptr >>> 0, 1));
421
-
212
+ /**
213
+ * A structure representing texture data. This is used to pass the texture data from generation in [`texture_gen`] to the JavaScript side.
214
+ */
422
215
  export class TextureData {
423
216
 
424
217
  static __wrap(ptr) {
@@ -441,6 +234,7 @@ export class TextureData {
441
234
  wasm.__wbg_texturedata_free(ptr, 0);
442
235
  }
443
236
  /**
237
+ * Getter for the underlying texture data. Always returns a copy.
444
238
  * @returns {Uint32Array}
445
239
  */
446
240
  get data() {
@@ -450,6 +244,7 @@ export class TextureData {
450
244
  return v1;
451
245
  }
452
246
  /**
247
+ * Getter for the width of the texture in pixels.
453
248
  * @returns {number}
454
249
  */
455
250
  get width() {
@@ -457,6 +252,7 @@ export class TextureData {
457
252
  return ret >>> 0;
458
253
  }
459
254
  /**
255
+ * Getter for the height of the texture in pixels.
460
256
  * @returns {number}
461
257
  */
462
258
  get height() {
@@ -464,6 +260,7 @@ export class TextureData {
464
260
  return ret >>> 0;
465
261
  }
466
262
  /**
263
+ * Creates a new texture data object with the underlying data, width, and height.
467
264
  * @param {Uint32Array} data
468
265
  * @param {number} width
469
266
  * @param {number} height
@@ -511,83 +308,42 @@ async function __wbg_load(module, imports) {
511
308
  function __wbg_get_imports() {
512
309
  const imports = {};
513
310
  imports.wbg = {};
514
- imports.wbg.__wbg_buffer_61b7ce01341d7f88 = function (arg0) {
311
+ imports.wbg.__wbg_buffer_609cc3eee51ed158 = function (arg0) {
515
312
  const ret = arg0.buffer;
516
313
  return ret;
517
314
  };
518
- imports.wbg.__wbg_length_65d1cd11729ced11 = function (arg0) {
519
- const ret = arg0.length;
520
- return ret;
521
- };
522
- imports.wbg.__wbg_length_81a294bd2038fd26 = function (arg0) {
315
+ imports.wbg.__wbg_length_3b4f022188ae8db6 = function (arg0) {
523
316
  const ret = arg0.length;
524
317
  return ret;
525
318
  };
526
- imports.wbg.__wbg_length_9d7c41656543fe86 = function (arg0) {
319
+ imports.wbg.__wbg_length_a446193dc22c12f8 = function (arg0) {
527
320
  const ret = arg0.length;
528
321
  return ret;
529
322
  };
530
- imports.wbg.__wbg_new_254fa9eac11932ae = function () {
531
- const ret = new Array();
323
+ imports.wbg.__wbg_new_780abee5c1739fd7 = function (arg0) {
324
+ const ret = new Float32Array(arg0);
532
325
  return ret;
533
326
  };
534
- imports.wbg.__wbg_new_3ff5b33b1ce712df = function (arg0) {
327
+ imports.wbg.__wbg_new_a12002a7f91c75be = function (arg0) {
535
328
  const ret = new Uint8Array(arg0);
536
329
  return ret;
537
330
  };
538
- imports.wbg.__wbg_new_688846f374351c92 = function () {
539
- const ret = new Object();
331
+ imports.wbg.__wbg_new_e3b321dcfef89fc7 = function (arg0) {
332
+ const ret = new Uint32Array(arg0);
540
333
  return ret;
541
334
  };
542
- imports.wbg.__wbg_new_b9ea1588c9985b80 = function (arg0) {
543
- const ret = new Float32Array(arg0);
544
- return ret;
545
- };
546
- imports.wbg.__wbg_newwithbyteoffsetandlength_5910bdf845a168eb = function (arg0, arg1, arg2) {
335
+ imports.wbg.__wbg_newwithbyteoffsetandlength_f1dead44d1fc7212 = function (arg0, arg1, arg2) {
547
336
  const ret = new Uint32Array(arg0, arg1 >>> 0, arg2 >>> 0);
548
337
  return ret;
549
338
  };
550
- imports.wbg.__wbg_newwithbyteoffsetandlength_ba35896968751d91 = function (arg0, arg1, arg2) {
551
- const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);
552
- return ret;
553
- };
554
- imports.wbg.__wbg_newwithbyteoffsetandlength_f113a96374814bb2 = function (arg0, arg1, arg2) {
555
- const ret = new Float32Array(arg0, arg1 >>> 0, arg2 >>> 0);
556
- return ret;
557
- };
558
- imports.wbg.__wbg_newwithlength_1761a9eb039ca429 = function (arg0) {
559
- const ret = new Uint32Array(arg0 >>> 0);
560
- return ret;
561
- };
562
- imports.wbg.__wbg_newwithlength_34ce8f1051e74449 = function (arg0) {
563
- const ret = new Uint8Array(arg0 >>> 0);
564
- return ret;
565
- };
566
- imports.wbg.__wbg_newwithlength_ed665315b76ec334 = function (arg0) {
567
- const ret = new Float32Array(arg0 >>> 0);
568
- return ret;
569
- };
570
- imports.wbg.__wbg_push_6edad0df4b546b2c = function (arg0, arg1) {
571
- const ret = arg0.push(arg1);
572
- return ret;
573
- };
574
- imports.wbg.__wbg_set_23d69db4e5c66a6e = function (arg0, arg1, arg2) {
339
+ imports.wbg.__wbg_set_10bad9bee0e9c58b = function (arg0, arg1, arg2) {
575
340
  arg0.set(arg1, arg2 >>> 0);
576
341
  };
577
- imports.wbg.__wbg_set_4474fae9281eafb1 = function (arg0, arg1, arg2) {
578
- arg0.set(arg1, arg2 >>> 0);
579
- };
580
- imports.wbg.__wbg_set_4e647025551483bd = function () {
581
- return handleError(function (arg0, arg1, arg2) {
582
- const ret = Reflect.set(arg0, arg1, arg2);
583
- return ret;
584
- }, arguments)
585
- };
586
- imports.wbg.__wbg_set_d2ca640bc040b031 = function (arg0, arg1, arg2) {
342
+ imports.wbg.__wbg_set_65595bdd868b3009 = function (arg0, arg1, arg2) {
587
343
  arg0.set(arg1, arg2 >>> 0);
588
344
  };
589
345
  imports.wbg.__wbindgen_init_externref_table = function () {
590
- const table = wasm.__wbindgen_export_2;
346
+ const table = wasm.__wbindgen_export_0;
591
347
  const offset = table.grow(4);
592
348
  table.set(0, undefined);
593
349
  table.set(offset + 0, undefined);
@@ -600,10 +356,6 @@ function __wbg_get_imports() {
600
356
  const ret = wasm.memory;
601
357
  return ret;
602
358
  };
603
- imports.wbg.__wbindgen_number_new = function (arg0) {
604
- const ret = arg0;
605
- return ret;
606
- };
607
359
  imports.wbg.__wbindgen_string_new = function (arg0, arg1) {
608
360
  const ret = getStringFromWasm0(arg0, arg1);
609
361
  return ret;
@@ -622,7 +374,6 @@ function __wbg_init_memory(imports, memory) {
622
374
  function __wbg_finalize_init(instance, module) {
623
375
  wasm = instance.exports;
624
376
  __wbg_init.__wbindgen_wasm_module = module;
625
- cachedFloat32ArrayMemory0 = null;
626
377
  cachedUint32ArrayMemory0 = null;
627
378
  cachedUint8ArrayMemory0 = null;
628
379
 
@@ -669,7 +420,7 @@ async function __wbg_init(module_or_path) {
669
420
  }
670
421
 
671
422
  if (typeof module_or_path === 'undefined') {
672
- module_or_path = new URL('http://localhost:9004/wasm_splats_bg.wasm', import.meta.url);
423
+ module_or_path = new URL('wasm_splats_bg.wasm', import.meta.url);
673
424
  }
674
425
  const imports = __wbg_get_imports();
675
426
 
@@ -684,7 +435,6 @@ async function __wbg_init(module_or_path) {
684
435
  return __wbg_finalize_init(instance, module);
685
436
  }
686
437
 
687
-
688
438
  //load built wasm modules for sorting. Ensure we can load webassembly and we support SIMD.
689
439
  async function initWorker(parameters, transferableObjects) {
690
440
  // Require and compile WebAssembly module, or use fallback if not supported
@@ -695,7 +445,6 @@ async function initWorker(parameters, transferableObjects) {
695
445
  }
696
446
  }
697
447
 
698
- const TEXTURE_WIDTH = 2048;
699
448
 
700
449
  function generateGaussianSortWorker(parameters, transferableObjects) {
701
450
  // Handle initialization
@@ -706,27 +455,21 @@ function generateGaussianSortWorker(parameters, transferableObjects) {
706
455
 
707
456
  const { primitive, sortType } = parameters;
708
457
 
709
- if (sortType === "Attribute") {
710
- return radix_sort_gaussians_attrs(
711
- primitive.attributes,
712
- primitive.modelView,
713
- primitive.count,
714
- );
715
- } else if (sortType === "Index") {
716
- return radix_sort_gaussians_indexes(
717
- primitive.positions,
718
- primitive.modelView,
719
- TEXTURE_WIDTH,
720
- primitive.count,
721
- );
722
- } else if (sortType === "SIMD Index") {
458
+ if (sortType === "Index") {
723
459
  return radix_sort_gaussians_indexes(
724
460
  primitive.positions,
725
461
  primitive.modelView,
726
- TEXTURE_WIDTH,
727
462
  primitive.count,
728
463
  );
729
464
  }
465
+ // else if (sortType === "SIMD Index") {
466
+ // return radix_sort_gaussians_indexes(
467
+ // primitive.positions,
468
+ // primitive.modelView,
469
+ // TEXTURE_WIDTH,
470
+ // primitive.count,
471
+ // );
472
+ // }
730
473
  }
731
474
 
732
475
  export default createTaskProcessorWorker(generateGaussianSortWorker);
@@ -73,22 +73,8 @@ function createTaskProcessorWorker(workerFunction) {
73
73
  self.onmessageerror = onMessageErrorHandler;
74
74
  return self;
75
75
  }
76
- let wasm;
77
-
78
- function addToExternrefTable0(obj) {
79
- const idx = wasm.__externref_table_alloc();
80
- wasm.__wbindgen_export_2.set(idx, obj);
81
- return idx;
82
- }
83
76
 
84
- function handleError(f, args) {
85
- try {
86
- return f.apply(this, args);
87
- } catch (e) {
88
- const idx = addToExternrefTable0(e);
89
- wasm.__wbindgen_exn_store(idx);
90
- }
91
- }
77
+ let wasm;
92
78
 
93
79
  const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } });
94
80
 
@@ -132,47 +118,53 @@ function passArray32ToWasm0(arg, malloc) {
132
118
  }
133
119
 
134
120
  function takeFromExternrefTable0(idx) {
135
- const value = wasm.__wbindgen_export_2.get(idx);
121
+ const value = wasm.__wbindgen_export_0.get(idx);
136
122
  wasm.__externref_table_dealloc(idx);
137
123
  return value;
138
124
  }
139
-
140
- function generate_texture_from_attrs(positions, scales, rots, colors, count) {
141
- const ret = wasm.generate_texture_from_attrs(positions, scales, rots, colors, count);
125
+ /**
126
+ * Generate a splat texture from the given attributes.
127
+ *
128
+ * Wraps the [`texture_gen::generate_texture_from_attrs`] function for access from JavaScript.
129
+ * @param {Float32Array} positions
130
+ * @param {Float32Array} scales
131
+ * @param {Float32Array} rotations
132
+ * @param {Uint8Array} colors
133
+ * @param {number} count
134
+ * @returns {TextureData}
135
+ */
136
+ export function generate_splat_texture(positions, scales, rotations, colors, count) {
137
+ const ret = wasm.generate_splat_texture(positions, scales, rotations, colors, count);
142
138
  if (ret[2]) {
143
139
  throw takeFromExternrefTable0(ret[1]);
144
140
  }
145
141
  return TextureData.__wrap(ret[0]);
146
142
  }
147
143
 
148
- let cachedFloat32ArrayMemory0 = null;
149
-
150
- function getFloat32ArrayMemory0() {
151
- if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
152
- cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
144
+ /**
145
+ * Sorts the Gaussian Splats by depth using a radix sort.
146
+ *
147
+ * Wraps the [`radix::radix_sort_gaussians_indexes`] function for access from JavaScript.
148
+ * @param {Float32Array} positions_arr
149
+ * @param {Float32Array} model_view_arr
150
+ * @param {number} count
151
+ * @returns {Uint32Array}
152
+ */
153
+ export function radix_sort_gaussians_indexes(positions_arr, model_view_arr, count) {
154
+ const ret = wasm.radix_sort_gaussians_indexes(positions_arr, model_view_arr, count);
155
+ if (ret[2]) {
156
+ throw takeFromExternrefTable0(ret[1]);
153
157
  }
154
- return cachedFloat32ArrayMemory0;
155
- }
156
-
157
- function passArrayF32ToWasm0(arg, malloc) {
158
- const ptr = malloc(arg.length * 4, 4) >>> 0;
159
- getFloat32ArrayMemory0().set(arg, ptr / 4);
160
- WASM_VECTOR_LEN = arg.length;
161
- return ptr;
162
- }
163
-
164
- function passArray8ToWasm0(arg, malloc) {
165
- const ptr = malloc(arg.length * 1, 1) >>> 0;
166
- getUint8ArrayMemory0().set(arg, ptr / 1);
167
- WASM_VECTOR_LEN = arg.length;
168
- return ptr;
158
+ return takeFromExternrefTable0(ret[0]);
169
159
  }
170
160
 
171
161
  const TextureDataFinalization = (typeof FinalizationRegistry === 'undefined')
172
162
  ? { register: () => { }, unregister: () => { } }
173
163
  : new FinalizationRegistry(ptr => wasm.__wbg_texturedata_free(ptr >>> 0, 1));
174
-
175
- class TextureData {
164
+ /**
165
+ * A structure representing texture data. This is used to pass the texture data from generation in [`texture_gen`] to the JavaScript side.
166
+ */
167
+ export class TextureData {
176
168
 
177
169
  static __wrap(ptr) {
178
170
  ptr = ptr >>> 0;
@@ -194,6 +186,7 @@ class TextureData {
194
186
  wasm.__wbg_texturedata_free(ptr, 0);
195
187
  }
196
188
  /**
189
+ * Getter for the underlying texture data. Always returns a copy.
197
190
  * @returns {Uint32Array}
198
191
  */
199
192
  get data() {
@@ -203,6 +196,7 @@ class TextureData {
203
196
  return v1;
204
197
  }
205
198
  /**
199
+ * Getter for the width of the texture in pixels.
206
200
  * @returns {number}
207
201
  */
208
202
  get width() {
@@ -210,6 +204,7 @@ class TextureData {
210
204
  return ret >>> 0;
211
205
  }
212
206
  /**
207
+ * Getter for the height of the texture in pixels.
213
208
  * @returns {number}
214
209
  */
215
210
  get height() {
@@ -217,6 +212,7 @@ class TextureData {
217
212
  return ret >>> 0;
218
213
  }
219
214
  /**
215
+ * Creates a new texture data object with the underlying data, width, and height.
220
216
  * @param {Uint32Array} data
221
217
  * @param {number} width
222
218
  * @param {number} height
@@ -264,83 +260,42 @@ async function __wbg_load(module, imports) {
264
260
  function __wbg_get_imports() {
265
261
  const imports = {};
266
262
  imports.wbg = {};
267
- imports.wbg.__wbg_buffer_61b7ce01341d7f88 = function(arg0) {
263
+ imports.wbg.__wbg_buffer_609cc3eee51ed158 = function (arg0) {
268
264
  const ret = arg0.buffer;
269
265
  return ret;
270
266
  };
271
- imports.wbg.__wbg_length_65d1cd11729ced11 = function(arg0) {
272
- const ret = arg0.length;
273
- return ret;
274
- };
275
- imports.wbg.__wbg_length_81a294bd2038fd26 = function(arg0) {
267
+ imports.wbg.__wbg_length_3b4f022188ae8db6 = function (arg0) {
276
268
  const ret = arg0.length;
277
269
  return ret;
278
270
  };
279
- imports.wbg.__wbg_length_9d7c41656543fe86 = function(arg0) {
271
+ imports.wbg.__wbg_length_a446193dc22c12f8 = function (arg0) {
280
272
  const ret = arg0.length;
281
273
  return ret;
282
274
  };
283
- imports.wbg.__wbg_new_254fa9eac11932ae = function() {
284
- const ret = new Array();
275
+ imports.wbg.__wbg_new_780abee5c1739fd7 = function (arg0) {
276
+ const ret = new Float32Array(arg0);
285
277
  return ret;
286
278
  };
287
- imports.wbg.__wbg_new_3ff5b33b1ce712df = function(arg0) {
279
+ imports.wbg.__wbg_new_a12002a7f91c75be = function (arg0) {
288
280
  const ret = new Uint8Array(arg0);
289
281
  return ret;
290
282
  };
291
- imports.wbg.__wbg_new_688846f374351c92 = function() {
292
- const ret = new Object();
293
- return ret;
294
- };
295
- imports.wbg.__wbg_new_b9ea1588c9985b80 = function(arg0) {
296
- const ret = new Float32Array(arg0);
283
+ imports.wbg.__wbg_new_e3b321dcfef89fc7 = function (arg0) {
284
+ const ret = new Uint32Array(arg0);
297
285
  return ret;
298
286
  };
299
- imports.wbg.__wbg_newwithbyteoffsetandlength_5910bdf845a168eb = function(arg0, arg1, arg2) {
287
+ imports.wbg.__wbg_newwithbyteoffsetandlength_f1dead44d1fc7212 = function (arg0, arg1, arg2) {
300
288
  const ret = new Uint32Array(arg0, arg1 >>> 0, arg2 >>> 0);
301
289
  return ret;
302
290
  };
303
- imports.wbg.__wbg_newwithbyteoffsetandlength_ba35896968751d91 = function(arg0, arg1, arg2) {
304
- const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);
305
- return ret;
306
- };
307
- imports.wbg.__wbg_newwithbyteoffsetandlength_f113a96374814bb2 = function(arg0, arg1, arg2) {
308
- const ret = new Float32Array(arg0, arg1 >>> 0, arg2 >>> 0);
309
- return ret;
310
- };
311
- imports.wbg.__wbg_newwithlength_1761a9eb039ca429 = function(arg0) {
312
- const ret = new Uint32Array(arg0 >>> 0);
313
- return ret;
314
- };
315
- imports.wbg.__wbg_newwithlength_34ce8f1051e74449 = function(arg0) {
316
- const ret = new Uint8Array(arg0 >>> 0);
317
- return ret;
318
- };
319
- imports.wbg.__wbg_newwithlength_ed665315b76ec334 = function(arg0) {
320
- const ret = new Float32Array(arg0 >>> 0);
321
- return ret;
322
- };
323
- imports.wbg.__wbg_push_6edad0df4b546b2c = function(arg0, arg1) {
324
- const ret = arg0.push(arg1);
325
- return ret;
326
- };
327
- imports.wbg.__wbg_set_23d69db4e5c66a6e = function(arg0, arg1, arg2) {
291
+ imports.wbg.__wbg_set_10bad9bee0e9c58b = function (arg0, arg1, arg2) {
328
292
  arg0.set(arg1, arg2 >>> 0);
329
293
  };
330
- imports.wbg.__wbg_set_4474fae9281eafb1 = function(arg0, arg1, arg2) {
294
+ imports.wbg.__wbg_set_65595bdd868b3009 = function (arg0, arg1, arg2) {
331
295
  arg0.set(arg1, arg2 >>> 0);
332
296
  };
333
- imports.wbg.__wbg_set_4e647025551483bd = function() {
334
- return handleError(function(arg0, arg1, arg2) {
335
- const ret = Reflect.set(arg0, arg1, arg2);
336
- return ret;
337
- }, arguments)
338
- };
339
- imports.wbg.__wbg_set_d2ca640bc040b031 = function(arg0, arg1, arg2) {
340
- arg0.set(arg1, arg2 >>> 0);
341
- };
342
- imports.wbg.__wbindgen_init_externref_table = function() {
343
- const table = wasm.__wbindgen_export_2;
297
+ imports.wbg.__wbindgen_init_externref_table = function () {
298
+ const table = wasm.__wbindgen_export_0;
344
299
  const offset = table.grow(4);
345
300
  table.set(0, undefined);
346
301
  table.set(offset + 0, undefined);
@@ -349,19 +304,15 @@ function __wbg_get_imports() {
349
304
  table.set(offset + 3, false);
350
305
  ;
351
306
  };
352
- imports.wbg.__wbindgen_memory = function() {
307
+ imports.wbg.__wbindgen_memory = function () {
353
308
  const ret = wasm.memory;
354
309
  return ret;
355
310
  };
356
- imports.wbg.__wbindgen_number_new = function(arg0) {
357
- const ret = arg0;
358
- return ret;
359
- };
360
- imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
311
+ imports.wbg.__wbindgen_string_new = function (arg0, arg1) {
361
312
  const ret = getStringFromWasm0(arg0, arg1);
362
313
  return ret;
363
314
  };
364
- imports.wbg.__wbindgen_throw = function(arg0, arg1) {
315
+ imports.wbg.__wbindgen_throw = function (arg0, arg1) {
365
316
  throw new Error(getStringFromWasm0(arg0, arg1));
366
317
  };
367
318
 
@@ -375,7 +326,6 @@ function __wbg_init_memory(imports, memory) {
375
326
  function __wbg_finalize_init(instance, module) {
376
327
  wasm = instance.exports;
377
328
  __wbg_init.__wbindgen_wasm_module = module;
378
- cachedFloat32ArrayMemory0 = null;
379
329
  cachedUint32ArrayMemory0 = null;
380
330
  cachedUint8ArrayMemory0 = null;
381
331
 
@@ -422,7 +372,7 @@ async function __wbg_init(module_or_path) {
422
372
  }
423
373
 
424
374
  if (typeof module_or_path === 'undefined') {
425
- module_or_path = new URL('http://localhost:9004/wasm_splats_bg.wasm', import.meta.url);
375
+ module_or_path = new URL('wasm_splats_bg.wasm', import.meta.url);
426
376
  }
427
377
  const imports = __wbg_get_imports();
428
378
 
@@ -436,6 +386,7 @@ async function __wbg_init(module_or_path) {
436
386
 
437
387
  return __wbg_finalize_init(instance, module);
438
388
  }
389
+
439
390
  //load built wasm modules for sorting. Ensure we can load webassembly and we support SIMD.
440
391
  async function initWorker(parameters, transferableObjects) {
441
392
  // Require and compile WebAssembly module, or use fallback if not supported
@@ -454,7 +405,7 @@ async function generateSplatTextureWorker(parameters, transferableObjects) {
454
405
  }
455
406
 
456
407
  const { attributes, count } = parameters;
457
- const result = generate_texture_from_attrs(
408
+ const result = generate_splat_texture(
458
409
  attributes.positions,
459
410
  attributes.scales,
460
411
  attributes.rotations,
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "earthsdk3-assets",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "description": "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",
5
5
  "main": "./earthsdk3-assets.js",
6
6
  "files": [
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file