@loaders.gl/pointclouds 5.0.0-beta.1 → 5.0.0-beta.10

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 (372) hide show
  1. package/LAS-README.md +1 -1
  2. package/PCD-README.md +1 -1
  3. package/PLY-README.md +1 -1
  4. package/README.md +5 -1
  5. package/dist/dist.dev.js +3584 -2211
  6. package/dist/dist.min.js +20 -20
  7. package/dist/index.cjs +0 -6
  8. package/dist/index.cjs.map +2 -2
  9. package/dist/index.d.ts +3 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/las/bundled.cjs +0 -3
  14. package/dist/las/bundled.cjs.map +2 -2
  15. package/dist/las/bundled.d.ts +0 -1
  16. package/dist/las/bundled.d.ts.map +1 -1
  17. package/dist/las/bundled.js +0 -1
  18. package/dist/las/bundled.js.map +1 -1
  19. package/dist/las/index.cjs +0 -3
  20. package/dist/las/index.cjs.map +3 -3
  21. package/dist/las/index.d.ts +0 -2
  22. package/dist/las/index.d.ts.map +1 -1
  23. package/dist/las/index.js +0 -3
  24. package/dist/las/index.js.map +1 -1
  25. package/dist/las/las-copc-loader-types.cjs +1 -1
  26. package/dist/las/las-copc-loader-types.cjs.map +2 -2
  27. package/dist/las/las-copc-loader-types.d.ts +13 -9
  28. package/dist/las/las-copc-loader-types.d.ts.map +1 -1
  29. package/dist/las/las-copc-loader-types.js +1 -1
  30. package/dist/las/las-copc-loader-types.js.map +1 -1
  31. package/dist/las/las-copc-loader.cjs +8 -5
  32. package/dist/las/las-copc-loader.cjs.map +2 -2
  33. package/dist/las/las-copc-loader.d.ts +8 -6
  34. package/dist/las/las-copc-loader.d.ts.map +1 -1
  35. package/dist/las/las-copc-loader.js +11 -6
  36. package/dist/las/las-copc-loader.js.map +1 -1
  37. package/dist/las/las-loader-shared.cjs +4 -2
  38. package/dist/las/las-loader-shared.cjs.map +2 -2
  39. package/dist/las/las-loader-shared.d.ts +9 -7
  40. package/dist/las/las-loader-shared.d.ts.map +1 -1
  41. package/dist/las/las-loader-shared.js +4 -2
  42. package/dist/las/las-loader-shared.js.map +1 -1
  43. package/dist/las/las-loader-types.cjs +3 -6
  44. package/dist/las/las-loader-types.cjs.map +2 -2
  45. package/dist/las/las-loader-types.d.ts +18 -45
  46. package/dist/las/las-loader-types.d.ts.map +1 -1
  47. package/dist/las/las-loader-types.js +1 -3
  48. package/dist/las/las-loader-types.js.map +1 -1
  49. package/dist/las/las-loader.cjs +61 -13
  50. package/dist/las/las-loader.cjs.map +3 -3
  51. package/dist/las/las-loader.d.ts +51 -5
  52. package/dist/las/las-loader.d.ts.map +1 -1
  53. package/dist/las/las-loader.js +56 -6
  54. package/dist/las/las-loader.js.map +1 -1
  55. package/dist/las/las-writer.cjs +3 -3
  56. package/dist/las/las-writer.cjs.map +2 -2
  57. package/dist/las/las-writer.d.ts +4 -3
  58. package/dist/las/las-writer.d.ts.map +1 -1
  59. package/dist/las/las-writer.js +4 -6
  60. package/dist/las/las-writer.js.map +1 -1
  61. package/dist/las/laz-rs-loader-types.cjs +1 -1
  62. package/dist/las/laz-rs-loader-types.cjs.map +2 -2
  63. package/dist/las/laz-rs-loader-types.d.ts +13 -9
  64. package/dist/las/laz-rs-loader-types.d.ts.map +1 -1
  65. package/dist/las/laz-rs-loader-types.js +1 -1
  66. package/dist/las/laz-rs-loader-types.js.map +1 -1
  67. package/dist/las/laz-rs-loader.cjs +8 -5
  68. package/dist/las/laz-rs-loader.cjs.map +2 -2
  69. package/dist/las/laz-rs-loader.d.ts +8 -6
  70. package/dist/las/laz-rs-loader.d.ts.map +1 -1
  71. package/dist/las/laz-rs-loader.js +11 -6
  72. package/dist/las/laz-rs-loader.js.map +1 -1
  73. package/dist/las/lazperf-loader-types.cjs +1 -1
  74. package/dist/las/lazperf-loader-types.cjs.map +2 -2
  75. package/dist/las/lazperf-loader-types.d.ts +14 -10
  76. package/dist/las/lazperf-loader-types.d.ts.map +1 -1
  77. package/dist/las/lazperf-loader-types.js +1 -1
  78. package/dist/las/lazperf-loader-types.js.map +1 -1
  79. package/dist/las/lazperf-loader.cjs +9 -6
  80. package/dist/las/lazperf-loader.cjs.map +2 -2
  81. package/dist/las/lazperf-loader.d.ts +9 -7
  82. package/dist/las/lazperf-loader.d.ts.map +1 -1
  83. package/dist/las/lazperf-loader.js +12 -7
  84. package/dist/las/lazperf-loader.js.map +1 -1
  85. package/dist/las/lib/copc/parse-las.cjs +1 -1
  86. package/dist/las/lib/copc/parse-las.cjs.map +2 -2
  87. package/dist/las/lib/copc/parse-las.js +1 -1
  88. package/dist/las/lib/copc/parse-las.js.map +1 -1
  89. package/dist/las/lib/get-las-schema.cjs +5 -0
  90. package/dist/las/lib/get-las-schema.cjs.map +2 -2
  91. package/dist/las/lib/get-las-schema.d.ts.map +1 -1
  92. package/dist/las/lib/get-las-schema.js +6 -0
  93. package/dist/las/lib/get-las-schema.js.map +1 -1
  94. package/dist/las/lib/las-extra-bytes.cjs +6 -1
  95. package/dist/las/lib/las-extra-bytes.cjs.map +2 -2
  96. package/dist/las/lib/las-extra-bytes.d.ts.map +1 -1
  97. package/dist/las/lib/las-extra-bytes.js +6 -4
  98. package/dist/las/lib/las-extra-bytes.js.map +1 -1
  99. package/dist/las/lib/laz-perf/parse-las.cjs +9 -8
  100. package/dist/las/lib/laz-perf/parse-las.cjs.map +3 -3
  101. package/dist/las/lib/laz-perf/parse-las.js +9 -8
  102. package/dist/las/lib/laz-perf/parse-las.js.map +1 -1
  103. package/dist/las/lib/laz-rs-wasm/parse-las.cjs +9 -8
  104. package/dist/las/lib/laz-rs-wasm/parse-las.cjs.map +3 -3
  105. package/dist/las/lib/laz-rs-wasm/parse-las.js +9 -8
  106. package/dist/las/lib/laz-rs-wasm/parse-las.js.map +1 -1
  107. package/dist/las/lib/typescript/parse-las.cjs +135 -13
  108. package/dist/las/lib/typescript/parse-las.cjs.map +3 -3
  109. package/dist/las/lib/typescript/parse-las.d.ts.map +1 -1
  110. package/dist/las/lib/typescript/parse-las.js +106 -10
  111. package/dist/las/lib/typescript/parse-las.js.map +1 -1
  112. package/dist/las/unbundled.cjs +0 -2
  113. package/dist/las/unbundled.cjs.map +2 -2
  114. package/dist/las/unbundled.d.ts +1 -1
  115. package/dist/las/unbundled.d.ts.map +1 -1
  116. package/dist/las/unbundled.js +1 -1
  117. package/dist/las/unbundled.js.map +1 -1
  118. package/dist/las/workers/las-worker.cjs +5 -5
  119. package/dist/las/workers/las-worker.cjs.map +2 -2
  120. package/dist/las/workers/las-worker.js +6 -6
  121. package/dist/las/workers/las-worker.js.map +1 -1
  122. package/dist/las-copc-loader-types.cjs +51 -0
  123. package/dist/las-copc-loader-types.cjs.map +7 -0
  124. package/dist/las-copc-loader-types.d.ts +2 -0
  125. package/dist/las-copc-loader-types.d.ts.map +1 -0
  126. package/dist/las-copc-loader-types.js +2 -0
  127. package/dist/las-copc-loader-types.js.map +1 -0
  128. package/dist/las-copc-loader.cjs +62 -0
  129. package/dist/las-copc-loader.cjs.map +7 -0
  130. package/dist/las-copc-loader.d.ts +2 -0
  131. package/dist/las-copc-loader.d.ts.map +1 -0
  132. package/dist/las-copc-loader.js +2 -0
  133. package/dist/las-copc-loader.js.map +1 -0
  134. package/dist/las-loader-types.cjs +53 -0
  135. package/dist/las-loader-types.cjs.map +7 -0
  136. package/dist/las-loader-types.d.ts +2 -0
  137. package/dist/las-loader-types.d.ts.map +1 -0
  138. package/dist/las-loader-types.js +2 -0
  139. package/dist/las-loader-types.js.map +1 -0
  140. package/dist/las-loader.cjs +130 -0
  141. package/dist/las-loader.cjs.map +7 -0
  142. package/dist/las-loader.d.ts +2 -0
  143. package/dist/las-loader.d.ts.map +1 -0
  144. package/dist/las-loader.js +2 -0
  145. package/dist/las-loader.js.map +1 -0
  146. package/dist/las-worker.js +1219 -253
  147. package/dist/las-writer.cjs +1056 -0
  148. package/dist/las-writer.cjs.map +7 -0
  149. package/dist/las-writer.d.ts +2 -0
  150. package/dist/las-writer.d.ts.map +1 -0
  151. package/dist/las-writer.js +2 -0
  152. package/dist/las-writer.js.map +1 -0
  153. package/dist/laz-rs-loader-types.cjs +51 -0
  154. package/dist/laz-rs-loader-types.cjs.map +7 -0
  155. package/dist/laz-rs-loader-types.d.ts +2 -0
  156. package/dist/laz-rs-loader-types.d.ts.map +1 -0
  157. package/dist/laz-rs-loader-types.js +2 -0
  158. package/dist/laz-rs-loader-types.js.map +1 -0
  159. package/dist/laz-rs-loader.cjs +277 -0
  160. package/dist/laz-rs-loader.cjs.map +7 -0
  161. package/dist/laz-rs-loader.d.ts +2 -0
  162. package/dist/laz-rs-loader.d.ts.map +1 -0
  163. package/dist/laz-rs-loader.js +2 -0
  164. package/dist/laz-rs-loader.js.map +1 -0
  165. package/dist/lazperf-loader-types.cjs +51 -0
  166. package/dist/lazperf-loader-types.cjs.map +7 -0
  167. package/dist/lazperf-loader-types.d.ts +2 -0
  168. package/dist/lazperf-loader-types.d.ts.map +1 -0
  169. package/dist/lazperf-loader-types.js +2 -0
  170. package/dist/lazperf-loader-types.js.map +1 -0
  171. package/dist/lazperf-loader.cjs +65 -0
  172. package/dist/lazperf-loader.cjs.map +7 -0
  173. package/dist/lazperf-loader.d.ts +2 -0
  174. package/dist/lazperf-loader.d.ts.map +1 -0
  175. package/dist/lazperf-loader.js +2 -0
  176. package/dist/lazperf-loader.js.map +1 -0
  177. package/dist/pcd/bundled.cjs +2 -4
  178. package/dist/pcd/bundled.cjs.map +2 -2
  179. package/dist/pcd/bundled.d.ts +1 -1
  180. package/dist/pcd/bundled.d.ts.map +1 -1
  181. package/dist/pcd/bundled.js +1 -1
  182. package/dist/pcd/bundled.js.map +1 -1
  183. package/dist/pcd/index.cjs +0 -3
  184. package/dist/pcd/index.cjs.map +3 -3
  185. package/dist/pcd/index.d.ts +0 -2
  186. package/dist/pcd/index.d.ts.map +1 -1
  187. package/dist/pcd/index.js +0 -3
  188. package/dist/pcd/index.js.map +1 -1
  189. package/dist/pcd/pcd-loader-types.cjs +9 -10
  190. package/dist/pcd/pcd-loader-types.cjs.map +2 -2
  191. package/dist/pcd/pcd-loader-types.d.ts +18 -41
  192. package/dist/pcd/pcd-loader-types.d.ts.map +1 -1
  193. package/dist/pcd/pcd-loader-types.js +6 -6
  194. package/dist/pcd/pcd-loader-types.js.map +1 -1
  195. package/dist/pcd/pcd-loader.cjs +82 -25
  196. package/dist/pcd/pcd-loader.cjs.map +3 -3
  197. package/dist/pcd/pcd-loader.d.ts +42 -6
  198. package/dist/pcd/pcd-loader.d.ts.map +1 -1
  199. package/dist/pcd/pcd-loader.js +72 -21
  200. package/dist/pcd/pcd-loader.js.map +1 -1
  201. package/dist/pcd/pcd-writer.cjs +3 -3
  202. package/dist/pcd/pcd-writer.cjs.map +2 -2
  203. package/dist/pcd/pcd-writer.d.ts +5 -4
  204. package/dist/pcd/pcd-writer.d.ts.map +1 -1
  205. package/dist/pcd/pcd-writer.js +4 -4
  206. package/dist/pcd/pcd-writer.js.map +1 -1
  207. package/dist/pcd/unbundled.cjs +2 -4
  208. package/dist/pcd/unbundled.cjs.map +2 -2
  209. package/dist/pcd/unbundled.d.ts +1 -1
  210. package/dist/pcd/unbundled.d.ts.map +1 -1
  211. package/dist/pcd/unbundled.js +1 -1
  212. package/dist/pcd/unbundled.js.map +1 -1
  213. package/dist/pcd/workers/pcd-worker.cjs +5 -5
  214. package/dist/pcd/workers/pcd-worker.cjs.map +2 -2
  215. package/dist/pcd/workers/pcd-worker.js +6 -6
  216. package/dist/pcd/workers/pcd-worker.js.map +1 -1
  217. package/dist/pcd-loader-types.cjs +65 -0
  218. package/dist/pcd-loader-types.cjs.map +7 -0
  219. package/dist/pcd-loader-types.d.ts +2 -0
  220. package/dist/pcd-loader-types.d.ts.map +1 -0
  221. package/dist/pcd-loader-types.js +2 -0
  222. package/dist/pcd-loader-types.js.map +1 -0
  223. package/dist/pcd-loader.cjs +203 -0
  224. package/dist/pcd-loader.cjs.map +7 -0
  225. package/dist/pcd-loader.d.ts +2 -0
  226. package/dist/pcd-loader.d.ts.map +1 -0
  227. package/dist/pcd-loader.js +2 -0
  228. package/dist/pcd-loader.js.map +1 -0
  229. package/dist/pcd-worker.js +1457 -418
  230. package/dist/pcd-writer.cjs +136 -0
  231. package/dist/pcd-writer.cjs.map +7 -0
  232. package/dist/pcd-writer.d.ts +2 -0
  233. package/dist/pcd-writer.d.ts.map +1 -0
  234. package/dist/pcd-writer.js +2 -0
  235. package/dist/pcd-writer.js.map +1 -0
  236. package/dist/ply/bundled.cjs +2 -4
  237. package/dist/ply/bundled.cjs.map +2 -2
  238. package/dist/ply/bundled.d.ts +1 -1
  239. package/dist/ply/bundled.d.ts.map +1 -1
  240. package/dist/ply/bundled.js +1 -1
  241. package/dist/ply/bundled.js.map +1 -1
  242. package/dist/ply/index.cjs +0 -3
  243. package/dist/ply/index.cjs.map +3 -3
  244. package/dist/ply/index.d.ts +0 -2
  245. package/dist/ply/index.d.ts.map +1 -1
  246. package/dist/ply/index.js +0 -3
  247. package/dist/ply/index.js.map +1 -1
  248. package/dist/ply/lib/get-ply-schema.cjs +4 -2
  249. package/dist/ply/lib/get-ply-schema.cjs.map +2 -2
  250. package/dist/ply/lib/get-ply-schema.d.ts +6 -0
  251. package/dist/ply/lib/get-ply-schema.d.ts.map +1 -1
  252. package/dist/ply/lib/get-ply-schema.js +1 -1
  253. package/dist/ply/lib/get-ply-schema.js.map +1 -1
  254. package/dist/ply/lib/parse-ply-arrow.cjs +1 -1
  255. package/dist/ply/lib/parse-ply-arrow.cjs.map +2 -2
  256. package/dist/ply/lib/parse-ply-arrow.js +2 -2
  257. package/dist/ply/lib/parse-ply-arrow.js.map +1 -1
  258. package/dist/ply/lib/parse-ply-in-batches.cjs +14 -8
  259. package/dist/ply/lib/parse-ply-in-batches.cjs.map +3 -3
  260. package/dist/ply/lib/parse-ply-in-batches.d.ts.map +1 -1
  261. package/dist/ply/lib/parse-ply-in-batches.js +9 -4
  262. package/dist/ply/lib/parse-ply-in-batches.js.map +1 -1
  263. package/dist/ply/lib/parse-ply.cjs +3 -0
  264. package/dist/ply/lib/parse-ply.cjs.map +2 -2
  265. package/dist/ply/lib/parse-ply.d.ts +1 -1
  266. package/dist/ply/lib/parse-ply.d.ts.map +1 -1
  267. package/dist/ply/lib/parse-ply.js +4 -0
  268. package/dist/ply/lib/parse-ply.js.map +1 -1
  269. package/dist/ply/ply-loader-types.cjs +9 -10
  270. package/dist/ply/ply-loader-types.cjs.map +2 -2
  271. package/dist/ply/ply-loader-types.d.ts +19 -42
  272. package/dist/ply/ply-loader-types.d.ts.map +1 -1
  273. package/dist/ply/ply-loader-types.js +6 -6
  274. package/dist/ply/ply-loader-types.js.map +1 -1
  275. package/dist/ply/ply-loader.cjs +82 -24
  276. package/dist/ply/ply-loader.cjs.map +3 -3
  277. package/dist/ply/ply-loader.d.ts +43 -6
  278. package/dist/ply/ply-loader.d.ts.map +1 -1
  279. package/dist/ply/ply-loader.js +71 -19
  280. package/dist/ply/ply-loader.js.map +1 -1
  281. package/dist/ply/ply-writer.cjs +3 -3
  282. package/dist/ply/ply-writer.cjs.map +2 -2
  283. package/dist/ply/ply-writer.d.ts +5 -4
  284. package/dist/ply/ply-writer.d.ts.map +1 -1
  285. package/dist/ply/ply-writer.js +4 -4
  286. package/dist/ply/ply-writer.js.map +1 -1
  287. package/dist/ply/unbundled.cjs +2 -4
  288. package/dist/ply/unbundled.cjs.map +2 -2
  289. package/dist/ply/unbundled.d.ts +1 -1
  290. package/dist/ply/unbundled.d.ts.map +1 -1
  291. package/dist/ply/unbundled.js +1 -1
  292. package/dist/ply/unbundled.js.map +1 -1
  293. package/dist/ply/workers/ply-worker.cjs +6 -6
  294. package/dist/ply/workers/ply-worker.cjs.map +2 -2
  295. package/dist/ply/workers/ply-worker.js +8 -8
  296. package/dist/ply/workers/ply-worker.js.map +1 -1
  297. package/dist/ply-loader-types.cjs +66 -0
  298. package/dist/ply-loader-types.cjs.map +7 -0
  299. package/dist/ply-loader-types.d.ts +2 -0
  300. package/dist/ply-loader-types.d.ts.map +1 -0
  301. package/dist/ply-loader-types.js +2 -0
  302. package/dist/ply-loader-types.js.map +1 -0
  303. package/dist/ply-loader.cjs +194 -0
  304. package/dist/ply-loader.cjs.map +7 -0
  305. package/dist/ply-loader.d.ts +2 -0
  306. package/dist/ply-loader.d.ts.map +1 -0
  307. package/dist/ply-loader.js +2 -0
  308. package/dist/ply-loader.js.map +1 -0
  309. package/dist/ply-worker.js +2099 -312
  310. package/dist/ply-writer.cjs +177 -0
  311. package/dist/ply-writer.cjs.map +7 -0
  312. package/dist/ply-writer.d.ts +2 -0
  313. package/dist/ply-writer.d.ts.map +1 -0
  314. package/dist/ply-writer.js +2 -0
  315. package/dist/ply-writer.js.map +1 -0
  316. package/package.json +75 -71
  317. package/src/index.ts +3 -3
  318. package/src/las/bundled.ts +0 -1
  319. package/src/las/index.ts +0 -4
  320. package/src/las/las-copc-loader-types.ts +3 -3
  321. package/src/las/las-copc-loader.ts +12 -12
  322. package/src/las/las-loader-shared.ts +9 -7
  323. package/src/las/las-loader-types.ts +3 -6
  324. package/src/las/las-loader.ts +63 -9
  325. package/src/las/las-writer.ts +17 -13
  326. package/src/las/laz-rs-loader-types.ts +3 -3
  327. package/src/las/laz-rs-loader.ts +11 -11
  328. package/src/las/lazperf-loader-types.ts +3 -3
  329. package/src/las/lazperf-loader.ts +13 -13
  330. package/src/las/lib/copc/parse-las.ts +1 -1
  331. package/src/las/lib/get-las-schema.ts +5 -0
  332. package/src/las/lib/las-extra-bytes.ts +6 -4
  333. package/src/las/lib/laz-perf/parse-las.ts +8 -9
  334. package/src/las/lib/laz-rs-wasm/parse-las.ts +8 -9
  335. package/src/las/lib/typescript/parse-las.ts +143 -11
  336. package/src/las/libs/laz-rs-wasm/README.md +5 -0
  337. package/src/las/libs/laz-rs-wasm/package.json +6 -0
  338. package/src/las/unbundled.ts +1 -1
  339. package/src/las/workers/las-worker.ts +6 -6
  340. package/src/las-copc-loader-types.ts +1 -0
  341. package/src/las-copc-loader.ts +1 -0
  342. package/src/las-loader-types.ts +1 -0
  343. package/src/las-loader.ts +1 -0
  344. package/src/las-writer.ts +1 -0
  345. package/src/laz-rs-loader-types.ts +1 -0
  346. package/src/laz-rs-loader.ts +1 -0
  347. package/src/lazperf-loader-types.ts +1 -0
  348. package/src/lazperf-loader.ts +1 -0
  349. package/src/pcd/bundled.ts +1 -4
  350. package/src/pcd/index.ts +0 -4
  351. package/src/pcd/pcd-loader-types.ts +10 -11
  352. package/src/pcd/pcd-loader.ts +97 -29
  353. package/src/pcd/pcd-writer.ts +12 -8
  354. package/src/pcd/unbundled.ts +1 -1
  355. package/src/pcd/workers/pcd-worker.ts +6 -6
  356. package/src/pcd-loader-types.ts +1 -0
  357. package/src/pcd-loader.ts +1 -0
  358. package/src/pcd-writer.ts +1 -0
  359. package/src/ply/bundled.ts +1 -4
  360. package/src/ply/index.ts +0 -4
  361. package/src/ply/lib/get-ply-schema.ts +1 -1
  362. package/src/ply/lib/parse-ply-arrow.ts +2 -2
  363. package/src/ply/lib/parse-ply-in-batches.ts +9 -4
  364. package/src/ply/lib/parse-ply.ts +4 -1
  365. package/src/ply/ply-loader-types.ts +10 -11
  366. package/src/ply/ply-loader.ts +94 -24
  367. package/src/ply/ply-writer.ts +12 -8
  368. package/src/ply/unbundled.ts +1 -1
  369. package/src/ply/workers/ply-worker.ts +8 -8
  370. package/src/ply-loader-types.ts +1 -0
  371. package/src/ply-loader.ts +1 -0
  372. package/src/ply-writer.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"parse-las.d.ts","sourceRoot":"","sources":["../../../../src/las/lib/typescript/parse-las.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,cAAc,EAAiB,MAAM,yBAAyB,CAAC;AAY5E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAC,gBAAgB,EAAC,kCAA+B;AAc7D,OAAO,KAAK,EAGV,SAAS,EAIV,wBAAqB;AAEtB,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,qEAAqE;IACrE,MAAM,EAAE,KAAK,CAAC;IACd,oDAAoD;IACpD,UAAU,EAAE,SAAS,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG;IAC1D,6DAA6D;IAC7D,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8DAA8D;IAC9D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAoHF,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa,CA8BhG;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,WAAW,GAAG,eAAe,EACzC,QAAQ,EAAE,0BAA0B,EACpC,OAAO,EAAE,gBAAgB,GACxB,aAAa,CAoCf;AA4GD,wEAAwE;AACxE,wBAAuB,iBAAiB,CACtC,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,GAAE,gBAAqB,GAC7B,aAAa,CAAC,aAAa,CAAC,CAoD9B;AAED,6CAA6C;AAC7C,wBAAiB,uBAAuB,CACtC,WAAW,EAAE,WAAW,EACxB,SAAS,GAAE,MAA2B,EACtC,OAAO,GAAE,gBAAqB,GAC7B,QAAQ,CAAC,eAAe,CAAC,CA6B3B;AAED,4FAA4F;AAC5F,wBAAuB,sBAAsB,CAC3C,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,GAAE,gBAAqB,GAC7B,aAAa,CAAC,eAAe,CAAC,CAkBhC;AA6mBD,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAiGtE;AA+9ED,eAAO,MAAM,qBAAqB,MAAuB,CAAC"}
