@pggis/pg-sdk 3.2.9

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 (320) hide show
  1. package/README.md +152 -0
  2. package/dist/index.cjs +43 -0
  3. package/dist/pggis.min.css +1 -0
  4. package/dist/pggis.min.js +42 -0
  5. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  6. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  7. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  8. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  9. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  10. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  11. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  12. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  13. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  14. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  15. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  16. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  17. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  18. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  19. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  20. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  21. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  22. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  23. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  24. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  25. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  26. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  27. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  28. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  29. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  30. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  31. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  32. package/dist/resources/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  33. package/dist/resources/Assets/Images/bing_maps_credit.png +0 -0
  34. package/dist/resources/Assets/Images/cesium_credit.png +0 -0
  35. package/dist/resources/Assets/Images/google_earth_credit.png +0 -0
  36. package/dist/resources/Assets/Images/ion-credit.png +0 -0
  37. package/dist/resources/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  38. package/dist/resources/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  39. package/dist/resources/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  40. package/dist/resources/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  41. package/dist/resources/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  42. package/dist/resources/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  43. package/dist/resources/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  44. package/dist/resources/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  45. package/dist/resources/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  46. package/dist/resources/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  47. package/dist/resources/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  48. package/dist/resources/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  49. package/dist/resources/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  50. package/dist/resources/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  51. package/dist/resources/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  52. package/dist/resources/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  53. package/dist/resources/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  54. package/dist/resources/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  55. package/dist/resources/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  56. package/dist/resources/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  57. package/dist/resources/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  58. package/dist/resources/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  59. package/dist/resources/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  60. package/dist/resources/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  61. package/dist/resources/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  62. package/dist/resources/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  63. package/dist/resources/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  64. package/dist/resources/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  65. package/dist/resources/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  66. package/dist/resources/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  67. package/dist/resources/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  68. package/dist/resources/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  69. package/dist/resources/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  70. package/dist/resources/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  71. package/dist/resources/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  72. package/dist/resources/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  73. package/dist/resources/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  74. package/dist/resources/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  75. package/dist/resources/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  76. package/dist/resources/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  77. package/dist/resources/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  78. package/dist/resources/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  79. package/dist/resources/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  80. package/dist/resources/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  81. package/dist/resources/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
  82. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  83. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  84. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  85. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  86. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  87. package/dist/resources/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  88. package/dist/resources/Assets/Textures/maki/airfield.png +0 -0
  89. package/dist/resources/Assets/Textures/maki/airport.png +0 -0
  90. package/dist/resources/Assets/Textures/maki/alcohol-shop.png +0 -0
  91. package/dist/resources/Assets/Textures/maki/america-football.png +0 -0
  92. package/dist/resources/Assets/Textures/maki/art-gallery.png +0 -0
  93. package/dist/resources/Assets/Textures/maki/bakery.png +0 -0
  94. package/dist/resources/Assets/Textures/maki/bank.png +0 -0
  95. package/dist/resources/Assets/Textures/maki/bar.png +0 -0
  96. package/dist/resources/Assets/Textures/maki/baseball.png +0 -0
  97. package/dist/resources/Assets/Textures/maki/basketball.png +0 -0
  98. package/dist/resources/Assets/Textures/maki/beer.png +0 -0
  99. package/dist/resources/Assets/Textures/maki/bicycle.png +0 -0
  100. package/dist/resources/Assets/Textures/maki/building.png +0 -0
  101. package/dist/resources/Assets/Textures/maki/bus.png +0 -0
  102. package/dist/resources/Assets/Textures/maki/cafe.png +0 -0
  103. package/dist/resources/Assets/Textures/maki/camera.png +0 -0
  104. package/dist/resources/Assets/Textures/maki/campsite.png +0 -0
  105. package/dist/resources/Assets/Textures/maki/car.png +0 -0
  106. package/dist/resources/Assets/Textures/maki/cemetery.png +0 -0
  107. package/dist/resources/Assets/Textures/maki/cesium.png +0 -0
  108. package/dist/resources/Assets/Textures/maki/chemist.png +0 -0
  109. package/dist/resources/Assets/Textures/maki/cinema.png +0 -0
  110. package/dist/resources/Assets/Textures/maki/circle-stroked.png +0 -0
  111. package/dist/resources/Assets/Textures/maki/circle.png +0 -0
  112. package/dist/resources/Assets/Textures/maki/city.png +0 -0
  113. package/dist/resources/Assets/Textures/maki/clothing-store.png +0 -0
  114. package/dist/resources/Assets/Textures/maki/college.png +0 -0
  115. package/dist/resources/Assets/Textures/maki/commercial.png +0 -0
  116. package/dist/resources/Assets/Textures/maki/cricket.png +0 -0
  117. package/dist/resources/Assets/Textures/maki/cross.png +0 -0
  118. package/dist/resources/Assets/Textures/maki/dam.png +0 -0
  119. package/dist/resources/Assets/Textures/maki/danger.png +0 -0
  120. package/dist/resources/Assets/Textures/maki/disability.png +0 -0
  121. package/dist/resources/Assets/Textures/maki/dog-park.png +0 -0
  122. package/dist/resources/Assets/Textures/maki/embassy.png +0 -0
  123. package/dist/resources/Assets/Textures/maki/emergency-telephone.png +0 -0
  124. package/dist/resources/Assets/Textures/maki/entrance.png +0 -0
  125. package/dist/resources/Assets/Textures/maki/farm.png +0 -0
  126. package/dist/resources/Assets/Textures/maki/fast-food.png +0 -0
  127. package/dist/resources/Assets/Textures/maki/ferry.png +0 -0
  128. package/dist/resources/Assets/Textures/maki/fire-station.png +0 -0
  129. package/dist/resources/Assets/Textures/maki/fuel.png +0 -0
  130. package/dist/resources/Assets/Textures/maki/garden.png +0 -0
  131. package/dist/resources/Assets/Textures/maki/gift.png +0 -0
  132. package/dist/resources/Assets/Textures/maki/golf.png +0 -0
  133. package/dist/resources/Assets/Textures/maki/grocery.png +0 -0
  134. package/dist/resources/Assets/Textures/maki/hairdresser.png +0 -0
  135. package/dist/resources/Assets/Textures/maki/harbor.png +0 -0
  136. package/dist/resources/Assets/Textures/maki/heart.png +0 -0
  137. package/dist/resources/Assets/Textures/maki/heliport.png +0 -0
  138. package/dist/resources/Assets/Textures/maki/hospital.png +0 -0
  139. package/dist/resources/Assets/Textures/maki/ice-cream.png +0 -0
  140. package/dist/resources/Assets/Textures/maki/industrial.png +0 -0
  141. package/dist/resources/Assets/Textures/maki/land-use.png +0 -0
  142. package/dist/resources/Assets/Textures/maki/laundry.png +0 -0
  143. package/dist/resources/Assets/Textures/maki/library.png +0 -0
  144. package/dist/resources/Assets/Textures/maki/lighthouse.png +0 -0
  145. package/dist/resources/Assets/Textures/maki/lodging.png +0 -0
  146. package/dist/resources/Assets/Textures/maki/logging.png +0 -0
  147. package/dist/resources/Assets/Textures/maki/london-underground.png +0 -0
  148. package/dist/resources/Assets/Textures/maki/marker-stroked.png +0 -0
  149. package/dist/resources/Assets/Textures/maki/marker.png +0 -0
  150. package/dist/resources/Assets/Textures/maki/minefield.png +0 -0
  151. package/dist/resources/Assets/Textures/maki/mobilephone.png +0 -0
  152. package/dist/resources/Assets/Textures/maki/monument.png +0 -0
  153. package/dist/resources/Assets/Textures/maki/museum.png +0 -0
  154. package/dist/resources/Assets/Textures/maki/music.png +0 -0
  155. package/dist/resources/Assets/Textures/maki/oil-well.png +0 -0
  156. package/dist/resources/Assets/Textures/maki/park.png +0 -0
  157. package/dist/resources/Assets/Textures/maki/park2.png +0 -0
  158. package/dist/resources/Assets/Textures/maki/parking-garage.png +0 -0
  159. package/dist/resources/Assets/Textures/maki/parking.png +0 -0
  160. package/dist/resources/Assets/Textures/maki/pharmacy.png +0 -0
  161. package/dist/resources/Assets/Textures/maki/pitch.png +0 -0
  162. package/dist/resources/Assets/Textures/maki/place-of-worship.png +0 -0
  163. package/dist/resources/Assets/Textures/maki/playground.png +0 -0
  164. package/dist/resources/Assets/Textures/maki/police.png +0 -0
  165. package/dist/resources/Assets/Textures/maki/polling-place.png +0 -0
  166. package/dist/resources/Assets/Textures/maki/post.png +0 -0
  167. package/dist/resources/Assets/Textures/maki/prison.png +0 -0
  168. package/dist/resources/Assets/Textures/maki/rail-above.png +0 -0
  169. package/dist/resources/Assets/Textures/maki/rail-light.png +0 -0
  170. package/dist/resources/Assets/Textures/maki/rail-metro.png +0 -0
  171. package/dist/resources/Assets/Textures/maki/rail-underground.png +0 -0
  172. package/dist/resources/Assets/Textures/maki/rail.png +0 -0
  173. package/dist/resources/Assets/Textures/maki/religious-christian.png +0 -0
  174. package/dist/resources/Assets/Textures/maki/religious-jewish.png +0 -0
  175. package/dist/resources/Assets/Textures/maki/religious-muslim.png +0 -0
  176. package/dist/resources/Assets/Textures/maki/restaurant.png +0 -0
  177. package/dist/resources/Assets/Textures/maki/roadblock.png +0 -0
  178. package/dist/resources/Assets/Textures/maki/rocket.png +0 -0
  179. package/dist/resources/Assets/Textures/maki/school.png +0 -0
  180. package/dist/resources/Assets/Textures/maki/scooter.png +0 -0
  181. package/dist/resources/Assets/Textures/maki/shop.png +0 -0
  182. package/dist/resources/Assets/Textures/maki/skiing.png +0 -0
  183. package/dist/resources/Assets/Textures/maki/slaughterhouse.png +0 -0
  184. package/dist/resources/Assets/Textures/maki/soccer.png +0 -0
  185. package/dist/resources/Assets/Textures/maki/square-stroked.png +0 -0
  186. package/dist/resources/Assets/Textures/maki/square.png +0 -0
  187. package/dist/resources/Assets/Textures/maki/star-stroked.png +0 -0
  188. package/dist/resources/Assets/Textures/maki/star.png +0 -0
  189. package/dist/resources/Assets/Textures/maki/suitcase.png +0 -0
  190. package/dist/resources/Assets/Textures/maki/swimming.png +0 -0
  191. package/dist/resources/Assets/Textures/maki/telephone.png +0 -0
  192. package/dist/resources/Assets/Textures/maki/tennis.png +0 -0
  193. package/dist/resources/Assets/Textures/maki/theatre.png +0 -0
  194. package/dist/resources/Assets/Textures/maki/toilets.png +0 -0
  195. package/dist/resources/Assets/Textures/maki/town-hall.png +0 -0
  196. package/dist/resources/Assets/Textures/maki/town.png +0 -0
  197. package/dist/resources/Assets/Textures/maki/triangle-stroked.png +0 -0
  198. package/dist/resources/Assets/Textures/maki/triangle.png +0 -0
  199. package/dist/resources/Assets/Textures/maki/village.png +0 -0
  200. package/dist/resources/Assets/Textures/maki/warehouse.png +0 -0
  201. package/dist/resources/Assets/Textures/maki/waste-basket.png +0 -0
  202. package/dist/resources/Assets/Textures/maki/water.png +0 -0
  203. package/dist/resources/Assets/Textures/maki/wetland.png +0 -0
  204. package/dist/resources/Assets/Textures/maki/zoo.png +0 -0
  205. package/dist/resources/Assets/Textures/moonSmall.jpg +0 -0
  206. package/dist/resources/Assets/Textures/pin.svg +1 -0
  207. package/dist/resources/Assets/Textures/waterNormals.jpg +0 -0
  208. package/dist/resources/Assets/Textures/waterNormalsSmall.jpg +0 -0
  209. package/dist/resources/Assets/approximateTerrainHeights.json +1 -0
  210. package/dist/resources/ThirdParty/Workers/basis_transcoder.js +21 -0
  211. package/dist/resources/ThirdParty/Workers/package.json +1 -0
  212. package/dist/resources/ThirdParty/Workers/pako_deflate.min.js +2 -0
  213. package/dist/resources/ThirdParty/Workers/pako_inflate.min.js +2 -0
  214. package/dist/resources/ThirdParty/Workers/z-worker-pako.js +1 -0
  215. package/dist/resources/ThirdParty/basis_transcoder.wasm +0 -0
  216. package/dist/resources/ThirdParty/draco_decoder.wasm +0 -0
  217. package/dist/resources/ThirdParty/google-earth-dbroot-parser.js +8337 -0
  218. package/dist/resources/Workers/chunk-3PW6ZBN4.js +2977 -0
  219. package/dist/resources/Workers/chunk-434ZTTFX.js +73 -0
  220. package/dist/resources/Workers/chunk-4KP73B43.js +73 -0
  221. package/dist/resources/Workers/chunk-52VSIKEA.js +2716 -0
  222. package/dist/resources/Workers/chunk-5GDBZTHX.js +1075 -0
  223. package/dist/resources/Workers/chunk-5HLGKKG3.js +163 -0
  224. package/dist/resources/Workers/chunk-5IRLXUTA.js +1258 -0
  225. package/dist/resources/Workers/chunk-5SK36PU4.js +430 -0
  226. package/dist/resources/Workers/chunk-ARPTYYKS.js +258 -0
  227. package/dist/resources/Workers/chunk-ATB2I7OS.js +55 -0
  228. package/dist/resources/Workers/chunk-AXFRNOVC.js +368 -0
  229. package/dist/resources/Workers/chunk-BP467WX3.js +501 -0
  230. package/dist/resources/Workers/chunk-BUZDZBUH.js +1007 -0
  231. package/dist/resources/Workers/chunk-CDGHUKQ4.js +1477 -0
  232. package/dist/resources/Workers/chunk-CSIZ3BGT.js +398 -0
  233. package/dist/resources/Workers/chunk-CWJQGBWT.js +39 -0
  234. package/dist/resources/Workers/chunk-DMCSY5BU.js +100 -0
  235. package/dist/resources/Workers/chunk-DR5XZ6K5.js +390 -0
  236. package/dist/resources/Workers/chunk-FWGNCYP6.js +476 -0
  237. package/dist/resources/Workers/chunk-GF5TNNKP.js +353 -0
  238. package/dist/resources/Workers/chunk-GVL5I7TC.js +1052 -0
  239. package/dist/resources/Workers/chunk-H5DUXHCV.js +421 -0
  240. package/dist/resources/Workers/chunk-HFKSAB5K.js +511 -0
  241. package/dist/resources/Workers/chunk-HOT2SNXP.js +8639 -0
  242. package/dist/resources/Workers/chunk-HPH5HSFE.js +1860 -0
  243. package/dist/resources/Workers/chunk-HPP4JLNH.js +218 -0
  244. package/dist/resources/Workers/chunk-HUPNRBWW.js +196 -0
  245. package/dist/resources/Workers/chunk-JGG36SQV.js +102 -0
  246. package/dist/resources/Workers/chunk-LGJUI2CE.js +2361 -0
  247. package/dist/resources/Workers/chunk-LGL4P5KL.js +171 -0
  248. package/dist/resources/Workers/chunk-LX6XV4DK.js +138 -0
  249. package/dist/resources/Workers/chunk-MN34FIF5.js +37 -0
  250. package/dist/resources/Workers/chunk-MW3CJYLX.js +101 -0
  251. package/dist/resources/Workers/chunk-NE4JNU6H.js +767 -0
  252. package/dist/resources/Workers/chunk-O43GWBSF.js +55 -0
  253. package/dist/resources/Workers/chunk-PIXK6KHB.js +44 -0
  254. package/dist/resources/Workers/chunk-PZ2WJWUG.js +634 -0
  255. package/dist/resources/Workers/chunk-QRBRVGZC.js +305 -0
  256. package/dist/resources/Workers/chunk-QTZQZY2C.js +669 -0
  257. package/dist/resources/Workers/chunk-R3HUGXBH.js +302 -0
  258. package/dist/resources/Workers/chunk-R4OZKBXH.js +456 -0
  259. package/dist/resources/Workers/chunk-RH4N2ONY.js +236 -0
  260. package/dist/resources/Workers/chunk-RIDPF7PO.js +58 -0
  261. package/dist/resources/Workers/chunk-SNN7WOC2.js +781 -0
  262. package/dist/resources/Workers/chunk-SQVTYRZY.js +122 -0
  263. package/dist/resources/Workers/chunk-SV7DDPAC.js +629 -0
  264. package/dist/resources/Workers/chunk-TIXXVKUY.js +834 -0
  265. package/dist/resources/Workers/chunk-TMPVBFJQ.js +289 -0
  266. package/dist/resources/Workers/chunk-XUTVA4K5.js +684 -0
  267. package/dist/resources/Workers/chunk-Y4OJ4B23.js +59 -0
  268. package/dist/resources/Workers/chunk-YBKFS53K.js +77 -0
  269. package/dist/resources/Workers/chunk-Z2SIPUKB.js +117 -0
  270. package/dist/resources/Workers/chunk-Z4JUBRHP.js +157 -0
  271. package/dist/resources/Workers/chunk-ZQRZBHYI.js +138 -0
  272. package/dist/resources/Workers/combineGeometry.js +67 -0
  273. package/dist/resources/Workers/createBoxGeometry.js +57 -0
  274. package/dist/resources/Workers/createBoxOutlineGeometry.js +234 -0
  275. package/dist/resources/Workers/createCircleGeometry.js +196 -0
  276. package/dist/resources/Workers/createCircleOutlineGeometry.js +146 -0
  277. package/dist/resources/Workers/createCoplanarPolygonGeometry.js +505 -0
  278. package/dist/resources/Workers/createCoplanarPolygonOutlineGeometry.js +224 -0
  279. package/dist/resources/Workers/createCorridorGeometry.js +1263 -0
  280. package/dist/resources/Workers/createCorridorOutlineGeometry.js +568 -0
  281. package/dist/resources/Workers/createCylinderGeometry.js +59 -0
  282. package/dist/resources/Workers/createCylinderOutlineGeometry.js +230 -0
  283. package/dist/resources/Workers/createEllipseGeometry.js +70 -0
  284. package/dist/resources/Workers/createEllipseOutlineGeometry.js +63 -0
  285. package/dist/resources/Workers/createEllipsoidGeometry.js +58 -0
  286. package/dist/resources/Workers/createEllipsoidOutlineGeometry.js +60 -0
  287. package/dist/resources/Workers/createFrustumGeometry.js +57 -0
  288. package/dist/resources/Workers/createFrustumOutlineGeometry.js +234 -0
  289. package/dist/resources/Workers/createGeometry.js +150 -0
  290. package/dist/resources/Workers/createGroundPolylineGeometry.js +1607 -0
  291. package/dist/resources/Workers/createPlaneGeometry.js +223 -0
  292. package/dist/resources/Workers/createPlaneOutlineGeometry.js +123 -0
  293. package/dist/resources/Workers/createPolygonGeometry.js +1545 -0
  294. package/dist/resources/Workers/createPolygonOutlineGeometry.js +542 -0
  295. package/dist/resources/Workers/createPolylineGeometry.js +495 -0
  296. package/dist/resources/Workers/createPolylineVolumeGeometry.js +380 -0
  297. package/dist/resources/Workers/createPolylineVolumeOutlineGeometry.js +277 -0
  298. package/dist/resources/Workers/createRectangleGeometry.js +1273 -0
  299. package/dist/resources/Workers/createRectangleOutlineGeometry.js +478 -0
  300. package/dist/resources/Workers/createSimplePolylineGeometry.js +399 -0
  301. package/dist/resources/Workers/createSphereGeometry.js +117 -0
  302. package/dist/resources/Workers/createSphereOutlineGeometry.js +117 -0
  303. package/dist/resources/Workers/createTaskProcessorWorker.js +32 -0
  304. package/dist/resources/Workers/createVectorTileClampedPolylines.js +492 -0
  305. package/dist/resources/Workers/createVectorTileGeometries.js +386 -0
  306. package/dist/resources/Workers/createVectorTilePoints.js +112 -0
  307. package/dist/resources/Workers/createVectorTilePolygons.js +384 -0
  308. package/dist/resources/Workers/createVectorTilePolylines.js +262 -0
  309. package/dist/resources/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +568 -0
  310. package/dist/resources/Workers/createVerticesFromHeightmap.js +2277 -0
  311. package/dist/resources/Workers/createVerticesFromQuantizedTerrainMesh.js +745 -0
  312. package/dist/resources/Workers/createWallGeometry.js +489 -0
  313. package/dist/resources/Workers/createWallOutlineGeometry.js +337 -0
  314. package/dist/resources/Workers/decodeDraco.js +369 -0
  315. package/dist/resources/Workers/decodeGoogleEarthEnterprisePacket.js +2650 -0
  316. package/dist/resources/Workers/decodeI3S.js +835 -0
  317. package/dist/resources/Workers/transcodeKTX2.js +3425 -0
  318. package/dist/resources/Workers/transferTypedArrayTest.js +41 -0
  319. package/dist/resources/Workers/upsampleQuantizedTerrainMesh.js +818 -0
  320. package/package.json +81 -0
