chunk-2DNADSBR.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import {
  2. a2 as a
  3. } from "./chunk-XNLG7T2T.js";
  4. // node_modules/@arcgis/core/geometry/support/meshUtils/deduplicate.js
  5. function n(n2, f, i) {
  6. const u = n2.byteLength / (4 * f), c = new Uint32Array(n2, 0, u * f);
  7. let s = new Uint32Array(u);
  8. const a2 = i?.minReduction ?? 0, h = i?.originalIndices || null, g = h ? h.length : 0, y = i?.componentOffsets || null;
  9. let U = 0;
  10. if (y)
  11. for (let t = 0; t < y.length - 1; t++) {
  12. const n3 = y[t + 1] - y[t];
  13. n3 > U && (U = n3);
  14. }
  15. else
  16. U = u;
  17. const w = Math.floor(1.1 * U) + 1;
  18. (o == null || o.length < 2 * w) && (o = new Uint32Array(a(2 * w)));
  19. for (let t = 0; t < 2 * w; t++)
  20. o[t] = 0;
  21. let A = 0;
  22. const m = !!y && !!h, b = m ? g : u, d = m ? new Uint32Array(g) : null, p = 1.96;
  23. let M = a2 !== 0 ? Math.ceil(4 * p * p / (a2 * a2) * a2 * (1 - a2)) : b, q = 1, j = y ? y[1] : b;
  24. for (let t = 0; t < b; t++) {
  25. if (t === M) {
  26. const n4 = 1 - A / t;
  27. if (n4 + p * Math.sqrt(n4 * (1 - n4) / t) < a2)
  28. return null;
  29. M *= 2;
  30. }
  31. if (t === j) {
  32. for (let t2 = 0; t2 < 2 * w; t2++)
  33. o[t2] = 0;
  34. if (h)
  35. for (let t2 = y[q - 1]; t2 < y[q]; t2++)
  36. d[t2] = s[h[t2]];
  37. j = y[++q];
  38. }
  39. const n3 = m ? h[t] : t, r2 = n3 * f, i2 = l(c, r2, f);
  40. let u2 = i2 % w, g2 = A;
  41. for (; o[2 * u2 + 1] !== 0; ) {
  42. if (o[2 * u2] === i2) {
  43. const t2 = o[2 * u2 + 1] - 1;
  44. if (e(c, r2, t2 * f, f)) {
  45. g2 = s[t2];
  46. break;
  47. }
  48. }
  49. u2++, u2 >= w && (u2 -= w);
  50. }
  51. g2 === A && (o[2 * u2] = i2, o[2 * u2 + 1] = n3 + 1, A++), s[n3] = g2;
  52. }
  53. if (a2 !== 0 && 1 - A / u < a2)
  54. return null;
  55. if (m) {
  56. for (let t = y[q - 1]; t < d.length; t++)
  57. d[t] = s[h[t]];
  58. s = d;
  59. }
  60. const k = new Uint32Array(f * A);
  61. A = 0;
  62. for (let t = 0; t < b; t++)
  63. if (s[t] === A) {
  64. r(c, (m ? h[t] : t) * f, k, A * f, f), A++;
  65. }
  66. if (h && !m) {
  67. const t = new Uint32Array(g);
  68. for (let n3 = 0; n3 < t.length; n3++)
  69. t[n3] = s[h[n3]];
  70. s = t;
  71. }
  72. return { buffer: k.buffer, indices: s, uniqueCount: A };
  73. }
  74. function e(t, n2, e2, r2) {
  75. for (let l2 = 0; l2 < r2; l2++)
  76. if (t[n2 + l2] !== t[e2 + l2])
  77. return false;
  78. return true;
  79. }
  80. function r(t, n2, e2, r2, l2) {
  81. for (let o2 = 0; o2 < l2; o2++)
  82. e2[r2 + o2] = t[n2 + o2];
  83. }
  84. function l(t, n2, e2) {
  85. let r2 = 0;
  86. for (let l2 = 0; l2 < e2; l2++)
  87. r2 = t[n2 + l2] + r2 | 0, r2 = r2 + (r2 << 11) + (r2 >>> 2) | 0;
  88. return r2 >>> 0;
  89. }
  90. var o = null;
  91. export {
  92. n
  93. };
  94. //# sourceMappingURL=chunk-2DNADSBR.js.map