1
+ {"version":3,"file":"parse-las.d.ts","sourceRoot":"","sources":["../../../../src/las/lib/typescript/parse-las.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,cAAc,EAAiB,MAAM,yBAAyB,CAAC;AAY5E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAC,gBAAgB,EAAC,kCAA+B;AAc7D,OAAO,KAAK,EAGV,SAAS,EAIV,wBAAqB;AAEtB,2FAA2F;AAC3F,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,qEAAqE;IACrE,MAAM,EAAE,KAAK,CAAC;IACd,oDAAoD;IACpD,UAAU,EAAE,SAAS,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG;IAC1D,6DAA6D;IAC7D,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8DAA8D;IAC9D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAoHF,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa,CA8BhG;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,WAAW,GAAG,eAAe,EACzC,QAAQ,EAAE,0BAA0B,EACpC,OAAO,EAAE,gBAAgB,GACxB,aAAa,CAoCf;AA4GD,wEAAwE;AACxE,wBAAuB,iBAAiB,CACtC,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,GAAE,gBAAqB,GAC7B,aAAa,CAAC,aAAa,CAAC,CA6H9B;AAkDD,6CAA6C;AAC7C,wBAAiB,uBAAuB,CACtC,WAAW,EAAE,WAAW,EACxB,SAAS,GAAE,MAA2B,EACtC,OAAO,GAAE,gBAAqB,GAC7B,QAAQ,CAAC,eAAe,CAAC,CA6B3B;AAED,4FAA4F;AAC5F,wBAAuB,sBAAsB,CAC3C,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,GAAE,gBAAqB,GAC7B,aAAa,CAAC,eAAe,CAAC,CAkBhC;AAinBD,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,SAAS,CAiGtE;AAm+ED,eAAO,MAAM,qBAAqB,MAAuB,CAAC"}
@@ -1,6 +1,9 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { makeArrowMetadataBatch, updateArrowTableMetadata } from '@loaders.gl/core/schema-utils';
5
+ import * as arrow from 'apache-arrow';
6
+ import { makeMetadataFromLasHeader } from "../get-las-schema.js";
4
7
  import { makeMeshArrowTable } from '@loaders.gl/core/schema-utils';
5
8
  import { BinaryChunkReader, createLAZChunkDecoder, createLAZChunkDecoderCursor, decodeLAZChunk, decodeLAZChunkTable, getLAZChunkDeclaredByteLength, getLAZChunkHeaderByteLength, NeedsMoreData } from '@loaders.gl/core/loader-utils';
6
9
  import { getLASSchema } from "../get-las-schema.js";
@@ -141,6 +144,7 @@ export async function* parseLASInBatches(arrayBufferIterator, options = {}) {
141
144
  let header = null;
142
145
  let sourcePointIndex = 0;
143
146
  let totalRead = 0;
147
+ let lastTable;
144
148
  while (true) {
145
149
  const next = await inputIterator.next();
146
150
  if (next.done) {
@@ -150,6 +154,8 @@ export async function* parseLASInBatches(arrayBufferIterator, options = {}) {
150
154
  pending = concatenateUint8Arrays(pending, toUint8Array(chunk));
151
155
  if (!header) {
152
156
  header = tryParseHeader(pending, absoluteOffset);
157
+ if (header && pending.byteLength < header.pointsOffset)
158
+ header = null;
153
159
  if (header) {
154
160
  header.totalToRead = header.pointsCount;
155
161
  }
@@ -158,7 +164,57 @@ export async function* parseLASInBatches(arrayBufferIterator, options = {}) {
158
164
  continue;
159
165
  }
160
166
  if (header.isCompressed) {
161
- yield* parseLAZInBatches(pending, inputIterator, header, options);
167
+ const extendedOffset = header.metadata?.evlrOffset;
168
+ let inputOffset = pending.byteLength;
169
+ const extendedChunks = [];
170
+ if (extendedOffset && extendedOffset < inputOffset) {
171
+ extendedChunks.push(pending.subarray(extendedOffset));
172
+ }
173
+ const trackedIterator = {
174
+ async next() {
175
+ const next = await inputIterator.next();
176
+ if (!next.done && extendedOffset) {
177
+ const bytes = toUint8Array(next.value);
178
+ const start = Math.max(extendedOffset - inputOffset, 0);
179
+ if (start < bytes.byteLength)
180
+ extendedChunks.push(bytes.slice(start));
181
+ inputOffset += bytes.byteLength;
182
+ }
183
+ return next;
184
+ }
185
+ };
186
+ if (header.pointsCount === 0) {
187
+ const { laszip } = await readLASZipVLRFromInput(pending, trackedIterator, header);
188
+ validateTypeScriptLAZSupport(header, laszip);
189
+ lastTable = makeEmptyLASBatch(header, options);
190
+ }
191
+ else {
192
+ for await (const table of parseLAZInBatches(pending, trackedIterator, header, options)) {
193
+ lastTable = updateArrowTableMetadata(table, makeMetadataFromLasHeader({
194
+ ...header,
195
+ totalRead: table.loaderData.totalRead,
196
+ metadata: table.loaderData.metadata || header.metadata
197
+ }));
198
+ yield lastTable;
199
+ }
200
+ }
201
+ if (extendedOffset &&
202
+ lastTable &&
203
+ header.metadata?.evlrCount &&
204
+ (lastTable.loaderData.metadata?.evlrs.length ?? 0) < header.metadata.evlrCount) {
205
+ while (!(await trackedIterator.next()).done) {
206
+ // Finish reading trailing records if the decoder stopped at its chunk table.
207
+ }
208
+ // The tracked iterator retains only the extended-record suffix.
209
+ const suffix = extendedChunks.reduce(concatenateUint8Arrays, new Uint8Array(0));
210
+ const update = makeLASMetadataUpdate(lastTable, header, suffix, extendedOffset, lastTable.loaderData.totalRead);
211
+ if (update) {
212
+ yield update;
213
+ return;
214
+ }
215
+ }
216
+ if (header.pointsCount === 0 && lastTable)
217
+ yield lastTable;
162
218
  return;
163
219
  }
164
220
  for (const batch of readAvailablePointBatches(pending, absoluteOffset, header, sourcePointIndex, totalRead, batchSize)) {
@@ -166,7 +222,8 @@ export async function* parseLASInBatches(arrayBufferIterator, options = {}) {
166
222
  totalRead = batch.totalRead;
167
223
  pending = batch.pending;
168
224
  absoluteOffset = batch.absoluteOffset;
169
- yield parseLASArrowTableBatch(batch.arrayBuffer, batch.header, options);
225
+ lastTable = updateArrowTableMetadata(parseLASArrowTableBatch(batch.arrayBuffer, batch.header, options), makeMetadataFromLasHeader({ ...header, totalRead }));
226
+ yield lastTable;
170
227
  }
171
228
  }
172
229
  if (!header) {
@@ -175,6 +232,40 @@ export async function* parseLASInBatches(arrayBufferIterator, options = {}) {
175
232
  if (totalRead < header.totalToRead) {
176
233
  throw new Error('LASLoader: truncated LAS point data');
177
234
  }
235
+ if (!lastTable) {
236
+ lastTable = makeEmptyLASBatch(header, options);
237
+ yield lastTable;
238
+ }
239
+ const update = makeLASMetadataUpdate(lastTable, header, pending, absoluteOffset, totalRead);
240
+ if (update)
241
+ yield update;
242
+ }
243
+ /** Creates the declared point schema and original header metadata for a zero-point stream. */
244
+ function makeEmptyLASBatch(header, options) {
245
+ const table = parseLASArrowTableBatch(new ArrayBuffer(0), { ...header, pointsOffset: 0 }, options);
246
+ return updateArrowTableMetadata({ ...table, loaderData: header }, makeMetadataFromLasHeader(header));
247
+ }
248
+ /** Builds a schema-only batch carrying late extended records and their absolute offsets. */
249
+ function makeLASMetadataUpdate(lastTable, header, pending, absoluteOffset, totalRead) {
250
+ const metadata = header.metadata;
251
+ if (metadata?.evlrOffset && metadata.evlrCount) {
252
+ const relativeOffset = metadata.evlrOffset - absoluteOffset;
253
+ const records = parseLASExtendedVariableLengthRecords(new DataView(pending.buffer, pending.byteOffset, pending.byteLength), relativeOffset, metadata.evlrCount).map(record => ({ ...record, offset: record.offset + absoluteOffset }));
254
+ const finalMetadata = {
255
+ ...metadata,
256
+ evlrs: records,
257
+ extraBytes: [...metadata.extraBytes],
258
+ waveformPacketDescriptors: [...metadata.waveformPacketDescriptors]
259
+ };
260
+ for (const record of records)
261
+ parseTypedLASMetadataRecord({ ...record, data: record.data || new Uint8Array() }, finalMetadata);
262
+ resolveLASGeoTIFFKeyDirectory(finalMetadata);
263
+ const finalHeader = { ...header, totalRead, metadata: finalMetadata };
264
+ if (records.length > 0) {
265
+ const data = new arrow.Table([makeArrowMetadataBatch(lastTable.data.schema)]);
266
+ return updateArrowTableMetadata({ ...lastTable, data, loaderData: finalHeader }, makeMetadataFromLasHeader(finalHeader));
267
+ }
268
+ }
178
269
  }
179
270
  /** Decode LAS data into raw point chunks. */
180
271
  export function* parseLASChunkedIterator(arrayBuffer, batchSize = DEFAULT_BATCH_SIZE, options = {}) {
@@ -535,7 +626,7 @@ function* parseLAZChunkedIterator(arrayBuffer, header, batchSize, parsedLASZipVL
535
626
  if (header.pointsFormatId <= 5 || laszip.variableChunks) {
536
627
  yield* decodeLAZFileFromCompleteBytes(new Uint8Array(arrayBuffer), header, laszip, {
537
628
  ...options,
538
- batchSize
629
+ core: { ...options.core, batchSize }
539
630
  });
540
631
  return;
541
632
  }
@@ -559,7 +650,11 @@ function* parseLAZChunkedIterator(arrayBuffer, header, batchSize, parsedLASZipVL
559
650
  }
560
651
  function* decodeLAZFileFromCompleteBytes(bytes, header, laszip, options = {}) {
561
652
  const batchSize = getBatchSize(options);
562
- const outputHeader = { ...header, totalToRead: header.pointsCount };
653
+ const outputHeader = {
654
+ ...header,
655
+ metadata: parseLASMetadata(bytes, header),
656
+ totalToRead: header.pointsCount
657
+ };
563
658
  const state = createRawPointBatchState(batchSize, header.pointsStructSize, getLAZStreamingDecodeStats(options));
564
659
  const chunkTable = readLAZFileChunks(bytes, header, laszip, options);
565
660
  let byteOffset = header.pointsOffset + (laszip.compressor === 1 ? 0 : LAZ_CHUNK_TABLE_POINTER_LENGTH);
@@ -691,7 +786,8 @@ function hasCompleteLASMetadata(arrayBuffer, header) {
691
786
  return arrayBuffer.byteLength >= Math.max(vlrEnd, header.pointsOffset);
692
787
  }
693
788
  function parseLASMetadata(arrayBuffer, header) {
694
- const dataView = new DataView(arrayBuffer);
789
+ const dataView = makeDataView(arrayBuffer);
790
+ const bytes = new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength);
695
791
  const version = header.versionAsString || '1.0';
696
792
  const versionParts = version.split('.').map(Number);
697
793
  const isAtLeast14 = versionParts[0] > 1 || (versionParts[0] === 1 && versionParts[1] >= 4);
@@ -705,9 +801,9 @@ function parseLASMetadata(arrayBuffer, header) {
705
801
  waveformDataOffset: versionParts[0] > 1 || (versionParts[0] === 1 && versionParts[1] >= 3)
706
802
  ? dataView.getBigUint64(227, true)
707
803
  : undefined,
708
- projectId: formatLASProjectId(new Uint8Array(arrayBuffer, 8, 16)),
709
- systemIdentifier: readLASString(new Uint8Array(arrayBuffer), 26, 32),
710
- generatingSoftware: readLASString(new Uint8Array(arrayBuffer), 58, 32),
804
+ projectId: formatLASProjectId(bytes.subarray(8, 24)),
805
+ systemIdentifier: readLASString(bytes, 26, 32),
806
+ generatingSoftware: readLASString(bytes, 58, 32),
711
807
  creationDayOfYear: dataView.getUint16(90, true),
712
808
  creationYear: dataView.getUint16(92, true),
713
809
  headerSize: header.headerSize,
@@ -757,7 +853,7 @@ function parseLASVariableLengthRecords(dataView, header) {
757
853
  return records;
758
854
  }
759
855
  function parseLASExtendedVariableLengthRecords(dataView, evlrOffset, evlrCount) {
760
- if (!evlrOffset || !evlrCount || evlrOffset >= dataView.byteLength) {
856
+ if (evlrOffset < 0 || !evlrCount || evlrOffset >= dataView.byteLength) {
761
857
  return [];
762
858
  }
763
859
  const bytes = new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength);
@@ -1305,7 +1401,7 @@ function detectTwoByteColors(dataView, lasHeader, sourcePointIndex, batchSize, c
1305
1401
  return false;
1306
1402
  }
1307
1403
  function getBatchSize(options) {
1308
- const batchSize = options.batchSize ?? options.core?.batchSize;
1404
+ const batchSize = options.core?.batchSize;
1309
1405
  return typeof batchSize === 'number' ? batchSize : DEFAULT_BATCH_SIZE;
1310
1406
  }
1311
1407
  function parseLASZipVLR(bytes, header) {