@loaders.gl/pointclouds 0.0.0-stage → 5.0.0-beta.1

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 (405) hide show
  1. package/LAS-README.md +12 -0
  2. package/LICENSE +24 -0
  3. package/PCD-README.md +12 -0
  4. package/PLY-README.md +38 -0
  5. package/README.md +7 -2
  6. package/THIRD-PARTY-NOTICES.md +27 -0
  7. package/dist/dist.dev.js +30141 -0
  8. package/dist/dist.min.js +54 -0
  9. package/dist/index.cjs +61 -0
  10. package/dist/index.cjs.map +7 -0
  11. package/dist/index.d.ts +16 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +13 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/las/bundled.cjs +72 -0
  16. package/dist/las/bundled.cjs.map +7 -0
  17. package/dist/las/bundled.d.ts +12 -0
  18. package/dist/las/bundled.d.ts.map +1 -0
  19. package/dist/las/bundled.js +12 -0
  20. package/dist/las/bundled.js.map +1 -0
  21. package/dist/las/index.cjs +78 -0
  22. package/dist/las/index.cjs.map +7 -0
  23. package/dist/las/index.d.ts +17 -0
  24. package/dist/las/index.d.ts.map +1 -0
  25. package/dist/las/index.js +15 -0
  26. package/dist/las/index.js.map +1 -0
  27. package/dist/las/las-copc-loader-types.cjs +49 -0
  28. package/dist/las/las-copc-loader-types.cjs.map +7 -0
  29. package/dist/las/las-copc-loader-types.d.ts +63 -0
  30. package/dist/las/las-copc-loader-types.d.ts.map +1 -0
  31. package/dist/las/las-copc-loader-types.js +14 -0
  32. package/dist/las/las-copc-loader-types.js.map +1 -0
  33. package/dist/las/las-copc-loader.cjs +57 -0
  34. package/dist/las/las-copc-loader.cjs.map +7 -0
  35. package/dist/las/las-copc-loader.d.ts +37 -0
  36. package/dist/las/las-copc-loader.d.ts.map +1 -0
  37. package/dist/las/las-copc-loader.js +40 -0
  38. package/dist/las/las-copc-loader.js.map +1 -0
  39. package/dist/las/las-format.cjs +44 -0
  40. package/dist/las/las-format.cjs.map +7 -0
  41. package/dist/las/las-format.d.ts +16 -0
  42. package/dist/las/las-format.d.ts.map +1 -0
  43. package/dist/las/las-format.js +19 -0
  44. package/dist/las/las-format.js.map +1 -0
  45. package/dist/las/las-loader-shared.cjs +82 -0
  46. package/dist/las/las-loader-shared.cjs.map +7 -0
  47. package/dist/las/las-loader-shared.d.ts +66 -0
  48. package/dist/las/las-loader-shared.d.ts.map +1 -0
  49. package/dist/las/las-loader-shared.js +58 -0
  50. package/dist/las/las-loader-shared.js.map +1 -0
  51. package/dist/las/las-loader-types.cjs +54 -0
  52. package/dist/las/las-loader-types.cjs.map +7 -0
  53. package/dist/las/las-loader-types.d.ts +104 -0
  54. package/dist/las/las-loader-types.d.ts.map +1 -0
  55. package/dist/las/las-loader-types.js +19 -0
  56. package/dist/las/las-loader-types.js.map +1 -0
  57. package/dist/las/las-loader.cjs +80 -0
  58. package/dist/las/las-loader.cjs.map +7 -0
  59. package/dist/las/las-loader.d.ts +45 -0
  60. package/dist/las/las-loader.d.ts.map +1 -0
  61. package/dist/las/las-loader.js +58 -0
  62. package/dist/las/las-loader.js.map +1 -0
  63. package/dist/las/las-writer.cjs +1054 -0
  64. package/dist/las/las-writer.cjs.map +7 -0
  65. package/dist/las/las-writer.d.ts +69 -0
  66. package/dist/las/las-writer.d.ts.map +1 -0
  67. package/dist/las/las-writer.js +994 -0
  68. package/dist/las/las-writer.js.map +1 -0
  69. package/dist/las/laz-rs-loader-types.cjs +49 -0
  70. package/dist/las/laz-rs-loader-types.cjs.map +7 -0
  71. package/dist/las/laz-rs-loader-types.d.ts +65 -0
  72. package/dist/las/laz-rs-loader-types.d.ts.map +1 -0
  73. package/dist/las/laz-rs-loader-types.js +16 -0
  74. package/dist/las/laz-rs-loader-types.js.map +1 -0
  75. package/dist/las/laz-rs-loader.cjs +272 -0
  76. package/dist/las/laz-rs-loader.cjs.map +7 -0
  77. package/dist/las/laz-rs-loader.d.ts +37 -0
  78. package/dist/las/laz-rs-loader.d.ts.map +1 -0
  79. package/dist/las/laz-rs-loader.js +38 -0
  80. package/dist/las/laz-rs-loader.js.map +1 -0
  81. package/dist/las/lazperf-loader-types.cjs +49 -0
  82. package/dist/las/lazperf-loader-types.cjs.map +7 -0
  83. package/dist/las/lazperf-loader-types.d.ts +67 -0
  84. package/dist/las/lazperf-loader-types.d.ts.map +1 -0
  85. package/dist/las/lazperf-loader-types.js +17 -0
  86. package/dist/las/lazperf-loader-types.js.map +1 -0
  87. package/dist/las/lazperf-loader.cjs +60 -0
  88. package/dist/las/lazperf-loader.cjs.map +7 -0
  89. package/dist/las/lazperf-loader.d.ts +39 -0
  90. package/dist/las/lazperf-loader.d.ts.map +1 -0
  91. package/dist/las/lazperf-loader.js +44 -0
  92. package/dist/las/lazperf-loader.js.map +1 -0
  93. package/dist/las/lib/copc/parse-las.cjs +177 -0
  94. package/dist/las/lib/copc/parse-las.cjs.map +7 -0
  95. package/dist/las/lib/copc/parse-las.d.ts +17 -0
  96. package/dist/las/lib/copc/parse-las.d.ts.map +1 -0
  97. package/dist/las/lib/copc/parse-las.js +215 -0
  98. package/dist/las/lib/copc/parse-las.js.map +1 -0
  99. package/dist/las/lib/get-las-schema.cjs +62 -0
  100. package/dist/las/lib/get-las-schema.cjs.map +7 -0
  101. package/dist/las/lib/get-las-schema.d.ts +16 -0
  102. package/dist/las/lib/get-las-schema.d.ts.map +1 -0
  103. package/dist/las/lib/get-las-schema.js +46 -0
  104. package/dist/las/lib/get-las-schema.js.map +1 -0
  105. package/dist/las/lib/las-compatibility.cjs +110 -0
  106. package/dist/las/lib/las-compatibility.cjs.map +7 -0
  107. package/dist/las/lib/las-compatibility.d.ts +40 -0
  108. package/dist/las/lib/las-compatibility.d.ts.map +1 -0
  109. package/dist/las/lib/las-compatibility.js +115 -0
  110. package/dist/las/lib/las-compatibility.js.map +1 -0
  111. package/dist/las/lib/las-extra-bytes.cjs +223 -0
  112. package/dist/las/lib/las-extra-bytes.cjs.map +7 -0
  113. package/dist/las/lib/las-extra-bytes.d.ts +35 -0
  114. package/dist/las/lib/las-extra-bytes.d.ts.map +1 -0
  115. package/dist/las/lib/las-extra-bytes.js +195 -0
  116. package/dist/las/lib/las-extra-bytes.js.map +1 -0
  117. package/dist/las/lib/las-types.cjs +19 -0
  118. package/dist/las/lib/las-types.cjs.map +7 -0
  119. package/dist/las/lib/las-types.d.ts +194 -0
  120. package/dist/las/lib/las-types.d.ts.map +1 -0
  121. package/dist/las/lib/las-types.js +5 -0
  122. package/dist/las/lib/las-types.js.map +1 -0
  123. package/dist/las/lib/las-waveform.cjs +196 -0
  124. package/dist/las/lib/las-waveform.cjs.map +7 -0
  125. package/dist/las/lib/las-waveform.d.ts +89 -0
  126. package/dist/las/lib/las-waveform.d.ts.map +1 -0
  127. package/dist/las/lib/las-waveform.js +193 -0
  128. package/dist/las/lib/las-waveform.js.map +1 -0
  129. package/dist/las/lib/laz-perf/laslaz-decoder.cjs +382 -0
  130. package/dist/las/lib/laz-perf/laslaz-decoder.cjs.map +7 -0
  131. package/dist/las/lib/laz-perf/laslaz-decoder.d.ts +129 -0
  132. package/dist/las/lib/laz-perf/laslaz-decoder.d.ts.map +1 -0
  133. package/dist/las/lib/laz-perf/laslaz-decoder.js +377 -0
  134. package/dist/las/lib/laz-perf/laslaz-decoder.js.map +1 -0
  135. package/dist/las/lib/laz-perf/parse-las.cjs +270 -0
  136. package/dist/las/lib/laz-perf/parse-las.cjs.map +7 -0
  137. package/dist/las/lib/laz-perf/parse-las.d.ts +24 -0
  138. package/dist/las/lib/laz-perf/parse-las.d.ts.map +1 -0
  139. package/dist/las/lib/laz-perf/parse-las.js +307 -0
  140. package/dist/las/lib/laz-perf/parse-las.js.map +1 -0
  141. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.cjs +631 -0
  142. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.cjs.map +7 -0
  143. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.d.ts +129 -0
  144. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.d.ts.map +1 -0
  145. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.js +414 -0
  146. package/dist/las/lib/laz-rs-wasm/laslaz-decoder.js.map +1 -0
  147. package/dist/las/lib/laz-rs-wasm/parse-las.cjs +270 -0
  148. package/dist/las/lib/laz-rs-wasm/parse-las.cjs.map +7 -0
  149. package/dist/las/lib/laz-rs-wasm/parse-las.d.ts +24 -0
  150. package/dist/las/lib/laz-rs-wasm/parse-las.d.ts.map +1 -0
  151. package/dist/las/lib/laz-rs-wasm/parse-las.js +307 -0
  152. package/dist/las/lib/laz-rs-wasm/parse-las.js.map +1 -0
  153. package/dist/las/lib/typescript/parse-las.cjs +2767 -0
  154. package/dist/las/lib/typescript/parse-las.cjs.map +7 -0
  155. package/dist/las/lib/typescript/parse-las.d.ts +39 -0
  156. package/dist/las/lib/typescript/parse-las.d.ts.map +1 -0
  157. package/dist/las/lib/typescript/parse-las.js +2607 -0
  158. package/dist/las/lib/typescript/parse-las.js.map +1 -0
  159. package/dist/las/libs/laz-perf/laz-perf.cjs +18093 -0
  160. package/dist/las/libs/laz-perf/laz-perf.cjs.map +7 -0
  161. package/dist/las/libs/laz-perf/laz-perf.d.ts +2 -0
  162. package/dist/las/libs/laz-perf/laz-perf.d.ts.map +1 -0
  163. package/dist/las/libs/laz-perf/laz-perf.js +19003 -0
  164. package/dist/las/libs/laz-perf/laz-perf.js.map +1 -0
  165. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm.d.ts +95 -0
  166. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm.d.ts.map +1 -0
  167. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm.js +442 -0
  168. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm.js.map +1 -0
  169. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm_bg.wasm +0 -0
  170. package/dist/las/libs/laz-rs-wasm/laz_rs_wasm_bg.wasm.d.ts +38 -0
  171. package/dist/las/unbundled.cjs +71 -0
  172. package/dist/las/unbundled.cjs.map +7 -0
  173. package/dist/las/unbundled.d.ts +11 -0
  174. package/dist/las/unbundled.d.ts.map +1 -0
  175. package/dist/las/unbundled.js +11 -0
  176. package/dist/las/unbundled.js.map +1 -0
  177. package/dist/las/workers/las-worker.cjs +23 -0
  178. package/dist/las/workers/las-worker.cjs.map +7 -0
  179. package/dist/las/workers/las-worker.d.ts +2 -0
  180. package/dist/las/workers/las-worker.d.ts.map +1 -0
  181. package/dist/las/workers/las-worker.js +23 -0
  182. package/dist/las/workers/las-worker.js.map +1 -0
  183. package/dist/las-worker.js +23058 -0
  184. package/dist/pcd/bundled.cjs +33 -0
  185. package/dist/pcd/bundled.cjs.map +7 -0
  186. package/dist/pcd/bundled.d.ts +3 -0
  187. package/dist/pcd/bundled.d.ts.map +1 -0
  188. package/dist/pcd/bundled.js +5 -0
  189. package/dist/pcd/bundled.js.map +1 -0
  190. package/dist/pcd/index.cjs +40 -0
  191. package/dist/pcd/index.cjs.map +7 -0
  192. package/dist/pcd/index.d.ts +8 -0
  193. package/dist/pcd/index.d.ts.map +1 -0
  194. package/dist/pcd/index.js +10 -0
  195. package/dist/pcd/index.js.map +1 -0
  196. package/dist/pcd/lib/decompress-lzf.cjs +80 -0
  197. package/dist/pcd/lib/decompress-lzf.cjs.map +7 -0
  198. package/dist/pcd/lib/decompress-lzf.d.ts +7 -0
  199. package/dist/pcd/lib/decompress-lzf.d.ts.map +1 -0
  200. package/dist/pcd/lib/decompress-lzf.js +62 -0
  201. package/dist/pcd/lib/decompress-lzf.js.map +1 -0
  202. package/dist/pcd/lib/get-pcd-schema.cjs +70 -0
  203. package/dist/pcd/lib/get-pcd-schema.cjs.map +7 -0
  204. package/dist/pcd/lib/get-pcd-schema.d.ts +10 -0
  205. package/dist/pcd/lib/get-pcd-schema.d.ts.map +1 -0
  206. package/dist/pcd/lib/get-pcd-schema.js +53 -0
  207. package/dist/pcd/lib/get-pcd-schema.js.map +1 -0
  208. package/dist/pcd/lib/parse-pcd.cjs +354 -0
  209. package/dist/pcd/lib/parse-pcd.cjs.map +7 -0
  210. package/dist/pcd/lib/parse-pcd.d.ts +20 -0
  211. package/dist/pcd/lib/parse-pcd.d.ts.map +1 -0
  212. package/dist/pcd/lib/parse-pcd.js +341 -0
  213. package/dist/pcd/lib/parse-pcd.js.map +1 -0
  214. package/dist/pcd/lib/pcd-types.cjs +19 -0
  215. package/dist/pcd/lib/pcd-types.cjs.map +7 -0
  216. package/dist/pcd/lib/pcd-types.d.ts +31 -0
  217. package/dist/pcd/lib/pcd-types.d.ts.map +1 -0
  218. package/dist/pcd/lib/pcd-types.js +5 -0
  219. package/dist/pcd/lib/pcd-types.js.map +1 -0
  220. package/dist/pcd/pcd-format.cjs +42 -0
  221. package/dist/pcd/pcd-format.cjs.map +7 -0
  222. package/dist/pcd/pcd-format.d.ts +16 -0
  223. package/dist/pcd/pcd-format.d.ts.map +1 -0
  224. package/dist/pcd/pcd-format.js +19 -0
  225. package/dist/pcd/pcd-format.js.map +1 -0
  226. package/dist/pcd/pcd-loader-types.cjs +64 -0
  227. package/dist/pcd/pcd-loader-types.cjs.map +7 -0
  228. package/dist/pcd/pcd-loader-types.d.ts +105 -0
  229. package/dist/pcd/pcd-loader-types.d.ts.map +1 -0
  230. package/dist/pcd/pcd-loader-types.js +35 -0
  231. package/dist/pcd/pcd-loader-types.js.map +1 -0
  232. package/dist/pcd/pcd-loader.cjs +144 -0
  233. package/dist/pcd/pcd-loader.cjs.map +7 -0
  234. package/dist/pcd/pcd-loader.d.ts +44 -0
  235. package/dist/pcd/pcd-loader.d.ts.map +1 -0
  236. package/dist/pcd/pcd-loader.js +128 -0
  237. package/dist/pcd/pcd-loader.js.map +1 -0
  238. package/dist/pcd/pcd-writer.cjs +134 -0
  239. package/dist/pcd/pcd-writer.cjs.map +7 -0
  240. package/dist/pcd/pcd-writer.d.ts +37 -0
  241. package/dist/pcd/pcd-writer.d.ts.map +1 -0
  242. package/dist/pcd/pcd-writer.js +115 -0
  243. package/dist/pcd/pcd-writer.js.map +1 -0
  244. package/dist/pcd/unbundled.cjs +33 -0
  245. package/dist/pcd/unbundled.cjs.map +7 -0
  246. package/dist/pcd/unbundled.d.ts +3 -0
  247. package/dist/pcd/unbundled.d.ts.map +1 -0
  248. package/dist/pcd/unbundled.js +5 -0
  249. package/dist/pcd/unbundled.js.map +1 -0
  250. package/dist/pcd/workers/pcd-worker.cjs +23 -0
  251. package/dist/pcd/workers/pcd-worker.cjs.map +7 -0
  252. package/dist/pcd/workers/pcd-worker.d.ts +2 -0
  253. package/dist/pcd/workers/pcd-worker.d.ts.map +1 -0
  254. package/dist/pcd/workers/pcd-worker.js +23 -0
  255. package/dist/pcd/workers/pcd-worker.js.map +1 -0
  256. package/dist/pcd-worker.js +17522 -0
  257. package/dist/ply/bundled.cjs +33 -0
  258. package/dist/ply/bundled.cjs.map +7 -0
  259. package/dist/ply/bundled.d.ts +3 -0
  260. package/dist/ply/bundled.d.ts.map +1 -0
  261. package/dist/ply/bundled.js +5 -0
  262. package/dist/ply/bundled.js.map +1 -0
  263. package/dist/ply/index.cjs +40 -0
  264. package/dist/ply/index.cjs.map +7 -0
  265. package/dist/ply/index.d.ts +8 -0
  266. package/dist/ply/index.d.ts.map +1 -0
  267. package/dist/ply/index.js +11 -0
  268. package/dist/ply/index.js.map +1 -0
  269. package/dist/ply/lib/get-ply-schema.cjs +126 -0
  270. package/dist/ply/lib/get-ply-schema.cjs.map +7 -0
  271. package/dist/ply/lib/get-ply-schema.d.ts +10 -0
  272. package/dist/ply/lib/get-ply-schema.d.ts.map +1 -0
  273. package/dist/ply/lib/get-ply-schema.js +117 -0
  274. package/dist/ply/lib/get-ply-schema.js.map +1 -0
  275. package/dist/ply/lib/normalize-ply.cjs +96 -0
  276. package/dist/ply/lib/normalize-ply.cjs.map +7 -0
  277. package/dist/ply/lib/normalize-ply.d.ts +8 -0
  278. package/dist/ply/lib/normalize-ply.d.ts.map +1 -0
  279. package/dist/ply/lib/normalize-ply.js +89 -0
  280. package/dist/ply/lib/normalize-ply.js.map +1 -0
  281. package/dist/ply/lib/parse-ply-arrow.cjs +552 -0
  282. package/dist/ply/lib/parse-ply-arrow.cjs.map +7 -0
  283. package/dist/ply/lib/parse-ply-arrow.d.ts +25 -0
  284. package/dist/ply/lib/parse-ply-arrow.d.ts.map +1 -0
  285. package/dist/ply/lib/parse-ply-arrow.js +493 -0
  286. package/dist/ply/lib/parse-ply-arrow.js.map +1 -0
  287. package/dist/ply/lib/parse-ply-in-batches.cjs +607 -0
  288. package/dist/ply/lib/parse-ply-in-batches.cjs.map +7 -0
  289. package/dist/ply/lib/parse-ply-in-batches.d.ts +9 -0
  290. package/dist/ply/lib/parse-ply-in-batches.d.ts.map +1 -0
  291. package/dist/ply/lib/parse-ply-in-batches.js +625 -0
  292. package/dist/ply/lib/parse-ply-in-batches.js.map +1 -0
  293. package/dist/ply/lib/parse-ply.cjs +755 -0
  294. package/dist/ply/lib/parse-ply.cjs.map +7 -0
  295. package/dist/ply/lib/parse-ply.d.ts +69 -0
  296. package/dist/ply/lib/parse-ply.d.ts.map +1 -0
  297. package/dist/ply/lib/parse-ply.js +851 -0
  298. package/dist/ply/lib/parse-ply.js.map +1 -0
  299. package/dist/ply/lib/ply-types.cjs +19 -0
  300. package/dist/ply/lib/ply-types.cjs.map +7 -0
  301. package/dist/ply/lib/ply-types.d.ts +37 -0
  302. package/dist/ply/lib/ply-types.d.ts.map +1 -0
  303. package/dist/ply/lib/ply-types.js +2 -0
  304. package/dist/ply/lib/ply-types.js.map +1 -0
  305. package/dist/ply/ply-format.cjs +43 -0
  306. package/dist/ply/ply-format.cjs.map +7 -0
  307. package/dist/ply/ply-format.d.ts +18 -0
  308. package/dist/ply/ply-format.d.ts.map +1 -0
  309. package/dist/ply/ply-format.js +22 -0
  310. package/dist/ply/ply-format.js.map +1 -0
  311. package/dist/ply/ply-loader-types.cjs +65 -0
  312. package/dist/ply/ply-loader-types.cjs.map +7 -0
  313. package/dist/ply/ply-loader-types.d.ts +111 -0
  314. package/dist/ply/ply-loader-types.d.ts.map +1 -0
  315. package/dist/ply/ply-loader-types.js +38 -0
  316. package/dist/ply/ply-loader-types.js.map +1 -0
  317. package/dist/ply/ply-loader.cjs +134 -0
  318. package/dist/ply/ply-loader.cjs.map +7 -0
  319. package/dist/ply/ply-loader.d.ts +44 -0
  320. package/dist/ply/ply-loader.d.ts.map +1 -0
  321. package/dist/ply/ply-loader.js +121 -0
  322. package/dist/ply/ply-loader.js.map +1 -0
  323. package/dist/ply/ply-writer.cjs +175 -0
  324. package/dist/ply/ply-writer.cjs.map +7 -0
  325. package/dist/ply/ply-writer.d.ts +37 -0
  326. package/dist/ply/ply-writer.d.ts.map +1 -0
  327. package/dist/ply/ply-writer.js +140 -0
  328. package/dist/ply/ply-writer.js.map +1 -0
  329. package/dist/ply/unbundled.cjs +33 -0
  330. package/dist/ply/unbundled.cjs.map +7 -0
  331. package/dist/ply/unbundled.d.ts +3 -0
  332. package/dist/ply/unbundled.d.ts.map +1 -0
  333. package/dist/ply/unbundled.js +5 -0
  334. package/dist/ply/unbundled.js.map +1 -0
  335. package/dist/ply/workers/ply-worker.cjs +34 -0
  336. package/dist/ply/workers/ply-worker.cjs.map +7 -0
  337. package/dist/ply/workers/ply-worker.d.ts +2 -0
  338. package/dist/ply/workers/ply-worker.d.ts.map +1 -0
  339. package/dist/ply/workers/ply-worker.js +37 -0
  340. package/dist/ply/workers/ply-worker.js.map +1 -0
  341. package/dist/ply-worker.js +19175 -0
  342. package/package.json +234 -4
  343. package/src/index.ts +19 -0
  344. package/src/las/bundled.ts +39 -0
  345. package/src/las/index.ts +70 -0
  346. package/src/las/las-copc-loader-types.ts +18 -0
  347. package/src/las/las-copc-loader.ts +61 -0
  348. package/src/las/las-format.ts +21 -0
  349. package/src/las/las-loader-shared.ts +124 -0
  350. package/src/las/las-loader-types.ts +27 -0
  351. package/src/las/las-loader.ts +109 -0
  352. package/src/las/las-writer.ts +1473 -0
  353. package/src/las/laz-rs-loader-types.ts +21 -0
  354. package/src/las/laz-rs-loader.ts +53 -0
  355. package/src/las/lazperf-loader-types.ts +22 -0
  356. package/src/las/lazperf-loader.ts +65 -0
  357. package/src/las/lib/LASZIP-LICENSE +202 -0
  358. package/src/las/lib/LASZIP-NOTICE +4 -0
  359. package/src/las/lib/copc/parse-las.ts +265 -0
  360. package/src/las/lib/get-las-schema.ts +50 -0
  361. package/src/las/lib/las-compatibility.ts +178 -0
  362. package/src/las/lib/las-extra-bytes.ts +274 -0
  363. package/src/las/lib/las-types.ts +206 -0
  364. package/src/las/lib/las-waveform.ts +292 -0
  365. package/src/las/lib/laz-perf/laslaz-decoder.ts +443 -0
  366. package/src/las/lib/laz-perf/parse-las.ts +412 -0
  367. package/src/las/lib/laz-rs-wasm/laslaz-decoder.ts +488 -0
  368. package/src/las/lib/laz-rs-wasm/parse-las.ts +412 -0
  369. package/src/las/lib/typescript/parse-las.ts +3730 -0
  370. package/src/las/libs/laz-perf/laz-perf.ts +20615 -0
  371. package/src/las/libs/laz-rs-wasm/laz_rs_wasm.d.ts +89 -0
  372. package/src/las/libs/laz-rs-wasm/laz_rs_wasm.js +497 -0
  373. package/src/las/libs/laz-rs-wasm/laz_rs_wasm_bg.wasm +0 -0
  374. package/src/las/libs/laz-rs-wasm/laz_rs_wasm_bg.wasm.d.ts +38 -0
  375. package/src/las/libs/laz-rs-wasm/package.json +19 -0
  376. package/src/las/unbundled.ts +38 -0
  377. package/src/las/workers/las-worker.ts +24 -0
  378. package/src/pcd/bundled.ts +9 -0
  379. package/src/pcd/index.ts +13 -0
  380. package/src/pcd/lib/decompress-lzf.ts +68 -0
  381. package/src/pcd/lib/get-pcd-schema.ts +66 -0
  382. package/src/pcd/lib/parse-pcd.ts +474 -0
  383. package/src/pcd/lib/pcd-types.ts +34 -0
  384. package/src/pcd/pcd-format.ts +21 -0
  385. package/src/pcd/pcd-loader-types.ts +53 -0
  386. package/src/pcd/pcd-loader.ts +179 -0
  387. package/src/pcd/pcd-writer.ts +152 -0
  388. package/src/pcd/unbundled.ts +6 -0
  389. package/src/pcd/workers/pcd-worker.ts +24 -0
  390. package/src/ply/bundled.ts +9 -0
  391. package/src/ply/index.ts +15 -0
  392. package/src/ply/lib/get-ply-schema.ts +133 -0
  393. package/src/ply/lib/normalize-ply.ts +110 -0
  394. package/src/ply/lib/parse-ply-arrow.ts +676 -0
  395. package/src/ply/lib/parse-ply-in-batches.ts +827 -0
  396. package/src/ply/lib/parse-ply.ts +1081 -0
  397. package/src/ply/lib/ply-types.ts +47 -0
  398. package/src/ply/ply-format.ts +24 -0
  399. package/src/ply/ply-loader-types.ts +61 -0
  400. package/src/ply/ply-loader.ts +185 -0
  401. package/src/ply/ply-writer.ts +215 -0
  402. package/src/ply/unbundled.ts +6 -0
  403. package/src/ply/workers/ply-worker.ts +40 -0
  404. package/third-party-licenses/plasio-LICENSE +21 -0
  405. package/third-party-licenses/three-LICENSE +21 -0
