potree-core 1.0.7 → 2.0.0

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 (719) hide show
  1. package/README.md +26 -28
  2. package/dist/constants.d.ts +14 -0
  3. package/dist/dem-node.d.ts +17 -0
  4. package/dist/features.d.ts +6 -0
  5. package/dist/index.d.ts +11 -0
  6. package/dist/index.js +1 -0
  7. package/dist/loading/binary-loader.d.ts +35 -0
  8. package/dist/loading/index.d.ts +3 -0
  9. package/dist/loading/load-poc.d.ts +14 -0
  10. package/dist/loading/types.d.ts +2 -0
  11. package/dist/loading2/OctreeGeometry.d.ts +23 -0
  12. package/dist/loading2/OctreeGeometryNode.d.ts +40 -0
  13. package/dist/loading2/OctreeLoader.d.ts +109 -0
  14. package/dist/loading2/PointAttributes.d.ts +44 -0
  15. package/dist/loading2/WorkerPool.d.ts +9 -0
  16. package/dist/loading2/load-octree.d.ts +2 -0
  17. package/dist/materials/blur-material.d.ts +11 -0
  18. package/dist/materials/classification.d.ts +2 -0
  19. package/dist/materials/clipping.d.ts +12 -0
  20. package/dist/materials/color-encoding.d.ts +4 -0
  21. package/dist/materials/enums.d.ts +37 -0
  22. package/dist/materials/gradients/grayscale.d.ts +2 -0
  23. package/dist/materials/gradients/index.d.ts +7 -0
  24. package/dist/materials/gradients/inferno.d.ts +2 -0
  25. package/dist/materials/gradients/plasma.d.ts +2 -0
  26. package/dist/materials/gradients/rainbow.d.ts +2 -0
  27. package/dist/materials/gradients/spectral.d.ts +2 -0
  28. package/dist/materials/gradients/vidris.d.ts +2 -0
  29. package/dist/materials/gradients/yellow-green.d.ts +2 -0
  30. package/dist/materials/index.d.ts +7 -0
  31. package/dist/materials/point-cloud-material.d.ts +180 -0
  32. package/dist/materials/texture-generation.d.ts +5 -0
  33. package/dist/materials/types.d.ts +10 -0
  34. package/dist/point-attributes.d.ts +52 -0
  35. package/dist/point-cloud-octree-geometry-node.d.ts +73 -0
  36. package/dist/point-cloud-octree-geometry.d.ts +27 -0
  37. package/dist/point-cloud-octree-node.d.ts +26 -0
  38. package/dist/point-cloud-octree-picker.d.ts +45 -0
  39. package/dist/point-cloud-octree.d.ts +45 -0
  40. package/dist/point-cloud-tree.d.ts +6 -0
  41. package/dist/potree.d.ts +37 -0
  42. package/dist/type-predicates.d.ts +3 -0
  43. package/dist/types.d.ts +56 -0
  44. package/dist/utils/bounds.d.ts +6 -0
  45. package/dist/utils/box3-helper.d.ts +13 -0
  46. package/dist/utils/lru.d.ts +32 -0
  47. package/dist/utils/math.d.ts +1 -0
  48. package/dist/utils/utils.d.ts +6 -0
  49. package/dist/version.d.ts +9 -0
  50. package/dist/workers/binary-decoder-worker-internal.d.ts +5 -0
  51. package/dist/workers/custom-array-view.d.ts +11 -0
  52. package/package.json +34 -13
  53. package/build/potree.js +0 -10256
  54. package/build/potree.min.js +0 -230
  55. package/build/potree.module.js +0 -10197
  56. package/data/lion_takanawa/cloud.js +0 -28
  57. package/data/lion_takanawa/data/r/r.bin +0 -0
  58. package/data/lion_takanawa/data/r/r.hrc +0 -0
  59. package/data/lion_takanawa/data/r/r0.bin +0 -0
  60. package/data/lion_takanawa/data/r/r00.bin +0 -0
  61. package/data/lion_takanawa/data/r/r001.bin +0 -0
  62. package/data/lion_takanawa/data/r/r003.bin +0 -0
  63. package/data/lion_takanawa/data/r/r004.bin +0 -0
  64. package/data/lion_takanawa/data/r/r005.bin +0 -0
  65. package/data/lion_takanawa/data/r/r007.bin +0 -0
  66. package/data/lion_takanawa/data/r/r01.bin +0 -0
  67. package/data/lion_takanawa/data/r/r012.bin +0 -0
  68. package/data/lion_takanawa/data/r/r013.bin +0 -0
  69. package/data/lion_takanawa/data/r/r016.bin +0 -0
  70. package/data/lion_takanawa/data/r/r017.bin +0 -0
  71. package/data/lion_takanawa/data/r/r02.bin +0 -0
  72. package/data/lion_takanawa/data/r/r021.bin +0 -0
  73. package/data/lion_takanawa/data/r/r023.bin +0 -0
  74. package/data/lion_takanawa/data/r/r03.bin +0 -0
  75. package/data/lion_takanawa/data/r/r030.bin +0 -0
  76. package/data/lion_takanawa/data/r/r031.bin +0 -0
  77. package/data/lion_takanawa/data/r/r032.bin +0 -0
  78. package/data/lion_takanawa/data/r/r034.bin +0 -0
  79. package/data/lion_takanawa/data/r/r035.bin +0 -0
  80. package/data/lion_takanawa/data/r/r036.bin +0 -0
  81. package/data/lion_takanawa/data/r/r037.bin +0 -0
  82. package/data/lion_takanawa/data/r/r04.bin +0 -0
  83. package/data/lion_takanawa/data/r/r041.bin +0 -0
  84. package/data/lion_takanawa/data/r/r043.bin +0 -0
  85. package/data/lion_takanawa/data/r/r045.bin +0 -0
  86. package/data/lion_takanawa/data/r/r047.bin +0 -0
  87. package/data/lion_takanawa/data/r/r05.bin +0 -0
  88. package/data/lion_takanawa/data/r/r052.bin +0 -0
  89. package/data/lion_takanawa/data/r/r053.bin +0 -0
  90. package/data/lion_takanawa/data/r/r056.bin +0 -0
  91. package/data/lion_takanawa/data/r/r057.bin +0 -0
  92. package/data/lion_takanawa/data/r/r06.bin +0 -0
  93. package/data/lion_takanawa/data/r/r065.bin +0 -0
  94. package/data/lion_takanawa/data/r/r067.bin +0 -0
  95. package/data/lion_takanawa/data/r/r07.bin +0 -0
  96. package/data/lion_takanawa/data/r/r070.bin +0 -0
  97. package/data/lion_takanawa/data/r/r071.bin +0 -0
  98. package/data/lion_takanawa/data/r/r072.bin +0 -0
  99. package/data/lion_takanawa/data/r/r073.bin +0 -0
  100. package/data/lion_takanawa/data/r/r074.bin +0 -0
  101. package/data/lion_takanawa/data/r/r075.bin +0 -0
  102. package/data/lion_takanawa/data/r/r076.bin +0 -0
  103. package/data/lion_takanawa/data/r/r077.bin +0 -0
  104. package/data/lion_takanawa/data/r/r1.bin +0 -0
  105. package/data/lion_takanawa/data/r/r11.bin +0 -0
  106. package/data/lion_takanawa/data/r/r116.bin +0 -0
  107. package/data/lion_takanawa/data/r/r117.bin +0 -0
  108. package/data/lion_takanawa/data/r/r12.bin +0 -0
  109. package/data/lion_takanawa/data/r/r124.bin +0 -0
  110. package/data/lion_takanawa/data/r/r125.bin +0 -0
  111. package/data/lion_takanawa/data/r/r126.bin +0 -0
  112. package/data/lion_takanawa/data/r/r127.bin +0 -0
  113. package/data/lion_takanawa/data/r/r13.bin +0 -0
  114. package/data/lion_takanawa/data/r/r134.bin +0 -0
  115. package/data/lion_takanawa/data/r/r135.bin +0 -0
  116. package/data/lion_takanawa/data/r/r136.bin +0 -0
  117. package/data/lion_takanawa/data/r/r137.bin +0 -0
  118. package/data/lion_takanawa/data/r/r14.bin +0 -0
  119. package/data/lion_takanawa/data/r/r146.bin +0 -0
  120. package/data/lion_takanawa/data/r/r15.bin +0 -0
  121. package/data/lion_takanawa/data/r/r152.bin +0 -0
  122. package/data/lion_takanawa/data/r/r153.bin +0 -0
  123. package/data/lion_takanawa/data/r/r156.bin +0 -0
  124. package/data/lion_takanawa/data/r/r157.bin +0 -0
  125. package/data/lion_takanawa/data/r/r16.bin +0 -0
  126. package/data/lion_takanawa/data/r/r160.bin +0 -0
  127. package/data/lion_takanawa/data/r/r161.bin +0 -0
  128. package/data/lion_takanawa/data/r/r162.bin +0 -0
  129. package/data/lion_takanawa/data/r/r164.bin +0 -0
  130. package/data/lion_takanawa/data/r/r165.bin +0 -0
  131. package/data/lion_takanawa/data/r/r166.bin +0 -0
  132. package/data/lion_takanawa/data/r/r167.bin +0 -0
  133. package/data/lion_takanawa/data/r/r17.bin +0 -0
  134. package/data/lion_takanawa/data/r/r170.bin +0 -0
  135. package/data/lion_takanawa/data/r/r171.bin +0 -0
  136. package/data/lion_takanawa/data/r/r173.bin +0 -0
  137. package/data/lion_takanawa/data/r/r174.bin +0 -0
  138. package/data/lion_takanawa/data/r/r175.bin +0 -0
  139. package/data/lion_takanawa/data/r/r176.bin +0 -0
  140. package/data/lion_takanawa/data/r/r177.bin +0 -0
  141. package/data/lion_takanawa/data/r/r2.bin +0 -0
  142. package/data/lion_takanawa/data/r/r21.bin +0 -0
  143. package/data/lion_takanawa/data/r/r210.bin +0 -0
  144. package/data/lion_takanawa/data/r/r214.bin +0 -0
  145. package/data/lion_takanawa/data/r/r215.bin +0 -0
  146. package/data/lion_takanawa/data/r/r23.bin +0 -0
  147. package/data/lion_takanawa/data/r/r235.bin +0 -0
  148. package/data/lion_takanawa/data/r/r24.bin +0 -0
  149. package/data/lion_takanawa/data/r/r243.bin +0 -0
  150. package/data/lion_takanawa/data/r/r245.bin +0 -0
  151. package/data/lion_takanawa/data/r/r247.bin +0 -0
  152. package/data/lion_takanawa/data/r/r25.bin +0 -0
  153. package/data/lion_takanawa/data/r/r250.bin +0 -0
  154. package/data/lion_takanawa/data/r/r251.bin +0 -0
  155. package/data/lion_takanawa/data/r/r254.bin +0 -0
  156. package/data/lion_takanawa/data/r/r255.bin +0 -0
  157. package/data/lion_takanawa/data/r/r256.bin +0 -0
  158. package/data/lion_takanawa/data/r/r257.bin +0 -0
  159. package/data/lion_takanawa/data/r/r26.bin +0 -0
  160. package/data/lion_takanawa/data/r/r261.bin +0 -0
  161. package/data/lion_takanawa/data/r/r265.bin +0 -0
  162. package/data/lion_takanawa/data/r/r27.bin +0 -0
  163. package/data/lion_takanawa/data/r/r270.bin +0 -0
  164. package/data/lion_takanawa/data/r/r271.bin +0 -0
  165. package/data/lion_takanawa/data/r/r274.bin +0 -0
  166. package/data/lion_takanawa/data/r/r275.bin +0 -0
  167. package/data/lion_takanawa/data/r/r3.bin +0 -0
  168. package/data/lion_takanawa/data/r/r30.bin +0 -0
  169. package/data/lion_takanawa/data/r/r304.bin +0 -0
  170. package/data/lion_takanawa/data/r/r306.bin +0 -0
  171. package/data/lion_takanawa/data/r/r31.bin +0 -0
  172. package/data/lion_takanawa/data/r/r314.bin +0 -0
  173. package/data/lion_takanawa/data/r/r315.bin +0 -0
  174. package/data/lion_takanawa/data/r/r32.bin +0 -0
  175. package/data/lion_takanawa/data/r/r324.bin +0 -0
  176. package/data/lion_takanawa/data/r/r34.bin +0 -0
  177. package/data/lion_takanawa/data/r/r340.bin +0 -0
  178. package/data/lion_takanawa/data/r/r341.bin +0 -0
  179. package/data/lion_takanawa/data/r/r342.bin +0 -0
  180. package/data/lion_takanawa/data/r/r343.bin +0 -0
  181. package/data/lion_takanawa/data/r/r344.bin +0 -0
  182. package/data/lion_takanawa/data/r/r345.bin +0 -0
  183. package/data/lion_takanawa/data/r/r346.bin +0 -0
  184. package/data/lion_takanawa/data/r/r347.bin +0 -0
  185. package/data/lion_takanawa/data/r/r35.bin +0 -0
  186. package/data/lion_takanawa/data/r/r350.bin +0 -0
  187. package/data/lion_takanawa/data/r/r351.bin +0 -0
  188. package/data/lion_takanawa/data/r/r354.bin +0 -0
  189. package/data/lion_takanawa/data/r/r355.bin +0 -0
  190. package/data/lion_takanawa/data/r/r36.bin +0 -0
  191. package/data/lion_takanawa/data/r/r360.bin +0 -0
  192. package/data/lion_takanawa/data/r/r364.bin +0 -0
  193. package/data/lion_takanawa/data/r/r4.bin +0 -0
  194. package/data/lion_takanawa/data/r/r40.bin +0 -0
  195. package/data/lion_takanawa/data/r/r400.bin +0 -0
  196. package/data/lion_takanawa/data/r/r401.bin +0 -0
  197. package/data/lion_takanawa/data/r/r402.bin +0 -0
  198. package/data/lion_takanawa/data/r/r403.bin +0 -0
  199. package/data/lion_takanawa/data/r/r406.bin +0 -0
  200. package/data/lion_takanawa/data/r/r41.bin +0 -0
  201. package/data/lion_takanawa/data/r/r413.bin +0 -0
  202. package/data/lion_takanawa/data/r/r42.bin +0 -0
  203. package/data/lion_takanawa/data/r/r420.bin +0 -0
  204. package/data/lion_takanawa/data/r/r421.bin +0 -0
  205. package/data/lion_takanawa/data/r/r422.bin +0 -0
  206. package/data/lion_takanawa/data/r/r423.bin +0 -0
  207. package/data/lion_takanawa/data/r/r424.bin +0 -0
  208. package/data/lion_takanawa/data/r/r426.bin +0 -0
  209. package/data/lion_takanawa/data/r/r43.bin +0 -0
  210. package/data/lion_takanawa/data/r/r431.bin +0 -0
  211. package/data/lion_takanawa/data/r/r6.bin +0 -0
  212. package/data/lion_takanawa/data/r/r60.bin +0 -0
  213. package/data/lion_takanawa/data/r/r600.bin +0 -0
  214. package/data/lion_takanawa/data/r/r601.bin +0 -0
  215. package/data/lion_takanawa/data/r/r602.bin +0 -0
  216. package/data/lion_takanawa/data/r/r603.bin +0 -0
  217. package/data/lion_takanawa/data/r/r604.bin +0 -0
  218. package/data/lion_takanawa/data/r/r606.bin +0 -0
  219. package/data/lion_takanawa/data/r/r62.bin +0 -0
  220. package/data/lion_takanawa/data/r/r620.bin +0 -0
  221. package/data/lion_takanawa/data/r/r621.bin +0 -0
  222. package/data/lion_takanawa/data/r/r622.bin +0 -0
  223. package/data/lion_takanawa/data/r/r624.bin +0 -0
  224. package/data/lion_takanawa/data/r/r626.bin +0 -0
  225. package/data/lion_takanawa_ept_bin/ept-build.json +0 -7
  226. package/data/lion_takanawa_ept_bin/ept-data/0-0-0-0.bin +0 -0
  227. package/data/lion_takanawa_ept_bin/ept-data/1-0-0-0.bin +0 -0
  228. package/data/lion_takanawa_ept_bin/ept-data/1-0-0-1.bin +0 -0
  229. package/data/lion_takanawa_ept_bin/ept-data/1-0-1-0.bin +0 -0
  230. package/data/lion_takanawa_ept_bin/ept-data/1-0-1-1.bin +0 -0
  231. package/data/lion_takanawa_ept_bin/ept-data/1-1-0-0.bin +0 -0
  232. package/data/lion_takanawa_ept_bin/ept-data/1-1-0-1.bin +0 -0
  233. package/data/lion_takanawa_ept_bin/ept-data/1-1-1-0.bin +0 -0
  234. package/data/lion_takanawa_ept_bin/ept-data/2-0-1-1.bin +0 -0
  235. package/data/lion_takanawa_ept_bin/ept-data/2-0-1-2.bin +0 -0
  236. package/data/lion_takanawa_ept_bin/ept-data/2-0-2-1.bin +0 -0
  237. package/data/lion_takanawa_ept_bin/ept-data/2-1-0-1.bin +0 -0
  238. package/data/lion_takanawa_ept_bin/ept-data/2-1-1-1.bin +0 -0
  239. package/data/lion_takanawa_ept_bin/ept-data/2-1-1-2.bin +0 -0
  240. package/data/lion_takanawa_ept_bin/ept-data/2-1-2-1.bin +0 -0
  241. package/data/lion_takanawa_ept_bin/ept-data/2-1-3-1.bin +0 -0
  242. package/data/lion_takanawa_ept_bin/ept-hierarchy/0-0-0-0.json +0 -18
  243. package/data/lion_takanawa_ept_bin/ept-sources/0.json +0 -7102
  244. package/data/lion_takanawa_ept_bin/ept-sources/100.json +0 -7102
  245. package/data/lion_takanawa_ept_bin/ept-sources/list.json +0 -3402
  246. package/data/lion_takanawa_ept_bin/ept.json +0 -117
  247. package/data/lion_takanawa_ept_laz/ept-build.json +0 -7
  248. package/data/lion_takanawa_ept_laz/ept-data/0-0-0-0.laz +0 -0
  249. package/data/lion_takanawa_ept_laz/ept-data/1-0-0-0.laz +0 -0
  250. package/data/lion_takanawa_ept_laz/ept-data/1-0-0-1.laz +0 -0
  251. package/data/lion_takanawa_ept_laz/ept-data/1-0-1-0.laz +0 -0
  252. package/data/lion_takanawa_ept_laz/ept-data/1-0-1-1.laz +0 -0
  253. package/data/lion_takanawa_ept_laz/ept-data/1-1-0-0.laz +0 -0
  254. package/data/lion_takanawa_ept_laz/ept-data/1-1-0-1.laz +0 -0
  255. package/data/lion_takanawa_ept_laz/ept-data/1-1-1-0.laz +0 -0
  256. package/data/lion_takanawa_ept_laz/ept-data/2-0-1-1.laz +0 -0
  257. package/data/lion_takanawa_ept_laz/ept-data/2-0-1-2.laz +0 -0
  258. package/data/lion_takanawa_ept_laz/ept-data/2-0-2-1.laz +0 -0
  259. package/data/lion_takanawa_ept_laz/ept-data/2-1-0-1.laz +0 -0
  260. package/data/lion_takanawa_ept_laz/ept-data/2-1-1-1.laz +0 -0
  261. package/data/lion_takanawa_ept_laz/ept-data/2-1-1-2.laz +0 -0
  262. package/data/lion_takanawa_ept_laz/ept-data/2-1-2-1.laz +0 -0
  263. package/data/lion_takanawa_ept_laz/ept-data/2-1-3-1.laz +0 -0
  264. package/data/lion_takanawa_ept_laz/ept-hierarchy/0-0-0-0.json +0 -18
  265. package/data/lion_takanawa_ept_laz/ept-sources/0.json +0 -7102
  266. package/data/lion_takanawa_ept_laz/ept-sources/100.json +0 -7102
  267. package/data/lion_takanawa_ept_laz/ept-sources/list.json +0 -3402
  268. package/data/lion_takanawa_ept_laz/ept.json +0 -117
  269. package/data/lion_takanawa_las/cloud.js +0 -225
  270. package/data/lion_takanawa_las/data/r.las +0 -0
  271. package/data/lion_takanawa_las/data/r0.las +0 -0
  272. package/data/lion_takanawa_las/data/r00.las +0 -0
  273. package/data/lion_takanawa_las/data/r003.las +0 -0
  274. package/data/lion_takanawa_las/data/r006.las +0 -0
  275. package/data/lion_takanawa_las/data/r007.las +0 -0
  276. package/data/lion_takanawa_las/data/r01.las +0 -0
  277. package/data/lion_takanawa_las/data/r010.las +0 -0
  278. package/data/lion_takanawa_las/data/r011.las +0 -0
  279. package/data/lion_takanawa_las/data/r012.las +0 -0
  280. package/data/lion_takanawa_las/data/r013.las +0 -0
  281. package/data/lion_takanawa_las/data/r014.las +0 -0
  282. package/data/lion_takanawa_las/data/r015.las +0 -0
  283. package/data/lion_takanawa_las/data/r016.las +0 -0
  284. package/data/lion_takanawa_las/data/r017.las +0 -0
  285. package/data/lion_takanawa_las/data/r02.las +0 -0
  286. package/data/lion_takanawa_las/data/r020.las +0 -0
  287. package/data/lion_takanawa_las/data/r021.las +0 -0
  288. package/data/lion_takanawa_las/data/r022.las +0 -0
  289. package/data/lion_takanawa_las/data/r023.las +0 -0
  290. package/data/lion_takanawa_las/data/r024.las +0 -0
  291. package/data/lion_takanawa_las/data/r025.las +0 -0
  292. package/data/lion_takanawa_las/data/r026.las +0 -0
  293. package/data/lion_takanawa_las/data/r027.las +0 -0
  294. package/data/lion_takanawa_las/data/r03.las +0 -0
  295. package/data/lion_takanawa_las/data/r030.las +0 -0
  296. package/data/lion_takanawa_las/data/r031.las +0 -0
  297. package/data/lion_takanawa_las/data/r032.las +0 -0
  298. package/data/lion_takanawa_las/data/r033.las +0 -0
  299. package/data/lion_takanawa_las/data/r034.las +0 -0
  300. package/data/lion_takanawa_las/data/r035.las +0 -0
  301. package/data/lion_takanawa_las/data/r036.las +0 -0
  302. package/data/lion_takanawa_las/data/r037.las +0 -0
  303. package/data/lion_takanawa_las/data/r04.las +0 -0
  304. package/data/lion_takanawa_las/data/r042.las +0 -0
  305. package/data/lion_takanawa_las/data/r046.las +0 -0
  306. package/data/lion_takanawa_las/data/r06.las +0 -0
  307. package/data/lion_takanawa_las/data/r060.las +0 -0
  308. package/data/lion_takanawa_las/data/r061.las +0 -0
  309. package/data/lion_takanawa_las/data/r064.las +0 -0
  310. package/data/lion_takanawa_las/data/r065.las +0 -0
  311. package/data/lion_takanawa_las/data/r07.las +0 -0
  312. package/data/lion_takanawa_las/data/r070.las +0 -0
  313. package/data/lion_takanawa_las/data/r071.las +0 -0
  314. package/data/lion_takanawa_las/data/r072.las +0 -0
  315. package/data/lion_takanawa_las/data/r073.las +0 -0
  316. package/data/lion_takanawa_las/data/r074.las +0 -0
  317. package/data/lion_takanawa_las/data/r075.las +0 -0
  318. package/data/lion_takanawa_las/data/r076.las +0 -0
  319. package/data/lion_takanawa_las/data/r077.las +0 -0
  320. package/data/lion_takanawa_las/data/r1.las +0 -0
  321. package/data/lion_takanawa_las/data/r10.las +0 -0
  322. package/data/lion_takanawa_las/data/r102.las +0 -0
  323. package/data/lion_takanawa_las/data/r11.las +0 -0
  324. package/data/lion_takanawa_las/data/r116.las +0 -0
  325. package/data/lion_takanawa_las/data/r12.las +0 -0
  326. package/data/lion_takanawa_las/data/r120.las +0 -0
  327. package/data/lion_takanawa_las/data/r122.las +0 -0
  328. package/data/lion_takanawa_las/data/r126.las +0 -0
  329. package/data/lion_takanawa_las/data/r127.las +0 -0
  330. package/data/lion_takanawa_las/data/r14.las +0 -0
  331. package/data/lion_takanawa_las/data/r143.las +0 -0
  332. package/data/lion_takanawa_las/data/r147.las +0 -0
  333. package/data/lion_takanawa_las/data/r16.las +0 -0
  334. package/data/lion_takanawa_las/data/r160.las +0 -0
  335. package/data/lion_takanawa_las/data/r161.las +0 -0
  336. package/data/lion_takanawa_las/data/r162.las +0 -0
  337. package/data/lion_takanawa_las/data/r163.las +0 -0
  338. package/data/lion_takanawa_las/data/r164.las +0 -0
  339. package/data/lion_takanawa_las/data/r165.las +0 -0
  340. package/data/lion_takanawa_las/data/r166.las +0 -0
  341. package/data/lion_takanawa_las/data/r167.las +0 -0
  342. package/data/lion_takanawa_las/data/r17.las +0 -0
  343. package/data/lion_takanawa_las/data/r170.las +0 -0
  344. package/data/lion_takanawa_las/data/r172.las +0 -0
  345. package/data/lion_takanawa_las/data/r174.las +0 -0
  346. package/data/lion_takanawa_las/data/r176.las +0 -0
  347. package/data/lion_takanawa_las/data/r2.las +0 -0
  348. package/data/lion_takanawa_las/data/r20.las +0 -0
  349. package/data/lion_takanawa_las/data/r200.las +0 -0
  350. package/data/lion_takanawa_las/data/r202.las +0 -0
  351. package/data/lion_takanawa_las/data/r203.las +0 -0
  352. package/data/lion_takanawa_las/data/r21.las +0 -0
  353. package/data/lion_takanawa_las/data/r210.las +0 -0
  354. package/data/lion_takanawa_las/data/r211.las +0 -0
  355. package/data/lion_takanawa_las/data/r212.las +0 -0
  356. package/data/lion_takanawa_las/data/r213.las +0 -0
  357. package/data/lion_takanawa_las/data/r214.las +0 -0
  358. package/data/lion_takanawa_las/data/r215.las +0 -0
  359. package/data/lion_takanawa_las/data/r216.las +0 -0
  360. package/data/lion_takanawa_las/data/r217.las +0 -0
  361. package/data/lion_takanawa_las/data/r22.las +0 -0
  362. package/data/lion_takanawa_las/data/r220.las +0 -0
  363. package/data/lion_takanawa_las/data/r222.las +0 -0
  364. package/data/lion_takanawa_las/data/r224.las +0 -0
  365. package/data/lion_takanawa_las/data/r225.las +0 -0
  366. package/data/lion_takanawa_las/data/r23.las +0 -0
  367. package/data/lion_takanawa_las/data/r231.las +0 -0
  368. package/data/lion_takanawa_las/data/r233.las +0 -0
  369. package/data/lion_takanawa_las/data/r235.las +0 -0
  370. package/data/lion_takanawa_las/data/r237.las +0 -0
  371. package/data/lion_takanawa_las/data/r25.las +0 -0
  372. package/data/lion_takanawa_las/data/r250.las +0 -0
  373. package/data/lion_takanawa_las/data/r251.las +0 -0
  374. package/data/lion_takanawa_las/data/r252.las +0 -0
  375. package/data/lion_takanawa_las/data/r253.las +0 -0
  376. package/data/lion_takanawa_las/data/r254.las +0 -0
  377. package/data/lion_takanawa_las/data/r255.las +0 -0
  378. package/data/lion_takanawa_las/data/r256.las +0 -0
  379. package/data/lion_takanawa_las/data/r257.las +0 -0
  380. package/data/lion_takanawa_las/data/r26.las +0 -0
  381. package/data/lion_takanawa_las/data/r260.las +0 -0
  382. package/data/lion_takanawa_las/data/r261.las +0 -0
  383. package/data/lion_takanawa_las/data/r262.las +0 -0
  384. package/data/lion_takanawa_las/data/r263.las +0 -0
  385. package/data/lion_takanawa_las/data/r265.las +0 -0
  386. package/data/lion_takanawa_las/data/r266.las +0 -0
  387. package/data/lion_takanawa_las/data/r267.las +0 -0
  388. package/data/lion_takanawa_las/data/r27.las +0 -0
  389. package/data/lion_takanawa_las/data/r270.las +0 -0
  390. package/data/lion_takanawa_las/data/r271.las +0 -0
  391. package/data/lion_takanawa_las/data/r272.las +0 -0
  392. package/data/lion_takanawa_las/data/r273.las +0 -0
  393. package/data/lion_takanawa_las/data/r274.las +0 -0
  394. package/data/lion_takanawa_las/data/r275.las +0 -0
  395. package/data/lion_takanawa_las/data/r276.las +0 -0
  396. package/data/lion_takanawa_las/data/r277.las +0 -0
  397. package/data/lion_takanawa_las/data/r3.las +0 -0
  398. package/data/lion_takanawa_las/data/r30.las +0 -0
  399. package/data/lion_takanawa_las/data/r304.las +0 -0
  400. package/data/lion_takanawa_las/data/r305.las +0 -0
  401. package/data/lion_takanawa_las/data/r32.las +0 -0
  402. package/data/lion_takanawa_las/data/r320.las +0 -0
  403. package/data/lion_takanawa_las/data/r322.las +0 -0
  404. package/data/lion_takanawa_las/data/r326.las +0 -0
  405. package/data/lion_takanawa_las/data/r34.las +0 -0
  406. package/data/lion_takanawa_las/data/r340.las +0 -0
  407. package/data/lion_takanawa_las/data/r341.las +0 -0
  408. package/data/lion_takanawa_las/data/r342.las +0 -0
  409. package/data/lion_takanawa_las/data/r344.las +0 -0
  410. package/data/lion_takanawa_las/data/r345.las +0 -0
  411. package/data/lion_takanawa_las/data/r346.las +0 -0
  412. package/data/lion_takanawa_las/data/r35.las +0 -0
  413. package/data/lion_takanawa_las/data/r350.las +0 -0
  414. package/data/lion_takanawa_las/data/r354.las +0 -0
  415. package/data/lion_takanawa_las/data/r36.las +0 -0
  416. package/data/lion_takanawa_las/data/r360.las +0 -0
  417. package/data/lion_takanawa_las/data/r361.las +0 -0
  418. package/data/lion_takanawa_las/data/r364.las +0 -0
  419. package/data/lion_takanawa_las/data/r37.las +0 -0
  420. package/data/lion_takanawa_las/data/r370.las +0 -0
  421. package/data/lion_takanawa_las/data/r4.las +0 -0
  422. package/data/lion_takanawa_las/data/r40.las +0 -0
  423. package/data/lion_takanawa_las/data/r400.las +0 -0
  424. package/data/lion_takanawa_las/data/r402.las +0 -0
  425. package/data/lion_takanawa_las/data/r42.las +0 -0
  426. package/data/lion_takanawa_las/data/r420.las +0 -0
  427. package/data/lion_takanawa_las/data/r421.las +0 -0
  428. package/data/lion_takanawa_las/data/r422.las +0 -0
  429. package/data/lion_takanawa_las/data/r423.las +0 -0
  430. package/data/lion_takanawa_las/data/r424.las +0 -0
  431. package/data/lion_takanawa_las/data/r426.las +0 -0
  432. package/data/lion_takanawa_las/data/r43.las +0 -0
  433. package/data/lion_takanawa_las/data/r430.las +0 -0
  434. package/data/lion_takanawa_las/data/r431.las +0 -0
  435. package/data/lion_takanawa_las/data/r432.las +0 -0
  436. package/data/lion_takanawa_las/data/r433.las +0 -0
  437. package/data/lion_takanawa_las/data/r5.las +0 -0
  438. package/data/lion_takanawa_las/data/r52.las +0 -0
  439. package/data/lion_takanawa_las/data/r522.las +0 -0
  440. package/data/lion_takanawa_las/data/r6.las +0 -0
  441. package/data/lion_takanawa_las/data/r60.las +0 -0
  442. package/data/lion_takanawa_las/data/r600.las +0 -0
  443. package/data/lion_takanawa_las/data/r601.las +0 -0
  444. package/data/lion_takanawa_las/data/r602.las +0 -0
  445. package/data/lion_takanawa_las/data/r603.las +0 -0
  446. package/data/lion_takanawa_las/data/r604.las +0 -0
  447. package/data/lion_takanawa_las/data/r606.las +0 -0
  448. package/data/lion_takanawa_las/data/r61.las +0 -0
  449. package/data/lion_takanawa_las/data/r610.las +0 -0
  450. package/data/lion_takanawa_las/data/r611.las +0 -0
  451. package/data/lion_takanawa_las/data/r612.las +0 -0
  452. package/data/lion_takanawa_las/data/r613.las +0 -0
  453. package/data/lion_takanawa_las/data/r62.las +0 -0
  454. package/data/lion_takanawa_las/data/r620.las +0 -0
  455. package/data/lion_takanawa_las/data/r621.las +0 -0
  456. package/data/lion_takanawa_las/data/r623.las +0 -0
  457. package/data/lion_takanawa_las/data/r624.las +0 -0
  458. package/data/lion_takanawa_las/data/r625.las +0 -0
  459. package/data/lion_takanawa_las/data/r626.las +0 -0
  460. package/data/lion_takanawa_las/data/r627.las +0 -0
  461. package/data/lion_takanawa_las/data/r63.las +0 -0
  462. package/data/lion_takanawa_las/data/r630.las +0 -0
  463. package/data/lion_takanawa_las/data/r631.las +0 -0
  464. package/data/lion_takanawa_las/data/r632.las +0 -0
  465. package/data/lion_takanawa_las/data/r633.las +0 -0
  466. package/data/lion_takanawa_las/data/r636.las +0 -0
  467. package/data/lion_takanawa_las/data/r7.las +0 -0
  468. package/data/lion_takanawa_las/data/r70.las +0 -0
  469. package/data/lion_takanawa_las/data/r700.las +0 -0
  470. package/data/lion_takanawa_laz/cloud.js +0 -225
  471. package/data/lion_takanawa_laz/data/r.laz +0 -0
  472. package/data/lion_takanawa_laz/data/r0.laz +0 -0
  473. package/data/lion_takanawa_laz/data/r00.laz +0 -0
  474. package/data/lion_takanawa_laz/data/r003.laz +0 -0
  475. package/data/lion_takanawa_laz/data/r006.laz +0 -0
  476. package/data/lion_takanawa_laz/data/r007.laz +0 -0
  477. package/data/lion_takanawa_laz/data/r01.laz +0 -0
  478. package/data/lion_takanawa_laz/data/r010.laz +0 -0
  479. package/data/lion_takanawa_laz/data/r011.laz +0 -0
  480. package/data/lion_takanawa_laz/data/r012.laz +0 -0
  481. package/data/lion_takanawa_laz/data/r013.laz +0 -0
  482. package/data/lion_takanawa_laz/data/r014.laz +0 -0
  483. package/data/lion_takanawa_laz/data/r015.laz +0 -0
  484. package/data/lion_takanawa_laz/data/r016.laz +0 -0
  485. package/data/lion_takanawa_laz/data/r017.laz +0 -0
  486. package/data/lion_takanawa_laz/data/r02.laz +0 -0
  487. package/data/lion_takanawa_laz/data/r020.laz +0 -0
  488. package/data/lion_takanawa_laz/data/r021.laz +0 -0
  489. package/data/lion_takanawa_laz/data/r022.laz +0 -0
  490. package/data/lion_takanawa_laz/data/r023.laz +0 -0
  491. package/data/lion_takanawa_laz/data/r024.laz +0 -0
  492. package/data/lion_takanawa_laz/data/r025.laz +0 -0
  493. package/data/lion_takanawa_laz/data/r026.laz +0 -0
  494. package/data/lion_takanawa_laz/data/r027.laz +0 -0
  495. package/data/lion_takanawa_laz/data/r03.laz +0 -0
  496. package/data/lion_takanawa_laz/data/r030.laz +0 -0
  497. package/data/lion_takanawa_laz/data/r031.laz +0 -0
  498. package/data/lion_takanawa_laz/data/r032.laz +0 -0
  499. package/data/lion_takanawa_laz/data/r033.laz +0 -0
  500. package/data/lion_takanawa_laz/data/r034.laz +0 -0
  501. package/data/lion_takanawa_laz/data/r035.laz +0 -0
  502. package/data/lion_takanawa_laz/data/r036.laz +0 -0
  503. package/data/lion_takanawa_laz/data/r037.laz +0 -0
  504. package/data/lion_takanawa_laz/data/r04.laz +0 -0
  505. package/data/lion_takanawa_laz/data/r042.laz +0 -0
  506. package/data/lion_takanawa_laz/data/r046.laz +0 -0
  507. package/data/lion_takanawa_laz/data/r06.laz +0 -0
  508. package/data/lion_takanawa_laz/data/r060.laz +0 -0
  509. package/data/lion_takanawa_laz/data/r061.laz +0 -0
  510. package/data/lion_takanawa_laz/data/r064.laz +0 -0
  511. package/data/lion_takanawa_laz/data/r065.laz +0 -0
  512. package/data/lion_takanawa_laz/data/r07.laz +0 -0
  513. package/data/lion_takanawa_laz/data/r070.laz +0 -0
  514. package/data/lion_takanawa_laz/data/r071.laz +0 -0
  515. package/data/lion_takanawa_laz/data/r072.laz +0 -0
  516. package/data/lion_takanawa_laz/data/r073.laz +0 -0
  517. package/data/lion_takanawa_laz/data/r074.laz +0 -0
  518. package/data/lion_takanawa_laz/data/r075.laz +0 -0
  519. package/data/lion_takanawa_laz/data/r076.laz +0 -0
  520. package/data/lion_takanawa_laz/data/r077.laz +0 -0
  521. package/data/lion_takanawa_laz/data/r1.laz +0 -0
  522. package/data/lion_takanawa_laz/data/r10.laz +0 -0
  523. package/data/lion_takanawa_laz/data/r102.laz +0 -0
  524. package/data/lion_takanawa_laz/data/r11.laz +0 -0
  525. package/data/lion_takanawa_laz/data/r116.laz +0 -0
  526. package/data/lion_takanawa_laz/data/r12.laz +0 -0
  527. package/data/lion_takanawa_laz/data/r120.laz +0 -0
  528. package/data/lion_takanawa_laz/data/r122.laz +0 -0
  529. package/data/lion_takanawa_laz/data/r126.laz +0 -0
  530. package/data/lion_takanawa_laz/data/r127.laz +0 -0
  531. package/data/lion_takanawa_laz/data/r14.laz +0 -0
  532. package/data/lion_takanawa_laz/data/r143.laz +0 -0
  533. package/data/lion_takanawa_laz/data/r147.laz +0 -0
  534. package/data/lion_takanawa_laz/data/r16.laz +0 -0
  535. package/data/lion_takanawa_laz/data/r160.laz +0 -0
  536. package/data/lion_takanawa_laz/data/r161.laz +0 -0
  537. package/data/lion_takanawa_laz/data/r162.laz +0 -0
  538. package/data/lion_takanawa_laz/data/r163.laz +0 -0
  539. package/data/lion_takanawa_laz/data/r164.laz +0 -0
  540. package/data/lion_takanawa_laz/data/r165.laz +0 -0
  541. package/data/lion_takanawa_laz/data/r166.laz +0 -0
  542. package/data/lion_takanawa_laz/data/r167.laz +0 -0
  543. package/data/lion_takanawa_laz/data/r17.laz +0 -0
  544. package/data/lion_takanawa_laz/data/r170.laz +0 -0
  545. package/data/lion_takanawa_laz/data/r172.laz +0 -0
  546. package/data/lion_takanawa_laz/data/r174.laz +0 -0
  547. package/data/lion_takanawa_laz/data/r176.laz +0 -0
  548. package/data/lion_takanawa_laz/data/r2.laz +0 -0
  549. package/data/lion_takanawa_laz/data/r20.laz +0 -0
  550. package/data/lion_takanawa_laz/data/r200.laz +0 -0
  551. package/data/lion_takanawa_laz/data/r202.laz +0 -0
  552. package/data/lion_takanawa_laz/data/r203.laz +0 -0
  553. package/data/lion_takanawa_laz/data/r21.laz +0 -0
  554. package/data/lion_takanawa_laz/data/r210.laz +0 -0
  555. package/data/lion_takanawa_laz/data/r211.laz +0 -0
  556. package/data/lion_takanawa_laz/data/r212.laz +0 -0
  557. package/data/lion_takanawa_laz/data/r213.laz +0 -0
  558. package/data/lion_takanawa_laz/data/r214.laz +0 -0
  559. package/data/lion_takanawa_laz/data/r215.laz +0 -0
  560. package/data/lion_takanawa_laz/data/r216.laz +0 -0
  561. package/data/lion_takanawa_laz/data/r217.laz +0 -0
  562. package/data/lion_takanawa_laz/data/r22.laz +0 -0
  563. package/data/lion_takanawa_laz/data/r220.laz +0 -0
  564. package/data/lion_takanawa_laz/data/r222.laz +0 -0
  565. package/data/lion_takanawa_laz/data/r224.laz +0 -0
  566. package/data/lion_takanawa_laz/data/r225.laz +0 -0
  567. package/data/lion_takanawa_laz/data/r23.laz +0 -0
  568. package/data/lion_takanawa_laz/data/r231.laz +0 -0
  569. package/data/lion_takanawa_laz/data/r233.laz +0 -0
  570. package/data/lion_takanawa_laz/data/r235.laz +0 -0
  571. package/data/lion_takanawa_laz/data/r237.laz +0 -0
  572. package/data/lion_takanawa_laz/data/r25.laz +0 -0
  573. package/data/lion_takanawa_laz/data/r250.laz +0 -0
  574. package/data/lion_takanawa_laz/data/r251.laz +0 -0
  575. package/data/lion_takanawa_laz/data/r252.laz +0 -0
  576. package/data/lion_takanawa_laz/data/r253.laz +0 -0
  577. package/data/lion_takanawa_laz/data/r254.laz +0 -0
  578. package/data/lion_takanawa_laz/data/r255.laz +0 -0
  579. package/data/lion_takanawa_laz/data/r256.laz +0 -0
  580. package/data/lion_takanawa_laz/data/r257.laz +0 -0
  581. package/data/lion_takanawa_laz/data/r26.laz +0 -0
  582. package/data/lion_takanawa_laz/data/r260.laz +0 -0
  583. package/data/lion_takanawa_laz/data/r261.laz +0 -0
  584. package/data/lion_takanawa_laz/data/r262.laz +0 -0
  585. package/data/lion_takanawa_laz/data/r263.laz +0 -0
  586. package/data/lion_takanawa_laz/data/r265.laz +0 -0
  587. package/data/lion_takanawa_laz/data/r266.laz +0 -0
  588. package/data/lion_takanawa_laz/data/r267.laz +0 -0
  589. package/data/lion_takanawa_laz/data/r27.laz +0 -0
  590. package/data/lion_takanawa_laz/data/r270.laz +0 -0
  591. package/data/lion_takanawa_laz/data/r271.laz +0 -0
  592. package/data/lion_takanawa_laz/data/r272.laz +0 -0
  593. package/data/lion_takanawa_laz/data/r273.laz +0 -0
  594. package/data/lion_takanawa_laz/data/r274.laz +0 -0
  595. package/data/lion_takanawa_laz/data/r275.laz +0 -0
  596. package/data/lion_takanawa_laz/data/r276.laz +0 -0
  597. package/data/lion_takanawa_laz/data/r277.laz +0 -0
  598. package/data/lion_takanawa_laz/data/r3.laz +0 -0
  599. package/data/lion_takanawa_laz/data/r30.laz +0 -0
  600. package/data/lion_takanawa_laz/data/r304.laz +0 -0
  601. package/data/lion_takanawa_laz/data/r305.laz +0 -0
  602. package/data/lion_takanawa_laz/data/r32.laz +0 -0
  603. package/data/lion_takanawa_laz/data/r320.laz +0 -0
  604. package/data/lion_takanawa_laz/data/r322.laz +0 -0
  605. package/data/lion_takanawa_laz/data/r326.laz +0 -0
  606. package/data/lion_takanawa_laz/data/r34.laz +0 -0
  607. package/data/lion_takanawa_laz/data/r340.laz +0 -0
  608. package/data/lion_takanawa_laz/data/r341.laz +0 -0
  609. package/data/lion_takanawa_laz/data/r342.laz +0 -0
  610. package/data/lion_takanawa_laz/data/r344.laz +0 -0
  611. package/data/lion_takanawa_laz/data/r345.laz +0 -0
  612. package/data/lion_takanawa_laz/data/r346.laz +0 -0
  613. package/data/lion_takanawa_laz/data/r35.laz +0 -0
  614. package/data/lion_takanawa_laz/data/r350.laz +0 -0
  615. package/data/lion_takanawa_laz/data/r354.laz +0 -0
  616. package/data/lion_takanawa_laz/data/r36.laz +0 -0
  617. package/data/lion_takanawa_laz/data/r360.laz +0 -0
  618. package/data/lion_takanawa_laz/data/r361.laz +0 -0
  619. package/data/lion_takanawa_laz/data/r364.laz +0 -0
  620. package/data/lion_takanawa_laz/data/r37.laz +0 -0
  621. package/data/lion_takanawa_laz/data/r370.laz +0 -0
  622. package/data/lion_takanawa_laz/data/r4.laz +0 -0
  623. package/data/lion_takanawa_laz/data/r40.laz +0 -0
  624. package/data/lion_takanawa_laz/data/r400.laz +0 -0
  625. package/data/lion_takanawa_laz/data/r402.laz +0 -0
  626. package/data/lion_takanawa_laz/data/r42.laz +0 -0
  627. package/data/lion_takanawa_laz/data/r420.laz +0 -0
  628. package/data/lion_takanawa_laz/data/r421.laz +0 -0
  629. package/data/lion_takanawa_laz/data/r422.laz +0 -0
  630. package/data/lion_takanawa_laz/data/r423.laz +0 -0
  631. package/data/lion_takanawa_laz/data/r424.laz +0 -0
  632. package/data/lion_takanawa_laz/data/r426.laz +0 -0
  633. package/data/lion_takanawa_laz/data/r43.laz +0 -0
  634. package/data/lion_takanawa_laz/data/r430.laz +0 -0
  635. package/data/lion_takanawa_laz/data/r431.laz +0 -0
  636. package/data/lion_takanawa_laz/data/r432.laz +0 -0
  637. package/data/lion_takanawa_laz/data/r433.laz +0 -0
  638. package/data/lion_takanawa_laz/data/r5.laz +0 -0
  639. package/data/lion_takanawa_laz/data/r52.laz +0 -0
  640. package/data/lion_takanawa_laz/data/r522.laz +0 -0
  641. package/data/lion_takanawa_laz/data/r6.laz +0 -0
  642. package/data/lion_takanawa_laz/data/r60.laz +0 -0
  643. package/data/lion_takanawa_laz/data/r600.laz +0 -0
  644. package/data/lion_takanawa_laz/data/r601.laz +0 -0
  645. package/data/lion_takanawa_laz/data/r602.laz +0 -0
  646. package/data/lion_takanawa_laz/data/r603.laz +0 -0
  647. package/data/lion_takanawa_laz/data/r604.laz +0 -0
  648. package/data/lion_takanawa_laz/data/r606.laz +0 -0
  649. package/data/lion_takanawa_laz/data/r61.laz +0 -0
  650. package/data/lion_takanawa_laz/data/r610.laz +0 -0
  651. package/data/lion_takanawa_laz/data/r611.laz +0 -0
  652. package/data/lion_takanawa_laz/data/r612.laz +0 -0
  653. package/data/lion_takanawa_laz/data/r613.laz +0 -0
  654. package/data/lion_takanawa_laz/data/r62.laz +0 -0
  655. package/data/lion_takanawa_laz/data/r620.laz +0 -0
  656. package/data/lion_takanawa_laz/data/r621.laz +0 -0
  657. package/data/lion_takanawa_laz/data/r623.laz +0 -0
  658. package/data/lion_takanawa_laz/data/r624.laz +0 -0
  659. package/data/lion_takanawa_laz/data/r625.laz +0 -0
  660. package/data/lion_takanawa_laz/data/r626.laz +0 -0
  661. package/data/lion_takanawa_laz/data/r627.laz +0 -0
  662. package/data/lion_takanawa_laz/data/r63.laz +0 -0
  663. package/data/lion_takanawa_laz/data/r630.laz +0 -0
  664. package/data/lion_takanawa_laz/data/r631.laz +0 -0
  665. package/data/lion_takanawa_laz/data/r632.laz +0 -0
  666. package/data/lion_takanawa_laz/data/r633.laz +0 -0
  667. package/data/lion_takanawa_laz/data/r636.laz +0 -0
  668. package/data/lion_takanawa_laz/data/r7.laz +0 -0
  669. package/data/lion_takanawa_laz/data/r70.laz +0 -0
  670. package/data/lion_takanawa_laz/data/r700.laz +0 -0
  671. package/index.html +0 -138
  672. package/lib/threejs/OrbitControls.js +0 -1043
  673. package/lib/threejs/three.min.js +0 -1019
  674. package/rollup.config.js +0 -16
  675. package/screenshot.png +0 -0
  676. package/source/Global.js +0 -42
  677. package/source/Gradients.js +0 -85
  678. package/source/Main.js +0 -67
  679. package/source/PointAttributes.js +0 -174
  680. package/source/Points.js +0 -59
  681. package/source/Potree.js +0 -570
  682. package/source/Shader.js +0 -270
  683. package/source/Shaders.js +0 -893
  684. package/source/WebGLBuffer.js +0 -13
  685. package/source/WebGLTexture.js +0 -193
  686. package/source/lib/BinaryHeap.js +0 -138
  687. package/source/loaders/BinaryLoader.js +0 -165
  688. package/source/loaders/EptLoader.js +0 -25
  689. package/source/loaders/GreyhoundBinaryLoader.js +0 -155
  690. package/source/loaders/GreyhoundLoader.js +0 -252
  691. package/source/loaders/GreyhoundUtils.js +0 -224
  692. package/source/loaders/LASLAZLoader.js +0 -235
  693. package/source/loaders/LASLoader.js +0 -368
  694. package/source/loaders/POCLoader.js +0 -188
  695. package/source/loaders/ept/EptBinaryLoader.js +0 -115
  696. package/source/loaders/ept/EptLaszipLoader.js +0 -184
  697. package/source/objects/BasicGroup.js +0 -203
  698. package/source/objects/Group.js +0 -614
  699. package/source/pointcloud/DEM.js +0 -245
  700. package/source/pointcloud/DEMNode.js +0 -167
  701. package/source/pointcloud/PointCloudArena4D.js +0 -688
  702. package/source/pointcloud/PointCloudOctree.js +0 -1117
  703. package/source/pointcloud/PointCloudTree.js +0 -42
  704. package/source/pointcloud/geometries/PointCloudArena4DGeometry.js +0 -467
  705. package/source/pointcloud/geometries/PointCloudEptGeometry.js +0 -341
  706. package/source/pointcloud/geometries/PointCloudGreyhoundGeometry.js +0 -371
  707. package/source/pointcloud/geometries/PointCloudOctreeGeometry.js +0 -299
  708. package/source/pointcloud/materials/PointCloudMaterial.js +0 -1177
  709. package/source/utils/HelperUtils.js +0 -55
  710. package/source/utils/LRU.js +0 -210
  711. package/source/utils/VersionUtils.js +0 -45
  712. package/source/utils/WorkerManager.js +0 -85
  713. package/source/workers/BinaryDecoderWorker.js +0 -417
  714. package/source/workers/DEMWorker.js +0 -47
  715. package/source/workers/EptBinaryDecoderWorker.js +0 -209
  716. package/source/workers/EptLaszipDecoderWorker.js +0 -176
  717. package/source/workers/GreyhoundBinaryDecoderWorker.js +0 -504
  718. package/source/workers/LASDecoderWorker.js +0 -137
  719. package/source/workers/LASLAZWorker.js +0 -49756
