@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
@@ -0,0 +1,177 @@
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/ply-writer.ts
21
+ var ply_writer_exports = {};
22
+ __export(ply_writer_exports, {
23
+ PLYWriter: () => PLYWriter
24
+ });
25
+ module.exports = __toCommonJS(ply_writer_exports);
26
+
27
+ // src/ply/ply-writer.ts
28
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
+ var import_ply_format = require("./ply-format.cjs");
30
+ var VERSION = true ? "5.0.0-beta.10" : "latest";
31
+ var PLYWriter = {
32
+ ...import_ply_format.PLYFormat,
33
+ dataType: null,
34
+ batchType: null,
35
+ version: VERSION,
36
+ options: {
37
+ ply: {}
38
+ },
39
+ text: true,
40
+ encode: async (data, options) => encodePLYSync(data, options),
41
+ encodeSync: encodePLYSync,
42
+ encodeTextSync: encodePLY
43
+ };
44
+ function encodePLYSync(data, options) {
45
+ const text = encodePLY(data, options);
46
+ return new TextEncoder().encode(text).buffer;
47
+ }
48
+ function encodePLY(data, options) {
49
+ const mesh = (0, import_schema_utils.convertTableToMesh)(normalizeMeshArrowTable(data));
50
+ const positionAttribute = getRequiredAttribute(mesh, "POSITION");
51
+ const normalAttribute = mesh.attributes.NORMAL;
52
+ const textureCoordinateAttribute = mesh.attributes.TEXCOORD_0;
53
+ const colorAttribute = mesh.attributes.COLOR_0;
54
+ const customScalarAttributes = getCustomScalarAttributes(mesh);
55
+ const vertexCount = positionAttribute.value.length / positionAttribute.size;
56
+ const triangleIndices = getTriangleIndices(mesh, vertexCount);
57
+ const header = getPLYHeader(
58
+ vertexCount,
59
+ triangleIndices.length / 3,
60
+ Boolean(normalAttribute),
61
+ Boolean(textureCoordinateAttribute),
62
+ Boolean(colorAttribute),
63
+ customScalarAttributes
64
+ );
65
+ const rows = [];
66
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
67
+ const row = [
68
+ getComponent(positionAttribute, vertexIndex, 0),
69
+ getComponent(positionAttribute, vertexIndex, 1),
70
+ getComponent(positionAttribute, vertexIndex, 2)
71
+ ];
72
+ if (normalAttribute) {
73
+ row.push(
74
+ getComponent(normalAttribute, vertexIndex, 0),
75
+ getComponent(normalAttribute, vertexIndex, 1),
76
+ getComponent(normalAttribute, vertexIndex, 2)
77
+ );
78
+ }
79
+ if (textureCoordinateAttribute) {
80
+ row.push(
81
+ getComponent(textureCoordinateAttribute, vertexIndex, 0),
82
+ getComponent(textureCoordinateAttribute, vertexIndex, 1)
83
+ );
84
+ }
85
+ if (colorAttribute) {
86
+ row.push(
87
+ getColorByte(colorAttribute, vertexIndex, 0),
88
+ getColorByte(colorAttribute, vertexIndex, 1),
89
+ getColorByte(colorAttribute, vertexIndex, 2)
90
+ );
91
+ }
92
+ for (const [, attribute] of customScalarAttributes) {
93
+ row.push(getComponent(attribute, vertexIndex, 0));
94
+ }
95
+ rows.push(row.join(" "));
96
+ }
97
+ for (let triangleIndex = 0; triangleIndex < triangleIndices.length; triangleIndex += 3) {
98
+ rows.push(
99
+ `3 ${triangleIndices[triangleIndex]} ${triangleIndices[triangleIndex + 1]} ${triangleIndices[triangleIndex + 2]}`
100
+ );
101
+ }
102
+ return `${header.concat(rows).join("\n")}
103
+ `;
104
+ }
105
+ function normalizeMeshArrowTable(data) {
106
+ if (!("attributes" in data)) {
107
+ return data;
108
+ }
109
+ return (0, import_schema_utils.convertMeshToArrowTableWrapper)(data);
110
+ }
111
+ function getRequiredAttribute(mesh, attributeName) {
112
+ const attribute = mesh.attributes[attributeName];
113
+ if (!attribute) {
114
+ throw new Error(`PLYWriter: ${attributeName} attribute is required`);
115
+ }
116
+ return attribute;
117
+ }
118
+ function getPLYHeader(vertexCount, faceCount, hasNormals, hasTextureCoordinates, hasColors, customScalarAttributes) {
119
+ const header = [
120
+ "ply",
121
+ "format ascii 1.0",
122
+ "comment generated by loaders.gl",
123
+ `element vertex ${vertexCount}`,
124
+ "property float x",
125
+ "property float y",
126
+ "property float z"
127
+ ];
128
+ if (hasNormals) {
129
+ header.push("property float nx", "property float ny", "property float nz");
130
+ }
131
+ if (hasTextureCoordinates) {
132
+ header.push("property float s", "property float t");
133
+ }
134
+ if (hasColors) {
135
+ header.push("property uchar red", "property uchar green", "property uchar blue");
136
+ }
137
+ for (const [attributeName] of customScalarAttributes) {
138
+ header.push(`property float ${attributeName}`);
139
+ }
140
+ if (faceCount > 0) {
141
+ header.push(`element face ${faceCount}`, "property list uchar int vertex_indices");
142
+ }
143
+ header.push("end_header");
144
+ return header;
145
+ }
146
+ function getCustomScalarAttributes(mesh) {
147
+ const reservedAttributeNames = /* @__PURE__ */ new Set(["POSITION", "NORMAL", "TEXCOORD_0", "COLOR_0"]);
148
+ return Object.entries(mesh.attributes).filter(
149
+ ([attributeName, attribute]) => !reservedAttributeNames.has(attributeName) && attribute.size === 1
150
+ );
151
+ }
152
+ function getComponent(attribute, vertexIndex, componentIndex) {
153
+ return attribute.value[vertexIndex * attribute.size + componentIndex] || 0;
154
+ }
155
+ function getColorByte(attribute, vertexIndex, componentIndex) {
156
+ const value = getComponent(attribute, vertexIndex, componentIndex);
157
+ const byteValue = attribute.normalized || value <= 1 ? value * 255 : value;
158
+ return Math.max(0, Math.min(255, Math.round(byteValue)));
159
+ }
160
+ function getTriangleIndices(mesh, vertexCount) {
161
+ if (mesh.indices?.value?.length) {
162
+ return Array.from(mesh.indices.value);
163
+ }
164
+ if (mesh.mode !== 4 && mesh.topology !== "triangle-list") {
165
+ return [];
166
+ }
167
+ const triangleIndices = [];
168
+ for (let vertexIndex = 0; vertexIndex + 2 < vertexCount; vertexIndex += 3) {
169
+ triangleIndices.push(vertexIndex, vertexIndex + 1, vertexIndex + 2);
170
+ }
171
+ return triangleIndices;
172
+ }
173
+ // Annotate the CommonJS export names for ESM import in node:
174
+ 0 && (module.exports = {
175
+ PLYWriter
176
+ });
177
+ //# sourceMappingURL=ply-writer.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ply-writer.ts", "../src/ply/ply-writer.ts"],
4
+ "sourcesContent": ["export * from './ply/ply-writer.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Table} from 'apache-arrow';\nimport type {WriterOptions, WriterWithEncoder} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, MeshAttribute} from '@loaders.gl/core/schema';\nimport {convertMeshToArrowTableWrapper, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {PLYFormat} from './ply-format';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** Options for `PLYWriter`. */\nexport type PLYWriterOptions = WriterOptions & {\n /** Reserved for future PLY writer options. */\n ply?: Record<string, never>;\n};\n\n/**\n * Writer for the PLY geometry format.\n */\nexport const PLYWriter = {\n ...PLYFormat,\n dataType: null as unknown as Mesh | MeshArrowTable | Table,\n batchType: null as never,\n version: VERSION,\n options: {\n ply: {}\n },\n text: true,\n encode: async (data, options) => encodePLYSync(data, options),\n encodeSync: encodePLYSync,\n encodeTextSync: encodePLY\n} as const satisfies WriterWithEncoder<Mesh | MeshArrowTable | Table, never, PLYWriterOptions>;\n\n/** Encode mesh category data as PLY bytes. */\nfunction encodePLYSync(\n data: Mesh | MeshArrowTable | Table,\n options?: PLYWriterOptions\n): ArrayBuffer {\n const text = encodePLY(data, options);\n return new TextEncoder().encode(text).buffer;\n}\n\n/** Encode mesh category data as ASCII PLY text. */\nfunction encodePLY(data: Mesh | MeshArrowTable | Table, options?: PLYWriterOptions): string {\n const mesh = convertTableToMesh(normalizeMeshArrowTable(data));\n const positionAttribute = getRequiredAttribute(mesh, 'POSITION');\n const normalAttribute = mesh.attributes.NORMAL;\n const textureCoordinateAttribute = mesh.attributes.TEXCOORD_0;\n const colorAttribute = mesh.attributes.COLOR_0;\n const customScalarAttributes = getCustomScalarAttributes(mesh);\n const vertexCount = positionAttribute.value.length / positionAttribute.size;\n const triangleIndices = getTriangleIndices(mesh, vertexCount);\n const header = getPLYHeader(\n vertexCount,\n triangleIndices.length / 3,\n Boolean(normalAttribute),\n Boolean(textureCoordinateAttribute),\n Boolean(colorAttribute),\n customScalarAttributes\n );\n const rows: string[] = [];\n\n for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {\n const row = [\n getComponent(positionAttribute, vertexIndex, 0),\n getComponent(positionAttribute, vertexIndex, 1),\n getComponent(positionAttribute, vertexIndex, 2)\n ];\n\n if (normalAttribute) {\n row.push(\n getComponent(normalAttribute, vertexIndex, 0),\n getComponent(normalAttribute, vertexIndex, 1),\n getComponent(normalAttribute, vertexIndex, 2)\n );\n }\n\n if (textureCoordinateAttribute) {\n row.push(\n getComponent(textureCoordinateAttribute, vertexIndex, 0),\n getComponent(textureCoordinateAttribute, vertexIndex, 1)\n );\n }\n\n if (colorAttribute) {\n row.push(\n getColorByte(colorAttribute, vertexIndex, 0),\n getColorByte(colorAttribute, vertexIndex, 1),\n getColorByte(colorAttribute, vertexIndex, 2)\n );\n }\n\n for (const [, attribute] of customScalarAttributes) {\n row.push(getComponent(attribute, vertexIndex, 0));\n }\n\n rows.push(row.join(' '));\n }\n\n for (let triangleIndex = 0; triangleIndex < triangleIndices.length; triangleIndex += 3) {\n rows.push(\n `3 ${triangleIndices[triangleIndex]} ${triangleIndices[triangleIndex + 1]} ${\n triangleIndices[triangleIndex + 2]\n }`\n );\n }\n\n return `${header.concat(rows).join('\\n')}\\n`;\n}\n\n/** Return mesh data as a MeshArrowTable, converting plain Mesh data first. */\nfunction normalizeMeshArrowTable(data: Mesh | MeshArrowTable | Table): MeshArrowTable | Table {\n if (!('attributes' in data)) {\n return data;\n }\n return convertMeshToArrowTableWrapper(data as Mesh);\n}\n\n/** Return a required mesh attribute or throw a format-specific error. */\nfunction getRequiredAttribute(mesh: Mesh, attributeName: string): MeshAttribute {\n const attribute = mesh.attributes[attributeName];\n if (!attribute) {\n throw new Error(`PLYWriter: ${attributeName} attribute is required`);\n }\n return attribute;\n}\n\n/** Return the ASCII PLY header lines. */\nfunction getPLYHeader(\n vertexCount: number,\n faceCount: number,\n hasNormals: boolean,\n hasTextureCoordinates: boolean,\n hasColors: boolean,\n customScalarAttributes: [string, MeshAttribute][]\n): string[] {\n const header = [\n 'ply',\n 'format ascii 1.0',\n 'comment generated by loaders.gl',\n `element vertex ${vertexCount}`,\n 'property float x',\n 'property float y',\n 'property float z'\n ];\n\n if (hasNormals) {\n header.push('property float nx', 'property float ny', 'property float nz');\n }\n\n if (hasTextureCoordinates) {\n header.push('property float s', 'property float t');\n }\n\n if (hasColors) {\n header.push('property uchar red', 'property uchar green', 'property uchar blue');\n }\n\n for (const [attributeName] of customScalarAttributes) {\n header.push(`property float ${attributeName}`);\n }\n\n if (faceCount > 0) {\n header.push(`element face ${faceCount}`, 'property list uchar int vertex_indices');\n }\n\n header.push('end_header');\n return header;\n}\n\n/** Return additional one-component attributes that can be represented as scalar PLY properties. */\nfunction getCustomScalarAttributes(mesh: Mesh): [string, MeshAttribute][] {\n const reservedAttributeNames = new Set(['POSITION', 'NORMAL', 'TEXCOORD_0', 'COLOR_0']);\n return Object.entries(mesh.attributes).filter(\n ([attributeName, attribute]) =>\n !reservedAttributeNames.has(attributeName) && attribute.size === 1\n );\n}\n\n/** Return a single attribute component with 0 as the missing component fallback. */\nfunction getComponent(\n attribute: MeshAttribute,\n vertexIndex: number,\n componentIndex: number\n): number {\n return attribute.value[vertexIndex * attribute.size + componentIndex] || 0;\n}\n\n/** Return one color component as an unsigned byte. */\nfunction getColorByte(\n attribute: MeshAttribute,\n vertexIndex: number,\n componentIndex: number\n): number {\n const value = getComponent(attribute, vertexIndex, componentIndex);\n const byteValue = attribute.normalized || value <= 1 ? value * 255 : value;\n return Math.max(0, Math.min(255, Math.round(byteValue)));\n}\n\n/** Return triangle indices for indexed or sequential triangle-list meshes. */\nfunction getTriangleIndices(mesh: Mesh, vertexCount: number): number[] {\n if (mesh.indices?.value?.length) {\n return Array.from(mesh.indices.value);\n }\n\n if (mesh.mode !== 4 && mesh.topology !== 'triangle-list') {\n return [];\n }\n\n const triangleIndices: number[] = [];\n for (let vertexIndex = 0; vertexIndex + 2 < vertexCount; vertexIndex += 3) {\n triangleIndices.push(vertexIndex, vertexIndex + 1, vertexIndex + 2);\n }\n return triangleIndices;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './ply/ply-writer.js';
2
+ //# sourceMappingURL=ply-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-writer.d.ts","sourceRoot":"","sources":["../src/ply-writer.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ply/ply-writer.js';
2
+ //# sourceMappingURL=ply-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-writer.js","sourceRoot":"","sources":["../src/ply-writer.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/pointclouds",
3
- "version": "5.0.0-beta.1",
4
- "description": "LAS, LAZ, PCD and PLY point-cloud and mesh loaders",
3
+ "version": "5.0.0-beta.10",
4
+ "description": "LAS, LAZ, PCD, and PLY point cloud and mesh loaders and writers",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -18,7 +18,10 @@
18
18
  "mesh",
19
19
  "point cloud",
20
20
  "LAS",
21
- "LAZ"
21
+ "LAZ",
22
+ "loaders.gl",
23
+ "PCD",
24
+ "PLY"
22
25
  ],