@@ -0,0 +1,631 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/las/lib/laz-rs-wasm/laslaz-decoder.ts
21
+ var laslaz_decoder_exports = {};
22
+ __export(laslaz_decoder_exports, {
23
+ LASFile: () => LASFile
24
+ });
25
+ module.exports = __toCommonJS(laslaz_decoder_exports);
26
+
27
+ // src/las/libs/laz-rs-wasm/laz_rs_wasm.js
28
+ var wasm;
29
+ var cachedUint8ArrayMemory0 = null;
30
+ function getUint8ArrayMemory0() {
31
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
32
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
33
+ }
34
+ return cachedUint8ArrayMemory0;
35
+ }
36
+ var cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
37
+ throw Error("TextDecoder not available");
38
+ } };
39
+ if (typeof TextDecoder !== "undefined") {
40
+ cachedTextDecoder.decode();
41
+ }
42
+ function _assertClass(instance, klass) {
43
+ if (!(instance instanceof klass)) {
44
+ throw new Error(`expected instance of ${klass.name}`);
45
+ }
46
+ return instance.ptr;
47
+ }
48
+ function takeFromExternrefTable0(idx) {
49
+ const value = wasm.__wbindgen_export_0.get(idx);
50
+ wasm.__externref_table_dealloc(idx);
51
+ return value;
52
+ }
53
+ var WASM_VECTOR_LEN = 0;
54
+ function passArray8ToWasm0(arg, malloc) {
55
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
56
+ getUint8ArrayMemory0().set(arg, ptr / 1);
57
+ WASM_VECTOR_LEN = arg.length;
58
+ return ptr;
59
+ }
60
+ var cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { encode: () => {
61
+ throw Error("TextEncoder not available");
62
+ } };
63
+ var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
64
+ return cachedTextEncoder.encodeInto(arg, view);
65
+ } : function(arg, view) {
66
+ const buf = cachedTextEncoder.encode(arg);
67
+ view.set(buf);
68
+ return {
69
+ read: arg.length,
70
+ written: buf.length
71
+ };
72
+ };
73
+ var WasmLasZipDecompressorFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
74
+ }, unregister: () => {
75
+ } } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmlaszipdecompressor_free(ptr >>> 0, 1));
76
+ var WasmLasZipDecompressor = class {
77
+ __destroy_into_raw() {
78
+ const ptr = this.__wbg_ptr;
79
+ this.__wbg_ptr = 0;
80
+ WasmLasZipDecompressorFinalization.unregister(this);
81
+ return ptr;
82
+ }
83
+ free() {
84
+ const ptr = this.__destroy_into_raw();
85
+ wasm.__wbg_wasmlaszipdecompressor_free(ptr, 0);
86
+ }
87
+ /**
88
+ * @returns {WasmQuickHeader}
89
+ */
90
+ get header() {
91
+ const ret = wasm.__wbg_get_wasmlaszipdecompressor_header(this.__wbg_ptr);
92
+ return WasmQuickHeader.__wrap(ret);
93
+ }
94
+ /**
95
+ * @param {WasmQuickHeader} arg0
96
+ */
97
+ set header(arg0) {
98
+ _assertClass(arg0, WasmQuickHeader);
99
+ var ptr0 = arg0.__destroy_into_raw();
100
+ wasm.__wbg_set_wasmlaszipdecompressor_header(this.__wbg_ptr, ptr0);
101
+ }
102
+ /**
103
+ * @param {Uint8Array} buf
104
+ */
105
+ constructor(buf) {
106
+ const ret = wasm.wasmlaszipdecompressor_new(buf);
107
+ if (ret[2]) {
108
+ throw takeFromExternrefTable0(ret[1]);
109
+ }
110
+ this.__wbg_ptr = ret[0] >>> 0;
111
+ WasmLasZipDecompressorFinalization.register(this, this.__wbg_ptr, this);
112
+ return this;
113
+ }
114
+ /**
115
+ * @param {Uint8Array} out
116
+ */
117
+ decompress_many(out) {
118
+ var ptr0 = passArray8ToWasm0(out, wasm.__wbindgen_malloc);
119
+ var len0 = WASM_VECTOR_LEN;
120
+ const ret = wasm.wasmlaszipdecompressor_decompress_many(this.__wbg_ptr, ptr0, len0, out);
121
+ if (ret[1]) {
122
+ throw takeFromExternrefTable0(ret[0]);
123
+ }
124
+ }
125
+ };
126
+ var WasmQuickHeaderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
127
+ }, unregister: () => {
128
+ } } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmquickheader_free(ptr >>> 0, 1));
129
+ var WasmQuickHeader = class _WasmQuickHeader {
130
+ static __wrap(ptr) {
131
+ ptr = ptr >>> 0;
132
+ const obj = Object.create(_WasmQuickHeader.prototype);
133
+ obj.__wbg_ptr = ptr;
134
+ WasmQuickHeaderFinalization.register(obj, obj.__wbg_ptr, obj);
135
+ return obj;
136
+ }
137
+ __destroy_into_raw() {
138
+ const ptr = this.__wbg_ptr;
139
+ this.__wbg_ptr = 0;
140
+ WasmQuickHeaderFinalization.unregister(this);
141
+ return ptr;
142
+ }
143
+ free() {
144
+ const ptr = this.__destroy_into_raw();
145
+ wasm.__wbg_wasmquickheader_free(ptr, 0);
146
+ }
147
+ /**
148
+ * @returns {number}
149
+ */
150
+ get major() {
151
+ const ret = wasm.__wbg_get_wasmquickheader_major(this.__wbg_ptr);
152
+ return ret;
153
+ }
154
+ /**
155
+ * @param {number} arg0
156
+ */
157
+ set major(arg0) {
158
+ wasm.__wbg_set_wasmquickheader_major(this.__wbg_ptr, arg0);
159
+ }
160
+ /**
161
+ * @returns {number}
162
+ */
163
+ get minor() {
164
+ const ret = wasm.__wbg_get_wasmquickheader_minor(this.__wbg_ptr);
165
+ return ret;
166
+ }
167
+ /**
168
+ * @param {number} arg0
169
+ */
170
+ set minor(arg0) {
171
+ wasm.__wbg_set_wasmquickheader_minor(this.__wbg_ptr, arg0);
172
+ }
173
+ /**
174
+ * @returns {number}
175
+ */
176
+ get offset_to_points() {
177
+ const ret = wasm.__wbg_get_wasmquickheader_offset_to_points(this.__wbg_ptr);
178
+ return ret >>> 0;
179
+ }
180
+ /**
181
+ * @param {number} arg0
182
+ */
183
+ set offset_to_points(arg0) {
184
+ wasm.__wbg_set_wasmquickheader_offset_to_points(this.__wbg_ptr, arg0);
185
+ }
186
+ /**
187
+ * @returns {number}
188
+ */
189
+ get num_vlrs() {
190
+ const ret = wasm.__wbg_get_wasmquickheader_num_vlrs(this.__wbg_ptr);
191
+ return ret >>> 0;
192
+ }
193
+ /**
194
+ * @param {number} arg0
195
+ */
196
+ set num_vlrs(arg0) {
197
+ wasm.__wbg_set_wasmquickheader_num_vlrs(this.__wbg_ptr, arg0);
198
+ }
199
+ /**
200
+ * @returns {number}
201
+ */
202
+ get point_format_id() {
203
+ const ret = wasm.__wbg_get_wasmquickheader_point_format_id(this.__wbg_ptr);
204
+ return ret;
205
+ }
206
+ /**
207
+ * @param {number} arg0
208
+ */
209
+ set point_format_id(arg0) {
210
+ wasm.__wbg_set_wasmquickheader_point_format_id(this.__wbg_ptr, arg0);
211
+ }
212
+ /**
213
+ * @returns {number}
214
+ */
215
+ get point_size() {
216
+ const ret = wasm.__wbg_get_wasmquickheader_point_size(this.__wbg_ptr);
217
+ return ret;
218
+ }
219
+ /**
220
+ * @param {number} arg0
221
+ */
222
+ set point_size(arg0) {
223
+ wasm.__wbg_set_wasmquickheader_point_size(this.__wbg_ptr, arg0);
224
+ }
225
+ /**
226
+ * @returns {bigint}
227
+ */
228
+ get num_points() {
229
+ const ret = wasm.__wbg_get_wasmquickheader_num_points(this.__wbg_ptr);
230
+ return BigInt.asUintN(64, ret);
231
+ }
232
+ /**
233
+ * @param {bigint} arg0
234
+ */
235
+ set num_points(arg0) {
236
+ wasm.__wbg_set_wasmquickheader_num_points(this.__wbg_ptr, arg0);
237
+ }
238
+ /**
239
+ * @returns {number}
240
+ */
241
+ get header_size() {
242
+ const ret = wasm.__wbg_get_wasmquickheader_header_size(this.__wbg_ptr);
243
+ return ret;
244
+ }
245
+ /**
246
+ * @param {number} arg0
247
+ */
248
+ set header_size(arg0) {
249
+ wasm.__wbg_set_wasmquickheader_header_size(this.__wbg_ptr, arg0);
250
+ }
251
+ };
252
+
253
+ // src/las/lib/laz-rs-wasm/laslaz-decoder.ts
254
+ var POINT_FORMAT_READERS = {
255
+ 0: (dv) => {
256
+ return {
257
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
258
+ intensity: dv.getUint16(12, true),
259
+ classification: dv.getUint8(15)
260
+ };
261
+ },
262
+ 1: (dv) => {
263
+ return {
264
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
265
+ intensity: dv.getUint16(12, true),
266
+ classification: dv.getUint8(15)
267
+ };
268
+ },
269
+ 2: (dv) => {
270
+ return {
271
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
272
+ intensity: dv.getUint16(12, true),
273
+ classification: dv.getUint8(15),
274
+ color: [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)]
275
+ };
276
+ },
277
+ 3: (dv) => {
278
+ return {
279
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
280
+ intensity: dv.getUint16(12, true),
281
+ classification: dv.getUint8(15),
282
+ color: [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)]
283
+ };
284
+ },
285
+ 4: (dv) => {
286
+ return {
287
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
288
+ intensity: dv.getUint16(12, true),
289
+ classification: dv.getUint8(15)
290
+ };
291
+ },
292
+ 5: (dv) => {
293
+ return {
294
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
295
+ intensity: dv.getUint16(12, true),
296
+ classification: dv.getUint8(15),
297
+ color: [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)]
298
+ };
299
+ },
300
+ 6: (dv) => {
301
+ return {
302
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
303
+ intensity: dv.getUint16(12, true),
304
+ classification: dv.getUint8(16)
305
+ };
306
+ },
307
+ 7: (dv) => {
308
+ return {
309
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
310
+ intensity: dv.getUint16(12, true),
311
+ classification: dv.getUint8(16),
312
+ color: [dv.getUint16(30, true), dv.getUint16(32, true), dv.getUint16(34, true)]
313
+ };
314
+ },
315
+ 8: (dv) => {
316
+ return {
317
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
318
+ intensity: dv.getUint16(12, true),
319
+ classification: dv.getUint8(16),
320
+ color: [dv.getUint16(30, true), dv.getUint16(32, true), dv.getUint16(34, true)]
321
+ };
322
+ },
323
+ 9: (dv) => {
324
+ return {
325
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
326
+ intensity: dv.getUint16(12, true),
327
+ classification: dv.getUint8(16)
328
+ };
329
+ },
330
+ 10: (dv) => {
331
+ return {
332
+ position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
333
+ intensity: dv.getUint16(12, true),
334
+ classification: dv.getUint8(16),
335
+ color: [dv.getUint16(30, true), dv.getUint16(32, true), dv.getUint16(34, true)]
336
+ };
337
+ }
338
+ };
339
+ function readAs(buf, Type = {}, offset, count) {
340
+ count = count === void 0 || count === 0 ? 1 : count;
341
+ const sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count);
342
+ const r = new Type(sub);
343
+ if (count === 1) {
344
+ return r[0];
345
+ }
346
+ const ret = [];
347
+ for (let i = 0; i < count; i++) {
348
+ ret.push(r[i]);
349
+ }
350
+ return ret;
351
+ }
352
+ function parseLASHeader(arraybuffer) {
353
+ const ver = new Uint8Array(arraybuffer, 24, 2);
354
+ const version = ver[0] * 10 + ver[1];
355
+ const versionAsString = `${ver[0]}.${ver[1]}`;
356
+ const rawPointsFormatId = readAs(arraybuffer, Uint8Array, 32 * 3 + 8);
357
+ const bit7 = (rawPointsFormatId & 128) >> 7;
358
+ const bit6 = (rawPointsFormatId & 64) >> 6;
359
+ const isCompressed = bit7 === 1 || bit6 === 1;
360
+ const pointsFormatId = rawPointsFormatId & 63;
361
+ const o = {
362
+ pointsOffset: readAs(arraybuffer, Uint32Array, 32 * 3),
363
+ pointsFormatId,
364
+ pointsStructSize: readAs(arraybuffer, Uint16Array, 32 * 3 + 8 + 1),
365
+ pointsCount: readAs(arraybuffer, Uint32Array, 32 * 3 + 11),
366
+ versionAsString,
367
+ isCompressed
368
+ };
369
+ let start = 32 * 3 + 35;
370
+ o.scale = readAs(arraybuffer, Float64Array, start, 3);
371
+ start += 24;
372
+ o.offset = readAs(arraybuffer, Float64Array, start, 3);
373
+ start += 24;
374
+ const bounds = readAs(arraybuffer, Float64Array, start, 6);
375
+ start += 48;
376
+ o.maxs = [bounds[0], bounds[2], bounds[4]];
377
+ o.mins = [bounds[1], bounds[3], bounds[5]];
378
+ start += 20;
379
+ if (version === 14) {
380
+ o.pointsCount = Number(readAs(arraybuffer, BigUint64Array, start));
381
+ }
382
+ const colorPointFormats = /* @__PURE__ */ new Set([2, 3, 5, 7, 8, 10]);
383
+ o.hasColor = colorPointFormats.has(pointsFormatId);
384
+ return o;
385
+ }
386
+ var LASLoader = class {
387
+ arraybuffer;
388
+ readOffset = 0;
389
+ header = null;
390
+ constructor(arraybuffer) {
391
+ this.arraybuffer = arraybuffer;
392
+ }
393
+ /**
394
+ * @returns boolean
395
+ */
396
+ open() {
397
+ return true;
398
+ }
399
+ /**
400
+ * Parsing of incoming binary
401
+ * @returns LASHeader
402
+ */
403
+ getHeader() {
404
+ this.header = parseLASHeader(this.arraybuffer);
405
+ return this.header;
406
+ }
407
+ /**
408
+ * Reading data
409
+ * @param count
410
+ * @returns LasData
411
+ */
412
+ readData(count) {
413
+ const { header, arraybuffer } = this;
414
+ if (!header) {
415
+ throw new Error("Cannot start reading data till a header request is issued");
416
+ }
417
+ let { readOffset } = this;
418
+ count = Math.min(count, header.pointsCount - readOffset);
419
+ const start = header.pointsOffset + readOffset * header.pointsStructSize;
420
+ const end = start + count * header.pointsStructSize;
421
+ readOffset += count;
422
+ this.readOffset = readOffset;
423
+ return {
424
+ buffer: arraybuffer.slice(start, end),
425
+ count,
426
+ hasMoreData: readOffset < header.pointsCount
427
+ };
428
+ }
429
+ /**
430
+ * Method which brings data to null to close the file
431
+ * @returns
432
+ */
433
+ close() {
434
+ this.arraybuffer = null;
435
+ return true;
436
+ }
437
+ };
438
+ var LAZLoader = class {
439
+ arraybuffer;
440
+ readOffset = 0;
441
+ instance = null;
442
+ header = null;
443
+ constructor(arraybuffer) {
444
+ this.arraybuffer = arraybuffer;
445
+ }
446
+ /**
447
+ * Opens the file
448
+ * @returns boolean
449
+ */
450
+ open() {
451
+ try {
452
+ const abInt = new Uint8Array(this.arraybuffer);
453
+ this.instance = new WasmLasZipDecompressor(abInt);
454
+ return true;
455
+ } catch (error) {
456
+ throw new Error(`Failed to open file: ${error.message}`);
457
+ }
458
+ }
459
+ getHeader() {
460
+ try {
461
+ this.header = parseLASHeader(this.arraybuffer);
462
+ return this.header;
463
+ } catch (error) {
464
+ throw new Error(`Failed to get header: ${error.message}`);
465
+ }
466
+ }
467
+ /**
468
+ * @param count
469
+ * @returns LASData
470
+ */
471
+ readData(count) {
472
+ if (!this.instance) {
473
+ throw new Error("You need to open the file before trying to read stuff");
474
+ }
475
+ const { header, instance } = this;
476
+ if (!header) {
477
+ throw new Error(
478
+ "You need to query header before reading, I maintain state that way, sorry :("
479
+ );
480
+ }
481
+ try {
482
+ const pointsToRead = Math.min(count, header.pointsCount - this.readOffset);
483
+ const buf = new Uint8Array(pointsToRead * header.pointsStructSize);
484
+ const bufRead = new Uint8Array(header.pointsStructSize);
485
+ for (let i = 0; i < pointsToRead; i++) {
486
+ instance.decompress_many(bufRead);
487
+ buf.set(bufRead, i * header.pointsStructSize);
488
+ this.readOffset++;
489
+ }
490
+ return {
491
+ buffer: buf.buffer,
492
+ count: pointsToRead,
493
+ hasMoreData: this.readOffset < header.pointsCount
494
+ };
495
+ } catch (error) {
496
+ throw new Error(`Failed to read data: ${error.message}`);
497
+ }
498
+ }
499
+ /**
500
+ * Deletes the instance
501
+ * @returns boolean
502
+ */
503
+ close() {
504
+ try {
505
+ if (this.instance !== null) {
506
+ this.instance.free();
507
+ this.instance = null;
508
+ }
509
+ this.arraybuffer = null;
510
+ return true;
511
+ } catch (error) {
512
+ throw new Error(`Failed to close file: ${error.message}`);
513
+ }
514
+ }
515
+ };
516
+ var LASDecoder = class {
517
+ arrayb;
518
+ decoder;
519
+ pointsCount;
520
+ pointSize;
521
+ constructor(buffer, len, header) {
522
+ this.arrayb = buffer;
523
+ this.decoder = POINT_FORMAT_READERS[header.pointsFormatId];
524
+ this.pointsCount = len;
525
+ this.pointSize = header.pointsStructSize;
526
+ }
527
+ /**
528
+ * Decodes data depends on this point size
529
+ * @param index
530
+ * @returns New object
531
+ */
532
+ getPoint(index) {
533
+ if (index < 0 || index >= this.pointsCount) {
534
+ throw new Error("Point index out of range");
535
+ }
536
+ const dv = new DataView(this.arrayb, index * this.pointSize, this.pointSize);
537
+ return this.decoder(dv);
538
+ }
539
+ };
540
+ var LASFile = class {
541
+ arraybuffer;
542
+ formatId = 0;
543
+ loader;
544
+ isCompressed = true;
545
+ isOpen = false;
546
+ version = 0;
547
+ versionAsString = "";
548
+ constructor(arraybuffer) {
549
+ this.arraybuffer = arraybuffer;
550
+ this.validate();
551
+ this.loader = this.isCompressed ? new LAZLoader(this.arraybuffer) : new LASLoader(this.arraybuffer);
552
+ }
553
+ validate() {
554
+ const signature = readAs(this.arraybuffer, Uint8Array, 0, 4);
555
+ const check = String.fromCharCode(...signature);
556
+ if (check !== "LASF") {
557
+ throw new Error("Invalid LAS file");
558
+ }
559
+ if (this.determineVersion() > 14) {
560
+ throw new Error("Only file versions <= 1.4 are supported");
561
+ }
562
+ this.determineFormat();
563
+ if (POINT_FORMAT_READERS[this.formatId] === void 0) {
564
+ throw new Error("The point format ID is not supported");
565
+ }
566
+ }
567
+ /**
568
+ * Determines format in parameters of LASHeader
569
+ */
570
+ determineFormat() {
571
+ const formatId = readAs(this.arraybuffer, Uint8Array, 32 * 3 + 8);
572
+ const bit7 = (formatId & 128) >> 7;
573
+ const bit6 = (formatId & 64) >> 6;
574
+ if (bit7 === 1 && bit6 === 1) {
575
+ throw new Error("Old style compression not supported");
576
+ }
577
+ this.formatId = formatId & 63;
578
+ this.isCompressed = bit7 === 1 || bit6 === 1;
579
+ }
580
+ /**
581
+ * Determines version
582
+ * @returns version
583
+ */
584
+ determineVersion() {
585
+ const ver = new Uint8Array(this.arraybuffer, 24, 2);
586
+ this.version = ver[0] * 10 + ver[1];
587
+ this.versionAsString = `${ver[0]}.${ver[1]}`;
588
+ return this.version;
589
+ }
590
+ /**
591
+ * Reads if the file is open
592
+ * @returns boolean
593
+ */
594
+ open() {
595
+ if (this.loader.open()) {
596
+ this.isOpen = true;
597
+ }
598
+ }
599
+ /**
600
+ * Gets the header
601
+ * @returns Header
602
+ */
603
+ getHeader() {
604
+ return this.loader.getHeader();
605
+ }
606
+ /**
607
+ * @param count
608
+ * @returns LASData
609
+ */
610
+ readData(count) {
611
+ return this.loader.readData(count);
612
+ }
613
+ /**
614
+ * Closes the file
615
+ */
616
+ close() {
617
+ if (this.loader.close()) {
618
+ this.isOpen = false;
619
+ }
620
+ }
621
+ /**
622
+ */
623
+ getUnpacker() {
624
+ return LASDecoder;
625
+ }
626
+ };
627
+ // Annotate the CommonJS export names for ESM import in node:
628
+ 0 && (module.exports = {
629
+ LASFile
630
+ });
631
+ //# sourceMappingURL=laslaz-decoder.cjs.map