@reearth/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. package/README.md +18 -0
  2. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  3. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  4. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  5. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  6. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  7. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  8. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  9. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  10. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  11. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  12. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  13. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  14. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  15. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  16. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  17. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  18. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  19. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  20. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  21. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  22. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  23. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  24. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  25. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  26. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  27. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  28. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  29. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  30. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  31. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  32. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  33. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  34. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  35. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  36. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  37. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  38. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  39. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  40. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  41. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  42. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  43. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  44. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  45. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  46. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  47. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  48. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  49. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  50. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  51. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  52. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  53. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  54. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  55. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  56. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  57. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  58. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  59. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  60. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  61. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  62. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  63. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  64. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  65. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  66. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  67. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  68. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  69. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  70. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  71. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  72. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  73. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  74. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  75. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  76. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  77. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  78. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
  79. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  80. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  81. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  82. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  83. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  84. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  85. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  86. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  87. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  88. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  89. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  90. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  91. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  92. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  93. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  94. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  95. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  96. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  97. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  98. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  99. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  100. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  101. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  102. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  103. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  104. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  105. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  106. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  107. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  108. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  109. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  110. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  111. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  112. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  113. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  114. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  115. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  116. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  117. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  118. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  119. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  120. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  121. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  122. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  123. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  124. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  125. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  126. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  127. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  128. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  129. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  130. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  131. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  132. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  133. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  134. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  135. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  136. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  137. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  138. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  139. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  140. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  141. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  142. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  143. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  144. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  145. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  146. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  147. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  148. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  149. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  150. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  151. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  152. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  153. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  154. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  155. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  156. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  157. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  158. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  159. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  160. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  161. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  162. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  163. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  164. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  165. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  166. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  167. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  168. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  169. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  170. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  171. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  172. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  173. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  174. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  175. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  176. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  177. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  178. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  179. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  180. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  181. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  182. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  183. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  184. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  185. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  186. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  187. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  188. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  189. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  190. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  191. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  192. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  193. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  194. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  195. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  196. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  197. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  198. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  199. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  200. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  201. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  202. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  203. package/dist/cesium/Assets/Textures/pin.svg +1 -0
  204. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  205. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  206. package/dist/cesium/Assets/approximateTerrainHeights.json +1 -0
  207. package/dist/cesium/ThirdParty/Workers/package.json +1 -0
  208. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +1 -0
  209. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +1 -0
  210. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +1 -0
  211. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  212. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  213. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +1 -0
  214. package/dist/cesium/Widgets/Animation/Animation.css +127 -0
  215. package/dist/cesium/Widgets/Animation/lighter.css +70 -0
  216. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +108 -0
  217. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +22 -0
  218. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +102 -0
  219. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +113 -0
  220. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +124 -0
  221. package/dist/cesium/Widgets/CesiumWidget/lighter.css +14 -0
  222. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +8 -0
  223. package/dist/cesium/Widgets/Geocoder/Geocoder.css +70 -0
  224. package/dist/cesium/Widgets/Geocoder/lighter.css +17 -0
  225. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +27 -0
  226. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  227. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  228. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  229. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  230. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  231. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  232. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  233. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  234. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  235. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  236. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  237. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  238. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  239. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  240. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  241. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  242. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  243. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  244. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  245. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +84 -0
  246. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +76 -0
  247. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +76 -0
  248. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +76 -0
  249. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +120 -0
  250. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +129 -0
  251. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +76 -0
  252. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +135 -0
  253. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +74 -0
  254. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  255. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  256. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  257. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  258. package/dist/cesium/Widgets/InfoBox/InfoBox.css +92 -0
  259. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +178 -0
  260. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +93 -0
  261. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +38 -0
  262. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +15 -0
  263. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +38 -0
  264. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +56 -0
  265. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +20 -0
  266. package/dist/cesium/Widgets/Timeline/Timeline.css +103 -0
  267. package/dist/cesium/Widgets/Timeline/lighter.css +23 -0
  268. package/dist/cesium/Widgets/VRButton/VRButton.css +8 -0
  269. package/dist/cesium/Widgets/Viewer/Viewer.css +107 -0
  270. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +16 -0
  271. package/dist/cesium/Widgets/lighter.css +237 -0
  272. package/dist/cesium/Widgets/lighterShared.css +46 -0
  273. package/dist/cesium/Widgets/shared.css +103 -0
  274. package/dist/cesium/Widgets/widgets.css +1346 -0
  275. package/dist/cesium/Workers/chunk-2ED5WI77.js +26 -0
  276. package/dist/cesium/Workers/chunk-2MBPFWCP.js +26 -0
  277. package/dist/cesium/Workers/chunk-3C74MLG3.js +26 -0
  278. package/dist/cesium/Workers/chunk-45U7TTT3.js +26 -0
  279. package/dist/cesium/Workers/chunk-4N7SRDH5.js +26 -0
  280. package/dist/cesium/Workers/chunk-4T6AS6BZ.js +26 -0
  281. package/dist/cesium/Workers/chunk-5AG2MVRM.js +26 -0
  282. package/dist/cesium/Workers/chunk-5Z6L2FHX.js +26 -0
  283. package/dist/cesium/Workers/chunk-6AUUBDOF.js +26 -0
  284. package/dist/cesium/Workers/chunk-74N6MC2V.js +26 -0
  285. package/dist/cesium/Workers/chunk-7VJK3KHI.js +26 -0
  286. package/dist/cesium/Workers/chunk-7VZHIB6P.js +26 -0
  287. package/dist/cesium/Workers/chunk-7X2YQ6I4.js +27 -0
  288. package/dist/cesium/Workers/chunk-B2SKQ7LU.js +26 -0
  289. package/dist/cesium/Workers/chunk-B4TQDFIE.js +26 -0
  290. package/dist/cesium/Workers/chunk-B6TRTFAA.js +26 -0
  291. package/dist/cesium/Workers/chunk-BK3HCS7I.js +26 -0
  292. package/dist/cesium/Workers/chunk-BOPB43LN.js +26 -0
  293. package/dist/cesium/Workers/chunk-C6DMEJQ7.js +26 -0
  294. package/dist/cesium/Workers/chunk-CN7UN2OZ.js +26 -0
  295. package/dist/cesium/Workers/chunk-CSISXEG7.js +26 -0
  296. package/dist/cesium/Workers/chunk-CUOR5F7T.js +28 -0
  297. package/dist/cesium/Workers/chunk-DGCK3LD2.js +30 -0
  298. package/dist/cesium/Workers/chunk-DXEZYE3K.js +62 -0
  299. package/dist/cesium/Workers/chunk-EXBFEYPQ.js +26 -0
  300. package/dist/cesium/Workers/chunk-FK5KFB6H.js +26 -0
  301. package/dist/cesium/Workers/chunk-HPBHKP5S.js +26 -0
  302. package/dist/cesium/Workers/chunk-JCJ24DHF.js +26 -0
  303. package/dist/cesium/Workers/chunk-JEWHFDAA.js +26 -0
  304. package/dist/cesium/Workers/chunk-JZLZJJQD.js +26 -0
  305. package/dist/cesium/Workers/chunk-KRZBI2MU.js +26 -0
  306. package/dist/cesium/Workers/chunk-KTTUANTJ.js +26 -0
  307. package/dist/cesium/Workers/chunk-LDCAXLGS.js +26 -0
  308. package/dist/cesium/Workers/chunk-LOPN5R3I.js +26 -0
  309. package/dist/cesium/Workers/chunk-MDLPQIMP.js +26 -0
  310. package/dist/cesium/Workers/chunk-MRR3RGFO.js +26 -0
  311. package/dist/cesium/Workers/chunk-NPBZI5YA.js +26 -0
  312. package/dist/cesium/Workers/chunk-NUSW5B6A.js +26 -0
  313. package/dist/cesium/Workers/chunk-OUXRUXNB.js +26 -0
  314. package/dist/cesium/Workers/chunk-QPOPEH3M.js +26 -0
  315. package/dist/cesium/Workers/chunk-R2AN7EKC.js +26 -0
  316. package/dist/cesium/Workers/chunk-RURL6ZX2.js +26 -0
  317. package/dist/cesium/Workers/chunk-SUQM3OSW.js +28 -0
  318. package/dist/cesium/Workers/chunk-UBIRX2SP.js +26 -0
  319. package/dist/cesium/Workers/chunk-VAKC5J5C.js +26 -0
  320. package/dist/cesium/Workers/chunk-VHNZBQTR.js +27 -0
  321. package/dist/cesium/Workers/chunk-VKV642QV.js +26 -0
  322. package/dist/cesium/Workers/chunk-VMSXG4OA.js +26 -0
  323. package/dist/cesium/Workers/chunk-VQZSIOZW.js +26 -0
  324. package/dist/cesium/Workers/chunk-WZUWQMI7.js +26 -0
  325. package/dist/cesium/Workers/chunk-YBI55DLZ.js +26 -0
  326. package/dist/cesium/Workers/chunk-YEJWCH6C.js +26 -0
  327. package/dist/cesium/Workers/chunk-YPDO7SPO.js +26 -0
  328. package/dist/cesium/Workers/chunk-ZYWD6OQH.js +26 -0
  329. package/dist/cesium/Workers/combineGeometry.js +26 -0
  330. package/dist/cesium/Workers/createBoxGeometry.js +26 -0
  331. package/dist/cesium/Workers/createBoxOutlineGeometry.js +26 -0
  332. package/dist/cesium/Workers/createCircleGeometry.js +26 -0
  333. package/dist/cesium/Workers/createCircleOutlineGeometry.js +26 -0
  334. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +26 -0
  335. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +26 -0
  336. package/dist/cesium/Workers/createCorridorGeometry.js +26 -0
  337. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +26 -0
  338. package/dist/cesium/Workers/createCylinderGeometry.js +26 -0
  339. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +26 -0
  340. package/dist/cesium/Workers/createEllipseGeometry.js +26 -0
  341. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +26 -0
  342. package/dist/cesium/Workers/createEllipsoidGeometry.js +26 -0
  343. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +26 -0
  344. package/dist/cesium/Workers/createFrustumGeometry.js +26 -0
  345. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +26 -0
  346. package/dist/cesium/Workers/createGeometry.js +26 -0
  347. package/dist/cesium/Workers/createGroundPolylineGeometry.js +26 -0
  348. package/dist/cesium/Workers/createPlaneGeometry.js +26 -0
  349. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +26 -0
  350. package/dist/cesium/Workers/createPolygonGeometry.js +26 -0
  351. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +26 -0
  352. package/dist/cesium/Workers/createPolylineGeometry.js +26 -0
  353. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +26 -0
  354. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +26 -0
  355. package/dist/cesium/Workers/createRectangleGeometry.js +26 -0
  356. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +26 -0
  357. package/dist/cesium/Workers/createSimplePolylineGeometry.js +26 -0
  358. package/dist/cesium/Workers/createSphereGeometry.js +26 -0
  359. package/dist/cesium/Workers/createSphereOutlineGeometry.js +26 -0
  360. package/dist/cesium/Workers/createTaskProcessorWorker.js +26 -0
  361. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +26 -0
  362. package/dist/cesium/Workers/createVectorTileGeometries.js +26 -0
  363. package/dist/cesium/Workers/createVectorTilePoints.js +26 -0
  364. package/dist/cesium/Workers/createVectorTilePolygons.js +26 -0
  365. package/dist/cesium/Workers/createVectorTilePolylines.js +26 -0
  366. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +26 -0
  367. package/dist/cesium/Workers/createVerticesFromHeightmap.js +26 -0
  368. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +26 -0
  369. package/dist/cesium/Workers/createWallGeometry.js +26 -0
  370. package/dist/cesium/Workers/createWallOutlineGeometry.js +26 -0
  371. package/dist/cesium/Workers/decodeDraco.js +26 -0
  372. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +26 -0
  373. package/dist/cesium/Workers/decodeI3S.js +26 -0
  374. package/dist/cesium/Workers/transcodeKTX2.js +56 -0
  375. package/dist/cesium/Workers/transferTypedArrayTest.js +26 -0
  376. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +26 -0
  377. package/dist/core.js +83397 -0
  378. package/dist/core.umd.cjs +6710 -0
  379. package/dist/index-DqatWUTw.js +3225 -0
  380. package/dist/index.d.ts +1760 -0
  381. package/package.json +115 -0
  382. package/src/Map/ClusteredLayers/index.tsx +106 -0
  383. package/src/Map/Layer/hooks.ts +180 -0
  384. package/src/Map/Layer/index.tsx +92 -0
  385. package/src/Map/Layers/hooks.test.ts +819 -0
  386. package/src/Map/Layers/hooks.ts +955 -0
  387. package/src/Map/Layers/index.test.tsx +188 -0
  388. package/src/Map/Layers/index.tsx +76 -0
  389. package/src/Map/Layers/keys.ts +51 -0
  390. package/src/Map/Layers/utils.test.ts +53 -0
  391. package/src/Map/Layers/utils.ts +37 -0
  392. package/src/Map/Sketch/hooks.ts +641 -0
  393. package/src/Map/Sketch/index.tsx +101 -0
  394. package/src/Map/Sketch/preset.ts +29 -0
  395. package/src/Map/Sketch/sketchMachine.ts +323 -0
  396. package/src/Map/Sketch/sketchMachine.typegen.ts +72 -0
  397. package/src/Map/Sketch/types.ts +52 -0
  398. package/src/Map/Sketch/utils.ts +24 -0
  399. package/src/Map/hooks.ts +127 -0
  400. package/src/Map/index.tsx +147 -0
  401. package/src/Map/ref.ts +147 -0
  402. package/src/Map/types/event.ts +104 -0
  403. package/src/Map/types/index.ts +545 -0
  404. package/src/Map/useTimelineManager.ts +215 -0
  405. package/src/Map/utils.test.ts +62 -0
  406. package/src/Map/utils.ts +71 -0
  407. package/src/Visualizer/DropHolder.tsx +41 -0
  408. package/src/Visualizer/Error.tsx +15 -0
  409. package/src/Visualizer/context.tsx +27 -0
  410. package/src/Visualizer/coreContext.tsx +47 -0
  411. package/src/Visualizer/engines.ts +7 -0
  412. package/src/Visualizer/featureFlags.ts +9 -0
  413. package/src/Visualizer/hooks.ts +403 -0
  414. package/src/Visualizer/index.stories.tsx +128 -0
  415. package/src/Visualizer/index.tsx +187 -0
  416. package/src/Visualizer/interactionMode.ts +25 -0
  417. package/src/Visualizer/useViewport.ts +74 -0
  418. package/src/e2eConfig.ts +20 -0
  419. package/src/engines/Cesium/Cluster.tsx +90 -0
  420. package/src/engines/Cesium/Event.tsx +15 -0
  421. package/src/engines/Cesium/Feature/Box/Edge.tsx +94 -0
  422. package/src/engines/Cesium/Feature/Box/ScalePoints.tsx +158 -0
  423. package/src/engines/Cesium/Feature/Box/Side.tsx +70 -0
  424. package/src/engines/Cesium/Feature/Box/constants.ts +63 -0
  425. package/src/engines/Cesium/Feature/Box/hooks/box.ts +375 -0
  426. package/src/engines/Cesium/Feature/Box/hooks/edge.ts +112 -0
  427. package/src/engines/Cesium/Feature/Box/hooks/scalePoint.ts +174 -0
  428. package/src/engines/Cesium/Feature/Box/hooks/side.ts +72 -0
  429. package/src/engines/Cesium/Feature/Box/index.tsx +156 -0
  430. package/src/engines/Cesium/Feature/Box/utils.ts +168 -0
  431. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +48 -0
  432. package/src/engines/Cesium/Feature/Ellipse/index.tsx +91 -0
  433. package/src/engines/Cesium/Feature/Ellipsoid/index.tsx +84 -0
  434. package/src/engines/Cesium/Feature/Frustum/FrustumColorAppearance.ts +38 -0
  435. package/src/engines/Cesium/Feature/Frustum/getFieldOfView.ts +23 -0
  436. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +49 -0
  437. package/src/engines/Cesium/Feature/Frustum/index.tsx +163 -0
  438. package/src/engines/Cesium/Feature/Frustum/shaders/frustumAppearance.frag.glsl +31 -0
  439. package/src/engines/Cesium/Feature/Frustum/shaders/frustumAppearance.vert.glsl +29 -0
  440. package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +186 -0
  441. package/src/engines/Cesium/Feature/HeatMap/HeatmapMeshMaterial.ts +81 -0
  442. package/src/engines/Cesium/Feature/HeatMap/colorMap.ts +47 -0
  443. package/src/engines/Cesium/Feature/HeatMap/constants.ts +781 -0
  444. package/src/engines/Cesium/Feature/HeatMap/createMeshImageData.ts +108 -0
  445. package/src/engines/Cesium/Feature/HeatMap/index.tsx +169 -0
  446. package/src/engines/Cesium/Feature/HeatMap/shaders/heatmapMeshMaterial.glsl +78 -0
  447. package/src/engines/Cesium/Feature/HeatMap/shaders/makeContour.glsl +13 -0
  448. package/src/engines/Cesium/Feature/HeatMap/shaders/sampleBicubic.glsl +57 -0
  449. package/src/engines/Cesium/Feature/Marker/index.tsx +296 -0
  450. package/src/engines/Cesium/Feature/Marker/marker.svg +3 -0
  451. package/src/engines/Cesium/Feature/Model/index.stories.tsx +48 -0
  452. package/src/engines/Cesium/Feature/Model/index.tsx +223 -0
  453. package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +98 -0
  454. package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +163 -0
  455. package/src/engines/Cesium/Feature/PhotoOverlay/primPhotoIcon.svg +3 -0
  456. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +174 -0
  457. package/src/engines/Cesium/Feature/Polygon/index.tsx +182 -0
  458. package/src/engines/Cesium/Feature/Polyline/index.tsx +98 -0
  459. package/src/engines/Cesium/Feature/Raster/hooks.ts +52 -0
  460. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +77 -0
  461. package/src/engines/Cesium/Feature/Raster/index.tsx +37 -0
  462. package/src/engines/Cesium/Feature/Raster/mvt.ts +33 -0
  463. package/src/engines/Cesium/Feature/Raster/tiles.ts +27 -0
  464. package/src/engines/Cesium/Feature/Raster/tms.ts +31 -0
  465. package/src/engines/Cesium/Feature/Raster/types.ts +5 -0
  466. package/src/engines/Cesium/Feature/Raster/utils.test.ts +14 -0
  467. package/src/engines/Cesium/Feature/Raster/utils.ts +10 -0
  468. package/src/engines/Cesium/Feature/Raster/wms.ts +28 -0
  469. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +46 -0
  470. package/src/engines/Cesium/Feature/Resource/index.tsx +218 -0
  471. package/src/engines/Cesium/Feature/Resource/utils.test.ts +69 -0
  472. package/src/engines/Cesium/Feature/Resource/utils.ts +377 -0
  473. package/src/engines/Cesium/Feature/Tileset/DrawClippingPolygon/index.tsx +77 -0
  474. package/src/engines/Cesium/Feature/Tileset/TilesetFeatureIndex.ts +46 -0
  475. package/src/engines/Cesium/Feature/Tileset/hooks.ts +793 -0
  476. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +41 -0
  477. package/src/engines/Cesium/Feature/Tileset/index.tsx +127 -0
  478. package/src/engines/Cesium/Feature/Tileset/types.ts +5 -0
  479. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +457 -0
  480. package/src/engines/Cesium/Feature/Tileset/useDrawClipping.ts +200 -0
  481. package/src/engines/Cesium/Feature/context.ts +33 -0
  482. package/src/engines/Cesium/Feature/index.tsx +250 -0
  483. package/src/engines/Cesium/Feature/utils.test.tsx +30 -0
  484. package/src/engines/Cesium/Feature/utils.tsx +289 -0
  485. package/src/engines/Cesium/FeatureIndex.ts +15 -0
  486. package/src/engines/Cesium/JapanSeaLevelEllipsoid.ts +20 -0
  487. package/src/engines/Cesium/PostProcesses/README.md +1 -0
  488. package/src/engines/Cesium/PostProcesses/hbao/AmbientOcclusion.tsx +120 -0
  489. package/src/engines/Cesium/PostProcesses/hbao/AmbientOcclusionOutputType.ts +7 -0
  490. package/src/engines/Cesium/PostProcesses/hbao/README.md +3 -0
  491. package/src/engines/Cesium/PostProcesses/hbao/config.ts +29 -0
  492. package/src/engines/Cesium/PostProcesses/hbao/createAmbientOcclusionStage.ts +173 -0
  493. package/src/engines/Cesium/PostProcesses/hbao/createCrossBilateralFilterStage.ts +94 -0
  494. package/src/engines/Cesium/PostProcesses/hbao/index.ts +3 -0
  495. package/src/engines/Cesium/PostProcesses/hbao/shaders/ambientOcclusionGenerate.glsl +151 -0
  496. package/src/engines/Cesium/PostProcesses/hbao/shaders/ambientOcclusionModulate.glsl +46 -0
  497. package/src/engines/Cesium/PostProcesses/hbao/shaders/crossBilateralFilter.glsl +108 -0
  498. package/src/engines/Cesium/PostProcesses/hbao/shaders/depth.glsl +3 -0
  499. package/src/engines/Cesium/PostProcesses/hbao/shaders/globeDepth.glsl +15 -0
  500. package/src/engines/Cesium/PostProcesses/hbao/shaders/highPassRandom.glsl +28 -0
  501. package/src/engines/Cesium/PostProcesses/hbao/shaders/packing.glsl +7 -0
  502. package/src/engines/Cesium/PostProcesses/hbao/shaders/reconstructNormal.glsl +109 -0
  503. package/src/engines/Cesium/PostProcesses/hbao/shaders/reconstructPosition.glsl +10 -0
  504. package/src/engines/Cesium/PostProcesses/hbao/shaders/turboColorMap.glsl +20 -0
  505. package/src/engines/Cesium/PostProcesses/hbao/shaders/vogelDisk.glsl +13 -0
  506. package/src/engines/Cesium/Shaders/CustomShaders/NonPBRLightingShader.ts +66 -0
  507. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/Definitions.glsl +5 -0
  508. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/HeatmapForTerrain.glsl +13 -0
  509. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +57 -0
  510. package/src/engines/Cesium/Shaders/OverriddenShaders/README.md +13 -0
  511. package/src/engines/Cesium/Sketch/ControlPoint.tsx +67 -0
  512. package/src/engines/Cesium/Sketch/Entity.tsx +43 -0
  513. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +51 -0
  514. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +70 -0
  515. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +75 -0
  516. package/src/engines/Cesium/Sketch/MeasurementText.tsx +13 -0
  517. package/src/engines/Cesium/Sketch/PolygonEntity.tsx +48 -0
  518. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +44 -0
  519. package/src/engines/Cesium/Sketch/ScreenSpaceElement.tsx +87 -0
  520. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +67 -0
  521. package/src/engines/Cesium/Sketch/SurfaceMeasurement.tsx +80 -0
  522. package/src/engines/Cesium/Sketch/createGeometry.ts +224 -0
  523. package/src/engines/Cesium/Sketch/index.tsx +119 -0
  524. package/src/engines/Cesium/Sketch/utils.ts +27 -0
  525. package/src/engines/Cesium/VertexTerrainElevationMaterial.ts +33 -0
  526. package/src/engines/Cesium/cameraLimiter.ts +256 -0
  527. package/src/engines/Cesium/common.test.ts +38 -0
  528. package/src/engines/Cesium/common.ts +901 -0
  529. package/src/engines/Cesium/constants.ts +25 -0
  530. package/src/engines/Cesium/core/Clock.tsx +58 -0
  531. package/src/engines/Cesium/core/Globe.tsx +136 -0
  532. package/src/engines/Cesium/core/Imagery.test.ts +102 -0
  533. package/src/engines/Cesium/core/Imagery.tsx +184 -0
  534. package/src/engines/Cesium/core/Indicator/Indicator.tsx +141 -0
  535. package/src/engines/Cesium/core/Indicator/crosshair.svg +3 -0
  536. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +321 -0
  537. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryLayer.tsx +56 -0
  538. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryProvider.ts +146 -0
  539. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +258 -0
  540. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/getAnnotationType.ts +117 -0
  541. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/helpers.ts +24 -0
  542. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/index.ts +3 -0
  543. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/types.ts +26 -0
  544. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +39 -0
  545. package/src/engines/Cesium/core/presets.ts +95 -0
  546. package/src/engines/Cesium/helpers/createUniforms.ts +64 -0
  547. package/src/engines/Cesium/helpers/sphericalHaromic.test.ts +33 -0
  548. package/src/engines/Cesium/helpers/sphericalHaromic.ts +27 -0
  549. package/src/engines/Cesium/hooks/useInstance.ts +98 -0
  550. package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +157 -0
  551. package/src/engines/Cesium/hooks/useSceneEvent.ts +47 -0
  552. package/src/engines/Cesium/hooks.ts +1004 -0
  553. package/src/engines/Cesium/index.stories.tsx +42 -0
  554. package/src/engines/Cesium/index.tsx +285 -0
  555. package/src/engines/Cesium/pickMany.ts +310 -0
  556. package/src/engines/Cesium/type.d.ts +47 -0
  557. package/src/engines/Cesium/types.ts +24 -0
  558. package/src/engines/Cesium/useEngineRef.test.tsx +627 -0
  559. package/src/engines/Cesium/useEngineRef.ts +945 -0
  560. package/src/engines/Cesium/useOverrideGlobeShader.ts +322 -0
  561. package/src/engines/Cesium/utils/mouse.ts +16 -0
  562. package/src/engines/Cesium/utils/polygon.ts +48 -0
  563. package/src/engines/Cesium/utils/utils.ts +446 -0
  564. package/src/engines/Cesium/vertexTerrainElevationMaterial.glsl +25 -0
  565. package/src/engines/index.ts +37 -0
  566. package/src/env.d.ts +3 -0
  567. package/src/hooks/index.ts +2 -0
  568. package/src/hooks/useRefFunction.ts +10 -0
  569. package/src/hooks/useRefValue.ts +7 -0
  570. package/src/index.ts +4 -0
  571. package/src/mantle/README.md +7 -0
  572. package/src/mantle/atoms/cache.test.ts +61 -0
  573. package/src/mantle/atoms/cache.ts +55 -0
  574. package/src/mantle/atoms/compute.test.ts +794 -0
  575. package/src/mantle/atoms/compute.ts +344 -0
  576. package/src/mantle/atoms/data.test.ts +182 -0
  577. package/src/mantle/atoms/data.ts +114 -0
  578. package/src/mantle/atoms/index.ts +1 -0
  579. package/src/mantle/compat/backward.test.ts +368 -0
  580. package/src/mantle/compat/backward.ts +189 -0
  581. package/src/mantle/compat/forward.test.ts +688 -0
  582. package/src/mantle/compat/forward.ts +272 -0
  583. package/src/mantle/compat/index.ts +4 -0
  584. package/src/mantle/compat/types.ts +73 -0
  585. package/src/mantle/data/csv.test.ts +478 -0
  586. package/src/mantle/data/csv.ts +194 -0
  587. package/src/mantle/data/geojson.ts +72 -0
  588. package/src/mantle/data/georss.ts +172 -0
  589. package/src/mantle/data/gml.ts +244 -0
  590. package/src/mantle/data/gpx.test.ts +65 -0
  591. package/src/mantle/data/gpx.ts +551 -0
  592. package/src/mantle/data/gtfs.ts +116 -0
  593. package/src/mantle/data/gtfsReader.ts +454 -0
  594. package/src/mantle/data/index.test.ts +16 -0
  595. package/src/mantle/data/index.ts +73 -0
  596. package/src/mantle/data/shapefile.ts +232 -0
  597. package/src/mantle/data/utils.ts +21 -0
  598. package/src/mantle/evaluator/index.ts +40 -0
  599. package/src/mantle/evaluator/simple/conditionalExpression/index.ts +60 -0
  600. package/src/mantle/evaluator/simple/expression/constants.ts +204 -0
  601. package/src/mantle/evaluator/simple/expression/expression.test.ts +63 -0
  602. package/src/mantle/evaluator/simple/expression/expression.ts +116 -0
  603. package/src/mantle/evaluator/simple/expression/functions/binaryFunctions.ts +43 -0
  604. package/src/mantle/evaluator/simple/expression/functions/colors.ts +189 -0
  605. package/src/mantle/evaluator/simple/expression/functions/index.ts +3 -0
  606. package/src/mantle/evaluator/simple/expression/functions/unaryFunctions.ts +54 -0
  607. package/src/mantle/evaluator/simple/expression/index.ts +1 -0
  608. package/src/mantle/evaluator/simple/expression/node.ts +570 -0
  609. package/src/mantle/evaluator/simple/expression/runtime.ts +266 -0
  610. package/src/mantle/evaluator/simple/expression/variableReplacer.test.ts +54 -0
  611. package/src/mantle/evaluator/simple/expression/variableReplacer.ts +121 -0
  612. package/src/mantle/evaluator/simple/index.test.ts +656 -0
  613. package/src/mantle/evaluator/simple/index.ts +178 -0
  614. package/src/mantle/evaluator/simple/interval.test.ts +102 -0
  615. package/src/mantle/evaluator/simple/interval.ts +27 -0
  616. package/src/mantle/evaluator/simple/utils.test.ts +56 -0
  617. package/src/mantle/evaluator/simple/utils.ts +31 -0
  618. package/src/mantle/index.ts +6 -0
  619. package/src/mantle/types/appearance.ts +318 -0
  620. package/src/mantle/types/events.ts +16 -0
  621. package/src/mantle/types/expression.ts +9 -0
  622. package/src/mantle/types/index.ts +156 -0
  623. package/src/mantle/types/value.ts +153 -0
  624. package/src/mantle/utils.test.ts +74 -0
  625. package/src/mantle/utils.ts +53 -0
  626. package/src/reearthTypes.ts +64 -0
  627. package/src/setupTests.ts +1 -0
  628. package/src/test/setup.ts +40 -0
  629. package/src/test/utils.tsx +40 -0
  630. package/src/types.ts +66 -0
  631. package/src/utils/StringMatcher.test.ts +132 -0
  632. package/src/utils/StringMatcher.ts +104 -0
  633. package/src/utils/assertType.ts +1 -0
  634. package/src/utils/generate-random-string.ts +9 -0
  635. package/src/utils/idle.ts +22 -0
  636. package/src/utils/image.ts +35 -0
  637. package/src/utils/index.ts +11 -0
  638. package/src/utils/object.ts +70 -0
  639. package/src/utils/raf.ts +58 -0
  640. package/src/utils/time.ts +18 -0
  641. package/src/utils/use-delayed-count.test.ts +139 -0
  642. package/src/utils/use-delayed-count.ts +65 -0
  643. package/src/utils/use-dnd/drag.ts +34 -0
  644. package/src/utils/use-dnd/drop.ts +93 -0
  645. package/src/utils/use-dnd/index.tsx +20 -0
  646. package/src/utils/use-dnd/types.ts +47 -0
  647. package/src/utils/util.ts +81 -0
  648. package/src/utils/value.ts +260 -0
  649. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,94 @@
