@luma.gl/core 9.0.0-alpha.9 → 9.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/LICENSE +3 -1
  2. package/README.md +4 -4
  3. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts +52 -0
  4. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts.map +1 -0
  5. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js +130 -0
  6. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js.map +1 -0
  7. package/dist/adapter/canvas-context.d.ts +109 -0
  8. package/dist/adapter/canvas-context.d.ts.map +1 -0
  9. package/dist/adapter/canvas-context.js +254 -0
  10. package/dist/adapter/canvas-context.js.map +1 -0
  11. package/dist/adapter/device.d.ts +219 -0
  12. package/dist/adapter/device.d.ts.map +1 -0
  13. package/dist/adapter/device.js +99 -0
  14. package/dist/adapter/device.js.map +1 -0
  15. package/dist/adapter/resources/buffer.d.ts +56 -0
  16. package/dist/adapter/resources/buffer.d.ts.map +1 -0
  17. package/dist/adapter/resources/buffer.js +62 -0
  18. package/dist/adapter/resources/buffer.js.map +1 -0
  19. package/dist/adapter/resources/command-buffer.d.ts +12 -0
  20. package/dist/adapter/resources/command-buffer.d.ts.map +1 -0
  21. package/dist/adapter/resources/command-buffer.js +15 -0
  22. package/dist/adapter/resources/command-buffer.js.map +1 -0
  23. package/dist/adapter/resources/command-encoder.d.ts +113 -0
  24. package/dist/adapter/resources/command-encoder.d.ts.map +1 -0
  25. package/dist/adapter/resources/command-encoder.js +19 -0
  26. package/dist/adapter/resources/command-encoder.js.map +1 -0
  27. package/dist/adapter/resources/compute-pass.d.ts +31 -0
  28. package/dist/adapter/resources/compute-pass.d.ts.map +1 -0
  29. package/dist/adapter/resources/compute-pass.js +15 -0
  30. package/dist/adapter/resources/compute-pass.js.map +1 -0
  31. package/dist/adapter/resources/compute-pipeline.d.ts +24 -0
  32. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -0
  33. package/dist/adapter/resources/compute-pipeline.js +20 -0
  34. package/dist/adapter/resources/compute-pipeline.js.map +1 -0
  35. package/dist/adapter/resources/external-texture.d.ts +12 -0
  36. package/dist/adapter/resources/external-texture.d.ts.map +1 -0
  37. package/dist/adapter/resources/external-texture.js +17 -0
  38. package/dist/adapter/resources/external-texture.js.map +1 -0
  39. package/dist/adapter/resources/framebuffer.d.ts +50 -0
  40. package/dist/adapter/resources/framebuffer.d.ts.map +1 -0
  41. package/dist/adapter/resources/framebuffer.js +102 -0
  42. package/dist/adapter/resources/framebuffer.js.map +1 -0
  43. package/dist/adapter/resources/render-pass.d.ts +51 -0
  44. package/dist/adapter/resources/render-pass.d.ts.map +1 -0
  45. package/dist/adapter/resources/render-pass.js +23 -0
  46. package/dist/adapter/resources/render-pass.js.map +1 -0
  47. package/dist/adapter/resources/render-pipeline.d.ts +89 -0
  48. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -0
  49. package/dist/adapter/resources/render-pipeline.js +36 -0
  50. package/dist/adapter/resources/render-pipeline.js.map +1 -0
  51. package/dist/adapter/resources/resource.d.ts +73 -0
  52. package/dist/adapter/resources/resource.d.ts.map +1 -0
  53. package/dist/adapter/resources/resource.js +101 -0
  54. package/dist/adapter/resources/resource.js.map +1 -0
  55. package/dist/adapter/resources/sampler.d.ts +42 -0
  56. package/dist/adapter/resources/sampler.d.ts.map +1 -0
  57. package/dist/adapter/resources/sampler.js +26 -0
  58. package/dist/adapter/resources/sampler.js.map +1 -0
  59. package/dist/adapter/resources/shader.d.ts +45 -0
  60. package/dist/adapter/resources/shader.d.ts.map +1 -0
  61. package/dist/adapter/resources/shader.js +90 -0
  62. package/dist/adapter/resources/shader.js.map +1 -0
  63. package/dist/adapter/resources/texture.d.ts +90 -0
  64. package/dist/adapter/resources/texture.d.ts.map +1 -0
  65. package/dist/adapter/resources/texture.js +45 -0
  66. package/dist/adapter/resources/texture.js.map +1 -0
  67. package/dist/adapter/resources/transform-feedback.d.ts +30 -0
  68. package/dist/adapter/resources/transform-feedback.d.ts.map +1 -0
  69. package/dist/adapter/resources/transform-feedback.js +17 -0
  70. package/dist/adapter/resources/transform-feedback.js.map +1 -0
  71. package/dist/adapter/resources/vertex-array.d.ts +40 -0
  72. package/dist/adapter/resources/vertex-array.d.ts.map +1 -0
  73. package/dist/adapter/resources/vertex-array.js +24 -0
  74. package/dist/adapter/resources/vertex-array.js.map +1 -0
  75. package/dist/adapter/type-utils/decode-attribute-type.d.ts +20 -0
  76. package/dist/adapter/type-utils/decode-attribute-type.d.ts.map +1 -0
  77. package/dist/adapter/type-utils/decode-attribute-type.js +60 -0
  78. package/dist/adapter/type-utils/decode-attribute-type.js.map +1 -0
  79. package/dist/adapter/type-utils/decode-data-type.d.ts +16 -0
  80. package/dist/adapter/type-utils/decode-data-type.d.ts.map +1 -0
  81. package/dist/adapter/type-utils/decode-data-type.js +43 -0
  82. package/dist/adapter/type-utils/decode-data-type.js.map +1 -0
  83. package/dist/adapter/type-utils/decode-shader-types.d.ts +9 -0
  84. package/dist/adapter/type-utils/decode-shader-types.d.ts.map +1 -0
  85. package/dist/adapter/type-utils/decode-shader-types.js +103 -0
  86. package/dist/adapter/type-utils/decode-shader-types.js.map +1 -0
  87. package/dist/adapter/type-utils/decode-texture-format.d.ts +19 -0
  88. package/dist/adapter/type-utils/decode-texture-format.d.ts.map +1 -0
  89. package/dist/adapter/type-utils/decode-texture-format.js +101 -0
  90. package/dist/adapter/type-utils/decode-texture-format.js.map +1 -0
  91. package/dist/adapter/type-utils/decode-vertex-format.d.ts +22 -0
  92. package/dist/adapter/type-utils/decode-vertex-format.d.ts.map +1 -0
  93. package/dist/adapter/type-utils/decode-vertex-format.js +25 -0
  94. package/dist/adapter/type-utils/decode-vertex-format.js.map +1 -0
  95. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts +10 -0
  96. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts.map +1 -0
  97. package/dist/adapter/type-utils/vertex-format-from-attribute.js +76 -0
  98. package/dist/adapter/type-utils/vertex-format-from-attribute.js.map +1 -0
  99. package/dist/adapter/type-utils/wgsl-utils.d.ts +4 -0
  100. package/dist/adapter/type-utils/wgsl-utils.d.ts.map +1 -0
  101. package/dist/adapter/type-utils/wgsl-utils.js +15 -0
  102. package/dist/adapter/type-utils/wgsl-utils.js.map +1 -0
  103. package/dist/adapter/types/accessor.d.ts +23 -0
  104. package/dist/adapter/types/accessor.d.ts.map +1 -0
  105. package/dist/adapter/types/accessor.js +2 -0
  106. package/dist/adapter/types/accessor.js.map +1 -0
  107. package/dist/adapter/types/buffer-layout.d.ts +59 -0
  108. package/dist/adapter/types/buffer-layout.d.ts.map +1 -0
  109. package/dist/adapter/types/buffer-layout.js +2 -0
  110. package/dist/adapter/types/buffer-layout.js.map +1 -0
  111. package/dist/adapter/types/parameters.d.ts +97 -0
  112. package/dist/adapter/types/parameters.d.ts.map +1 -0
  113. package/dist/adapter/types/parameters.js +28 -0
  114. package/dist/adapter/types/parameters.js.map +1 -0
  115. package/dist/adapter/types/shader-layout.d.ts +145 -0
  116. package/dist/adapter/types/shader-layout.d.ts.map +1 -0
  117. package/dist/adapter/types/shader-layout.js +2 -0
  118. package/dist/adapter/types/shader-layout.js.map +1 -0
  119. package/dist/adapter/types/shader-types.d.ts +21 -0
  120. package/dist/adapter/types/shader-types.d.ts.map +1 -0
  121. package/dist/adapter/types/shader-types.js +2 -0
  122. package/dist/adapter/types/shader-types.js.map +1 -0
  123. package/dist/adapter/types/texture-formats.d.ts +12 -0
  124. package/dist/adapter/types/texture-formats.d.ts.map +1 -0
  125. package/dist/adapter/types/texture-formats.js +2 -0
  126. package/dist/adapter/types/texture-formats.js.map +1 -0
  127. package/dist/adapter/types/types.d.ts +90 -0
  128. package/dist/adapter/types/types.d.ts.map +1 -0
  129. package/dist/adapter/types/types.js +2 -0
  130. package/dist/adapter/types/types.js.map +1 -0
  131. package/dist/adapter/types/vertex-formats.d.ts +14 -0
  132. package/dist/adapter/types/vertex-formats.d.ts.map +1 -0
  133. package/dist/adapter/types/vertex-formats.js +2 -0
  134. package/dist/adapter/types/vertex-formats.js.map +1 -0
  135. package/dist/dist.dev.js +2976 -0
  136. package/dist/index.cjs +2445 -0
  137. package/dist/index.d.ts +81 -128
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +45 -18
  140. package/dist/index.js.map +1 -1
  141. package/dist/init.d.ts +5 -0
  142. package/dist/init.d.ts.map +1 -0
  143. package/dist/init.js +24 -0
  144. package/dist/init.js.map +1 -0
  145. package/dist/lib/compiler-log/compiler-message.d.ts +8 -0
  146. package/dist/lib/compiler-log/compiler-message.d.ts.map +1 -0
  147. package/dist/lib/compiler-log/compiler-message.js +2 -0
  148. package/dist/lib/compiler-log/compiler-message.js.map +1 -0
  149. package/dist/lib/compiler-log/format-compiler-log.d.ts +8 -0
  150. package/dist/lib/compiler-log/format-compiler-log.d.ts.map +1 -0
  151. package/dist/lib/compiler-log/format-compiler-log.js +64 -0
  152. package/dist/lib/compiler-log/format-compiler-log.js.map +1 -0
  153. package/dist/lib/compiler-log/get-shader-info.d.ts +9 -0
  154. package/dist/lib/compiler-log/get-shader-info.d.ts.map +1 -0
  155. package/dist/lib/compiler-log/get-shader-info.js +25 -0
  156. package/dist/lib/compiler-log/get-shader-info.js.map +1 -0
  157. package/dist/lib/luma.d.ts +22 -0
  158. package/dist/lib/luma.d.ts.map +1 -0
  159. package/dist/lib/luma.js +63 -0
  160. package/dist/lib/luma.js.map +1 -0
  161. package/dist/lib/uniforms/uniform-block.d.ts +29 -0
  162. package/dist/lib/uniforms/uniform-block.d.ts.map +1 -0
  163. package/dist/lib/uniforms/uniform-block.js +48 -0
  164. package/dist/lib/uniforms/uniform-block.js.map +1 -0
  165. package/dist/lib/uniforms/uniform-buffer-layout.d.ts +27 -0
  166. package/dist/lib/uniforms/uniform-buffer-layout.d.ts.map +1 -0
  167. package/dist/lib/uniforms/uniform-buffer-layout.js +76 -0
  168. package/dist/lib/uniforms/uniform-buffer-layout.js.map +1 -0
  169. package/dist/lib/uniforms/uniform-store.d.ts +62 -0
  170. package/dist/lib/uniforms/uniform-store.d.ts.map +1 -0
  171. package/dist/lib/uniforms/uniform-store.js +89 -0
  172. package/dist/lib/uniforms/uniform-store.js.map +1 -0
  173. package/dist/lib/uniforms/uniform.d.ts +10 -0
  174. package/dist/lib/uniforms/uniform.d.ts.map +1 -0
  175. package/dist/lib/uniforms/uniform.js +20 -0
  176. package/dist/lib/uniforms/uniform.js.map +1 -0
  177. package/dist/types.d.ts +19 -0
  178. package/dist/types.d.ts.map +1 -0
  179. package/dist/types.js +3 -0
  180. package/dist/types.js.map +1 -0
  181. package/dist/utils/array-equal.d.ts +5 -0
  182. package/dist/utils/array-equal.d.ts.map +1 -0
  183. package/dist/utils/array-equal.js +28 -0
  184. package/dist/utils/array-equal.js.map +1 -0
  185. package/dist/utils/array-utils-flat.d.ts +10 -0
  186. package/dist/utils/array-utils-flat.d.ts.map +1 -0
  187. package/dist/utils/array-utils-flat.js +36 -0
  188. package/dist/utils/array-utils-flat.js.map +1 -0
  189. package/dist/utils/assert.d.ts +2 -0
  190. package/dist/utils/assert.d.ts.map +1 -0
  191. package/dist/utils/assert.js +6 -0
  192. package/dist/utils/assert.js.map +1 -0
  193. package/dist/utils/cast.d.ts +3 -0
  194. package/dist/utils/cast.d.ts.map +1 -0
  195. package/dist/utils/cast.js +4 -0
  196. package/dist/utils/cast.js.map +1 -0
  197. package/dist/utils/check-props.d.ts +7 -0
  198. package/dist/utils/check-props.d.ts.map +1 -0
  199. package/dist/utils/check-props.js +32 -0
  200. package/dist/utils/check-props.js.map +1 -0
  201. package/dist/utils/deep-equal.d.ts +9 -0
  202. package/dist/utils/deep-equal.d.ts.map +1 -0
  203. package/dist/utils/deep-equal.js +40 -0
  204. package/dist/utils/deep-equal.js.map +1 -0
  205. package/dist/utils/format-value.d.ts +7 -0
  206. package/dist/utils/format-value.d.ts.map +1 -0
  207. package/dist/utils/format-value.js +42 -0
  208. package/dist/utils/format-value.js.map +1 -0
  209. package/dist/utils/is-array.d.ts +16 -0
  210. package/dist/utils/is-array.d.ts.map +1 -0
  211. package/dist/utils/is-array.js +10 -0
  212. package/dist/utils/is-array.js.map +1 -0
  213. package/dist/utils/load-file.d.ts +35 -0
  214. package/dist/utils/load-file.d.ts.map +1 -0
  215. package/dist/utils/load-file.js +48 -0
  216. package/dist/utils/load-file.js.map +1 -0
  217. package/dist/utils/log.d.ts +4 -0
  218. package/dist/utils/log.d.ts.map +1 -0
  219. package/dist/utils/log.js +5 -0
  220. package/dist/utils/log.js.map +1 -0
  221. package/dist/utils/random.d.ts +5 -0
  222. package/dist/utils/random.d.ts.map +1 -0
  223. package/dist/utils/random.js +14 -0
  224. package/dist/utils/random.js.map +1 -0
  225. package/dist/utils/request-animation-frame.d.ts +3 -0
  226. package/dist/utils/request-animation-frame.d.ts.map +1 -0
  227. package/dist/utils/request-animation-frame.js +7 -0
  228. package/dist/utils/request-animation-frame.js.map +1 -0
  229. package/dist/utils/stats-manager.d.ts +12 -0
  230. package/dist/utils/stats-manager.d.ts.map +1 -0
  231. package/dist/utils/stats-manager.js +19 -0
  232. package/dist/utils/stats-manager.js.map +1 -0
  233. package/dist/utils/stub-methods.d.ts +2 -0
  234. package/dist/utils/stub-methods.d.ts.map +1 -0
  235. package/dist/utils/stub-methods.js +16 -0
  236. package/dist/utils/stub-methods.js.map +1 -0
  237. package/dist/utils/utils.d.ts +15 -0
  238. package/dist/utils/utils.d.ts.map +1 -0
  239. package/dist/utils/utils.js +19 -0
  240. package/dist/utils/utils.js.map +1 -0
  241. package/dist.min.js +33 -0
  242. package/package.json +17 -12
  243. package/src/adapter/attribute-utils/get-attribute-from-layouts.ts +259 -0
  244. package/src/adapter/canvas-context.ts +433 -0
  245. package/src/adapter/device.ts +435 -0
  246. package/src/adapter/resources/buffer.ts +106 -0
  247. package/src/adapter/resources/command-buffer.ts +38 -0
  248. package/src/adapter/resources/command-encoder.ts +172 -0
  249. package/src/adapter/resources/compute-pass.ts +52 -0
  250. package/src/adapter/resources/compute-pipeline.ts +39 -0
  251. package/src/adapter/resources/external-texture.ts +20 -0
  252. package/src/adapter/resources/framebuffer.ts +230 -0
  253. package/src/adapter/resources/render-pass.ts +117 -0
  254. package/src/adapter/resources/render-pipeline.ts +133 -0
  255. package/src/adapter/resources/resource.ts +176 -0
  256. package/src/adapter/resources/sampler.ts +69 -0
  257. package/src/adapter/resources/shader.ts +143 -0
  258. package/src/adapter/resources/texture.ts +140 -0
  259. package/src/adapter/resources/transform-feedback.ts +45 -0
  260. package/src/adapter/resources/vertex-array.ts +65 -0
  261. package/src/adapter/type-utils/decode-attribute-type.ts +82 -0
  262. package/src/adapter/type-utils/decode-data-type.ts +62 -0
  263. package/src/adapter/type-utils/decode-shader-types.ts +48 -0
  264. package/src/adapter/type-utils/decode-texture-format.ts +190 -0
  265. package/src/adapter/type-utils/decode-vertex-format.ts +49 -0
  266. package/src/adapter/type-utils/vertex-format-from-attribute.ts +103 -0
  267. package/src/adapter/type-utils/wgsl-utils.ts +18 -0
  268. package/src/adapter/types/accessor.ts +34 -0
  269. package/src/adapter/types/buffer-layout.ts +62 -0
  270. package/src/adapter/types/parameters.ts +250 -0
  271. package/src/adapter/types/shader-layout.ts +193 -0
  272. package/src/adapter/types/shader-types.ts +77 -0
  273. package/src/adapter/types/texture-formats.ts +168 -0
  274. package/src/adapter/types/types.ts +109 -0
  275. package/src/adapter/types/vertex-formats.ts +91 -0
  276. package/src/index.ts +160 -92
  277. package/src/init.ts +47 -0
  278. package/src/lib/compiler-log/compiler-message.ts +10 -0
  279. package/src/lib/compiler-log/format-compiler-log.ts +113 -0
  280. package/src/lib/compiler-log/get-shader-info.ts +41 -0
  281. package/src/lib/luma.ts +84 -0
  282. package/src/lib/uniforms/uniform-block.ts +80 -0
  283. package/src/lib/uniforms/uniform-buffer-layout.ts +109 -0
  284. package/src/lib/uniforms/uniform-store.ts +173 -0
  285. package/src/lib/uniforms/uniform.ts +25 -0
  286. package/src/types.ts +33 -0
  287. package/src/utils/array-equal.ts +33 -0
  288. package/src/utils/array-utils-flat.ts +43 -0
  289. package/src/utils/assert.ts +7 -0
  290. package/src/utils/cast.ts +4 -0
  291. package/src/utils/check-props.ts +74 -0
  292. package/src/utils/deep-equal.ts +47 -0
  293. package/src/utils/format-value.ts +40 -0
  294. package/src/utils/is-array.ts +24 -0
  295. package/src/utils/load-file.ts +89 -0
  296. package/src/utils/log.ts +4 -0
  297. package/src/utils/random.ts +17 -0
  298. package/src/utils/request-animation-frame.ts +15 -0
  299. package/src/utils/stats-manager.ts +23 -0
  300. package/src/utils/stub-methods.ts +20 -0
  301. package/src/utils/utils.ts +36 -0
  302. package/dist/bundle.d.ts +0 -2
  303. package/dist/bundle.d.ts.map +0 -1
  304. package/dist/bundle.js +0 -5
  305. package/dist/bundle.js.map +0 -1
  306. package/src/bundle.ts +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils-flat.d.ts","sourceRoot":"","sources":["../../src/utils/array-utils-flat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAItD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAKrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAGrE;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,WAAW,CAsB1H"}