23
26
  "types": "dist/index.d.ts",
24
27
  "main": "dist/index.cjs",
@@ -44,15 +47,15 @@
44
47
  "import": "./dist/las/index.js",
45
48
  "require": "./dist/las/index.cjs"
46
49
  },
47
- "./las/las-copc-loader-types": {
48
- "types": "./dist/las/las-copc-loader-types.d.ts",
49
- "import": "./dist/las/las-copc-loader-types.js",
50
- "require": "./dist/las/las-copc-loader-types.cjs"
50
+ "./las-copc-loader-types": {
51
+ "types": "./dist/las-copc-loader-types.d.ts",
52
+ "import": "./dist/las-copc-loader-types.js",
53
+ "require": "./dist/las-copc-loader-types.cjs"
51
54
  },
52
- "./las/las-copc-loader": {
53
- "types": "./dist/las/las-copc-loader.d.ts",
54
- "import": "./dist/las/las-copc-loader.js",
55
- "require": "./dist/las/las-copc-loader.cjs"
55
+ "./las-copc-loader": {
56
+ "types": "./dist/las-copc-loader.d.ts",
57
+ "import": "./dist/las-copc-loader.js",
58
+ "require": "./dist/las-copc-loader.cjs"
56
59
  },
57
60
  "./las/las-format": {
58
61
  "types": "./dist/las/las-format.d.ts",
@@ -64,40 +67,40 @@
64
67
  "import": "./dist/las/las-loader-shared.js",
65
68
  "require": "./dist/las/las-loader-shared.cjs"
66
69
  },
67
- "./las/las-loader-types": {
68
- "types": "./dist/las/las-loader-types.d.ts",
69
- "import": "./dist/las/las-loader-types.js",
70
- "require": "./dist/las/las-loader-types.cjs"
71
- },
72
- "./las/las-loader": {
73
- "types": "./dist/las/las-loader.d.ts",
74
- "import": "./dist/las/las-loader.js",
75
- "require": "./dist/las/las-loader.cjs"
76
- },
77
- "./las/las-writer": {
78
- "types": "./dist/las/las-writer.d.ts",
79
- "import": "./dist/las/las-writer.js",
80
- "require": "./dist/las/las-writer.cjs"
81
- },
82
- "./las/laz-rs-loader-types": {
83
- "types": "./dist/las/laz-rs-loader-types.d.ts",
84
- "import": "./dist/las/laz-rs-loader-types.js",
85
- "require": "./dist/las/laz-rs-loader-types.cjs"
86
- },
87
- "./las/laz-rs-loader": {
88
- "types": "./dist/las/laz-rs-loader.d.ts",
89
- "import": "./dist/las/laz-rs-loader.js",
90
- "require": "./dist/las/laz-rs-loader.cjs"
91
- },
92
- "./las/lazperf-loader-types": {
93
- "types": "./dist/las/lazperf-loader-types.d.ts",
94
- "import": "./dist/las/lazperf-loader-types.js",
95
- "require": "./dist/las/lazperf-loader-types.cjs"
96
- },
97
- "./las/lazperf-loader": {
98
- "types": "./dist/las/lazperf-loader.d.ts",
99
- "import": "./dist/las/lazperf-loader.js",
100
- "require": "./dist/las/lazperf-loader.cjs"
70
+ "./las-loader-types": {
71
+ "types": "./dist/las-loader-types.d.ts",
72
+ "import": "./dist/las-loader-types.js",
73
+ "require": "./dist/las-loader-types.cjs"
74
+ },
75
+ "./las-loader": {
76
+ "types": "./dist/las-loader.d.ts",
77
+ "import": "./dist/las-loader.js",
78
+ "require": "./dist/las-loader.cjs"
79
+ },
80
+ "./las-writer": {
81
+ "types": "./dist/las-writer.d.ts",
82
+ "import": "./dist/las-writer.js",
83
+ "require": "./dist/las-writer.cjs"
84
+ },
85
+ "./laz-rs-loader-types": {
86
+ "types": "./dist/laz-rs-loader-types.d.ts",
87
+ "import": "./dist/laz-rs-loader-types.js",
88
+ "require": "./dist/laz-rs-loader-types.cjs"
89
+ },
90
+ "./laz-rs-loader": {
91
+ "types": "./dist/laz-rs-loader.d.ts",
92
+ "import": "./dist/laz-rs-loader.js",
93
+ "require": "./dist/laz-rs-loader.cjs"
94
+ },
95
+ "./lazperf-loader-types": {
96
+ "types": "./dist/lazperf-loader-types.d.ts",
97
+ "import": "./dist/lazperf-loader-types.js",
98
+ "require": "./dist/lazperf-loader-types.cjs"
99
+ },
100
+ "./lazperf-loader": {
101
+ "types": "./dist/lazperf-loader.d.ts",
102
+ "import": "./dist/lazperf-loader.js",
103
+ "require": "./dist/lazperf-loader.cjs"
101
104
  },
102
105
  "./las/unbundled": {
103
106
  "types": "./dist/las/unbundled.d.ts",
@@ -124,20 +127,20 @@
124
127
  "import": "./dist/pcd/pcd-format.js",
125
128
  "require": "./dist/pcd/pcd-format.cjs"
126
129
  },
127
- "./pcd/pcd-loader-types": {
128
- "types": "./dist/pcd/pcd-loader-types.d.ts",
129
- "import": "./dist/pcd/pcd-loader-types.js",
130
- "require": "./dist/pcd/pcd-loader-types.cjs"
130
+ "./pcd-loader-types": {
131
+ "types": "./dist/pcd-loader-types.d.ts",
132
+ "import": "./dist/pcd-loader-types.js",
133
+ "require": "./dist/pcd-loader-types.cjs"
131
134
  },
132
- "./pcd/pcd-loader": {
133
- "types": "./dist/pcd/pcd-loader.d.ts",
134
- "import": "./dist/pcd/pcd-loader.js",
135
- "require": "./dist/pcd/pcd-loader.cjs"
135
+ "./pcd-loader": {
136
+ "types": "./dist/pcd-loader.d.ts",
137
+ "import": "./dist/pcd-loader.js",
138
+ "require": "./dist/pcd-loader.cjs"
136
139
  },
137
- "./pcd/pcd-writer": {
138
- "types": "./dist/pcd/pcd-writer.d.ts",
139
- "import": "./dist/pcd/pcd-writer.js",
140
- "require": "./dist/pcd/pcd-writer.cjs"
140
+ "./pcd-writer": {
141
+ "types": "./dist/pcd-writer.d.ts",
142
+ "import": "./dist/pcd-writer.js",
143
+ "require": "./dist/pcd-writer.cjs"
141
144
  },
142
145
  "./pcd/unbundled": {
143
146
  "types": "./dist/pcd/unbundled.d.ts",
@@ -164,20 +167,20 @@
164
167
  "import": "./dist/ply/ply-format.js",
165
168
  "require": "./dist/ply/ply-format.cjs"
166
169
  },
167
- "./ply/ply-loader-types": {
168
- "types": "./dist/ply/ply-loader-types.d.ts",
169
- "import": "./dist/ply/ply-loader-types.js",
170
- "require": "./dist/ply/ply-loader-types.cjs"
170
+ "./ply-loader-types": {
171
+ "types": "./dist/ply-loader-types.d.ts",
172
+ "import": "./dist/ply-loader-types.js",
173
+ "require": "./dist/ply-loader-types.cjs"
171
174
  },
172
- "./ply/ply-loader": {
173
- "types": "./dist/ply/ply-loader.d.ts",
174
- "import": "./dist/ply/ply-loader.js",
175
- "require": "./dist/ply/ply-loader.cjs"
175
+ "./ply-loader": {
176
+ "types": "./dist/ply-loader.d.ts",
177
+ "import": "./dist/ply-loader.js",
178
+ "require": "./dist/ply-loader.cjs"
176
179
  },
177
- "./ply/ply-writer": {
178
- "types": "./dist/ply/ply-writer.d.ts",
179
- "import": "./dist/ply/ply-writer.js",
180
- "require": "./dist/ply/ply-writer.cjs"
180
+ "./ply-writer": {
181
+ "types": "./dist/ply-writer.d.ts",
182
+ "import": "./dist/ply-writer.js",
183
+ "require": "./dist/ply-writer.cjs"
181
184
  },
182
185
  "./ply/unbundled": {
183
186
  "types": "./dist/ply/unbundled.d.ts",
@@ -223,7 +226,7 @@
223
226
  "build-bundle-dev": "node ../../scripts/build-codec-bundle.mjs ./bundle.ts --env=dev --output=dist/dist.dev.js"
224
227
  },
225
228
  "dependencies": {
226
- "@math.gl/geospatial": "5.0.0-beta.1",
229
+ "@math.gl/geospatial": "5.0.0-beta.10",
227
230
  "apache-arrow": ">= 17.0.0"
228
231
  },
229
232
  "peerDependencies": {
@@ -232,5 +235,6 @@
232
235
  "optionalDependencies": {
233
236
  "copc": "0.0.8",
234
237
  "laz-perf": "^0.0.7"
235
- }
238
+ },
239
+ "gitHead": "efdd84034c25e2e5dbb41bc88b75af56cb2176da"
236
240
  }
package/src/index.ts CHANGED
@@ -2,17 +2,17 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- export {LASLoader, LASWorkerLoader} from './las/las-loader-types';
5
+ export {LASLoader} from './las/las-loader-types';
6
6
  export type {LASLoaderOptions} from './las/las-loader-types';
7
7
  export {LASWriter} from './las/las-writer';
8
8
  export type {LASWriterOptions} from './las/las-writer';
9
9
  export {LASFormat} from './las/las-format';
10
- export {PCDLoader, PCDWorkerLoader} from './pcd/pcd-loader-types';
10
+ export {PCDLoader} from './pcd/pcd-loader-types';
11
11
  export type {PCDLoaderOptions} from './pcd/pcd-loader-types';
12
12
  export {PCDWriter} from './pcd/pcd-writer';
13
13
  export type {PCDWriterOptions} from './pcd/pcd-writer';
14
14
  export {PCDFormat} from './pcd/pcd-format';
15
- export {PLYLoader, PLYWorkerLoader} from './ply/ply-loader-types';
15
+ export {PLYLoader} from './ply/ply-loader-types';
16
16
  export type {PLYLoaderOptions} from './ply/ply-loader-types';
17
17
  export {PLYWriter} from './ply/ply-writer';
18
18
  export type {PLYWriterOptions} from './ply/ply-writer';
@@ -3,7 +3,6 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  export type {LASLoaderOptions} from './las-loader-types';
6
- export {LASWorkerLoader} from './las-loader-types';
7
6
  export {LASLoaderWithParser as LASLoader} from './las-loader';
8
7
  export {LASCOPCLoaderWithParser as LASCOPCLoader} from './las-copc-loader';
9
8
  export {LAZPerfLoaderWithParser as LAZPerfLoader} from './lazperf-loader';
package/src/las/index.ts CHANGED
@@ -63,8 +63,4 @@ export type {
63
63
  LAZChunkMetadata
64
64
  } from '@loaders.gl/core/loader-utils';
65
65
 
66
- // DEPRECATED EXPORTS
67
- /** @deprecated Use LASLoader. */
68
- export {LASWorkerLoader} from './las-loader-types';
69
-
70
66
  export type {LASCompatibilityLayout} from './lib/las-compatibility';
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader} from '@loaders.gl/core/loader-utils';
6
- import type {MeshArrowTable} from '@loaders.gl/core/schema';
6
+ import type {Table, RecordBatch} from 'apache-arrow';
7
7
  import {LAS_LOADER_METADATA, type LASLoaderOptions} from './las-loader-shared';
8
8
  import type {LASMesh} from './lib/las-types';
9
9
 
@@ -12,7 +12,7 @@ export const LASCOPCLoader = {
12
12
  ...LAS_LOADER_METADATA,
13
13
  name: 'LAS (COPC)',
14
14
  preload: async () => {
15
- const {LASCOPCLoaderWithParser} = await import('@loaders.gl/pointclouds/las/las-copc-loader');
15
+ const {LASCOPCLoaderWithParser} = await import('@loaders.gl/pointclouds/las-copc-loader');
16
16
  return LASCOPCLoaderWithParser;
17
17
  }
18
- } as const satisfies Loader<LASMesh | MeshArrowTable, LASMesh | MeshArrowTable, LASLoaderOptions>;
18
+ } as const satisfies Loader<LASMesh | Table, LASMesh | RecordBatch, LASLoaderOptions>;
@@ -4,8 +4,10 @@
4
4
 
5
5
  // LASER (LAS) FILE FORMAT
6
6
  import type {LoaderWithParser} from '@loaders.gl/core/loader-utils';
7
+ import type {Table, RecordBatch} from 'apache-arrow';
8
+ import {getLASRecordBatches, toPublicLASResult} from './las-loader';
7
9
  import type {MeshArrowTable} from '@loaders.gl/core/schema';
8
- import {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';
10
+ import {convertMeshToArrowTableWrapper, convertTableToMesh} from '@loaders.gl/core/schema-utils';
9
11
  import {
10
12
  formatLASMeshColors,
11
13
  getLASShape,
@@ -22,20 +24,16 @@ export const LASCOPCLoaderWithParser = {
22
24
  ...LAS_LOADER_METADATA,
23
25
  name: 'LAS (COPC)',
24
26
  parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>
25
- convertLASMesh(await parseCOPCLAS(arrayBuffer, options), options),
27
+ toPublicLASResult(convertLASMesh(await parseCOPCLAS(arrayBuffer, options), options)),
26
28
  parseInBatches: (arrayBufferIterator, options?: LASLoaderOptions) =>
27
29
  convertLASMeshBatches(parseCOPCLASInBatches(arrayBufferIterator, options), options)
28
- } as const satisfies LoaderWithParser<
29
- LASMesh | MeshArrowTable,
30
- LASMesh | MeshArrowTable,
31
- LASLoaderOptions
32
- >;
30
+ } as const satisfies LoaderWithParser<LASMesh | Table, LASMesh | RecordBatch, LASLoaderOptions>;
33
31
 
34
32
  function convertLASMesh(mesh: LASMesh, options?: LASLoaderOptions): LASMesh | MeshArrowTable {
35
33
  const formattedMesh = formatLASMeshColors(mesh, options?.las?.colorFormat || 'uint8norm');
36
- const table = convertMeshToTable(formattedMesh, 'arrow-table') as MeshArrowTable;
37
- if (getLASShape(options) === 'arrow-table') {
38
- return table;
34
+ const table = convertMeshToArrowTableWrapper(formattedMesh) as MeshArrowTable;
35
+ if (getLASShape(options) === 'arrow') {
36
+ return {...table, loaderData: mesh.loaderData};
39
37
  }
40
38
  return {
41
39
  ...(convertTableToMesh(table) as LASMesh),
@@ -54,8 +52,10 @@ function convertLASMesh(mesh: LASMesh, options?: LASLoaderOptions): LASMesh | Me
54
52
  async function* convertLASMeshBatches(
55
53
  meshBatches: AsyncIterable<LASMesh>,
56
54
  options?: LASLoaderOptions
57
- ): AsyncIterable<LASMesh | MeshArrowTable> {
55
+ ): AsyncIterable<LASMesh | RecordBatch> {
58
56
  for await (const mesh of meshBatches) {
59
- yield convertLASMesh(mesh, options);
57
+ const result = convertLASMesh(mesh, options);
58
+ if ('shape' in result) yield* getLASRecordBatches(result);
59
+ else yield result;
60
60
  }
61
61
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  import type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';
6
6
  import {convertColorArrayToFloat16, convertColorArrayToFloat32} from '@loaders.gl/core/schema';
7
- import type {MeshArrowTable} from '@loaders.gl/core/schema';
7
+ import type {Table, RecordBatch} from 'apache-arrow';
8
8
  import {LASFormat} from './las-format';
9
9
  import type {LASMesh} from './lib/las-types';
10
10
 
@@ -39,7 +39,7 @@ export type LASColumnName =
39
39
  export type LASLoaderOptions = LoaderOptions & {
40
40
  las?: {
41
41
  /** Output representation. */
42
- shape?: 'mesh' | 'columnar-table' | 'arrow-table';
42
+ shape?: 'mesh' | 'columnar-table' | 'arrow';
43
43
  /** Store positions in 64-bit floating point arrays. */
44
44
  fp64?: boolean;
45
45
  /** Output color depth or automatic source-depth detection. */
@@ -62,19 +62,21 @@ export type LASLoaderOptions = LoaderOptions & {
62
62
  };
63
63
 
64
64
  /** Default output shape for LAS and LAZ loaders. */
65
- export const DEFAULT_LAS_SHAPE = 'arrow-table' as const;
65
+ export const DEFAULT_LAS_SHAPE = 'arrow' as const;
66
66
 
67
67
  /** Resolve the LAS output shape, including the Arrow-primary default. */
68
- export function getLASShape(options?: LASLoaderOptions): 'mesh' | 'columnar-table' | 'arrow-table' {
68
+ export function getLASShape(options?: LASLoaderOptions): 'mesh' | 'columnar-table' | 'arrow' {
69
69
  return options?.las?.shape || DEFAULT_LAS_SHAPE;
70
70
  }
71
71
 
72
72
  /** Parser-independent LAS loader metadata shared by each loader variant. */
73
73
  export const LAS_LOADER_METADATA = {
74
74
  ...LASFormat,
75
+ defaultShape: 'arrow',
76
+ supportsNativeArrow: true,
75
77
 
76
- dataType: null as unknown as LASMesh | MeshArrowTable,
77
- batchType: null as unknown as LASMesh | MeshArrowTable,
78
+ dataType: null as unknown as LASMesh | Table,
79
+ batchType: null as unknown as LASMesh | RecordBatch,
78
80
 
79
81
  version: VERSION,
80
82
  worker: false,
@@ -90,7 +92,7 @@ export const LAS_LOADER_METADATA = {
90
92
  compatibilityMode: 'auto'
91
93
  }
92
94
  }
93
- } as const satisfies Loader<LASMesh | MeshArrowTable, LASMesh | MeshArrowTable, LASLoaderOptions>;
95
+ } as const satisfies Loader<LASMesh | Table, LASMesh | RecordBatch, LASLoaderOptions>;
94
96
 
95
97
  /** Apply the requested normalized color representation to a decoded LAS mesh. */
96
98
  export function formatLASMeshColors(
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader} from '@loaders.gl/core/loader-utils';
6
- import type {MeshArrowTable} from '@loaders.gl/core/schema';
6
+ import type {Table, RecordBatch} from 'apache-arrow';
7
7
  import type {LASMesh} from './lib/las-types';
8
8
  import {LAS_LOADER_METADATA, type LASLoaderOptions} from './las-loader-shared';
9
9
 
@@ -11,7 +11,7 @@ export type {LASColumnName, LASLoaderOptions} from './las-loader-shared';
11
11
 
12
12
  /** Preloads the parser-bearing primary TypeScript LAS loader implementation. */
13
13
  async function preload() {
14
- const {LASLoaderWithParser} = await import('@loaders.gl/pointclouds/las/las-loader');
14
+ const {LASLoaderWithParser} = await import('@loaders.gl/pointclouds/las-loader');
15
15
  return LASLoaderWithParser;
16
16
  }
17
17
 
@@ -21,7 +21,4 @@ export const LASLoader = {
21
21
  worker: true,
22
22
  workerInBatches: true,
23
23
  preload
24
- } as const satisfies Loader<LASMesh | MeshArrowTable, LASMesh | MeshArrowTable, LASLoaderOptions>;
25
-
26
- /** @deprecated Use LASLoader. */
27
- export const LASWorkerLoader = LASLoader;
24
+ } as const satisfies Loader<LASMesh | Table, LASMesh | RecordBatch, LASLoaderOptions>;