1
+ import { PostProcessStage, PostProcessStageComposite, PostProcessStageSampleMode } from "cesium";
2
+ import { defaults } from "lodash-es";
3
+
4
+ import { createUniforms } from "../../helpers/createUniforms";
5
+
6
+ import { type AmbientOcclusionOutputType } from "./AmbientOcclusionOutputType";
7
+ import crossBilateralFilter from "./shaders/crossBilateralFilter.glsl?raw";
8
+ import depth from "./shaders/depth.glsl?raw";
9
+ import globeDepth from "./shaders/globeDepth.glsl?raw";
10
+ import packing from "./shaders/packing.glsl?raw";
11
+ import reconstructPosition from "./shaders/reconstructPosition.glsl?raw";
12
+
13
+ interface PrivatePostProcessStage extends PostProcessStage {
14
+ _depthTexture: unknown;
15
+ }
16
+
17
+ export interface CrossBilateralFilterStageUniforms {
18
+ textureScale: number;
19
+ frustumLength: number;
20
+ normalExponent: number;
21
+ depthExponent: number;
22
+ }
23
+
24
+ const defaultUniforms: CrossBilateralFilterStageUniforms = {
25
+ textureScale: 1,
26
+ frustumLength: 1e5,
27
+ normalExponent: 5,
28
+ depthExponent: 1,
29
+ };
30
+
31
+ export interface CrossBilateralFilterStageOptions {
32
+ prefix?: string;
33
+ outputType?: AmbientOcclusionOutputType | null;
34
+ useGlobeDepth?: boolean;
35
+ getGlobeDepthTexture?: () => unknown | undefined;
36
+ uniforms?: Partial<CrossBilateralFilterStageUniforms>;
37
+ }
38
+
39
+ export function createBilateralFilterStage({
40
+ prefix = "reearth",
41
+ outputType = null,
42
+ useGlobeDepth = false,
43
+ getGlobeDepthTexture,
44
+ uniforms: uniformsOption,
45
+ }: CrossBilateralFilterStageOptions): PostProcessStageComposite {
46
+ const uniforms = defaults({}, uniformsOption, defaultUniforms);
47
+
48
+ const blurX = new PostProcessStage({
49
+ name: `${prefix}_ambient_occlusion_cross_bilateral_filter_x`,
50
+ fragmentShader: `
51
+ #define DIRECTION (0)
52
+ ${outputType != null ? `#define OUTPUT_TYPE (${outputType})` : ""}
53
+ ${useGlobeDepth ? globeDepth : depth}
54
+ ${packing}
55
+ ${reconstructPosition}
56
+ ${crossBilateralFilter}
57
+ `,
58
+ uniforms: {
59
+ ...uniforms,
60
+ globeDepthTexture: () =>
61
+ getGlobeDepthTexture?.() ?? (blurX as PrivatePostProcessStage)._depthTexture,
62
+ },
63
+ sampleMode: PostProcessStageSampleMode.LINEAR,
64
+ });
65
+
66
+ const blurY = new PostProcessStage({
67
+ name: `${prefix}_ambient_occlusion_cross_bilateral_filter_y`,
68
+ fragmentShader: `
69
+ #define DIRECTION (1)
70
+ ${outputType != null ? `#define OUTPUT_TYPE (${outputType})` : ""}
71
+ ${useGlobeDepth ? globeDepth : depth}
72
+ ${packing}
73
+ ${reconstructPosition}
74
+ ${crossBilateralFilter}
75
+ `,
76
+ uniforms: {
77
+ ...uniforms,
78
+ globeDepthTexture: () =>
79
+ getGlobeDepthTexture?.() ?? (blurY as PrivatePostProcessStage)._depthTexture,
80
+ },
81
+ sampleMode: PostProcessStageSampleMode.LINEAR,
82
+ });
83
+
84
+ return new PostProcessStageComposite({
85
+ name: `${prefix}_ambient_occlusion_cross_bilateral_filter`,
86
+ stages: [blurX, blurY],
87
+ uniforms: createUniforms<CrossBilateralFilterStageUniforms>([
88
+ {
89
+ stages: [blurX, blurY],
90
+ uniforms: ["textureScale", "frustumLength", "normalExponent", "depthExponent"],
91
+ },
92
+ ]),
93
+ });
94
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./AmbientOcclusion";
2
+ export * from "./AmbientOcclusionOutputType";
3
+ export * from "./createAmbientOcclusionStage";
@@ -0,0 +1,151 @@
1
+ #ifndef NUM_DIRECTIONS
2
+ #define NUM_DIRECTIONS (8)
3
+ #endif
4
+
5
+ #ifndef NUM_STEPS
6
+ #define NUM_STEPS (8)
7
+ #endif
8
+
9
+ #ifndef OUTPUT_TYPE
10
+ #define OUTPUT_TYPE (0)
11
+ #endif
12
+
13
+ uniform sampler2D depthTexture;
14
+ uniform float textureScale;
15
+ uniform float intensity;
16
+ uniform float bias;
17
+ uniform float maxRadius;
18
+ uniform float frustumLength;
19
+ uniform vec2 focalLength;
20
+
21
+ in vec2 v_textureCoordinates;
22
+
23
+ vec2 rotateDirection(const vec2 dir, const vec2 cosSin) {
24
+ return vec2(
25
+ dir.x * cosSin.x - dir.y * cosSin.y,
26
+ dir.x * cosSin.y + dir.y * cosSin.x
27
+ );
28
+ }
29
+
30
+ vec2 getStepSize(const vec3 position) {
31
+ vec2 uvMaxRadius = focalLength * maxRadius / -position.z;
32
+ return 0.5 * uvMaxRadius / (float(NUM_STEPS) + 1.0);
33
+ }
34
+
35
+ vec2 getSnappedUV(const vec2 uv) {
36
+ return round(uv * czm_viewport.zw) / czm_viewport.zw;
37
+ }
38
+
39
+ float getBiasedTangent(const vec3 v, const float bias) {
40
+ return v.z / length(v.xy) + tan(bias);
41
+ }
42
+
43
+ float getSinFromTan(const float x) {
44
+ return x * inversesqrt(x * x + 1.0);
45
+ }
46
+
47
+ // Based on:
48
+ // https://github.com/nvpro-samples/gl_ssao/blob/master/hbao.frag.glsl
49
+ // https://github.com/scanberg/hbao/blob/master/resources/shaders/hbao_full_frag.glsl
50
+ float computeOcclusion(
51
+ vec3 position,
52
+ vec3 dPdx,
53
+ vec3 dPdy,
54
+ vec2 deltaUV,
55
+ float randomStep
56
+ ) {
57
+ // Offset the first coord with some noise.
58
+ vec2 uv = v_textureCoordinates + getSnappedUV(randomStep * deltaUV);
59
+ deltaUV = getSnappedUV(deltaUV);
60
+
61
+ // Calculate the tangent vector.
62
+ vec3 T = dPdx * deltaUV.x + dPdy * deltaUV.y;
63
+
64
+ // Get the angle of the tangent vector from the viewspace axis.
65
+ float tanT = getBiasedTangent(T, bias);
66
+ float sinT = getSinFromTan(tanT);
67
+
68
+ // Sample to find the maximum angle.
69
+ float ao = 0.0;
70
+ float prevSinH = sinT;
71
+ for (int i = 0; i < NUM_STEPS; ++i) {
72
+ uv += deltaUV;
73
+
74
+ float sampleDepth = readDepth(depthTexture, uv);
75
+ vec3 samplePosition = reconstructPosition(uv, sampleDepth);
76
+ vec3 view = samplePosition - position;
77
+ float len = length(view);
78
+
79
+ float tanH = view.z / length(view.xy);
80
+ float sinH = getSinFromTan(tanH);
81
+ if (len < maxRadius && sinH > prevSinH) {
82
+ float falloff = 1.0 - len / maxRadius * (len / maxRadius);
83
+ ao += (sinH - prevSinH) * falloff;
84
+ prevSinH = sinH;
85
+ }
86
+ }
87
+
88
+ return ao;
89
+ }
90
+
91
+ void main() {
92
+ vec2 uv = v_textureCoordinates;
93
+ float depth = readDepth(depthTexture, uv);
94
+ vec3 position = reconstructPosition(uv, depth);
95
+
96
+ #if OUTPUT_TYPE != 1
97
+ if (-position.z > frustumLength) {
98
+ out_FragColor = vec4(1.0);
99
+ return;
100
+ }
101
+ #endif
102
+
103
+ // Should we take czm_pixelRatio into account?
104
+ vec2 pixelSize = textureScale / czm_viewport.zw;
105
+ vec3 dPdx;
106
+ vec3 dPdy;
107
+ vec3 normal = reconstructNormal(
108
+ depthTexture,
109
+ uv,
110
+ position,
111
+ depth,
112
+ pixelSize,
113
+ dPdx,
114
+ dPdy
115
+ );
116
+
117
+ // XY for direction and Z for jitter of the first step.
118
+ vec3 random = computeHighPassRandom3D(uv);
119
+
120
+ float ao = 0.0;
121
+
122
+ vec2 stepSize = getStepSize(position);
123
+ float alpha = czm_twoPi / float(NUM_DIRECTIONS);
124
+ for (
125
+ int directionIndex = 0;
126
+ directionIndex < NUM_DIRECTIONS;
127
+ ++directionIndex
128
+ ) {
129
+ // Compute normalized random direction.
130
+ float theta = alpha * float(directionIndex);
131
+ vec2 direction = rotateDirection(
132
+ vec2(cos(theta), sin(theta)),
133
+ normalize(2.0 * random.xy - 1.0)
134
+ );
135
+
136
+ ao += computeOcclusion(
137
+ position,
138
+ dPdx,
139
+ dPdy,
140
+ direction * stepSize,
141
+ random.z
142
+ );
143
+ }
144
+
145
+ ao /= float(NUM_DIRECTIONS * NUM_STEPS);
146
+ ao = 1.0 - 1.0 / czm_twoPi * clamp(ao, 0.0, 1.0);
147
+ ao = pow(ao, intensity);
148
+
149
+ // Reuse normal in bilateral filter and read depth in it again.
150
+ out_FragColor = vec4(ao, packNormal(normal));
151
+ }
@@ -0,0 +1,46 @@
1
+ #ifndef OUTPUT_TYPE
2
+ #define OUTPUT_TYPE (0)
3
+ #endif
4
+
5
+ uniform sampler2D colorTexture;
6
+ uniform sampler2D depthTexture;
7
+ uniform sampler2D ambientOcclusionTexture;
8
+
9
+ uniform vec3 color;
10
+ uniform float blackPoint;
11
+ uniform float whitePoint;
12
+ uniform float gamma;
13
+ uniform float frustumLength;
14
+
15
+ in vec2 v_textureCoordinates;
16
+
17
+ vec3 shade(vec3 color, float a, float b, float p) {
18
+ return clamp(
19
+ b * pow(max(color - a, 0.0), vec3(p)) / pow(1.0 - a, p),
20
+ vec3(0.0),
21
+ vec3(1.0)
22
+ );
23
+ }
24
+
25
+ void main() {
26
+ vec4 base = texture(colorTexture, v_textureCoordinates);
27
+ vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates);
28
+
29
+ #if OUTPUT_TYPE == 1 // Occlusion
30
+ out_FragColor = vec4(vec3(ao.x), base.a);
31
+ #elif OUTPUT_TYPE == 2 // Normal
32
+ out_FragColor = vec4(ao.yzw, base.a);
33
+ #elif OUTPUT_TYPE == 3 // Depth
34
+ float depth = -readPosition(depthTexture, v_textureCoordinates).z;
35
+ out_FragColor = vec4(getTurboColormap(depth / frustumLength), base.a);
36
+ #elif OUTPUT_TYPE == 4 // Weight
37
+ out_FragColor = vec4(vec3(ao.x), base.a);
38
+ #elif OUTPUT_TYPE == 5 // Shade
39
+ out_FragColor = vec4(shade(base.rgb, blackPoint, whitePoint, gamma), base.a);
40
+ #else
41
+ out_FragColor = vec4(
42
+ mix(base.rgb, shade(base.rgb, blackPoint, whitePoint, gamma), 1.0 - ao.x),
43
+ base.a
44
+ );
45
+ #endif // OUTPUT_TYPE
46
+ }
@@ -0,0 +1,108 @@
1
+ #define SAMPLES (8.0)
2
+
3
+ #ifndef OUTPUT_TYPE
4
+ #define OUTPUT_TYPE (0)
5
+ #endif
6
+
7
+ uniform sampler2D colorTexture;
8
+ uniform sampler2D depthTexture;
9
+ uniform float textureScale;
10
+ uniform float frustumLength;
11
+ uniform float normalExponent;
12
+ uniform float depthExponent;
13
+
14
+ in vec2 v_textureCoordinates;
15
+
16
+ const float sigma = float(SAMPLES) * 0.5 + 0.5;
17
+ const float falloff = 1.0 / (2.0 * sigma * sigma);
18
+
19
+ float computeWeight(
20
+ const vec3 normal,
21
+ const float depth,
22
+ const vec3 normal0,
23
+ const float depth0
24
+ ) {
25
+ // Weights are described here: http://sci.utah.edu/~duong/papers/hoang-mssao-cgi-2011-paper.pdf
26
+ float normalWeight = pow(
27
+ clamp(dot(normal0, normal), 0.0, 1.0),
28
+ normalExponent
29
+ );
30
+ float depthWeight = pow(1.0 / (1.0 + abs(depth0 - depth)), depthExponent);
31
+ return normalWeight * depthWeight;
32
+ }
33
+
34
+ void addWeight(
35
+ const vec2 uv,
36
+ const vec2 d,
37
+ const vec2 dd,
38
+ const vec3 normal0,
39
+ const float depth0,
40
+ inout float ao,
41
+ inout float weight
42
+ ) {
43
+ vec4 aon = texture(colorTexture, uv + d);
44
+ vec3 normal = unpackNormal(aon.yzw);
45
+ // It will be much faster if we were able to write linear depths in the
46
+ // generate phase.
47
+ float depth = readPosition(depthTexture, uv + dd).z;
48
+ float w = computeWeight(normal, depth, normal0, depth0);
49
+ ao = aon.x * w + ao;
50
+ weight += w;
51
+ }
52
+
53
+ void main() {
54
+ vec2 uv = v_textureCoordinates;
55
+ vec4 center = texture(colorTexture, uv);
56
+ float depth0 = readPosition(depthTexture, uv).z;
57
+
58
+ if (-depth0 > frustumLength) {
59
+ #if OUTPUT_TYPE == 4 // Weight
60
+ out_FragColor = vec4(vec3(0.0), center.yzw);
61
+ #else
62
+ out_FragColor = vec4(vec3(1.0), center.yzw);
63
+ #endif // OUTPUT_TYPE
64
+ return;
65
+ }
66
+
67
+ vec3 normal0 = unpackNormal(center.yzw);
68
+
69
+ #if OUTPUT_TYPE == 4 // Weight
70
+ float prevWeight = center.x;
71
+ #endif
72
+
73
+ vec2 pixelSize = 1.0 / czm_viewport.zw;
74
+ #if DIRECTION == 0
75
+ vec2 delta = vec2(pixelSize.x, 0.0) / textureScale;
76
+ vec2 depthDelta = vec2(pixelSize.x, 0.0) * czm_pixelRatio;
77
+ #else
78
+ vec2 delta = vec2(0.0, pixelSize.y) / textureScale;
79
+ vec2 depthDelta = vec2(0.0, pixelSize.y) * czm_pixelRatio;
80
+ #endif // DIRECTION
81
+
82
+ float ao = center.x;
83
+ float weight = 1.0;
84
+ float r = 1.0;
85
+
86
+ for (; r <= SAMPLES / 2.0; r += 1.0) {
87
+ vec2 d = r * delta;
88
+ vec2 dd = r * depthDelta;
89
+ addWeight(uv, d, dd, normal0, depth0, ao, weight);
90
+ addWeight(uv, -d, -dd, normal0, depth0, ao, weight);
91
+ }
92
+ for (r += 0.5; r <= SAMPLES; r += 2.0) {
93
+ vec2 d = r * delta;
94
+ vec2 dd = r * depthDelta;
95
+ addWeight(uv, d, dd, normal0, depth0, ao, weight);
96
+ addWeight(uv, -d, -dd, normal0, depth0, ao, weight);
97
+ }
98
+
99
+ #if OUTPUT_TYPE == 4 // Weight
100
+ #if DIRECTION == 0
101
+ out_FragColor = vec4(weight * 0.05, center.yzw);
102
+ #else
103
+ out_FragColor = vec4(prevWeight + weight * 0.05, center.yzw);
104
+ #endif // DIRECTION
105
+ #else
106
+ out_FragColor = vec4(ao / weight, center.yzw);
107
+ #endif // OUTPUT_TYPE
108
+ }
@@ -0,0 +1,3 @@
1
+ float readDepth(sampler2D depthTexture, vec2 texCoords) {
2
+ return czm_reverseLogDepth(texture(depthTexture, texCoords).r);
3
+ }
@@ -0,0 +1,15 @@
1
+ uniform sampler2D globeDepthTexture;
2
+
3
+ float readDepth(sampler2D depthTexture, vec2 texCoords) {
4
+ // The depth texture doesn't include the terrain depth if
5
+ // globe.depthTestAgainstTerrain is false, but terrain depth should be taken
6
+ // into account to compute ambient occlusion. Automatic uniform
7
+ // czm_globeDepthTexture always includes the terrain depth.
8
+ // Assume that the terrain is always higher than ellipsoid.
9
+ return czm_reverseLogDepth(
10
+ min(
11
+ texture(depthTexture, texCoords).r,
12
+ czm_unpackDepth(texture(globeDepthTexture, texCoords))
13
+ )
14
+ );
15
+ }
@@ -0,0 +1,28 @@
1
+ // Based on https://github.com/pmndrs/drei/blob/master/src/core/softShadows.tsx
2
+
3
+ vec3 computeRandom3D(const vec2 uv) {
4
+ return vec3(
5
+ fract(sin(dot(uv, vec2(12.75613, 38.12123))) * 13234.76575),
6
+ fract(sin(dot(uv, vec2(19.45531, 58.46547))) * 43678.23431),
7
+ fract(sin(dot(uv, vec2(23.67817, 78.23121))) * 93567.23423)
8
+ );
9
+ }
10
+
11
+ vec3 computeLowPassRandom3D(const vec2 uv) {
12
+ vec3 result = vec3(0.0);
13
+ result += computeRandom3D(uv + vec2(-1.0, -1.0));
14
+ result += computeRandom3D(uv + vec2(-1.0, 0.0));
15
+ result += computeRandom3D(uv + vec2(-1.0, 1.0));
16
+ result += computeRandom3D(uv + vec2(0.0, -1.0));
17
+ result += computeRandom3D(uv + vec2(0.0, 0.0));
18
+ result += computeRandom3D(uv + vec2(0.0, 1.0));
19
+ result += computeRandom3D(uv + vec2(1.0, -1.0));
20
+ result += computeRandom3D(uv + vec2(1.0, 0.0));
21
+ result += computeRandom3D(uv + vec2(1.0, 1.0));
22
+ result *= 0.111111111; // 1.0 / 9.0
23
+ return result;
24
+ }
25
+
26
+ vec3 computeHighPassRandom3D(const vec2 uv) {
27
+ return computeRandom3D(uv) - computeLowPassRandom3D(uv) + 0.5;
28
+ }
@@ -0,0 +1,7 @@
1
+ vec3 packNormal(const vec3 normal) {
2
+ return normalize(normal) * 0.5 + 0.5;
3
+ }
4
+
5
+ vec3 unpackNormal(const vec3 normal) {
6
+ return normal * 2.0 - 1.0;
7
+ }
@@ -0,0 +1,109 @@
1
+ vec3 getMinDiff(const vec3 position, const vec3 right, const vec3 left) {
2
+ vec3 v1 = right - position;
3
+ vec3 v2 = position - left;
4
+ return dot(v1, v1) < dot(v2, v2)
5
+ ? v1
6
+ : v2;
7
+ }
8
+
9
+ // Based on https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/
10
+ vec3 reconstructNormalNaive(
11
+ const sampler2D depthTexture,
12
+ const vec2 uv,
13
+ const vec3 position,
14
+ const float depth,
15
+ const vec2 pixelSize,
16
+ out vec3 dPdx,
17
+ out vec3 dPdy
18
+ ) {
19
+ vec2 ddx = vec2(pixelSize.x, 0.0);
20
+ vec2 ddy = vec2(0.0, pixelSize.y);
21
+
22
+ vec3 up = readPosition(depthTexture, uv + ddy);
23
+ vec3 down = readPosition(depthTexture, uv - ddy);
24
+ vec3 right = readPosition(depthTexture, uv + ddx);
25
+ vec3 left = readPosition(depthTexture, uv - ddx);
26
+
27
+ dPdx = getMinDiff(position, right, left);
28
+ dPdy = getMinDiff(position, up, down);
29
+
30
+ return normalize(cross(dPdy, dPdx));
31
+ }
32
+
33
+ vec3 readMinDiff(
34
+ const sampler2D depthTexture,
35
+ const vec2 uv,
36
+ const vec3 position,
37
+ const float depth,
38
+ const vec4 depths,
39
+ const vec2 delta
40
+ ) {
41
+ vec2 e = abs(depths.xy * depths.zw / (2.0 * depths.zw - depths.xy) - depth);
42
+ return e.x > e.y
43
+ ? readPosition(depthTexture, uv + delta) - position
44
+ : position - readPosition(depthTexture, uv - delta);
45
+ }
46
+
47
+ // Based on https://atyuwen.github.io/posts/normal-reconstruction/
48
+ vec3 reconstructNormalAccurate(
49
+ const sampler2D depthTexture,
50
+ const vec2 uv,
51
+ const vec3 position,
52
+ const float depth,
53
+ const vec2 pixelSize,
54
+ out vec3 dPdx,
55
+ out vec3 dPdy
56
+ ) {
57
+ vec2 ddx = vec2(pixelSize.x, 0.0);
58
+ vec2 ddy = vec2(0.0, pixelSize.y);
59
+
60
+ vec4 H = vec4(
61
+ readDepth(depthTexture, uv - ddx),
62
+ readDepth(depthTexture, uv + ddx),
63
+ readDepth(depthTexture, ddx * -2.0 + uv),
64
+ readDepth(depthTexture, ddx * 2.0 + uv)
65
+ );
66
+ vec4 V = vec4(
67
+ readDepth(depthTexture, uv - ddy),
68
+ readDepth(depthTexture, uv + ddy),
69
+ readDepth(depthTexture, ddy * -2.0 + uv),
70
+ readDepth(depthTexture, ddy * 2.0 + uv)
71
+ );
72
+
73
+ dPdx = readMinDiff(depthTexture, uv, position, depth, H, ddx);
74
+ dPdy = readMinDiff(depthTexture, uv, position, depth, V, ddy);
75
+
76
+ return normalize(cross(dPdy, dPdx));
77
+ }
78
+
79
+ vec3 reconstructNormal(
80
+ const sampler2D depthTexture,
81
+ const vec2 uv,
82
+ const vec3 position,
83
+ const float depth,
84
+ const vec2 pixelSize,
85
+ out vec3 dPdx,
86
+ out vec3 dPdy
87
+ ) {
88
+ #ifdef USE_ACCURATE_NORMAL
89
+ return reconstructNormalAccurate(
90
+ depthTexture,
91
+ uv,
92
+ position,
93
+ depth,
94
+ pixelSize,
95
+ dPdx,
96
+ dPdy
97
+ );
98
+ #else
99
+ return reconstructNormalNaive(
100
+ depthTexture,
101
+ uv,
102
+ position,
103
+ depth,
104
+ pixelSize,
105
+ dPdx,
106
+ dPdy
107
+ );
108
+ #endif
109
+ }
@@ -0,0 +1,10 @@
1
+ vec3 reconstructPosition(const vec2 uv, const float depth) {
2
+ vec2 xy = vec2(uv.x * 2.0 - 1.0, (1.0 - uv.y) * 2.0 - 1.0);
3
+ vec4 position = czm_inverseProjection * vec4(xy, depth, 1.0);
4
+ position = position / position.w;
5
+ return position.xyz;
6
+ }
7
+
8
+ vec3 readPosition(const sampler2D depthTexture, const vec2 uv) {
9
+ return reconstructPosition(uv, readDepth(depthTexture, uv));
10
+ }
@@ -0,0 +1,20 @@
1
+ // Derived from https://gist.github.com/mikhailov-work/0d177465a8151eb6ede1768d51d476c7
2
+
3
+ const vec4 kRedVec4 = vec4(0.13572138, 4.6153926, -42.66032258, 132.13108234);
4
+ const vec4 kGreenVec4 = vec4(0.09140261, 2.19418839, 4.84296658, -14.18503333);
5
+ const vec4 kBlueVec4 = vec4(0.1066733, 12.64194608, -60.58204836, 110.36276771);
6
+ const vec2 kRedVec2 = vec2(-152.94239396, 59.28637943);
7
+ const vec2 kGreenVec2 = vec2(4.27729857, 2.82956604);
8
+ const vec2 kBlueVec2 = vec2(-89.90310912, 27.34824973);
9
+
10
+ vec3 getTurboColormap(const float v) {
11
+ float x = clamp(v, 0.0, 1.0);
12
+ float x2 = x * x;
13
+ vec4 v4 = vec4(1.0, x, x2, x2 * x);
14
+ vec2 v2 = v4.zw * v4.z;
15
+ return vec3(
16
+ dot(v4, kRedVec4) + dot(v2, kRedVec2),
17
+ dot(v4, kGreenVec4) + dot(v2, kGreenVec2),
18
+ dot(v4, kBlueVec4) + dot(v2, kBlueVec2)
19
+ );
20
+ }
@@ -0,0 +1,13 @@
1
+ // Derived from https://www.gamedev.net/tutorials/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/
2
+
3
+ float getInterleavedGradientNoise(const vec2 uv) {
4
+ vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);
5
+ return fract(magic.z * fract(dot(uv, magic.xy)));
6
+ }
7
+
8
+ vec3 getVogelDisk(const float index, const float count, const float phi) {
9
+ float goldenAngle = 2.4;
10
+ float theta = index * goldenAngle + phi;
11
+ float r = sqrt(index + 0.5) / sqrt(count);
12
+ return vec3(cos(theta), sin(theta), r);
13
+ }
@@ -0,0 +1,66 @@
1
+ import {
2
+ CustomShader,
3
+ CustomShaderMode,
4
+ CustomShaderTranslucencyMode,
5
+ LightingModel,
6
+ } from "cesium";
7
+
8
+ export const NonPBRWithTextureLightingShader = new CustomShader({
9
+ mode: CustomShaderMode.MODIFY_MATERIAL, // Need lighting
10
+ lightingModel: LightingModel.PBR,
11
+ translucencyMode: CustomShaderTranslucencyMode.OPAQUE,
12
+ fragmentShaderText: /* glsl */ `
13
+ void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {
14
+ vec4 baseColorWithAlpha = vec4(1.0);
15
+
16
+ // Use texture
17
+ // ref: https://github.com/CesiumGS/cesium/blob/50468896ca7d6071e0f8fb359598c03879fbf0a2/packages/engine/Source/Shaders/Model/MaterialStageFS.glsl#L71-L85
18
+ #ifdef HAS_BASE_COLOR_TEXTURE
19
+ vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
20
+
21
+ #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
22
+ baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
23
+ #endif
24
+
25
+ baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
26
+
27
+ #ifdef HAS_BASE_COLOR_FACTOR
28
+ baseColorWithAlpha *= u_baseColorFactor;
29
+ #endif
30
+ #endif
31
+
32
+ // Use attribute's color
33
+ // ref: https://github.com/CesiumGS/cesium/blob/50468896ca7d6071e0f8fb359598c03879fbf0a2/packages/engine/Source/Shaders/Model/MaterialStageFS.glsl#L89
34
+ #ifdef HAS_POINT_CLOUD_COLOR_STYLE
35
+ baseColorWithAlpha = v_pointCloudColor;
36
+ #elif defined(HAS_COLOR_0)
37
+ vec4 color = fsInput.attributes.color_0;
38
+ // .pnts files store colors in the sRGB color space
39
+ #ifdef HAS_SRGB_COLOR
40
+ color = czm_srgbToLinear(color);
41
+ #endif
42
+ baseColorWithAlpha *= color;
43
+ #endif
44
+
45
+ material.diffuse = baseColorWithAlpha.rgb;
46
+
47
+ material.specular = vec3(0.0);
48
+ material.emissive = vec3(0.0);
49
+ material.alpha = 1.0;
50
+ }
51
+ `,
52
+ });
53
+
54
+ export const NonPBRLightingShader = new CustomShader({
55
+ mode: CustomShaderMode.MODIFY_MATERIAL, // Need lighting
56
+ lightingModel: LightingModel.PBR,
57
+ translucencyMode: CustomShaderTranslucencyMode.OPAQUE,
58
+ fragmentShaderText: /* glsl */ `
59
+ void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {
60
+ material.diffuse = vec3(1.);
61
+ material.specular = vec3(0.0);
62
+ material.emissive = vec3(0.0);
63
+ material.alpha = 1.0;
64
+ }
65
+ `,
66
+ });
@@ -0,0 +1,5 @@
1
+ uniform vec3 u_reearth_sphericalHarmonicCoefficients[9];
2
+ uniform bool u_reearth_globeImageBasedLighting;
3
+
4
+ vec4 reearth_computeImageBasedLightingColor(vec4 color);
5
+ vec3 reearth_calculateElevationMapForGlobe(vec4 colorToAlpha, vec3 color);