@@ -0,0 +1,835 @@
1
+ /**
2
+ * @license
3
+ * Cesium - https://github.com/CesiumGS/cesium
4
+ * Version 1.113
5
+ *
6
+ * Copyright 2011-2022 Cesium Contributors
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ *
20
+ * Columbus View (Pat. Pend.)
21
+ *
22
+ * Portions licensed separately.
23
+ * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
24
+ */
25
+
26
+ import {
27
+ require_draco_decoder_nodejs
28
+ } from "./chunk-HPH5HSFE.js";
29
+ import {
30
+ createTaskProcessorWorker_default
31
+ } from "./chunk-MW3CJYLX.js";
32
+ import {
33
+ WebMercatorProjection_default
34
+ } from "./chunk-Z2SIPUKB.js";
35
+ import {
36
+ Cartesian3_default,
37
+ Cartographic_default,
38
+ Ellipsoid_default,
39
+ Matrix3_default
40
+ } from "./chunk-LGJUI2CE.js";
41
+ import {
42
+ Math_default
43
+ } from "./chunk-BP467WX3.js";
44
+ import "./chunk-CWJQGBWT.js";
45
+ import "./chunk-5HLGKKG3.js";
46
+ import {
47
+ __toESM,
48
+ defined_default
49
+ } from "./chunk-YBKFS53K.js";
50
+
51
+ // packages/engine/Source/Workers/decodeI3S.js
52
+ var import_draco_decoder_nodejs = __toESM(require_draco_decoder_nodejs(), 1);
53
+ var draco;
54
+ function bilinearInterpolate(tx, ty, h00, h10, h01, h11) {
55
+ const a = h00 * (1 - tx) + h10 * tx;
56
+ const b = h01 * (1 - tx) + h11 * tx;
57
+ return a * (1 - ty) + b * ty;
58
+ }
59
+ function sampleMap(u, v, width, data) {
60
+ const address = u + v * width;
61
+ return data[address];
62
+ }
63
+ function sampleGeoid(sampleX, sampleY, geoidData) {
64
+ const extent = geoidData.nativeExtent;
65
+ let x = (sampleX - extent.west) / (extent.east - extent.west) * (geoidData.width - 1);
66
+ let y = (sampleY - extent.south) / (extent.north - extent.south) * (geoidData.height - 1);
67
+ const xi = Math.floor(x);
68
+ let yi = Math.floor(y);
69
+ x -= xi;
70
+ y -= yi;
71
+ const xNext = xi < geoidData.width ? xi + 1 : xi;
72
+ let yNext = yi < geoidData.height ? yi + 1 : yi;
73
+ yi = geoidData.height - 1 - yi;
74
+ yNext = geoidData.height - 1 - yNext;
75
+ const h00 = sampleMap(xi, yi, geoidData.width, geoidData.buffer);
76
+ const h10 = sampleMap(xNext, yi, geoidData.width, geoidData.buffer);
77
+ const h01 = sampleMap(xi, yNext, geoidData.width, geoidData.buffer);
78
+ const h11 = sampleMap(xNext, yNext, geoidData.width, geoidData.buffer);
79
+ let finalHeight = bilinearInterpolate(x, y, h00, h10, h01, h11);
80
+ finalHeight = finalHeight * geoidData.scale + geoidData.offset;
81
+ return finalHeight;
82
+ }
83
+ function sampleGeoidFromList(lon, lat, geoidDataList) {
84
+ for (let i = 0; i < geoidDataList.length; i++) {
85
+ const localExtent = geoidDataList[i].nativeExtent;
86
+ let localPt = new Cartesian3_default();
87
+ if (geoidDataList[i].projectionType === "WebMercator") {
88
+ const radii = geoidDataList[i].projection._ellipsoid._radii;
89
+ const webMercatorProj = new WebMercatorProjection_default(
90
+ new Ellipsoid_default(radii.x, radii.y, radii.z)
91
+ );
92
+ localPt = webMercatorProj.project(new Cartographic_default(lon, lat, 0));
93
+ } else {
94
+ localPt.x = lon;
95
+ localPt.y = lat;
96
+ }
97
+ if (localPt.x > localExtent.west && localPt.x < localExtent.east && localPt.y > localExtent.south && localPt.y < localExtent.north) {
98
+ return sampleGeoid(localPt.x, localPt.y, geoidDataList[i]);
99
+ }
100
+ }
101
+ return 0;
102
+ }
103
+ function orthometricToEllipsoidal(vertexCount, position, scale_x, scale_y, center, geoidDataList, fast) {
104
+ if (fast) {
105
+ return;
106
+ }
107
+ const centerHeight = sampleGeoidFromList(
108
+ center.longitude,
109
+ center.latitude,
110
+ geoidDataList
111
+ );
112
+ for (let i = 0; i < vertexCount; ++i) {
113
+ const height = sampleGeoidFromList(
114
+ center.longitude + Math_default.toRadians(scale_x * position[i * 3]),
115
+ center.latitude + Math_default.toRadians(scale_y * position[i * 3 + 1]),
116
+ geoidDataList
117
+ );
118
+ position[i * 3 + 2] += height - centerHeight;
119
+ }
120
+ }
121
+ function transformToLocal(vertexCount, positions, normals, cartographicCenter, cartesianCenter, parentRotation, ellipsoidRadiiSquare, scale_x, scale_y) {
122
+ if (vertexCount === 0 || !defined_default(positions) || positions.length === 0) {
123
+ return;
124
+ }
125
+ const ellipsoid = new Ellipsoid_default(
126
+ Math.sqrt(ellipsoidRadiiSquare.x),
127
+ Math.sqrt(ellipsoidRadiiSquare.y),
128
+ Math.sqrt(ellipsoidRadiiSquare.z)
129
+ );
130
+ for (let i = 0; i < vertexCount; ++i) {
131
+ const indexOffset = i * 3;
132
+ const indexOffset1 = indexOffset + 1;
133
+ const indexOffset2 = indexOffset + 2;
134
+ const cartographic = new Cartographic_default();
135
+ cartographic.longitude = cartographicCenter.longitude + Math_default.toRadians(scale_x * positions[indexOffset]);
136
+ cartographic.latitude = cartographicCenter.latitude + Math_default.toRadians(scale_y * positions[indexOffset1]);
137
+ cartographic.height = cartographicCenter.height + positions[indexOffset2];
138
+ const position = {};
139
+ ellipsoid.cartographicToCartesian(cartographic, position);
140
+ position.x -= cartesianCenter.x;
141
+ position.y -= cartesianCenter.y;
142
+ position.z -= cartesianCenter.z;
143
+ const rotatedPosition = {};
144
+ Matrix3_default.multiplyByVector(parentRotation, position, rotatedPosition);
145
+ positions[indexOffset] = rotatedPosition.x;
146
+ positions[indexOffset1] = rotatedPosition.y;
147
+ positions[indexOffset2] = rotatedPosition.z;
148
+ if (defined_default(normals)) {
149
+ const normal = new Cartesian3_default(
150
+ normals[indexOffset],
151
+ normals[indexOffset1],
152
+ normals[indexOffset2]
153
+ );
154
+ const rotatedNormal = {};
155
+ Matrix3_default.multiplyByVector(parentRotation, normal, rotatedNormal);
156
+ normals[indexOffset] = rotatedNormal.x;
157
+ normals[indexOffset1] = rotatedNormal.y;
158
+ normals[indexOffset2] = rotatedNormal.z;
159
+ }
160
+ }
161
+ }
162
+ function cropUVs(vertexCount, uv0s, uvRegions) {
163
+ for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
164
+ const minU = uvRegions[vertexIndex * 4] / 65535;
165
+ const minV = uvRegions[vertexIndex * 4 + 1] / 65535;
166
+ const scaleU = (uvRegions[vertexIndex * 4 + 2] - uvRegions[vertexIndex * 4]) / 65535;
167
+ const scaleV = (uvRegions[vertexIndex * 4 + 3] - uvRegions[vertexIndex * 4 + 1]) / 65535;
168
+ uv0s[vertexIndex * 2] *= scaleU;
169
+ uv0s[vertexIndex * 2] += minU;
170
+ uv0s[vertexIndex * 2 + 1] *= scaleV;
171
+ uv0s[vertexIndex * 2 + 1] += minV;
172
+ }
173
+ }
174
+ function generateGltfBuffer(vertexCount, indices, positions, normals, uv0s, colors) {
175
+ if (vertexCount === 0 || !defined_default(positions) || positions.length === 0) {
176
+ return {
177
+ buffers: [],
178
+ bufferViews: [],
179
+ accessors: [],
180
+ meshes: [],
181
+ nodes: [],
182
+ nodesInScene: []
183
+ };
184
+ }
185
+ const buffers = [];
186
+ const bufferViews = [];
187
+ const accessors = [];
188
+ const meshes = [];
189
+ const nodes = [];
190
+ const nodesInScene = [];
191
+ if (defined_default(indices)) {
192
+ vertexCount = indices.length;
193
+ }
194
+ const indexArray = new Uint32Array(vertexCount);
195
+ if (defined_default(indices)) {
196
+ for (let vertexIndex = 0; vertexIndex < vertexCount; ++vertexIndex) {
197
+ indexArray[vertexIndex] = indices[vertexIndex];
198
+ }
199
+ } else {
200
+ for (let newVertexIndex = 0; newVertexIndex < vertexCount; ++newVertexIndex) {
201
+ indexArray[newVertexIndex] = newVertexIndex;
202
+ }
203
+ }
204
+ const indicesBlob = new Blob([indexArray], { type: "application/binary" });
205
+ const indicesURL = URL.createObjectURL(indicesBlob);
206
+ const endIndex = vertexCount;
207
+ const meshPositions = positions.subarray(0, endIndex * 3);
208
+ const positionsBlob = new Blob([meshPositions], {
209
+ type: "application/binary"
210
+ });
211
+ const positionsURL = URL.createObjectURL(positionsBlob);
212
+ let minX = Number.POSITIVE_INFINITY;
213
+ let maxX = Number.NEGATIVE_INFINITY;
214
+ let minY = Number.POSITIVE_INFINITY;
215
+ let maxY = Number.NEGATIVE_INFINITY;
216
+ let minZ = Number.POSITIVE_INFINITY;
217
+ let maxZ = Number.NEGATIVE_INFINITY;
218
+ for (let i = 0; i < meshPositions.length / 3; i++) {
219
+ minX = Math.min(minX, meshPositions[i * 3 + 0]);
220
+ maxX = Math.max(maxX, meshPositions[i * 3 + 0]);
221
+ minY = Math.min(minY, meshPositions[i * 3 + 1]);
222
+ maxY = Math.max(maxY, meshPositions[i * 3 + 1]);
223
+ minZ = Math.min(minZ, meshPositions[i * 3 + 2]);
224
+ maxZ = Math.max(maxZ, meshPositions[i * 3 + 2]);
225
+ }
226
+ const meshNormals = normals ? normals.subarray(0, endIndex * 3) : void 0;
227
+ let normalsURL;
228
+ if (defined_default(meshNormals)) {
229
+ const normalsBlob = new Blob([meshNormals], {
230
+ type: "application/binary"
231
+ });
232
+ normalsURL = URL.createObjectURL(normalsBlob);
233
+ }
234
+ const meshUv0s = uv0s ? uv0s.subarray(0, endIndex * 2) : void 0;
235
+ let uv0URL;
236
+ if (defined_default(meshUv0s)) {
237
+ const uv0Blob = new Blob([meshUv0s], { type: "application/binary" });
238
+ uv0URL = URL.createObjectURL(uv0Blob);
239
+ }
240
+ const meshColorsInBytes = defined_default(colors) ? colors.subarray(0, endIndex * 4) : void 0;
241
+ let colorsURL;
242
+ if (defined_default(meshColorsInBytes)) {
243
+ const colorsBlob = new Blob([meshColorsInBytes], {
244
+ type: "application/binary"
245
+ });
246
+ colorsURL = URL.createObjectURL(colorsBlob);
247
+ }
248
+ const posIndex = 0;
249
+ let normalIndex = 0;
250
+ let uv0Index = 0;
251
+ let colorIndex = 0;
252
+ let indicesIndex = 0;
253
+ let currentIndex = posIndex;
254
+ const attributes = {};
255
+ attributes.POSITION = posIndex;
256
+ buffers.push({
257
+ uri: positionsURL,
258
+ byteLength: meshPositions.byteLength
259
+ });
260
+ bufferViews.push({
261
+ buffer: posIndex,
262
+ byteOffset: 0,
263
+ byteLength: meshPositions.byteLength,
264
+ target: 34962
265
+ });
266
+ accessors.push({
267
+ bufferView: posIndex,
268
+ byteOffset: 0,
269
+ componentType: 5126,
270
+ count: vertexCount,
271
+ type: "VEC3",
272
+ max: [minX, minY, minZ],
273
+ min: [maxX, maxY, maxZ]
274
+ });
275
+ if (defined_default(normalsURL)) {
276
+ ++currentIndex;
277
+ normalIndex = currentIndex;
278
+ attributes.NORMAL = normalIndex;
279
+ buffers.push({
280
+ uri: normalsURL,
281
+ byteLength: meshNormals.byteLength
282
+ });
283
+ bufferViews.push({
284
+ buffer: normalIndex,
285
+ byteOffset: 0,
286
+ byteLength: meshNormals.byteLength,
287
+ target: 34962
288
+ });
289
+ accessors.push({
290
+ bufferView: normalIndex,
291
+ byteOffset: 0,
292
+ componentType: 5126,
293
+ count: vertexCount,
294
+ type: "VEC3"
295
+ });
296
+ }
297
+ if (defined_default(uv0URL)) {
298
+ ++currentIndex;
299
+ uv0Index = currentIndex;
300
+ attributes.TEXCOORD_0 = uv0Index;
301
+ buffers.push({
302
+ uri: uv0URL,
303
+ byteLength: meshUv0s.byteLength
304
+ });
305
+ bufferViews.push({
306
+ buffer: uv0Index,
307
+ byteOffset: 0,
308
+ byteLength: meshUv0s.byteLength,
309
+ target: 34962
310
+ });
311
+ accessors.push({
312
+ bufferView: uv0Index,
313
+ byteOffset: 0,
314
+ componentType: 5126,
315
+ count: vertexCount,
316
+ type: "VEC2"
317
+ });
318
+ }
319
+ if (defined_default(colorsURL)) {
320
+ ++currentIndex;
321
+ colorIndex = currentIndex;
322
+ attributes.COLOR_0 = colorIndex;
323
+ buffers.push({
324
+ uri: colorsURL,
325
+ byteLength: meshColorsInBytes.byteLength
326
+ });
327
+ bufferViews.push({
328
+ buffer: colorIndex,
329
+ byteOffset: 0,
330
+ byteLength: meshColorsInBytes.byteLength,
331
+ target: 34962
332
+ });
333
+ accessors.push({
334
+ bufferView: colorIndex,
335
+ byteOffset: 0,
336
+ componentType: 5121,
337
+ normalized: true,
338
+ count: vertexCount,
339
+ type: "VEC4"
340
+ });
341
+ }
342
+ ++currentIndex;
343
+ indicesIndex = currentIndex;
344
+ buffers.push({
345
+ uri: indicesURL,
346
+ byteLength: indexArray.byteLength
347
+ });
348
+ bufferViews.push({
349
+ buffer: indicesIndex,
350
+ byteOffset: 0,
351
+ byteLength: indexArray.byteLength,
352
+ target: 34963
353
+ });
354
+ accessors.push({
355
+ bufferView: indicesIndex,
356
+ byteOffset: 0,
357
+ componentType: 5125,
358
+ count: vertexCount,
359
+ type: "SCALAR"
360
+ });
361
+ meshes.push({
362
+ primitives: [
363
+ {
364
+ attributes,
365
+ indices: indicesIndex,
366
+ material: 0
367
+ }
368
+ ]
369
+ });
370
+ nodesInScene.push(0);
371
+ nodes.push({ mesh: 0 });
372
+ return {
373
+ buffers,
374
+ bufferViews,
375
+ accessors,
376
+ meshes,
377
+ nodes,
378
+ nodesInScene
379
+ };
380
+ }
381
+ function decode(data, schema, bufferInfo, featureData) {
382
+ const magicNumber = new Uint8Array(data, 0, 5);
383
+ if (magicNumber[0] === "D".charCodeAt() && magicNumber[1] === "R".charCodeAt() && magicNumber[2] === "A".charCodeAt() && magicNumber[3] === "C".charCodeAt() && magicNumber[4] === "O".charCodeAt()) {
384
+ return decodeDracoEncodedGeometry(data, bufferInfo);
385
+ }
386
+ return decodeBinaryGeometry(data, schema, bufferInfo, featureData);
387
+ }
388
+ function decodeDracoEncodedGeometry(data) {
389
+ const dracoDecoderModule = draco;
390
+ const buffer = new dracoDecoderModule.DecoderBuffer();
391
+ const byteArray = new Uint8Array(data);
392
+ buffer.Init(byteArray, byteArray.length);
393
+ const dracoDecoder = new dracoDecoderModule.Decoder();
394
+ const geometryType = dracoDecoder.GetEncodedGeometryType(buffer);
395
+ const metadataQuerier = new dracoDecoderModule.MetadataQuerier();
396
+ let dracoGeometry;
397
+ let status;
398
+ if (geometryType === dracoDecoderModule.TRIANGULAR_MESH) {
399
+ dracoGeometry = new dracoDecoderModule.Mesh();
400
+ status = dracoDecoder.DecodeBufferToMesh(buffer, dracoGeometry);
401
+ }
402
+ const decodedGeometry = {
403
+ vertexCount: [0],
404
+ featureCount: 0
405
+ };
406
+ if (defined_default(status) && status.ok() && dracoGeometry.ptr !== 0) {
407
+ const faceCount = dracoGeometry.num_faces();
408
+ const attributesCount = dracoGeometry.num_attributes();
409
+ const vertexCount = dracoGeometry.num_points();
410
+ decodedGeometry.indices = new Uint32Array(faceCount * 3);
411
+ const faces = decodedGeometry.indices;
412
+ decodedGeometry.vertexCount[0] = vertexCount;
413
+ decodedGeometry.scale_x = 1;
414
+ decodedGeometry.scale_y = 1;
415
+ const face = new dracoDecoderModule.DracoInt32Array(3);
416
+ for (let faceIndex = 0; faceIndex < faceCount; ++faceIndex) {
417
+ dracoDecoder.GetFaceFromMesh(dracoGeometry, faceIndex, face);
418
+ faces[faceIndex * 3] = face.GetValue(0);
419
+ faces[faceIndex * 3 + 1] = face.GetValue(1);
420
+ faces[faceIndex * 3 + 2] = face.GetValue(2);
421
+ }
422
+ dracoDecoderModule.destroy(face);
423
+ for (let attrIndex = 0; attrIndex < attributesCount; ++attrIndex) {
424
+ const dracoAttribute = dracoDecoder.GetAttribute(
425
+ dracoGeometry,
426
+ attrIndex
427
+ );
428
+ const attributeData = decodeDracoAttribute(
429
+ dracoDecoderModule,
430
+ dracoDecoder,
431
+ dracoGeometry,
432
+ dracoAttribute,
433
+ vertexCount
434
+ );
435
+ const dracoAttributeType = dracoAttribute.attribute_type();
436
+ let attributei3sName = "unknown";
437
+ if (dracoAttributeType === dracoDecoderModule.POSITION) {
438
+ attributei3sName = "positions";
439
+ } else if (dracoAttributeType === dracoDecoderModule.NORMAL) {
440
+ attributei3sName = "normals";
441
+ } else if (dracoAttributeType === dracoDecoderModule.COLOR) {
442
+ attributei3sName = "colors";
443
+ } else if (dracoAttributeType === dracoDecoderModule.TEX_COORD) {
444
+ attributei3sName = "uv0s";
445
+ }
446
+ const metadata = dracoDecoder.GetAttributeMetadata(
447
+ dracoGeometry,
448
+ attrIndex
449
+ );
450
+ if (metadata.ptr !== 0) {
451
+ const numEntries = metadataQuerier.NumEntries(metadata);
452
+ for (let entry = 0; entry < numEntries; ++entry) {
453
+ const entryName = metadataQuerier.GetEntryName(metadata, entry);
454
+ if (entryName === "i3s-scale_x") {
455
+ decodedGeometry.scale_x = metadataQuerier.GetDoubleEntry(
456
+ metadata,
457
+ "i3s-scale_x"
458
+ );
459
+ } else if (entryName === "i3s-scale_y") {
460
+ decodedGeometry.scale_y = metadataQuerier.GetDoubleEntry(
461
+ metadata,
462
+ "i3s-scale_y"
463
+ );
464
+ } else if (entryName === "i3s-attribute-type") {
465
+ attributei3sName = metadataQuerier.GetStringEntry(
466
+ metadata,
467
+ "i3s-attribute-type"
468
+ );
469
+ }
470
+ }
471
+ }
472
+ if (defined_default(decodedGeometry[attributei3sName])) {
473
+ console.log("Attribute already exists", attributei3sName);
474
+ }
475
+ decodedGeometry[attributei3sName] = attributeData;
476
+ if (attributei3sName === "feature-index") {
477
+ decodedGeometry.featureCount++;
478
+ }
479
+ }
480
+ dracoDecoderModule.destroy(dracoGeometry);
481
+ }
482
+ dracoDecoderModule.destroy(metadataQuerier);
483
+ dracoDecoderModule.destroy(dracoDecoder);
484
+ return decodedGeometry;
485
+ }
486
+ function decodeDracoAttribute(dracoDecoderModule, dracoDecoder, dracoGeometry, dracoAttribute, vertexCount) {
487
+ const bufferSize = dracoAttribute.num_components() * vertexCount;
488
+ let dracoAttributeData;
489
+ const handlers = [
490
+ function() {
491
+ },
492
+ // DT_INVALID - 0
493
+ function() {
494
+ dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
495
+ const success = dracoDecoder.GetAttributeInt8ForAllPoints(
496
+ dracoGeometry,
497
+ dracoAttribute,
498
+ dracoAttributeData
499
+ );
500
+ if (!success) {
501
+ console.error("Bad stream");
502
+ }
503
+ const attributeData2 = new Int8Array(bufferSize);
504
+ for (let i = 0; i < bufferSize; ++i) {
505
+ attributeData2[i] = dracoAttributeData.GetValue(i);
506
+ }
507
+ return attributeData2;
508
+ },
509
+ function() {
510
+ dracoAttributeData = new dracoDecoderModule.DracoInt8Array(bufferSize);
511
+ const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
512
+ dracoGeometry,
513
+ dracoAttribute,
514
+ dracoAttributeData
515
+ );
516
+ if (!success) {
517
+ console.error("Bad stream");
518
+ }
519
+ const attributeData2 = new Uint8Array(bufferSize);
520
+ for (let i = 0; i < bufferSize; ++i) {
521
+ attributeData2[i] = dracoAttributeData.GetValue(i);
522
+ }
523
+ return attributeData2;
524
+ },
525
+ function() {
526
+ dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
527
+ const success = dracoDecoder.GetAttributeInt16ForAllPoints(
528
+ dracoGeometry,
529
+ dracoAttribute,
530
+ dracoAttributeData
531
+ );
532
+ if (!success) {
533
+ console.error("Bad stream");
534
+ }
535
+ const attributeData2 = new Int16Array(bufferSize);
536
+ for (let i = 0; i < bufferSize; ++i) {
537
+ attributeData2[i] = dracoAttributeData.GetValue(i);
538
+ }
539
+ return attributeData2;
540
+ },
541
+ function() {
542
+ dracoAttributeData = new dracoDecoderModule.DracoInt16Array(bufferSize);
543
+ const success = dracoDecoder.GetAttributeUInt16ForAllPoints(
544
+ dracoGeometry,
545
+ dracoAttribute,
546
+ dracoAttributeData
547
+ );
548
+ if (!success) {
549
+ console.error("Bad stream");
550
+ }
551
+ const attributeData2 = new Uint16Array(bufferSize);
552
+ for (let i = 0; i < bufferSize; ++i) {
553
+ attributeData2[i] = dracoAttributeData.GetValue(i);
554
+ }
555
+ return attributeData2;
556
+ },
557
+ function() {
558
+ dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
559
+ const success = dracoDecoder.GetAttributeInt32ForAllPoints(
560
+ dracoGeometry,
561
+ dracoAttribute,
562
+ dracoAttributeData
563
+ );
564
+ if (!success) {
565
+ console.error("Bad stream");
566
+ }
567
+ const attributeData2 = new Int32Array(bufferSize);
568
+ for (let i = 0; i < bufferSize; ++i) {
569
+ attributeData2[i] = dracoAttributeData.GetValue(i);
570
+ }
571
+ return attributeData2;
572
+ },
573
+ function() {
574
+ dracoAttributeData = new dracoDecoderModule.DracoInt32Array(bufferSize);
575
+ const success = dracoDecoder.GetAttributeUInt32ForAllPoints(
576
+ dracoGeometry,
577
+ dracoAttribute,
578
+ dracoAttributeData
579
+ );
580
+ if (!success) {
581
+ console.error("Bad stream");
582
+ }
583
+ const attributeData2 = new Uint32Array(bufferSize);
584
+ for (let i = 0; i < bufferSize; ++i) {
585
+ attributeData2[i] = dracoAttributeData.GetValue(i);
586
+ }
587
+ return attributeData2;
588
+ },
589
+ function() {
590
+ },
591
+ function() {
592
+ },
593
+ function() {
594
+ dracoAttributeData = new dracoDecoderModule.DracoFloat32Array(bufferSize);
595
+ const success = dracoDecoder.GetAttributeFloatForAllPoints(
596
+ dracoGeometry,
597
+ dracoAttribute,
598
+ dracoAttributeData
599
+ );
600
+ if (!success) {
601
+ console.error("Bad stream");
602
+ }
603
+ const attributeData2 = new Float32Array(bufferSize);
604
+ for (let i = 0; i < bufferSize; ++i) {
605
+ attributeData2[i] = dracoAttributeData.GetValue(i);
606
+ }
607
+ return attributeData2;
608
+ },
609
+ function() {
610
+ },
611
+ function() {
612
+ dracoAttributeData = new dracoDecoderModule.DracoUInt8Array(bufferSize);
613
+ const success = dracoDecoder.GetAttributeUInt8ForAllPoints(
614
+ dracoGeometry,
615
+ dracoAttribute,
616
+ dracoAttributeData
617
+ );
618
+ if (!success) {
619
+ console.error("Bad stream");
620
+ }
621
+ const attributeData2 = new Uint8Array(bufferSize);
622
+ for (let i = 0; i < bufferSize; ++i) {
623
+ attributeData2[i] = dracoAttributeData.GetValue(i);
624
+ }
625
+ return attributeData2;
626
+ }
627
+ ];
628
+ const attributeData = handlers[dracoAttribute.data_type()]();
629
+ if (defined_default(dracoAttributeData)) {
630
+ dracoDecoderModule.destroy(dracoAttributeData);
631
+ }
632
+ return attributeData;
633
+ }
634
+ var binaryAttributeDecoders = {
635
+ position: function(decodedGeometry, data, offset) {
636
+ const count = decodedGeometry.vertexCount * 3;
637
+ decodedGeometry.positions = new Float32Array(data, offset, count);
638
+ offset += count * 4;
639
+ return offset;
640
+ },
641
+ normal: function(decodedGeometry, data, offset) {
642
+ const count = decodedGeometry.vertexCount * 3;
643
+ decodedGeometry.normals = new Float32Array(data, offset, count);
644
+ offset += count * 4;
645
+ return offset;
646
+ },
647
+ uv0: function(decodedGeometry, data, offset) {
648
+ const count = decodedGeometry.vertexCount * 2;
649
+ decodedGeometry.uv0s = new Float32Array(data, offset, count);
650
+ offset += count * 4;
651
+ return offset;
652
+ },
653
+ color: function(decodedGeometry, data, offset) {
654
+ const count = decodedGeometry.vertexCount * 4;
655
+ decodedGeometry.colors = new Uint8Array(data, offset, count);
656
+ offset += count;
657
+ return offset;
658
+ },
659
+ featureId: function(decodedGeometry, data, offset) {
660
+ const count = decodedGeometry.featureCount;
661
+ offset += count * 8;
662
+ return offset;
663
+ },
664
+ id: function(decodedGeometry, data, offset) {
665
+ const count = decodedGeometry.featureCount;
666
+ offset += count * 8;
667
+ return offset;
668
+ },
669
+ faceRange: function(decodedGeometry, data, offset) {
670
+ const count = decodedGeometry.featureCount * 2;
671
+ decodedGeometry.faceRange = new Uint32Array(data, offset, count);
672
+ offset += count * 4;
673
+ return offset;
674
+ },
675
+ uvRegion: function(decodedGeometry, data, offset) {
676
+ const count = decodedGeometry.vertexCount * 4;
677
+ decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
678
+ offset += count * 2;
679
+ return offset;
680
+ },
681
+ region: function(decodedGeometry, data, offset) {
682
+ const count = decodedGeometry.vertexCount * 4;
683
+ decodedGeometry["uv-region"] = new Uint16Array(data, offset, count);
684
+ offset += count * 2;
685
+ return offset;
686
+ }
687
+ };
688
+ function decodeBinaryGeometry(data, schema, bufferInfo, featureData) {
689
+ const decodedGeometry = {
690
+ vertexCount: 0
691
+ };
692
+ const dataView = new DataView(data);
693
+ try {
694
+ let offset = 0;
695
+ decodedGeometry.vertexCount = dataView.getUint32(offset, 1);
696
+ offset += 4;
697
+ decodedGeometry.featureCount = dataView.getUint32(offset, 1);
698
+ offset += 4;
699
+ if (defined_default(bufferInfo)) {
700
+ for (let attrIndex = 0; attrIndex < bufferInfo.attributes.length; attrIndex++) {
701
+ if (defined_default(binaryAttributeDecoders[bufferInfo.attributes[attrIndex]])) {
702
+ offset = binaryAttributeDecoders[bufferInfo.attributes[attrIndex]](
703
+ decodedGeometry,
704
+ data,
705
+ offset
706
+ );
707
+ } else {
708
+ console.error(
709
+ "Unknown decoder for",
710
+ bufferInfo.attributes[attrIndex]
711
+ );
712
+ }
713
+ }
714
+ } else {
715
+ let ordering = schema.ordering;
716
+ let featureAttributeOrder = schema.featureAttributeOrder;
717
+ if (defined_default(featureData) && defined_default(featureData.geometryData) && defined_default(featureData.geometryData[0]) && defined_default(featureData.geometryData[0].params)) {
718
+ ordering = Object.keys(
719
+ featureData.geometryData[0].params.vertexAttributes
720
+ );
721
+ featureAttributeOrder = Object.keys(
722
+ featureData.geometryData[0].params.featureAttributes
723
+ );
724
+ }
725
+ for (let i = 0; i < ordering.length; i++) {
726
+ const decoder = binaryAttributeDecoders[ordering[i]];
727
+ offset = decoder(decodedGeometry, data, offset);
728
+ }
729
+ for (let j = 0; j < featureAttributeOrder.length; j++) {
730
+ const curDecoder = binaryAttributeDecoders[featureAttributeOrder[j]];
731
+ offset = curDecoder(decodedGeometry, data, offset);
732
+ }
733
+ }
734
+ } catch (e) {
735
+ console.error(e);
736
+ }
737
+ decodedGeometry.scale_x = 1;
738
+ decodedGeometry.scale_y = 1;
739
+ return decodedGeometry;
740
+ }
741
+ function decodeAndCreateGltf(parameters) {
742
+ const geometryData = decode(
743
+ parameters.binaryData,
744
+ parameters.schema,
745
+ parameters.bufferInfo,
746
+ parameters.featureData
747
+ );
748
+ if (defined_default(parameters.geoidDataList) && parameters.geoidDataList.length > 0) {
749
+ orthometricToEllipsoidal(
750
+ geometryData.vertexCount,
751
+ geometryData.positions,
752
+ geometryData.scale_x,
753
+ geometryData.scale_y,
754
+ parameters.cartographicCenter,
755
+ parameters.geoidDataList,
756
+ false
757
+ );
758
+ }
759
+ transformToLocal(
760
+ geometryData.vertexCount,
761
+ geometryData.positions,
762
+ geometryData.normals,
763
+ parameters.cartographicCenter,
764
+ parameters.cartesianCenter,
765
+ parameters.parentRotation,
766
+ parameters.ellipsoidRadiiSquare,
767
+ geometryData.scale_x,
768
+ geometryData.scale_y
769
+ );
770
+ if (defined_default(geometryData.uv0s) && defined_default(geometryData["uv-region"])) {
771
+ cropUVs(
772
+ geometryData.vertexCount,
773
+ geometryData.uv0s,
774
+ geometryData["uv-region"]
775
+ );
776
+ }
777
+ const meshData = generateGltfBuffer(
778
+ geometryData.vertexCount,
779
+ geometryData.indices,
780
+ geometryData.positions,
781
+ geometryData.normals,
782
+ geometryData.uv0s,
783
+ geometryData.colors
784
+ );
785
+ const customAttributes = {};
786
+ if (defined_default(geometryData["feature-index"])) {
787
+ customAttributes.positions = geometryData.positions;
788
+ customAttributes.indices = geometryData.indices;
789
+ customAttributes.featureIndex = geometryData["feature-index"];
790
+ customAttributes.cartesianCenter = parameters.cartesianCenter;
791
+ customAttributes.parentRotation = parameters.parentRotation;
792
+ } else if (defined_default(geometryData["faceRange"])) {
793
+ customAttributes.positions = geometryData.positions;
794
+ customAttributes.indices = geometryData.indices;
795
+ customAttributes.sourceURL = parameters.url;
796
+ customAttributes.cartesianCenter = parameters.cartesianCenter;
797
+ customAttributes.parentRotation = parameters.parentRotation;
798
+ customAttributes.featureIndex = new Array(geometryData.positions.length);
799
+ for (let range = 0; range < geometryData["faceRange"].length - 1; range += 2) {
800
+ const curIndex = range / 2;
801
+ const rangeStart = geometryData["faceRange"][range];
802
+ const rangeEnd = geometryData["faceRange"][range + 1];
803
+ for (let i = rangeStart; i <= rangeEnd; i++) {
804
+ customAttributes.featureIndex[i * 3] = curIndex;
805
+ customAttributes.featureIndex[i * 3 + 1] = curIndex;
806
+ customAttributes.featureIndex[i * 3 + 2] = curIndex;
807
+ }
808
+ }
809
+ }
810
+ meshData._customAttributes = customAttributes;
811
+ const results = {
812
+ meshData
813
+ };
814
+ return results;
815
+ }
816
+ async function initWorker(parameters, transferableObjects) {
817
+ const wasmConfig = parameters.webAssemblyConfig;
818
+ if (defined_default(wasmConfig) && defined_default(wasmConfig.wasmBinaryFile)) {
819
+ draco = await (0, import_draco_decoder_nodejs.default)(wasmConfig);
820
+ } else {
821
+ draco = await (0, import_draco_decoder_nodejs.default)();
822
+ }
823
+ return true;
824
+ }
825
+ function decodeI3S(parameters, transferableObjects) {
826
+ const wasmConfig = parameters.webAssemblyConfig;
827
+ if (defined_default(wasmConfig)) {
828
+ return initWorker(parameters, transferableObjects);
829
+ }
830
+ return decodeAndCreateGltf(parameters, transferableObjects);
831
+ }
832
+ var decodeI3S_default = createTaskProcessorWorker_default(decodeI3S);
833
+ export {
834
+ decodeI3S_default as default
835
+ };