@@ -0,0 +1,36 @@
1
+ let arrayBuffer;
2
+ export function getScratchArrayBuffer(byteLength) {
3
+ if (!arrayBuffer || arrayBuffer.byteLength < byteLength) {
4
+ arrayBuffer = new ArrayBuffer(byteLength);
5
+ }
6
+ return arrayBuffer;
7
+ }
8
+ export function getScratchArray(Type, length) {
9
+ const scratchArrayBuffer = getScratchArrayBuffer(Type.BYTES_PER_ELEMENT * length);
10
+ return new Type(scratchArrayBuffer, 0, length);
11
+ }
12
+ export function fillArray(options) {
13
+ const {
14
+ target,
15
+ source,
16
+ start = 0,
17
+ count = 1
18
+ } = options;
19
+ const length = source.length;
20
+ const total = count * length;
21
+ let copied = 0;
22
+ for (let i = start; copied < length; copied++) {
23
+ target[i++] = source[copied];
24
+ }
25
+ while (copied < total) {
26
+ if (copied < total - copied) {
27
+ target.copyWithin(start + copied, start, start + copied);
28
+ copied *= 2;
29
+ } else {
30
+ target.copyWithin(start + copied, start, start + total - copied);
31
+ copied = total;
32
+ }
33
+ }
34
+ return options.target;
35
+ }
36
+ //# sourceMappingURL=array-utils-flat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils-flat.js","names":["arrayBuffer","getScratchArrayBuffer","byteLength","ArrayBuffer","getScratchArray","Type","length","scratchArrayBuffer","BYTES_PER_ELEMENT","fillArray","options","target","source","start","count","total","copied","i","copyWithin"],"sources":["../../src/utils/array-utils-flat.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {TypedArray, NumberArray} from '../types';\n\nlet arrayBuffer: ArrayBuffer;\n\nexport function getScratchArrayBuffer(byteLength: number): ArrayBuffer {\n if (!arrayBuffer || arrayBuffer.byteLength < byteLength) {\n arrayBuffer = new ArrayBuffer(byteLength);\n }\n return arrayBuffer;\n}\n\nexport function getScratchArray(Type: any, length: number): TypedArray {\n const scratchArrayBuffer = getScratchArrayBuffer(Type.BYTES_PER_ELEMENT * length);\n return new Type(scratchArrayBuffer, 0, length); // arrayBuffer, byteOffset, length (in elements)\n}\n\n// Uses copyWithin to significantly speed up typed array value filling\nexport function fillArray(options: {target: NumberArray, source: NumberArray, start?: number, count?: number}): NumberArray {\n const {target, source, start = 0, count = 1} = options;\n const length = source.length;\n const total = count * length;\n let copied = 0;\n for (let i = start; copied < length; copied++) {\n target[i++] = source[copied] ;\n }\n\n while (copied < total) {\n // If we have copied less than half, copy everything we got\n // else copy remaining in one operation\n if (copied < total - copied) {\n target.copyWithin(start + copied, start, start + copied);\n copied *= 2;\n } else {\n target.copyWithin(start + copied, start, start + total - copied);\n copied = total;\n }\n }\n\n return options.target;\n}\n"],"mappings":"AAKA,IAAIA,WAAwB;AAE5B,OAAO,SAASC,qBAAqBA,CAACC,UAAkB,EAAe;EACrE,IAAI,CAACF,WAAW,IAAIA,WAAW,CAACE,UAAU,GAAGA,UAAU,EAAE;IACvDF,WAAW,GAAG,IAAIG,WAAW,CAACD,UAAU,CAAC;EAC3C;EACA,OAAOF,WAAW;AACpB;AAEA,OAAO,SAASI,eAAeA,CAACC,IAAS,EAAEC,MAAc,EAAc;EACrE,MAAMC,kBAAkB,GAAGN,qBAAqB,CAACI,IAAI,CAACG,iBAAiB,GAAGF,MAAM,CAAC;EACjF,OAAO,IAAID,IAAI,CAACE,kBAAkB,EAAE,CAAC,EAAED,MAAM,CAAC;AAChD;AAGA,OAAO,SAASG,SAASA,CAACC,OAAmF,EAAe;EAC1H,MAAM;IAACC,MAAM;IAAEC,MAAM;IAAEC,KAAK,GAAG,CAAC;IAAEC,KAAK,GAAG;EAAC,CAAC,GAAGJ,OAAO;EACtD,MAAMJ,MAAM,GAAGM,MAAM,CAACN,MAAM;EAC5B,MAAMS,KAAK,GAAGD,KAAK,GAAGR,MAAM;EAC5B,IAAIU,MAAM,GAAG,CAAC;EACd,KAAK,IAAIC,CAAC,GAAGJ,KAAK,EAAEG,MAAM,GAAGV,MAAM,EAAEU,MAAM,EAAE,EAAE;IAC7CL,MAAM,CAACM,CAAC,EAAE,CAAC,GAAGL,MAAM,CAACI,MAAM,CAAC;EAC9B;EAEA,OAAOA,MAAM,GAAGD,KAAK,EAAE;IAGrB,IAAIC,MAAM,GAAGD,KAAK,GAAGC,MAAM,EAAE;MAC3BL,MAAM,CAACO,UAAU,CAACL,KAAK,GAAGG,MAAM,EAAEH,KAAK,EAAEA,KAAK,GAAGG,MAAM,CAAC;MACxDA,MAAM,IAAI,CAAC;IACb,CAAC,MAAM;MACLL,MAAM,CAACO,UAAU,CAACL,KAAK,GAAGG,MAAM,EAAEH,KAAK,EAAEA,KAAK,GAAGE,KAAK,GAAGC,MAAM,CAAC;MAChEA,MAAM,GAAGD,KAAK;IAChB;EACF;EAEA,OAAOL,OAAO,CAACC,MAAM;AACvB"}
@@ -0,0 +1,2 @@
1
+ export declare function assert(condition: unknown, message?: string): void | never;
2
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAIzE"}
@@ -0,0 +1,6 @@
1
+ export function assert(condition, message) {
2
+ if (!condition) {
3
+ throw new Error(message || 'luma.gl: assertion failed.');
4
+ }
5
+ }
6
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../src/utils/assert.ts"],"sourcesContent":["// Recommendation is to ignore message but current test suite checks agains the\n// message so keep it for now.\nexport function assert(condition: unknown, message?: string): void | never {\n if (!condition) {\n throw new Error(message || 'luma.gl: assertion failed.');\n }\n}\n"],"mappings":"AAEA,OAAO,SAASA,MAAMA,CAACC,SAAkB,EAAEC,OAAgB,EAAgB;EACzE,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,CAACD,OAAO,IAAI,4BAA4B,CAAC;EAC1D;AACF"}
@@ -0,0 +1,3 @@
1
+ /** Helper for type downcasts, e.g. Buffer -> WebGPUBuffer */
2
+ export declare function cast<T>(value: any): T;
3
+ //# sourceMappingURL=cast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/utils/cast.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,KAEjC"}
@@ -0,0 +1,4 @@
1
+ export function cast(value) {
2
+ return value;
3
+ }
4
+ //# sourceMappingURL=cast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast.js","names":["cast","value"],"sources":["../../src/utils/cast.ts"],"sourcesContent":["/** Helper for type downcasts, e.g. Buffer -> WebGPUBuffer */\nexport function cast<T>(value: any) {\n return value as T;\n}\n"],"mappings":"AACA,OAAO,SAASA,IAAIA,CAAIC,KAAU,EAAE;EAClC,OAAOA,KAAK;AACd"}
@@ -0,0 +1,7 @@
1
+ export type PropChecks = {
2
+ removedProps?: Record<string, any>;
3
+ replacedProps?: Record<string, string>;
4
+ deprecatedProps?: Record<string, string>;
5
+ };
6
+ export declare function checkProps(className: string, props: Record<string, any>, propChecks: PropChecks): Record<string, unknown>;
7
+ //# sourceMappingURL=check-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-props.d.ts","sourceRoot":"","sources":["../../src/utils/check-props.ts"],"names":[],"mappings":"AAgCA,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC;AAEF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzH"}
@@ -0,0 +1,32 @@
1
+ import { log } from "./log.js";
2
+ export function checkProps(className, props, propChecks) {
3
+ const {
4
+ removedProps = {},
5
+ deprecatedProps = {},
6
+ replacedProps = {}
7
+ } = propChecks;
8
+ for (const propName in removedProps) {
9
+ if (propName in props) {
10
+ const replacementProp = removedProps[propName];
11
+ const replacement = replacementProp ? `${className}.${removedProps[propName]}` : 'N/A';
12
+ log.removed(`${className}.${propName}`, replacement)();
13
+ }
14
+ }
15
+ for (const propName in deprecatedProps) {
16
+ if (propName in props) {
17
+ const replacementProp = deprecatedProps[propName];
18
+ log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
19
+ }
20
+ }
21
+ let newProps = null;
22
+ for (const [propName, replacementProp] of Object.entries(replacedProps)) {
23
+ if (propName in props) {
24
+ log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
25
+ newProps = newProps || Object.assign({}, props);
26
+ newProps[replacementProp] = props[propName];
27
+ delete newProps[propName];
28
+ }
29
+ }
30
+ return newProps || props;
31
+ }
32
+ //# sourceMappingURL=check-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-props.js","names":["log","checkProps","className","props","propChecks","removedProps","deprecatedProps","replacedProps","propName","replacementProp","replacement","removed","deprecated","newProps","Object","entries","assign"],"sources":["../../src/utils/check-props.ts"],"sourcesContent":["import {log} from './log';\n\n/* Use as\nimport {checkProps} from '../util/check-props;'\n\nconst PROP_CHECKS = {\n // Removed props no longer supported, print error and link to upgrade guide\n removedProps: {\n },\n // Deprecated props\n deprecatedProps: {\n offset: 'accessor',\n stride: 'accessor',\n type: 'accessor',\n size: 'accessor',\n divisor: 'accessor',\n normalized: 'accessor',\n integer: 'accessor'\n },\n // Deprecated props that can be autosubstituted, print warning and return updated props object\n replacedProps: {\n bytes: 'byteLength'\n }\n}\n\nclass Buffer {\n setProps(props) {\n checkProps('Buffer', props, PROP_CHECKS);\n }\n}\n*/\n\nexport type PropChecks = {\n removedProps?: Record<string, any>;\n replacedProps?: Record<string, string>;\n deprecatedProps?: Record<string, string>;\n};\n\nexport function checkProps(className: string, props: Record<string, any>, propChecks: PropChecks): Record<string, unknown> {\n const {removedProps = {}, deprecatedProps = {}, replacedProps = {}} = propChecks;\n\n // removedProps: Removed props no longer supported\n // print error and link to upgrade guide\n for (const propName in removedProps) {\n if (propName in props) {\n const replacementProp = removedProps[propName];\n const replacement = replacementProp ? `${className}.${removedProps[propName]}` : 'N/A';\n log.removed(`${className}.${propName}`, replacement)();\n }\n }\n\n // deprecatedProps: Deprecated props that can not be autosubstituted\n // print warning and rely on caller to substitute\n for (const propName in deprecatedProps) {\n if (propName in props) {\n const replacementProp = deprecatedProps[propName];\n log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();\n }\n }\n\n // replacedProps: Deprecated props that can be autosubstituted\n // print warning and return updated props object\n let newProps = null;\n for (const [propName, replacementProp] of Object.entries(replacedProps)) {\n if (propName in props) {\n log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();\n newProps = newProps || Object.assign({}, props);\n newProps[replacementProp] = props[propName];\n delete newProps[propName];\n }\n }\n\n return newProps || props;\n}\n"],"mappings":"SAAQA,GAAG;AAsCX,OAAO,SAASC,UAAUA,CAACC,SAAiB,EAAEC,KAA0B,EAAEC,UAAsB,EAA2B;EACzH,MAAM;IAACC,YAAY,GAAG,CAAC,CAAC;IAAEC,eAAe,GAAG,CAAC,CAAC;IAAEC,aAAa,GAAG,CAAC;EAAC,CAAC,GAAGH,UAAU;EAIhF,KAAK,MAAMI,QAAQ,IAAIH,YAAY,EAAE;IACnC,IAAIG,QAAQ,IAAIL,KAAK,EAAE;MACrB,MAAMM,eAAe,GAAGJ,YAAY,CAACG,QAAQ,CAAC;MAC9C,MAAME,WAAW,GAAGD,eAAe,GAAI,GAAEP,SAAU,IAAGG,YAAY,CAACG,QAAQ,CAAE,EAAC,GAAG,KAAK;MACtFR,GAAG,CAACW,OAAO,CAAE,GAAET,SAAU,IAAGM,QAAS,EAAC,EAAEE,WAAW,CAAC,CAAC,CAAC;IACxD;EACF;EAIA,KAAK,MAAMF,QAAQ,IAAIF,eAAe,EAAE;IACtC,IAAIE,QAAQ,IAAIL,KAAK,EAAE;MACrB,MAAMM,eAAe,GAAGH,eAAe,CAACE,QAAQ,CAAC;MACjDR,GAAG,CAACY,UAAU,CAAE,GAAEV,SAAU,IAAGM,QAAS,EAAC,EAAG,GAAEN,SAAU,IAAGO,eAAgB,EAAC,CAAC,CAAC,CAAC;IACjF;EACF;EAIA,IAAII,QAAQ,GAAG,IAAI;EACnB,KAAK,MAAM,CAACL,QAAQ,EAAEC,eAAe,CAAC,IAAIK,MAAM,CAACC,OAAO,CAACR,aAAa,CAAC,EAAE;IACvE,IAAIC,QAAQ,IAAIL,KAAK,EAAE;MACrBH,GAAG,CAACY,UAAU,CAAE,GAAEV,SAAU,IAAGM,QAAS,EAAC,EAAG,GAAEN,SAAU,IAAGO,eAAgB,EAAC,CAAC,CAAC,CAAC;MAC/EI,QAAQ,GAAGA,QAAQ,IAAIC,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,EAAEb,KAAK,CAAC;MAC/CU,QAAQ,CAACJ,eAAe,CAAC,GAAGN,KAAK,CAACK,QAAQ,CAAC;MAC3C,OAAOK,QAAQ,CAACL,QAAQ,CAAC;IAC3B;EACF;EAEA,OAAOK,QAAQ,IAAIV,KAAK;AAC1B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Fast partial deep equal for prop.
3
+ *
4
+ * @param a Prop
5
+ * @param b Prop to compare against `a`
6
+ * @param depth Depth to which to recurse in nested Objects/Arrays. Use 0 (default) for shallow comparison, -1 for infinite depth
7
+ */
8
+ export declare function deepEqual(a: any, b: any, depth: number): boolean;
9
+ //# sourceMappingURL=deep-equal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.d.ts","sourceRoot":"","sources":["../../src/utils/deep-equal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAsChE"}
@@ -0,0 +1,40 @@
1
+ export function deepEqual(a, b, depth) {
2
+ if (a === b) {
3
+ return true;
4
+ }
5
+ if (!depth || !a || !b) {
6
+ return false;
7
+ }
8
+ if (Array.isArray(a)) {
9
+ if (!Array.isArray(b) || a.length !== b.length) {
10
+ return false;
11
+ }
12
+ for (let i = 0; i < a.length; i++) {
13
+ if (!deepEqual(a[i], b[i], depth - 1)) {
14
+ return false;
15
+ }
16
+ }
17
+ return true;
18
+ }
19
+ if (Array.isArray(b)) {
20
+ return false;
21
+ }
22
+ if (typeof a === 'object' && typeof b === 'object') {
23
+ const aKeys = Object.keys(a);
24
+ const bKeys = Object.keys(b);
25
+ if (aKeys.length !== bKeys.length) {
26
+ return false;
27
+ }
28
+ for (const key of aKeys) {
29
+ if (!b.hasOwnProperty(key)) {
30
+ return false;
31
+ }
32
+ if (!deepEqual(a[key], b[key], depth - 1)) {
33
+ return false;
34
+ }
35
+ }
36
+ return true;
37
+ }
38
+ return false;
39
+ }
40
+ //# sourceMappingURL=deep-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.js","names":["deepEqual","a","b","depth","Array","isArray","length","i","aKeys","Object","keys","bKeys","key","hasOwnProperty"],"sources":["../../src/utils/deep-equal.ts"],"sourcesContent":["/**\n * Fast partial deep equal for prop.\n *\n * @param a Prop\n * @param b Prop to compare against `a`\n * @param depth Depth to which to recurse in nested Objects/Arrays. Use 0 (default) for shallow comparison, -1 for infinite depth\n */\n/* eslint-disable complexity */\nexport function deepEqual(a: any, b: any, depth: number): boolean {\n if (a === b) {\n return true;\n }\n if (!depth || !a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], depth - 1)) {\n return false;\n }\n }\n return true;\n }\n if (Array.isArray(b)) {\n return false;\n }\n if (typeof a === 'object' && typeof b === 'object') {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (const key of aKeys) {\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n if (!deepEqual(a[key], b[key], depth - 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n"],"mappings":"AAQA,OAAO,SAASA,SAASA,CAACC,CAAM,EAAEC,CAAM,EAAEC,KAAa,EAAW;EAChE,IAAIF,CAAC,KAAKC,CAAC,EAAE;IACX,OAAO,IAAI;EACb;EACA,IAAI,CAACC,KAAK,IAAI,CAACF,CAAC,IAAI,CAACC,CAAC,EAAE;IACtB,OAAO,KAAK;EACd;EACA,IAAIE,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC,EAAE;IACpB,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAID,CAAC,CAACK,MAAM,KAAKJ,CAAC,CAACI,MAAM,EAAE;MAC9C,OAAO,KAAK;IACd;IACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,CAAC,CAACK,MAAM,EAAEC,CAAC,EAAE,EAAE;MACjC,IAAI,CAACP,SAAS,CAACC,CAAC,CAACM,CAAC,CAAC,EAAEL,CAAC,CAACK,CAAC,CAAC,EAAEJ,KAAK,GAAG,CAAC,CAAC,EAAE;QACrC,OAAO,KAAK;MACd;IACF;IACA,OAAO,IAAI;EACb;EACA,IAAIC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,EAAE;IACpB,OAAO,KAAK;EACd;EACA,IAAI,OAAOD,CAAC,KAAK,QAAQ,IAAI,OAAOC,CAAC,KAAK,QAAQ,EAAE;IAClD,MAAMM,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACT,CAAC,CAAC;IAC5B,MAAMU,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACR,CAAC,CAAC;IAC5B,IAAIM,KAAK,CAACF,MAAM,KAAKK,KAAK,CAACL,MAAM,EAAE;MACjC,OAAO,KAAK;IACd;IACA,KAAK,MAAMM,GAAG,IAAIJ,KAAK,EAAE;MACvB,IAAI,CAACN,CAAC,CAACW,cAAc,CAACD,GAAG,CAAC,EAAE;QAC1B,OAAO,KAAK;MACd;MACA,IAAI,CAACZ,SAAS,CAACC,CAAC,CAACW,GAAG,CAAC,EAAEV,CAAC,CAACU,GAAG,CAAC,EAAET,KAAK,GAAG,CAAC,CAAC,EAAE;QACzC,OAAO,KAAK;MACd;IACF;IACA,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd"}
@@ -0,0 +1,7 @@
1
+ import type { NumberArray } from '../types';
2
+ /** TODO @deprecated - delete when confident that probe.gl logging implements all opts */
3
+ export declare function formatValue(v: number | NumberArray | unknown, opts?: {
4
+ isInteger?: boolean;
5
+ size?: number;
6
+ }): string;
7
+ //# sourceMappingURL=format-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-value.d.ts","sourceRoot":"","sources":["../../src/utils/format-value.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAgB1C,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,EAAE,IAAI,GAAE;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAM,GAAG,MAAM,CAqBtH"}
@@ -0,0 +1,42 @@
1
+ function formatArrayValue(v) {
2
+ let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3
+ const {
4
+ maxElts = 16,
5
+ size = 1
6
+ } = opts;
7
+ let string = '[';
8
+ for (let i = 0; i < v.length && i < maxElts; ++i) {
9
+ if (i > 0) {
10
+ string += `,${i % size === 0 ? ' ' : ''}`;
11
+ }
12
+ string += formatValue(v[i], opts);
13
+ }
14
+ const terminator = v.length > maxElts ? '...' : ']';
15
+ return `${string}${terminator}`;
16
+ }
17
+ export function formatValue(v) {
18
+ let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19
+ const EPSILON = 1e-16;
20
+ const {
21
+ isInteger = false
22
+ } = opts;
23
+ if (Array.isArray(v) || ArrayBuffer.isView(v)) {
24
+ return formatArrayValue(v, opts);
25
+ }
26
+ if (typeof v !== 'number') {
27
+ return String(v);
28
+ }
29
+ if (Math.abs(v) < EPSILON) {
30
+ return isInteger ? '0' : '0.';
31
+ }
32
+ if (isInteger) {
33
+ return v.toFixed(0);
34
+ }
35
+ if (Math.abs(v) > 100 && Math.abs(v) < 10000) {
36
+ return v.toFixed(0);
37
+ }
38
+ const string = v.toPrecision(2);
39
+ const decimal = string.indexOf('.0');
40
+ return decimal === string.length - 2 ? string.slice(0, -1) : string;
41
+ }
42
+ //# sourceMappingURL=format-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-value.js","names":["formatArrayValue","v","opts","arguments","length","undefined","maxElts","size","string","i","formatValue","terminator","EPSILON","isInteger","Array","isArray","ArrayBuffer","isView","String","Math","abs","toFixed","toPrecision","decimal","indexOf","slice"],"sources":["../../src/utils/format-value.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type {NumberArray} from '../types';\n\n/** TODO @deprecated - delete when confident that probe.gl logging implements all opts */\nfunction formatArrayValue(v: NumberArray, opts: {maxElts?: number, size?: number} = {}): string {\n const {maxElts = 16, size = 1} = opts;\n let string = '[';\n for (let i = 0; i < v.length && i < maxElts; ++i) {\n if (i > 0) {\n string += `,${i % size === 0 ? ' ' : ''}`;\n }\n string += formatValue(v[i], opts);\n }\n const terminator = v.length > maxElts ? '...' : ']';\n return `${string}${terminator}`;\n}\n\n/** TODO @deprecated - delete when confident that probe.gl logging implements all opts */\nexport function formatValue(v: number | NumberArray | unknown, opts: {isInteger?: boolean, size?: number} = {}): string {\n const EPSILON = 1e-16;\n const {isInteger = false} = opts;\n if (Array.isArray(v) || ArrayBuffer.isView(v)) {\n return formatArrayValue(v as NumberArray, opts);\n }\n if (typeof v !== 'number') {\n return String(v);\n }\n if (Math.abs(v) < EPSILON) {\n return isInteger ? '0' : '0.';\n }\n if (isInteger) {\n return v.toFixed(0);\n }\n if (Math.abs(v) > 100 && Math.abs(v) < 10000) {\n return v.toFixed(0);\n }\n const string = v.toPrecision(2);\n const decimal = string.indexOf('.0');\n return decimal === string.length - 2 ? string.slice(0, -1) : string;\n}\n"],"mappings":"AAIA,SAASA,gBAAgBA,CAACC,CAAc,EAAwD;EAAA,IAAtDC,IAAuC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACpF,MAAM;IAACG,OAAO,GAAG,EAAE;IAAEC,IAAI,GAAG;EAAC,CAAC,GAAGL,IAAI;EACrC,IAAIM,MAAM,GAAG,GAAG;EAChB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,CAAC,CAACG,MAAM,IAAIK,CAAC,GAAGH,OAAO,EAAE,EAAEG,CAAC,EAAE;IAChD,IAAIA,CAAC,GAAG,CAAC,EAAE;MACTD,MAAM,IAAK,IAAGC,CAAC,GAAGF,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAG,EAAC;IAC3C;IACAC,MAAM,IAAIE,WAAW,CAACT,CAAC,CAACQ,CAAC,CAAC,EAAEP,IAAI,CAAC;EACnC;EACA,MAAMS,UAAU,GAAGV,CAAC,CAACG,MAAM,GAAGE,OAAO,GAAG,KAAK,GAAG,GAAG;EACnD,OAAQ,GAAEE,MAAO,GAAEG,UAAW,EAAC;AACjC;AAGA,OAAO,SAASD,WAAWA,CAACT,CAAiC,EAA2D;EAAA,IAAzDC,IAA0C,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC5G,MAAMS,OAAO,GAAG,KAAK;EACrB,MAAM;IAACC,SAAS,GAAG;EAAK,CAAC,GAAGX,IAAI;EAChC,IAAIY,KAAK,CAACC,OAAO,CAACd,CAAC,CAAC,IAAIe,WAAW,CAACC,MAAM,CAAChB,CAAC,CAAC,EAAE;IAC7C,OAAOD,gBAAgB,CAACC,CAAC,EAAiBC,IAAI,CAAC;EACjD;EACA,IAAI,OAAOD,CAAC,KAAK,QAAQ,EAAE;IACzB,OAAOiB,MAAM,CAACjB,CAAC,CAAC;EAClB;EACA,IAAIkB,IAAI,CAACC,GAAG,CAACnB,CAAC,CAAC,GAAGW,OAAO,EAAE;IACzB,OAAOC,SAAS,GAAG,GAAG,GAAG,IAAI;EAC/B;EACA,IAAIA,SAAS,EAAE;IACb,OAAOZ,CAAC,CAACoB,OAAO,CAAC,CAAC,CAAC;EACrB;EACA,IAAIF,IAAI,CAACC,GAAG,CAACnB,CAAC,CAAC,GAAG,GAAG,IAAIkB,IAAI,CAACC,GAAG,CAACnB,CAAC,CAAC,GAAG,KAAK,EAAE;IAC5C,OAAOA,CAAC,CAACoB,OAAO,CAAC,CAAC,CAAC;EACrB;EACA,MAAMb,MAAM,GAAGP,CAAC,CAACqB,WAAW,CAAC,CAAC,CAAC;EAC/B,MAAMC,OAAO,GAAGf,MAAM,CAACgB,OAAO,CAAC,IAAI,CAAC;EACpC,OAAOD,OAAO,KAAKf,MAAM,CAACJ,MAAM,GAAG,CAAC,GAAGI,MAAM,CAACiB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGjB,MAAM;AACrE"}
@@ -0,0 +1,16 @@
1
+ import { TypedArray, NumberArray } from '../types';
2
+ /**
3
+ * Check is an array is a typed array
4
+ * @param value value to be tested
5
+ * @returns input as TypedArray, or null
6
+ * @todo this should be provided by @math.gl/types
7
+ */
8
+ export declare function isTypedArray(value: unknown): TypedArray | null;
9
+ /**
10
+ * Check is an array is a numeric array (typed array or array of numbers)
11
+ * @param value value to be tested
12
+ * @returns input as NumberArray, or null
13
+ * @todo this should be provided by @math.gl/types
14
+ */
15
+ export declare function isNumberArray(value: unknown): NumberArray | null;
16
+ //# sourceMappingURL=is-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-array.d.ts","sourceRoot":"","sources":["../../src/utils/is-array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAKhE"}
@@ -0,0 +1,10 @@
1
+ export function isTypedArray(value) {
2
+ return ArrayBuffer.isView(value) && !(value instanceof DataView) ? value : null;
3
+ }
4
+ export function isNumberArray(value) {
5
+ if (Array.isArray(value)) {
6
+ return value.length === 0 || typeof value[0] === 'number' ? value : null;
7
+ }
8
+ return isTypedArray(value);
9
+ }
10
+ //# sourceMappingURL=is-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-array.js","names":["isTypedArray","value","ArrayBuffer","isView","DataView","isNumberArray","Array","isArray","length"],"sources":["../../src/utils/is-array.ts"],"sourcesContent":["import {TypedArray, NumberArray} from '../types';\n\n/**\n * Check is an array is a typed array\n * @param value value to be tested\n * @returns input as TypedArray, or null\n * @todo this should be provided by @math.gl/types\n */\nexport function isTypedArray(value: unknown): TypedArray | null {\n return ArrayBuffer.isView(value) && !(value instanceof DataView) ? (value as TypedArray) : null;\n}\n\n/**\n * Check is an array is a numeric array (typed array or array of numbers)\n * @param value value to be tested\n * @returns input as NumberArray, or null\n * @todo this should be provided by @math.gl/types\n */\nexport function isNumberArray(value: unknown): NumberArray | null {\n if (Array.isArray(value)) {\n return value.length === 0 || typeof value[0] === 'number' ? (value as number[]) : null;\n }\n return isTypedArray(value);\n}\n"],"mappings":"AAQA,OAAO,SAASA,YAAYA,CAACC,KAAc,EAAqB;EAC9D,OAAOC,WAAW,CAACC,MAAM,CAACF,KAAK,CAAC,IAAI,EAAEA,KAAK,YAAYG,QAAQ,CAAC,GAAIH,KAAK,GAAkB,IAAI;AACjG;AAQA,OAAO,SAASI,aAAaA,CAACJ,KAAc,EAAsB;EAChE,IAAIK,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACO,MAAM,KAAK,CAAC,IAAI,OAAOP,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAIA,KAAK,GAAgB,IAAI;EACxF;EACA,OAAOD,YAAY,CAACC,KAAK,CAAC;AAC5B"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Set a relative path prefix
3
+ */
4
+ export declare function setPathPrefix(prefix: string): void;
5
+ /**
6
+ * Reads raw file data. Respects setPathPrefix.
7
+ */
8
+ export declare function loadFile(url: string, options?: {
9
+ dataType?: 'text' | 'arrayBuffer';
10
+ } & RequestInit): Promise<any>;
11
+ /**
12
+ * Loads ImageBitmap asynchronously. Respects setPathPrefix.
13
+ * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'
14
+ * @returns a promise tracking the load
15
+ */
16
+ export declare function loadImageBitmap(url: string, opts?: {
17
+ crossOrigin?: string;
18
+ }): Promise<ImageBitmap>;
19
+ /**
20
+ * Loads image asynchronously. Respects setPathPrefix.
21
+ * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'
22
+ * @returns a promise tracking the load
23
+ * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.
24
+ */
25
+ export declare function loadImage(url: string, opts?: {
26
+ crossOrigin?: string;
27
+ }): Promise<HTMLImageElement>;
28
+ /**
29
+ * Load a script (identified by an url). When the url returns, the
30
+ * content of this file is added into a new script element, attached to the DOM (body element)
31
+ * @param scriptUrl defines the url of the script to laod
32
+ * @param scriptId defines the id of the script element
33
+ */
34
+ export declare function loadScript(scriptUrl: string, scriptId?: string): Promise<Event>;
35
+ //# sourceMappingURL=load-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-file.d.ts","sourceRoot":"","sources":["../../src/utils/load-file.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,QAE3C;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAC,GAAG,WAAW,GAC1D,OAAO,CAAC,GAAG,CAAC,CAKd;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC,CAMtB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAkBrF"}
@@ -0,0 +1,48 @@
1
+ let pathPrefix = '';
2
+ export function setPathPrefix(prefix) {
3
+ pathPrefix = prefix;
4
+ }
5
+ export async function loadFile(url, options) {
6
+ url = url.startsWith('http') ? url : pathPrefix + url;
7
+ const dataType = (options === null || options === void 0 ? void 0 : options.dataType) || 'text';
8
+ const response = await fetch(url, options);
9
+ return await response[dataType]();
10
+ }
11
+ export async function loadImageBitmap(url, opts) {
12
+ const image = new Image();
13
+ image.crossOrigin = (opts === null || opts === void 0 ? void 0 : opts.crossOrigin) || 'anonymous';
14
+ image.src = url.startsWith('http') ? url : pathPrefix + url;
15
+ await image.decode();
16
+ return await createImageBitmap(image);
17
+ }
18
+ export async function loadImage(url, opts) {
19
+ return new Promise((resolve, reject) => {
20
+ try {
21
+ const image = new Image();
22
+ image.onload = () => resolve(image);
23
+ image.onerror = () => reject(new Error(`Could not load image ${url}.`));
24
+ image.crossOrigin = (opts === null || opts === void 0 ? void 0 : opts.crossOrigin) || 'anonymous';
25
+ image.src = url.startsWith('http') ? url : pathPrefix + url;
26
+ } catch (error) {
27
+ reject(error);
28
+ }
29
+ });
30
+ }
31
+ export async function loadScript(scriptUrl, scriptId) {
32
+ const head = document.getElementsByTagName('head')[0];
33
+ if (!head) {
34
+ throw new Error('loadScript');
35
+ }
36
+ const script = document.createElement('script');
37
+ script.setAttribute('type', 'text/javascript');
38
+ script.setAttribute('src', scriptUrl);
39
+ if (scriptId) {
40
+ script.id = scriptId;
41
+ }
42
+ return new Promise((resolve, reject) => {
43
+ script.onload = resolve;
44
+ script.onerror = error => reject(new Error(`Unable to load script '${scriptUrl}': ${error}`));
45
+ head.appendChild(script);
46
+ });
47
+ }
48
+ //# sourceMappingURL=load-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-file.js","names":["pathPrefix","setPathPrefix","prefix","loadFile","url","options","startsWith","dataType","response","fetch","loadImageBitmap","opts","image","Image","crossOrigin","src","decode","createImageBitmap","loadImage","Promise","resolve","reject","onload","onerror","Error","error","loadScript","scriptUrl","scriptId","head","document","getElementsByTagName","script","createElement","setAttribute","id","appendChild"],"sources":["../../src/utils/load-file.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nlet pathPrefix = '';\n\n/**\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix: string) {\n pathPrefix = prefix;\n}\n\n/**\n * Reads raw file data. Respects setPathPrefix.\n */\nexport async function loadFile(\n url: string,\n options?: {dataType?: 'text' | 'arrayBuffer'} & RequestInit\n): Promise<any> {\n url = url.startsWith('http') ? url : pathPrefix + url;\n const dataType = options?.dataType || 'text';\n const response = await fetch(url, options);\n return await response[dataType]();\n}\n\n/**\n * Loads ImageBitmap asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n */\nexport async function loadImageBitmap(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<ImageBitmap> {\n const image = new Image();\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n await image.decode();\n return await createImageBitmap(image);\n}\n\n/**\n * Loads image asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.\n */\nexport async function loadImage(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n try {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(`Could not load image ${url}.`));\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n * Load a script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to laod\n * @param scriptId defines the id of the script element\n */\nexport async function loadScript(scriptUrl: string, scriptId?: string): Promise<Event> {\n const head = document.getElementsByTagName('head')[0];\n if (!head) {\n throw new Error('loadScript');\n }\n\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', scriptUrl);\n if (scriptId) {\n script.id = scriptId;\n }\n\n return new Promise((resolve, reject) => {\n script.onload = resolve;\n script.onerror = (error) => reject(new Error(`Unable to load script '${scriptUrl}': ${error as string}`));\n head.appendChild(script);\n });\n}\n"],"mappings":"AAGA,IAAIA,UAAU,GAAG,EAAE;AAKnB,OAAO,SAASC,aAAaA,CAACC,MAAc,EAAE;EAC5CF,UAAU,GAAGE,MAAM;AACrB;AAKA,OAAO,eAAeC,QAAQA,CAC5BC,GAAW,EACXC,OAA2D,EAC7C;EACdD,GAAG,GAAGA,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EACrD,MAAMG,QAAQ,GAAG,CAAAF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,QAAQ,KAAI,MAAM;EAC5C,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACL,GAAG,EAAEC,OAAO,CAAC;EAC1C,OAAO,MAAMG,QAAQ,CAACD,QAAQ,CAAC,CAAC,CAAC;AACnC;AAOA,OAAO,eAAeG,eAAeA,CACnCN,GAAW,EACXO,IAA6B,EACP;EACtB,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;EACzBD,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;EACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EAC3D,MAAMQ,KAAK,CAACI,MAAM,CAAC,CAAC;EACpB,OAAO,MAAMC,iBAAiB,CAACL,KAAK,CAAC;AACvC;AAQA,OAAO,eAAeM,SAASA,CAC7Bd,GAAW,EACXO,IAA6B,EACF;EAC3B,OAAO,IAAIQ,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAI;MACF,MAAMT,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;MACzBD,KAAK,CAACU,MAAM,GAAG,MAAMF,OAAO,CAACR,KAAK,CAAC;MACnCA,KAAK,CAACW,OAAO,GAAG,MAAMF,MAAM,CAAC,IAAIG,KAAK,CAAE,wBAAuBpB,GAAI,GAAE,CAAC,CAAC;MACvEQ,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;MACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;IAC7D,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdJ,MAAM,CAACI,KAAK,CAAC;IACf;EACF,CAAC,CAAC;AACJ;AAQA,OAAO,eAAeC,UAAUA,CAACC,SAAiB,EAAEC,QAAiB,EAAkB;EACrF,MAAMC,IAAI,GAAGC,QAAQ,CAACC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACrD,IAAI,CAACF,IAAI,EAAE;IACT,MAAM,IAAIL,KAAK,CAAC,YAAY,CAAC;EAC/B;EAEA,MAAMQ,MAAM,GAAGF,QAAQ,CAACG,aAAa,CAAC,QAAQ,CAAC;EAC/CD,MAAM,CAACE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;EAC9CF,MAAM,CAACE,YAAY,CAAC,KAAK,EAAEP,SAAS,CAAC;EACrC,IAAIC,QAAQ,EAAE;IACZI,MAAM,CAACG,EAAE,GAAGP,QAAQ;EACtB;EAEA,OAAO,IAAIT,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCW,MAAM,CAACV,MAAM,GAAGF,OAAO;IACvBY,MAAM,CAACT,OAAO,GAAIE,KAAK,IAAKJ,MAAM,CAAC,IAAIG,KAAK,CAAE,0BAAyBG,SAAU,MAAKF,KAAgB,EAAC,CAAC,CAAC;IACzGI,IAAI,CAACO,WAAW,CAACJ,MAAM,CAAC;EAC1B,CAAC,CAAC;AACJ"}
@@ -0,0 +1,4 @@
1
+ import { Log } from '@probe.gl/log';
2
+ /** Global log instance */
3
+ export declare const log: Log;
4
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAElC,0BAA0B;AAC1B,eAAO,MAAM,GAAG,EAAE,GAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Log } from '@probe.gl/log';
2
+ export const log = new Log({
3
+ id: 'luma.gl'
4
+ });
5
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","names":["Log","log","id"],"sources":["../../src/utils/log.ts"],"sourcesContent":["import {Log} from '@probe.gl/log';\n\n/** Global log instance */\nexport const log: Log = new Log({id: 'luma.gl'});\n"],"mappings":"AAAA,SAAQA,GAAG,QAAO,eAAe;AAGjC,OAAO,MAAMC,GAAQ,GAAG,IAAID,GAAG,CAAC;EAACE,EAAE,EAAE;AAAS,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Creates a deterministic pseudorandom number generator */
2
+ export declare function makeRandomNumberGenerator(): () => number;
3
+ /** Generates a deterministic pseudorandom number */
4
+ export declare const random: () => number;
5
+ //# sourceMappingURL=random.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/utils/random.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,wBAAgB,yBAAyB,IAAI,MAAM,MAAM,CAQxD;AAMD,oDAAoD;AACpD,eAAO,MAAM,MAAM,QAfgC,MAeF,CAAC"}
@@ -0,0 +1,14 @@
1
+ export function makeRandomNumberGenerator() {
2
+ let s = 1;
3
+ let c = 1;
4
+ return () => {
5
+ s = Math.sin(c * 17.23);
6
+ c = Math.cos(s * 27.92);
7
+ return fract(Math.abs(s * c) * 1432.71);
8
+ };
9
+ }
10
+ function fract(n) {
11
+ return n - Math.floor(n);
12
+ }
13
+ export const random = makeRandomNumberGenerator();
14
+ //# sourceMappingURL=random.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random.js","names":["makeRandomNumberGenerator","s","c","Math","sin","cos","fract","abs","n","floor","random"],"sources":["../../src/utils/random.ts"],"sourcesContent":["/** Creates a deterministic pseudorandom number generator */\nexport function makeRandomNumberGenerator(): () => number {\n let s = 1;\n let c = 1;\n return () => {\n s = Math.sin(c * 17.23);\n c = Math.cos(s * 27.92);\n return fract(Math.abs(s * c) * 1432.71);\n };\n}\n\nfunction fract(n: number): number {\n return n - Math.floor(n);\n}\n\n/** Generates a deterministic pseudorandom number */\nexport const random = makeRandomNumberGenerator();\n"],"mappings":"AACA,OAAO,SAASA,yBAAyBA,CAAA,EAAiB;EACxD,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,OAAO,MAAM;IACXD,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACF,CAAC,GAAG,KAAK,CAAC;IACvBA,CAAC,GAAGC,IAAI,CAACE,GAAG,CAACJ,CAAC,GAAG,KAAK,CAAC;IACvB,OAAOK,KAAK,CAACH,IAAI,CAACI,GAAG,CAACN,CAAC,GAAGC,CAAC,CAAC,GAAG,OAAO,CAAC;EACzC,CAAC;AACH;AAEA,SAASI,KAAKA,CAACE,CAAS,EAAU;EAChC,OAAOA,CAAC,GAAGL,IAAI,CAACM,KAAK,CAACD,CAAC,CAAC;AAC1B;AAGA,OAAO,MAAME,MAAM,GAAGV,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function requestAnimationFrame(callback: (time?: any) => void): any;
2
+ export declare function cancelAnimationFrame(timerId: any): void;
3
+ //# sourceMappingURL=request-animation-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-animation-frame.d.ts","sourceRoot":"","sources":["../../src/utils/request-animation-frame.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAIzE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAIvD"}
@@ -0,0 +1,7 @@
1
+ export function requestAnimationFrame(callback) {
2
+ return typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame(callback) : setTimeout(callback, 1000 / 60);
3
+ }
4
+ export function cancelAnimationFrame(timerId) {
5
+ return typeof window !== 'undefined' && window.cancelAnimationFrame ? window.cancelAnimationFrame(timerId) : clearTimeout(timerId);
6
+ }
7
+ //# sourceMappingURL=request-animation-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-animation-frame.js","names":["requestAnimationFrame","callback","window","setTimeout","cancelAnimationFrame","timerId","clearTimeout"],"sources":["../../src/utils/request-animation-frame.ts"],"sourcesContent":["// Node.js polyfills for requestAnimationFrame and cancelAnimationFrame\n/* global window, setTimeout, clearTimeout */\n\n// / <reference types=\"@types/node\" />\nexport function requestAnimationFrame(callback: (time?: any) => void): any {\n return typeof window !== 'undefined' && window.requestAnimationFrame\n ? window.requestAnimationFrame(callback)\n : setTimeout(callback, 1000 / 60);\n}\n\nexport function cancelAnimationFrame(timerId: any): void {\n return typeof window !== 'undefined' && window.cancelAnimationFrame\n ? window.cancelAnimationFrame(timerId)\n : clearTimeout(timerId);\n}\n"],"mappings":"AAIA,OAAO,SAASA,qBAAqBA,CAACC,QAA8B,EAAO;EACzE,OAAO,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACF,qBAAqB,GAChEE,MAAM,CAACF,qBAAqB,CAACC,QAAQ,CAAC,GACtCE,UAAU,CAACF,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC;AACrC;AAEA,OAAO,SAASG,oBAAoBA,CAACC,OAAY,EAAQ;EACvD,OAAO,OAAOH,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACE,oBAAoB,GAC/DF,MAAM,CAACE,oBAAoB,CAACC,OAAO,CAAC,GACpCC,YAAY,CAACD,OAAO,CAAC;AAC3B"}
@@ -0,0 +1,12 @@
1
+ import { Stats } from '@probe.gl/stats';
2
+ /**
3
+ * Helper class managing a collection of probe.gl stats objects
4
+ */
5
+ export declare class StatsManager {
6
+ stats: Map<any, any>;
7
+ getStats(name: string): Stats;
8
+ get(name: string): Stats;
9
+ }
10
+ /** Global stats for all luma.gl devices */
11
+ export declare const lumaStats: StatsManager;
12
+ //# sourceMappingURL=stats-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-manager.d.ts","sourceRoot":"","sources":["../../src/utils/stats-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC;;GAEG;AACH,qBAAa,YAAY;IACvB,KAAK,gBAAa;IAElB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAI7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;CAOzB;AAED,2CAA2C;AAC3C,eAAO,MAAM,SAAS,EAAE,YAAiC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Stats } from '@probe.gl/stats';
2
+ export class StatsManager {
3
+ constructor() {
4
+ this.stats = new Map();
5
+ }
6
+ getStats(name) {
7
+ return this.get(name);
8
+ }
9
+ get(name) {
10
+ if (!this.stats.has(name)) {
11
+ this.stats.set(name, new Stats({
12
+ id: name
13
+ }));
14
+ }
15
+ return this.stats.get(name);
16
+ }
17
+ }
18
+ export const lumaStats = new StatsManager();
19
+ //# sourceMappingURL=stats-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-manager.js","names":["Stats","StatsManager","constructor","stats","Map","getStats","name","get","has","set","id","lumaStats"],"sources":["../../src/utils/stats-manager.ts"],"sourcesContent":["import {Stats} from '@probe.gl/stats';\n\n/** \n * Helper class managing a collection of probe.gl stats objects \n */\nexport class StatsManager {\n stats = new Map();\n\n getStats(name: string): Stats {\n return this.get(name);\n }\n\n get(name: string): Stats {\n if (!this.stats.has(name)) {\n this.stats.set(name, new Stats({id: name}));\n }\n\n return this.stats.get(name);\n }\n}\n\n/** Global stats for all luma.gl devices */\nexport const lumaStats: StatsManager = new StatsManager();\n"],"mappings":"AAAA,SAAQA,KAAK,QAAO,iBAAiB;AAKrC,OAAO,MAAMC,YAAY,CAAC;EAAAC,YAAA;IAAA,KACxBC,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAC;EAAA;EAEjBC,QAAQA,CAACC,IAAY,EAAS;IAC5B,OAAO,IAAI,CAACC,GAAG,CAACD,IAAI,CAAC;EACvB;EAEAC,GAAGA,CAACD,IAAY,EAAS;IACvB,IAAI,CAAC,IAAI,CAACH,KAAK,CAACK,GAAG,CAACF,IAAI,CAAC,EAAE;MACzB,IAAI,CAACH,KAAK,CAACM,GAAG,CAACH,IAAI,EAAE,IAAIN,KAAK,CAAC;QAACU,EAAE,EAAEJ;MAAI,CAAC,CAAC,CAAC;IAC7C;IAEA,OAAO,IAAI,CAACH,KAAK,CAACI,GAAG,CAACD,IAAI,CAAC;EAC7B;AACF;AAGA,OAAO,MAAMK,SAAuB,GAAG,IAAIV,YAAY,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function stubRemovedMethods(instance: any, className: string, version: string, methodNames: string[]): void;
2
+ //# sourceMappingURL=stub-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-methods.d.ts","sourceRoot":"","sources":["../../src/utils/stub-methods.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAgB1G"}
@@ -0,0 +1,16 @@
1
+ import { log } from "./log.js";
2
+ export function stubRemovedMethods(instance, className, version, methodNames) {
3
+ const upgradeMessage = `See luma.gl ${version} Upgrade Guide at \
4
+ https://luma.gl/docs/upgrade-guide`;
5
+ const prototype = Object.getPrototypeOf(instance);
6
+ methodNames.forEach(methodName => {
7
+ if (prototype.methodName) {
8
+ return;
9
+ }
10
+ prototype[methodName] = () => {
11
+ log.removed(`Calling removed method ${className}.${methodName}: `, upgradeMessage)();
12
+ throw new Error(methodName);
13
+ };
14
+ });
15
+ }
16
+ //# sourceMappingURL=stub-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-methods.js","names":["log","stubRemovedMethods","instance","className","version","methodNames","upgradeMessage","prototype","Object","getPrototypeOf","forEach","methodName","removed","Error"],"sources":["../../src/utils/stub-methods.ts"],"sourcesContent":["import {log} from './log';\n\n// Install stubs for removed methods\nexport function stubRemovedMethods(instance: any, className: string, version: string, methodNames: string[]) {\n const upgradeMessage = `See luma.gl ${version} Upgrade Guide at \\\nhttps://luma.gl/docs/upgrade-guide`;\n\n const prototype = Object.getPrototypeOf(instance);\n\n methodNames.forEach((methodName: string): void => {\n if (prototype.methodName) {\n return;\n }\n\n prototype[methodName] = () => {\n log.removed(`Calling removed method ${className}.${methodName}: `, upgradeMessage)();\n throw new Error(methodName);\n };\n });\n}\n"],"mappings":"SAAQA,GAAG;AAGX,OAAO,SAASC,kBAAkBA,CAACC,QAAa,EAAEC,SAAiB,EAAEC,OAAe,EAAEC,WAAqB,EAAE;EAC3G,MAAMC,cAAc,GAAI,eAAcF,OAAQ;AAChD,mCAAmC;EAEjC,MAAMG,SAAS,GAAGC,MAAM,CAACC,cAAc,CAACP,QAAQ,CAAC;EAEjDG,WAAW,CAACK,OAAO,CAAEC,UAAkB,IAAW;IAChD,IAAIJ,SAAS,CAACI,UAAU,EAAE;MACxB;IACF;IAEAJ,SAAS,CAACI,UAAU,CAAC,GAAG,MAAM;MAC5BX,GAAG,CAACY,OAAO,CAAE,0BAAyBT,SAAU,IAAGQ,UAAW,IAAG,EAAEL,cAAc,CAAC,CAAC,CAAC;MACpF,MAAM,IAAIO,KAAK,CAACF,UAAU,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;AACJ"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Returns a UID.
3
+ * @param id= - Identifier base name
4
+ * @return uid
5
+ **/
6
+ export declare function uid(id?: string): string;
7
+ /**
8
+ * Verifies if a given number is power of two or not.
9
+ * @param n - The number to check.
10
+ * @return Returns true if the given number is power of 2, false otherwise.
11
+ **/
12
+ export declare function isPowerOfTwo(n: number): boolean;
13
+ /** Returns true if given object is empty, false otherwise. */
14
+ export declare function isObjectEmpty(obj: object): boolean;
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAKA;;;;IAII;AACJ,wBAAgB,GAAG,CAAC,EAAE,GAAE,MAAa,GAAG,MAAM,CAI7C;AAED;;;;IAII;AACJ,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASlD"}
@@ -0,0 +1,19 @@
1
+ const uidCounters = {};
2
+ export function uid() {
3
+ let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id';
4
+ uidCounters[id] = uidCounters[id] || 1;
5
+ const count = uidCounters[id]++;
6
+ return `${id}-${count}`;
7
+ }
8
+ export function isPowerOfTwo(n) {
9
+ return n > 0 && (n & n - 1) === 0;
10
+ }
11
+ export function isObjectEmpty(obj) {
12
+ let isEmpty = true;
13
+ for (const key in obj) {
14
+ isEmpty = false;
15
+ break;
16
+ }
17
+ return isEmpty;
18
+ }
19
+ //# sourceMappingURL=utils.js.map