@@ -1,1117 +0,0 @@
1
- "use strict";
2
-
3
- import {PointCloudOctreeGeometryNode} from "./geometries/PointCloudOctreeGeometry.js";
4
- import {HelperUtils} from "../utils/HelperUtils.js";
5
- import {PointCloudTree, PointCloudTreeNode} from "./PointCloudTree.js";
6
- import {PointCloudMaterial} from "./materials/PointCloudMaterial.js";
7
- import {PointColorType, ClipTask} from "../Potree.js";
8
- import {Global} from "../Global.js";
9
-
10
- class PointCloudOctreeNode extends PointCloudTreeNode
11
- {
12
- constructor()
13
- {
14
- super();
15
-
16
- this.children = {};
17
- this.sceneNode = null;
18
- this.octree = null;
19
- }
20
-
21
- getNumPoints()
22
- {
23
- return this.geometryNode.numPoints;
24
- }
25
-
26
- isLoaded()
27
- {
28
- return true;
29
- }
30
-
31
- isTreeNode()
32
- {
33
- return true;
34
- }
35
-
36
- isGeometryNode()
37
- {
38
- return false;
39
- }
40
-
41
- getLevel()
42
- {
43
- return this.geometryNode.level;
44
- }
45
-
46
- getBoundingSphere()
47
- {
48
- return this.geometryNode.boundingSphere;
49
- }
50
-
51
- getBoundingBox()
52
- {
53
- return this.geometryNode.boundingBox;
54
- }
55
-
56
- getChildren()
57
- {
58
- var children = [];
59
-
60
- for(var i = 0; i < 8; i++)
61
- {
62
- if(this.children[i])
63
- {
64
- children.push(this.children[i]);
65
- }
66
- }
67
-
68
- return children;
69
- }
70
-
71
- getPointsInBox(boxNode)
72
- {
73
-
74
- if(!this.sceneNode)
75
- {
76
- return null;
77
- }
78
-
79
- var buffer = this.geometryNode.buffer;
80
-
81
- var posOffset = buffer.offset("position");
82
- var stride = buffer.stride;
83
- var view = new DataView(buffer.data);
84
-
85
- var worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld);
86
- var objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, this.sceneNode.matrixWorld);
87
-
88
- var inBox = [];
89
-
90
- var pos = new THREE.Vector4();
91
- for(var i = 0; i < buffer.numElements; i++)
92
- {
93
- var x = view.getFloat32(i * stride + posOffset + 0, true);
94
- var y = view.getFloat32(i * stride + posOffset + 4, true);
95
- var z = view.getFloat32(i * stride + posOffset + 8, true);
96
-
97
- pos.set(x, y, z, 1);
98
- pos.applyMatrix4(objectToBox);
99
-
100
- if(-0.5 < pos.x && pos.x < 0.5)
101
- {
102
- if(-0.5 < pos.y && pos.y < 0.5)
103
- {
104
- if(-0.5 < pos.z && pos.z < 0.5)
105
- {
106
- pos.set(x, y, z, 1).applyMatrix4(this.sceneNode.matrixWorld);
107
- inBox.push(new THREE.Vector3(pos.x, pos.y, pos.z));
108
- }
109
- }
110
- }
111
- }
112
-
113
- return inBox;
114
- }
115
-
116
- get name()
117
- {
118
- return this.geometryNode.name;
119
- }
120
- };
121
-
122
- class PointCloudOctree extends PointCloudTree
123
- {
124
- constructor(geometry, material)
125
- {
126
- super();
127
-
128
- this.pointBudget = Infinity;
129
- this.pcoGeometry = geometry;
130
- this.boundingBox = this.pcoGeometry.boundingBox;
131
- this.boundingSphere = this.boundingBox.getBoundingSphere(new THREE.Sphere());
132
- this.material = material || new PointCloudMaterial();
133
- this.visiblePointsTarget = 2 * 1000 * 1000;
134
- this.minimumNodePixelSize = 150;
135
- this.level = 0;
136
- this.position.copy(geometry.offset);
137
- this.updateMatrix();
138
-
139
- this.showBoundingBox = false;
140
- this.boundingBoxNodes = [];
141
- this.loadQueue = [];
142
- this.visibleBounds = new THREE.Box3();
143
- this.visibleNodes = [];
144
- this.visibleGeometry = [];
145
- this.generateDEM = false;
146
- this.profileRequests = [];
147
- this.name = "";
148
-
149
- this.tempVector3 = new THREE.Vector3();
150
-
151
- var box = [this.pcoGeometry.tightBoundingBox, this.getBoundingBoxWorld()].find(v => v !== undefined);
152
-
153
- this.updateMatrixWorld(true);
154
- box = HelperUtils.computeTransformedBoundingBox(box, this.matrixWorld);
155
-
156
- var bMin = box.min.z;
157
- var bMax = box.max.z;
158
- this.material.heightMin = bMin;
159
- this.material.heightMax = bMax;
160
-
161
- //TODO <read projection from file instead>
162
- this.projection = geometry.projection;
163
-
164
- this.root = this.pcoGeometry.root;
165
- }
166
-
167
- setName(name)
168
- {
169
- if(this.name !== name)
170
- {
171
- this.name = name;
172
- this.dispatchEvent(
173
- {
174
- type: "name_changed",
175
- name: name,
176
- pointcloud: this
177
- });
178
- }
179
- }
180
-
181
- getName()
182
- {
183
- return this.name;
184
- }
185
-
186
- toTreeNode(geometryNode, parent)
187
- {
188
- var node = new PointCloudOctreeNode();
189
-
190
- var sceneNode = new THREE.Points(geometryNode.geometry, this.material);
191
- sceneNode.name = geometryNode.name;
192
- sceneNode.position.copy(geometryNode.boundingBox.min);
193
- sceneNode.frustumCulled = true;
194
- sceneNode.onBeforeRender = (_this, scene, camera, geometry, material, group) =>
195
- {
196
- if(material.program)
197
- {
198
- _this.getContext().useProgram(material.program.program);
199
-
200
- if(material.program.getUniforms().map.level)
201
- {
202
- var level = geometryNode.getLevel();
203
- material.uniforms.level.value = level;
204
- material.program.getUniforms().map.level.setValue(_this.getContext(), level);
205
- }
206
-
207
- if(this.visibleNodeTextureOffsets && material.program.getUniforms().map.vnStart)
208
- {
209
- var vnStart = this.visibleNodeTextureOffsets.get(node);
210
- material.uniforms.vnStart.value = vnStart;
211
- material.program.getUniforms().map.vnStart.setValue(_this.getContext(), vnStart);
212
- }
213
-
214
- if(material.program.getUniforms().map.pcIndex)
215
- {
216
- var i = node.pcIndex ? node.pcIndex : this.visibleNodes.indexOf(node);
217
- material.uniforms.pcIndex.value = i;
218
- material.program.getUniforms().map.pcIndex.setValue(_this.getContext(), i);
219
- }
220
- }
221
- };
222
-
223
- node.geometryNode = geometryNode;
224
- node.sceneNode = sceneNode;
225
- node.pointcloud = this;
226
- node.children = {};
227
- for(var key in geometryNode.children)
228
- {
229
- node.children[key] = geometryNode.children[key];
230
- }
231
-
232
- if(!parent)
233
- {
234
- this.root = node;
235
- this.add(sceneNode);
236
- }
237
- else
238
- {
239
- var childIndex = parseInt(geometryNode.name[geometryNode.name.length - 1]);
240
- parent.sceneNode.add(sceneNode);
241
- parent.children[childIndex] = node;
242
- }
243
-
244
- var disposeListener = function()
245
- {
246
- var childIndex = parseInt(geometryNode.name[geometryNode.name.length - 1]);
247
- parent.sceneNode.remove(node.sceneNode);
248
- parent.children[childIndex] = geometryNode;
249
- };
250
- geometryNode.oneTimeDisposeHandlers.push(disposeListener);
251
-
252
- return node;
253
- }
254
-
255
- updateVisibleBounds()
256
- {
257
- var leafNodes = [];
258
- for(var i = 0; i < this.visibleNodes.length; i++)
259
- {
260
- var node = this.visibleNodes[i];
261
- var isLeaf = true;
262
-
263
- for(var j = 0; j < node.children.length; j++)
264
- {
265
- var child = node.children[j];
266
- if(child instanceof PointCloudOctreeNode)
267
- {
268
- isLeaf = isLeaf && !child.sceneNode.visible;
269
- }
270
- else if(child instanceof PointCloudOctreeGeometryNode)
271
- {
272
- isLeaf = true;
273
- }
274
- }
275
-
276
- if(isLeaf)
277
- {
278
- leafNodes.push(node);
279
- }
280
- }
281
-
282
- this.visibleBounds.min = new THREE.Vector3(Infinity, Infinity, Infinity);
283
- this.visibleBounds.max = new THREE.Vector3(-Infinity, -Infinity, -Infinity);
284
-
285
- for(var i = 0; i < leafNodes.length; i++)
286
- {
287
- var node = leafNodes[i];
288
- this.visibleBounds.expandByPoint(node.getBoundingBox().min);
289
- this.visibleBounds.expandByPoint(node.getBoundingBox().max);
290
- }
291
- }
292
-
293
- updateMaterial(material, visibleNodes, camera, renderer)
294
- {
295
- material.fov = camera.fov * (Math.PI / 180);
296
- material.screenWidth = renderer.domElement.clientWidth;
297
- material.screenHeight = renderer.domElement.clientHeight;
298
- material.spacing = this.pcoGeometry.spacing * Math.max(this.scale.x, this.scale.y, this.scale.z);
299
- material.near = camera.near;
300
- material.far = camera.far;
301
- material.uniforms.octreeSize.value = this.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x;
302
- }
303
-
304
- computeVisibilityTextureData(nodes, camera)
305
- {
306
- if(Global.measureTimings)
307
- {
308
- performance.mark("computeVisibilityTextureData-start");
309
- }
310
-
311
- var data = new Uint8Array(nodes.length * 4);
312
- var visibleNodeTextureOffsets = new Map();
313
-
314
- //copy array
315
- nodes = nodes.slice();
316
-
317
- //sort by level and index, e.g. r, r0, r3, r4, r01, r07, r30, ...
318
- var sort = function(a, b)
319
- {
320
- var na = a.geometryNode.name;
321
- var nb = b.geometryNode.name;
322
- if(na.length !== nb.length) return na.length - nb.length;
323
- if(na < nb) return -1;
324
- if(na > nb) return 1;
325
- return 0;
326
- };
327
- nodes.sort(sort);
328
-
329
- //code sample taken from three.js src/math/Ray.js
330
- var v1 = new THREE.Vector3();
331
- var intersectSphereBack = (ray, sphere) =>
332
- {
333
- v1.subVectors(sphere.center, ray.origin);
334
- var tca = v1.dot(ray.direction);
335
- var d2 = v1.dot(v1) - tca * tca;
336
- var radius2 = sphere.radius * sphere.radius;
337
-
338
- if(d2 > radius2)
339
- {
340
- return null;
341
- }
342
-
343
- var thc = Math.sqrt(radius2 - d2);
344
-
345
- //t1 = second intersect point - exit point on back of sphere
346
- var t1 = tca + thc;
347
-
348
- if(t1 < 0)
349
- {
350
- return null;
351
- }
352
-
353
- return t1;
354
- };
355
-
356
- var lodRanges = new Map();
357
- var leafNodeLodRanges = new Map();
358
-
359
- for(var i = 0; i < nodes.length; i++)
360
- {
361
- var node = nodes[i];
362
-
363
- visibleNodeTextureOffsets.set(node, i);
364
-
365
- var children = [];
366
- for(var j = 0; j < 8; j++)
367
- {
368
- var child = node.children[j];
369
-
370
- if(child && child.constructor === PointCloudOctreeNode && nodes.includes(child, i))
371
- {
372
- children.push(child);
373
- }
374
- }
375
-
376
- var spacing = node.geometryNode.estimatedSpacing;
377
- var isLeafNode;
378
-
379
- data[i * 4 + 0] = 0;
380
- data[i * 4 + 1] = 0;
381
- data[i * 4 + 2] = 0;
382
- data[i * 4 + 3] = node.getLevel();
383
- for(var j = 0; j < children.length; j++)
384
- {
385
- var child = children[j];
386
- var index = parseInt(child.geometryNode.name.substr(-1));
387
- data[i * 4 + 0] += Math.pow(2, index);
388
-
389
- if(j === 0)
390
- {
391
- var vArrayIndex = nodes.indexOf(child, i);
392
-
393
- data[i * 4 + 1] = (vArrayIndex - i) >> 8;
394
- data[i * 4 + 2] = (vArrayIndex - i) % 256;
395
- }
396
- }
397
-
398
- //TODO performance optimization
399
- //for some reason, this part can be extremely slow in chrome during a debugging session, but not during profiling
400
- var bBox = node.getBoundingBox().clone();
401
- //bBox.applyMatrix4(node.sceneNode.matrixWorld);
402
- //bBox.applyMatrix4(camera.matrixWorldInverse);
403
- var bSphere = bBox.getBoundingSphere(new THREE.Sphere());
404
- bSphere.applyMatrix4(node.sceneNode.matrixWorld);
405
- bSphere.applyMatrix4(camera.matrixWorldInverse);
406
-
407
- var ray = new THREE.Ray(camera.position, camera.getWorldDirection(this.tempVector3));
408
- var distance = intersectSphereBack(ray, bSphere);
409
- var distance2 = bSphere.center.distanceTo(camera.position) + bSphere.radius;
410
- if(distance === null)
411
- {
412
- distance = distance2;
413
- }
414
- distance = Math.max(distance, distance2);
415
-
416
- if(!lodRanges.has(node.getLevel()))
417
- {
418
- lodRanges.set(node.getLevel(), distance);
419
- }
420
- else
421
- {
422
- var prevDistance = lodRanges.get(node.getLevel());
423
- var newDistance = Math.max(prevDistance, distance);
424
- lodRanges.set(node.getLevel(), newDistance);
425
- }
426
-
427
- if(!node.geometryNode.hasChildren)
428
- {
429
- var value = {
430
- distance: distance,
431
- i: i
432
- };
433
- leafNodeLodRanges.set(node, value);
434
- }
435
- }
436
-
437
- for(var [node, value] of leafNodeLodRanges)
438
- {
439
- var level = node.getLevel();
440
- var distance = value.distance;
441
- var i = value.i;
442
-
443
- if(level < 4)
444
- {
445
- continue;
446
- }
447
- for(var [lod, range] of lodRanges)
448
- {
449
- if(distance < range * 1.2)
450
- {
451
- data[i * 4 + 3] = lod;
452
- }
453
- }
454
- }
455
-
456
- if(Global.measureTimings)
457
- {
458
- performance.mark("computeVisibilityTextureData-end");
459
- performance.measure("render.computeVisibilityTextureData", "computeVisibilityTextureData-start", "computeVisibilityTextureData-end");
460
- }
461
-
462
- return {
463
- data: data,
464
- offsets: visibleNodeTextureOffsets
465
- };
466
- }
467
-
468
- nodeIntersectsProfile(node, profile)
469
- {
470
- var bbWorld = node.boundingBox.clone().applyMatrix4(this.matrixWorld);
471
- var bsWorld = bbWorld.getBoundingSphere(new THREE.Sphere());
472
-
473
- var intersects = false;
474
-
475
- for(var i = 0; i < profile.points.length - 1; i++)
476
- {
477
-
478
- var start = new THREE.Vector3(profile.points[i + 0].x, profile.points[i + 0].y, bsWorld.center.z);
479
- var end = new THREE.Vector3(profile.points[i + 1].x, profile.points[i + 1].y, bsWorld.center.z);
480
-
481
- var closest = new THREE.Line3(start, end).closestPointToPoint(bsWorld.center, true);
482
- var distance = closest.distanceTo(bsWorld.center);
483
-
484
- intersects = intersects || (distance < (bsWorld.radius + profile.width));
485
- }
486
-
487
- return intersects;
488
- }
489
-
490
- nodesOnRay(nodes, ray)
491
- {
492
- var nodesOnRay = [];
493
-
494
- var _ray = ray.clone();
495
- for(var i = 0; i < nodes.length; i++)
496
- {
497
- var node = nodes[i];
498
- //var inverseWorld = new THREE.Matrix4().getInverse(node.matrixWorld);
499
- //var sphere = node.getBoundingSphere(new THREE.Sphere()).clone().applyMatrix4(node.sceneNode.matrixWorld);
500
- var sphere = node.getBoundingSphere(new THREE.Sphere()).clone().applyMatrix4(this.matrixWorld);
501
-
502
- if(_ray.intersectsSphere(sphere))
503
- {
504
- nodesOnRay.push(node);
505
- }
506
- }
507
-
508
- return nodesOnRay;
509
- }
510
-
511
- updateMatrixWorld(force)
512
- {
513
- if(this.matrixAutoUpdate === true) this.updateMatrix();
514
-
515
- if(this.matrixWorldNeedsUpdate === true || force === true)
516
- {
517
- if(!this.parent)
518
- {
519
- this.matrixWorld.copy(this.matrix);
520
- }
521
- else
522
- {
523
- this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);
524
- }
525
-
526
- this.matrixWorldNeedsUpdate = false;
527
-
528
- force = true;
529
- }
530
- }
531
-
532
- hideDescendants(object)
533
- {
534
- var stack = [];
535
- for(var i = 0; i < object.children.length; i++)
536
- {
537
- var child = object.children[i];
538
- if(child.visible)
539
- {
540
- stack.push(child);
541
- }
542
- }
543
-
544
- while(stack.length > 0)
545
- {
546
- var object = stack.shift();
547
-
548
- object.visible = false;
549
-
550
- for(var i = 0; i < object.children.length; i++)
551
- {
552
- var child = object.children[i];
553
- if(child.visible)
554
- {
555
- stack.push(child);
556
- }
557
- }
558
- }
559
- }
560
-
561
- moveToOrigin()
562
- {
563
- this.position.set(0, 0, 0);
564
- this.updateMatrixWorld(true);
565
- var box = this.boundingBox;
566
- var transform = this.matrixWorld;
567
- var tBox = HelperUtils.computeTransformedBoundingBox(box, transform);
568
-
569
- this.position.set(0, 0, 0).sub(tBox.getCenter(new THREE.Vector3()));
570
- };
571
-
572
- moveToGroundPlane()
573
- {
574
- this.updateMatrixWorld(true);
575
- var box = this.boundingBox;
576
- var transform = this.matrixWorld;
577
- var tBox = HelperUtils.computeTransformedBoundingBox(box, transform);
578
- this.position.y += -tBox.min.y;
579
- };
580
-
581
- getBoundingBoxWorld()
582
- {
583
- this.updateMatrixWorld(true);
584
- var box = this.boundingBox;
585
- var transform = this.matrixWorld;
586
- var tBox = HelperUtils.computeTransformedBoundingBox(box, transform);
587
-
588
- return tBox;
589
- };
590
-
591
- /**
592
- * returns points inside the profile points
593
- *
594
- * maxDepth: search points up to the given octree depth
595
- *
596
- *
597
- * The return value is an array with all segments of the profile path
598
- * var segment = {
599
- * start: THREE.Vector3,
600
- * end: THREE.Vector3,
601
- * points: {}
602
- * project: function()
603
- * };
604
- *
605
- * The project() function inside each segment can be used to transform
606
- * that segments point coordinates to line up along the x-axis.
607
- *
608
- *
609
- */
610
- getPointsInProfile(profile, maxDepth, callback)
611
- {
612
- if(callback)
613
- {
614
- //var request = new Potree.ProfileRequest(this, profile, maxDepth, callback);
615
- //this.profileRequests.push(request);
616
- //return request;
617
- }
618
-
619
- var points = {
620
- segments: [],
621
- boundingBox: new THREE.Box3(),
622
- projectedBoundingBox: new THREE.Box2()
623
- };
624
-
625
- //evaluate segments
626
- for(var i = 0; i < profile.points.length - 1; i++)
627
- {
628
- var start = profile.points[i];
629
- var end = profile.points[i + 1];
630
- var ps = this.getProfile(start, end, profile.width, maxDepth);
631
-
632
- var segment = {
633
- start: start,
634
- end: end,
635
- points: ps,
636
- project: null
637
- };
638
-
639
- points.segments.push(segment);
640
-
641
- points.boundingBox.expandByPoint(ps.boundingBox.min);
642
- points.boundingBox.expandByPoint(ps.boundingBox.max);
643
- }
644
-
645
- //add projection functions to the segments
646
- var mileage = new THREE.Vector3();
647
- for(var i = 0; i < points.segments.length; i++)
648
- {
649
- var segment = points.segments[i];
650
- var start = segment.start;
651
- var end = segment.end;
652
-
653
- var project = (function(_start, _end, _mileage, _boundingBox)
654
- {
655
- var start = _start;
656
- var end = _end;
657
- var mileage = _mileage;
658
- var boundingBox = _boundingBox;
659
-
660
- var xAxis = new THREE.Vector3(1, 0, 0);
661
- var dir = new THREE.Vector3().subVectors(end, start);
662
- dir.y = 0;
663
- dir.normalize();
664
- var alpha = Math.acos(xAxis.dot(dir));
665
- if(dir.z > 0)
666
- {
667
- alpha = -alpha;
668
- }
669
-
670
- return function(position)
671
- {
672
- var toOrigin = new THREE.Matrix4().makeTranslation(-start.x, -boundingBox.min.y, -start.z);
673
- var alignWithX = new THREE.Matrix4().makeRotationY(-alpha);
674
- var applyMileage = new THREE.Matrix4().makeTranslation(mileage.x, 0, 0);
675
-
676
- var pos = position.clone();
677
- pos.applyMatrix4(toOrigin);
678
- pos.applyMatrix4(alignWithX);
679
- pos.applyMatrix4(applyMileage);
680
-
681
- return pos;
682
- };
683
- }(start, end, mileage.clone(), points.boundingBox.clone()));
684
-
685
- segment.project = project;
686
-
687
- mileage.x += new THREE.Vector3(start.x, 0, start.z).distanceTo(new THREE.Vector3(end.x, 0, end.z));
688
- mileage.y += end.y - start.y;
689
- }
690
-
691
- points.projectedBoundingBox.min.x = 0;
692
- points.projectedBoundingBox.min.y = points.boundingBox.min.y;
693
- points.projectedBoundingBox.max.x = mileage.x;
694
- points.projectedBoundingBox.max.y = points.boundingBox.max.y;
695
-
696
- return points;
697
- }
698
-
699
- /**
700
- * returns points inside the given profile bounds.
701
- *
702
- * start:
703
- * end:
704
- * width:
705
- * depth: search points up to the given octree depth
706
- * callback: if specified, points are loaded before searching
707
- *
708
- *
709
- */
710
- getProfile(start, end, width, depth, callback)
711
- {
712
- //var request = new Potree.ProfileRequest(start, end, width, depth, callback);
713
- //this.profileRequests.push(request);
714
- };
715
-
716
- getVisibleExtent()
717
- {
718
- return this.visibleBounds.applyMatrix4(this.matrixWorld);
719
- };
720
-
721
- /**
722
- *
723
- *
724
- *
725
- * params.pickWindowSize: Look for points inside a pixel window of this size.
726
- * Use odd values: 1, 3, 5, ...
727
- *
728
- *
729
- * TODO: only draw pixels that are actually read with readPixels().
730
- *
731
- */
732
- pick(viewer, camera, ray, params = {})
733
- {
734
-
735
- var renderer = viewer.renderer;
736
- var pRenderer = viewer.pRenderer;
737
-
738
- performance.mark("pick-start");
739
-
740
- var getVal = (a, b) => a !== undefined ? a : b;
741
-
742
- var pickWindowSize = getVal(params.pickWindowSize, 17);
743
- var pickOutsideClipRegion = getVal(params.pickOutsideClipRegion, false);
744
-
745
- var size = renderer.getSize(new THREE.Vector3());
746
-
747
- var width = Math.ceil(getVal(params.width, size.width));
748
- var height = Math.ceil(getVal(params.height, size.height));
749
-
750
- var pointSizeType = getVal(params.pointSizeType, this.material.pointSizeType);
751
- var pointSize = getVal(params.pointSize, this.material.size);
752
-
753
- var nodes = this.nodesOnRay(this.visibleNodes, ray);
754
-
755
- if(nodes.length === 0)
756
- {
757
- return null;
758
- }
759
-
760
- if(!this.pickState)
761
- {
762
- var scene = new THREE.Scene();
763
-
764
- var material = new PointCloudMaterial();
765
- material.pointColorType = PointColorType.POINT_INDEX;
766
-
767
- var renderTarget = new THREE.WebGLRenderTarget(
768
- 1, 1,
769
- {
770
- minFilter: THREE.LinearFilter,
771
- magFilter: THREE.NearestFilter,
772
- format: THREE.RGBAFormat
773
- }
774
- );
775
-
776
- this.pickState = {
777
- renderTarget: renderTarget,
778
- material: material,
779
- scene: scene
780
- };
781
- };
782
-
783
- var pickState = this.pickState;
784
- var pickMaterial = pickState.material;
785
-
786
- //Update pick material
787
- pickMaterial.pointSizeType = pointSizeType;
788
- pickMaterial.shape = this.material.shape;
789
-
790
- pickMaterial.size = pointSize;
791
- pickMaterial.uniforms.minSize.value = this.material.uniforms.minSize.value;
792
- pickMaterial.uniforms.maxSize.value = this.material.uniforms.maxSize.value;
793
- pickMaterial.classification = this.material.classification;
794
- if(params.pickClipped)
795
- {
796
- pickMaterial.clipBoxes = this.material.clipBoxes;
797
- if(this.material.clipTask === ClipTask.HIGHLIGHT)
798
- {
799
- pickMaterial.clipTask = ClipTask.NONE;
800
- }
801
- else
802
- {
803
- pickMaterial.clipTask = this.material.clipTask;
804
- }
805
- }
806
- else
807
- {
808
- pickMaterial.clipBoxes = [];
809
- }
810
-
811
- this.updateMaterial(pickMaterial, nodes, camera, renderer);
812
-
813
- pickState.renderTarget.setSize(width, height);
814
-
815
- var pixelPos = new THREE.Vector2(params.x, params.y);
816
-
817
- var gl = renderer.getContext();
818
- gl.enable(gl.SCISSOR_TEST);
819
- gl.scissor(parseInt(pixelPos.x - (pickWindowSize - 1) / 2), parseInt(pixelPos.y - (pickWindowSize - 1) / 2), parseInt(pickWindowSize), parseInt(pickWindowSize));
820
-
821
- renderer.state.buffers.depth.setTest(pickMaterial.depthTest);
822
- renderer.state.buffers.depth.setMask(pickMaterial.depthWrite);
823
- renderer.state.setBlending(THREE.NoBlending);
824
-
825
- //Render
826
- renderer.setRenderTarget(pickState.renderTarget);
827
- gl.clearColor(0, 0, 0, 0);
828
- renderer.clearTarget(pickState.renderTarget, true, true, true);
829
-
830
- var tmp = this.material;
831
- this.material = pickMaterial;
832
-
833
- pRenderer.renderOctree(this, nodes, camera, pickState.renderTarget);
834
-
835
- this.material = tmp;
836
-
837
- var clamp = (number, min, max) => Math.min(Math.max(min, number), max);
838
-
839
- var x = parseInt(clamp(pixelPos.x - (pickWindowSize - 1) / 2, 0, width));
840
- var y = parseInt(clamp(pixelPos.y - (pickWindowSize - 1) / 2, 0, height));
841
- var w = parseInt(Math.min(x + pickWindowSize, width) - x);
842
- var h = parseInt(Math.min(y + pickWindowSize, height) - y);
843
-
844
- var pixelCount = w * h;
845
- var buffer = new Uint8Array(4 * pixelCount);
846
-
847
- gl.readPixels(x, y, pickWindowSize, pickWindowSize, gl.RGBA, gl.UNSIGNED_BYTE, buffer);
848
-
849
- renderer.setRenderTarget(null);
850
- renderer.resetGLState();
851
- renderer.setScissorTest(false);
852
- gl.disable(gl.SCISSOR_TEST);
853
-
854
- var pixels = buffer;
855
- var ibuffer = new Uint32Array(buffer.buffer);
856
-
857
- //find closest hit inside pixelWindow boundaries
858
- var min = Number.MAX_VALUE;
859
- var hits = [];
860
-
861
- for(var u = 0; u < pickWindowSize; u++)
862
- {
863
- for(var v = 0; v < pickWindowSize; v++)
864
- {
865
- var offset = (u + v * pickWindowSize);
866
- var distance = Math.pow(u - (pickWindowSize - 1) / 2, 2) + Math.pow(v - (pickWindowSize - 1) / 2, 2);
867
-
868
- var pcIndex = pixels[4 * offset + 3];
869
- pixels[4 * offset + 3] = 0;
870
- var pIndex = ibuffer[offset];
871
-
872
- if(!(pcIndex === 0 && pIndex === 0) && (pcIndex !== undefined) && (pIndex !== undefined))
873
- {
874
- var hit = {
875
- pIndex: pIndex,
876
- pcIndex: pcIndex,
877
- distanceToCenter: distance
878
- };
879
-
880
- if(params.all)
881
- {
882
- hits.push(hit);
883
- }
884
- else
885
- {
886
- if(hits.length > 0)
887
- {
888
- if(distance < hits[0].distanceToCenter)
889
- {
890
- hits[0] = hit;
891
- }
892
- }
893
- else
894
- {
895
- hits.push(hit);
896
- }
897
- }
898
- }
899
- }
900
- }
901
-
902
- for(var hit of hits)
903
- {
904
- var point = {};
905
-
906
- if(!nodes[hit.pcIndex])
907
- {
908
- return null;
909
- }
910
-
911
- var node = nodes[hit.pcIndex];
912
- var pc = node.sceneNode;
913
- var geometry = node.geometryNode.geometry;
914
-
915
- for(var attributeName in geometry.attributes)
916
- {
917
- var attribute = geometry.attributes[attributeName];
918
-
919
- if(attributeName === "position")
920
- {
921
- var x = attribute.array[3 * hit.pIndex + 0];
922
- var y = attribute.array[3 * hit.pIndex + 1];
923
- var z = attribute.array[3 * hit.pIndex + 2];
924
-
925
- var position = new THREE.Vector3(x, y, z);
926
- position.applyMatrix4(pc.matrixWorld);
927
-
928
- point[attributeName] = position;
929
- }
930
-
931
- /*
932
- else if(attributeName === "indices")
933
- {
934
-
935
- }
936
- else
937
- {
938
- //if (values.itemSize === 1) {
939
- // point[attribute.name] = values.array[hit.pIndex];
940
- //} else {
941
- // var value = [];
942
- // for (var j = 0; j < values.itemSize; j++) {
943
- // value.push(values.array[values.itemSize * hit.pIndex + j]);
944
- // }
945
- // point[attribute.name] = value;
946
- //}
947
- }
948
- */
949
-
950
- }
951
-
952
- hit.point = point;
953
- }
954
-
955
- performance.mark("pick-end");
956
- performance.measure("pick", "pick-start", "pick-end");
957
-
958
- if(params.all)
959
- {
960
- return hits.map(hit => hit.point);
961
- }
962
- else
963
- {
964
- if(hits.length === 0)
965
- {
966
- return null;
967
- }
968
- else
969
- {
970
- return hits[0].point;
971
- //var sorted = hits.sort((a, b) => a.distanceToCenter - b.distanceToCenter);
972
- //return sorted[0].point;
973
- }
974
- }
975
-
976
- };
977
-
978
- *getFittedBoxGen(boxNode)
979
- {
980
- var shrinkedLocalBounds = new THREE.Box3();
981
- var worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld);
982
-
983
- for(var node of this.visibleNodes)
984
- {
985
- if(!node.sceneNode)
986
- {
987
- continue;
988
- }
989
-
990
- var buffer = node.geometryNode.buffer;
991
-
992
- var posOffset = buffer.offset("position");
993
- var stride = buffer.stride;
994
- var view = new DataView(buffer.data);
995
-
996
- var objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, node.sceneNode.matrixWorld);
997
-
998
- var pos = new THREE.Vector4();
999
- for(var i = 0; i < buffer.numElements; i++)
1000
- {
1001
- var x = view.getFloat32(i * stride + posOffset + 0, true);
1002
- var y = view.getFloat32(i * stride + posOffset + 4, true);
1003
- var z = view.getFloat32(i * stride + posOffset + 8, true);
1004
-
1005
- pos.set(x, y, z, 1);
1006
- pos.applyMatrix4(objectToBox);
1007
-
1008
- if(-0.5 < pos.x && pos.x < 0.5)
1009
- {
1010
- if(-0.5 < pos.y && pos.y < 0.5)
1011
- {
1012
- if(-0.5 < pos.z && pos.z < 0.5)
1013
- {
1014
- shrinkedLocalBounds.expandByPoint(pos);
1015
- }
1016
- }
1017
- }
1018
- }
1019
-
1020
- yield;
1021
- }
1022
-
1023
-
1024
- var fittedPosition = shrinkedLocalBounds.getCenter(new THREE.Vector3()).applyMatrix4(boxNode.matrixWorld);
1025
-
1026
- var fitted = new THREE.Object3D();
1027
- fitted.position.copy(fittedPosition);
1028
- fitted.scale.copy(boxNode.scale);
1029
- fitted.rotation.copy(boxNode.rotation);
1030
-
1031
- var ds = new THREE.Vector3().subVectors(shrinkedLocalBounds.max, shrinkedLocalBounds.min);
1032
- fitted.scale.multiply(ds);
1033
-
1034
- yield fitted;
1035
- }
1036
-
1037
- getFittedBox(boxNode, maxLevel = Infinity)
1038
- {
1039
- var shrinkedLocalBounds = new THREE.Box3();
1040
- var worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld);
1041
-
1042
- for(var node of this.visibleNodes)
1043
- {
1044
- if(!node.sceneNode || node.getLevel() > maxLevel)
1045
- {
1046
- continue;
1047
- }
1048
-
1049
- var buffer = node.geometryNode.buffer;
1050
-
1051
- var posOffset = buffer.offset("position");
1052
- var stride = buffer.stride;
1053
- var view = new DataView(buffer.data);
1054
-
1055
- var objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, node.sceneNode.matrixWorld);
1056
-
1057
- var pos = new THREE.Vector4();
1058
- for(var i = 0; i < buffer.numElements; i++)
1059
- {
1060
- var x = view.getFloat32(i * stride + posOffset + 0, true);
1061
- var y = view.getFloat32(i * stride + posOffset + 4, true);
1062
- var z = view.getFloat32(i * stride + posOffset + 8, true);
1063
-
1064
- pos.set(x, y, z, 1);
1065
- pos.applyMatrix4(objectToBox);
1066
-
1067
- if(-0.5 < pos.x && pos.x < 0.5)
1068
- {
1069
- if(-0.5 < pos.y && pos.y < 0.5)
1070
- {
1071
- if(-0.5 < pos.z && pos.z < 0.5)
1072
- {
1073
- shrinkedLocalBounds.expandByPoint(pos);
1074
- }
1075
- }
1076
- }
1077
- }
1078
- }
1079
-
1080
- var fittedPosition = shrinkedLocalBounds.getCenter(new THREE.Vector3()).applyMatrix4(boxNode.matrixWorld);
1081
-
1082
- var fitted = new THREE.Object3D();
1083
- fitted.position.copy(fittedPosition);
1084
- fitted.scale.copy(boxNode.scale);
1085
- fitted.rotation.copy(boxNode.rotation);
1086
-
1087
- var ds = new THREE.Vector3().subVectors(shrinkedLocalBounds.max, shrinkedLocalBounds.min);
1088
- fitted.scale.multiply(ds);
1089
-
1090
- return fitted;
1091
- }
1092
-
1093
- get progress()
1094
- {
1095
- return this.visibleNodes.length / this.visibleGeometry.length;
1096
- }
1097
-
1098
- find(name)
1099
- {
1100
- var node = null;
1101
- for(var char of name)
1102
- {
1103
- if(char === "r")
1104
- {
1105
- node = this.root;
1106
- }
1107
- else
1108
- {
1109
- node = node.children[char];
1110
- }
1111
- }
1112
-
1113
- return node;
1114
- }
1115
- };
1116
-
1117
- export {PointCloudOctree, PointCloudOctreeNode};