@reearth/core 0.0.7-alpha.0 → 0.0.7-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/dist/core.js +34320 -34354
  2. package/dist/core.umd.cjs +3868 -3826
  3. package/dist/{index-DqatWUTw.js → index-DqGWVPtz.js} +0 -1
  4. package/dist/index.d.ts +217 -212
  5. package/package.json +8 -8
  6. package/src/Map/ClusteredLayers/index.tsx +2 -2
  7. package/src/Map/Layer/index.tsx +3 -3
  8. package/src/Map/Layers/hooks.ts +10 -0
  9. package/src/Map/Layers/index.tsx +2 -2
  10. package/src/Map/Sketch/hooks.ts +52 -72
  11. package/src/Map/Sketch/index.tsx +2 -24
  12. package/src/Map/Sketch/preset.ts +2 -0
  13. package/src/Map/Sketch/types.ts +31 -0
  14. package/src/Map/hooks.ts +0 -4
  15. package/src/Map/index.tsx +8 -5
  16. package/src/Map/ref.ts +4 -7
  17. package/src/Map/types/index.ts +34 -216
  18. package/src/Map/types/viewerProperty.ts +215 -0
  19. package/src/Map/useTimelineManager.ts +5 -3
  20. package/src/Map/utils.ts +1 -43
  21. package/src/Visualizer/coreContext.tsx +1 -8
  22. package/src/Visualizer/hooks.ts +20 -77
  23. package/src/Visualizer/index.stories.tsx +4 -48
  24. package/src/Visualizer/index.tsx +8 -6
  25. package/src/Visualizer/useCoreAPI.ts +30 -0
  26. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +1 -1
  27. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +1 -1
  28. package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -1
  29. package/src/engines/Cesium/Feature/Model/index.tsx +10 -9
  30. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +8 -6
  31. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +2 -2
  32. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +1 -1
  33. package/src/engines/Cesium/Feature/Tileset/hooks.ts +12 -11
  34. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +1 -1
  35. package/src/engines/Cesium/Feature/Tileset/index.tsx +4 -4
  36. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +10 -1
  37. package/src/engines/Cesium/Feature/index.tsx +5 -4
  38. package/src/engines/Cesium/Feature/utils.tsx +3 -2
  39. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
  40. package/src/engines/Cesium/core/Globe.tsx +36 -68
  41. package/src/engines/Cesium/core/Imagery.test.ts +9 -9
  42. package/src/engines/Cesium/core/Imagery.tsx +17 -19
  43. package/src/engines/Cesium/core/Indicator/Indicator.tsx +8 -8
  44. package/src/engines/Cesium/hooks/useCamera.ts +135 -0
  45. package/src/engines/Cesium/{cameraLimiter.ts → hooks/useCameraLimiter.ts} +22 -45
  46. package/src/engines/Cesium/{useEngineRef.test.tsx → hooks/useEngineRef.test.tsx} +38 -34
  47. package/src/engines/Cesium/{useEngineRef.ts → hooks/useEngineRef.ts} +43 -41
  48. package/src/engines/Cesium/hooks/useExplicitRender.ts +65 -0
  49. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +77 -0
  50. package/src/engines/Cesium/{VertexTerrainElevationMaterial.ts → hooks/useOverrideGlobeShader/VertexTerrainElevationMaterial.ts} +3 -2
  51. package/src/engines/Cesium/{useOverrideGlobeShader.ts → hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts} +20 -17
  52. package/src/engines/Cesium/hooks/useViewerProperty.ts +90 -0
  53. package/src/engines/Cesium/hooks.ts +129 -366
  54. package/src/engines/Cesium/index.stories.tsx +1 -1
  55. package/src/engines/Cesium/index.tsx +60 -62
  56. package/src/engines/index.ts +1 -1
  57. package/src/mantle/atoms/compute.ts +5 -1
  58. package/src/mantle/compat/types.ts +7 -7
  59. package/src/mantle/data/geojson.ts +53 -22
  60. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
  61. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
  62. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
  63. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
  64. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
  65. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
  66. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
  67. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
  68. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
  69. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
  70. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
  71. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
  72. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
  73. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
  74. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
  75. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
  76. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
  77. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
  78. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
  79. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
  80. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
  81. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
  82. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
  83. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
  84. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
  85. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
  86. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
  87. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
  88. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  89. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  90. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  91. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  92. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  93. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  94. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  95. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  96. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  97. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  98. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  99. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  100. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  101. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  102. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  103. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  104. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  105. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  106. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  107. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  108. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  109. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  110. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  111. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  112. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  113. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  114. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  115. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  116. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  117. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  118. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  119. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  120. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  121. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  122. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  123. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  124. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  125. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  126. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  127. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  128. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  129. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  130. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  131. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  132. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  133. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  134. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  135. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  136. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  137. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  138. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  139. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  140. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  141. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  142. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  143. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  144. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  145. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  146. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  147. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  148. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  149. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  150. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  151. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  152. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  153. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  154. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  155. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  156. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  157. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  158. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  159. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  160. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  161. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  162. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  163. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  164. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  165. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  166. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  167. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  168. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  169. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  170. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  171. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  172. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  173. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  174. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  175. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  176. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  177. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  178. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  179. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  180. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  181. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  182. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  183. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  184. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  185. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  186. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  187. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  188. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  189. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  190. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  191. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  192. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  193. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  194. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  195. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  196. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  197. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  198. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  199. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  200. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  201. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  202. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  203. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  204. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  205. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  206. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  207. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  208. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  209. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  210. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  211. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  212. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  213. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  214. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  215. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  216. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  217. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  218. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  219. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  220. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  221. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  222. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  223. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  224. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  225. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  226. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  227. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  228. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  229. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  230. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  231. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  232. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  233. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  234. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  235. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  236. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  237. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  238. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  239. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  240. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  241. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  242. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  243. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  244. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  245. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  246. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  247. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  248. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  249. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  250. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  251. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  252. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  253. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  254. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  255. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  256. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  257. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  258. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  259. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  260. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  261. package/dist/cesium/Assets/Textures/pin.svg +0 -1
  262. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  263. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  264. package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
  265. package/dist/cesium/ThirdParty/Workers/package.json +0 -1
  266. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
  267. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
  268. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
  269. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  270. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  271. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
  272. package/dist/cesium/Widgets/Animation/Animation.css +0 -127
  273. package/dist/cesium/Widgets/Animation/lighter.css +0 -70
  274. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
  275. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
  276. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
  277. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
  278. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
  279. package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
  280. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  281. package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
  282. package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
  283. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  284. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  285. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  286. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  287. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  288. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  289. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  290. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  291. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  292. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  293. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  294. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  295. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  296. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  297. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  298. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  299. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  300. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  301. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  302. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  303. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  304. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  305. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  306. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  307. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  308. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  309. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  310. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  311. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  312. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  313. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  314. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  315. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  316. package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
  317. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  318. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
  319. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
  320. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  321. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
  322. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
  323. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
  324. package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
  325. package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
  326. package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
  327. package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
  328. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
  329. package/dist/cesium/Widgets/lighter.css +0 -237
  330. package/dist/cesium/Widgets/lighterShared.css +0 -46
  331. package/dist/cesium/Widgets/shared.css +0 -103
  332. package/dist/cesium/Widgets/widgets.css +0 -1346
  333. package/dist/cesium/Workers/chunk-2ED5WI77.js +0 -26
  334. package/dist/cesium/Workers/chunk-2MBPFWCP.js +0 -26
  335. package/dist/cesium/Workers/chunk-3C74MLG3.js +0 -26
  336. package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
  337. package/dist/cesium/Workers/chunk-4N7SRDH5.js +0 -26
  338. package/dist/cesium/Workers/chunk-4T6AS6BZ.js +0 -26
  339. package/dist/cesium/Workers/chunk-5AG2MVRM.js +0 -26
  340. package/dist/cesium/Workers/chunk-5Z6L2FHX.js +0 -26
  341. package/dist/cesium/Workers/chunk-6AUUBDOF.js +0 -26
  342. package/dist/cesium/Workers/chunk-74N6MC2V.js +0 -26
  343. package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
  344. package/dist/cesium/Workers/chunk-7VZHIB6P.js +0 -26
  345. package/dist/cesium/Workers/chunk-7X2YQ6I4.js +0 -27
  346. package/dist/cesium/Workers/chunk-B2SKQ7LU.js +0 -26
  347. package/dist/cesium/Workers/chunk-B4TQDFIE.js +0 -26
  348. package/dist/cesium/Workers/chunk-B6TRTFAA.js +0 -26
  349. package/dist/cesium/Workers/chunk-BK3HCS7I.js +0 -26
  350. package/dist/cesium/Workers/chunk-BOPB43LN.js +0 -26
  351. package/dist/cesium/Workers/chunk-C6DMEJQ7.js +0 -26
  352. package/dist/cesium/Workers/chunk-CN7UN2OZ.js +0 -26
  353. package/dist/cesium/Workers/chunk-CSISXEG7.js +0 -26
  354. package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
  355. package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
  356. package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
  357. package/dist/cesium/Workers/chunk-EXBFEYPQ.js +0 -26
  358. package/dist/cesium/Workers/chunk-FK5KFB6H.js +0 -26
  359. package/dist/cesium/Workers/chunk-HPBHKP5S.js +0 -26
  360. package/dist/cesium/Workers/chunk-JCJ24DHF.js +0 -26
  361. package/dist/cesium/Workers/chunk-JEWHFDAA.js +0 -26
  362. package/dist/cesium/Workers/chunk-JZLZJJQD.js +0 -26
  363. package/dist/cesium/Workers/chunk-KRZBI2MU.js +0 -26
  364. package/dist/cesium/Workers/chunk-KTTUANTJ.js +0 -26
  365. package/dist/cesium/Workers/chunk-LDCAXLGS.js +0 -26
  366. package/dist/cesium/Workers/chunk-LOPN5R3I.js +0 -26
  367. package/dist/cesium/Workers/chunk-MDLPQIMP.js +0 -26
  368. package/dist/cesium/Workers/chunk-MRR3RGFO.js +0 -26
  369. package/dist/cesium/Workers/chunk-NPBZI5YA.js +0 -26
  370. package/dist/cesium/Workers/chunk-NUSW5B6A.js +0 -26
  371. package/dist/cesium/Workers/chunk-OUXRUXNB.js +0 -26
  372. package/dist/cesium/Workers/chunk-QPOPEH3M.js +0 -26
  373. package/dist/cesium/Workers/chunk-R2AN7EKC.js +0 -26
  374. package/dist/cesium/Workers/chunk-RURL6ZX2.js +0 -26
  375. package/dist/cesium/Workers/chunk-SUQM3OSW.js +0 -28
  376. package/dist/cesium/Workers/chunk-UBIRX2SP.js +0 -26
  377. package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
  378. package/dist/cesium/Workers/chunk-VHNZBQTR.js +0 -27
  379. package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
  380. package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
  381. package/dist/cesium/Workers/chunk-VQZSIOZW.js +0 -26
  382. package/dist/cesium/Workers/chunk-WZUWQMI7.js +0 -26
  383. package/dist/cesium/Workers/chunk-YBI55DLZ.js +0 -26
  384. package/dist/cesium/Workers/chunk-YEJWCH6C.js +0 -26
  385. package/dist/cesium/Workers/chunk-YPDO7SPO.js +0 -26
  386. package/dist/cesium/Workers/chunk-ZYWD6OQH.js +0 -26
  387. package/dist/cesium/Workers/combineGeometry.js +0 -26
  388. package/dist/cesium/Workers/createBoxGeometry.js +0 -26
  389. package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
  390. package/dist/cesium/Workers/createCircleGeometry.js +0 -26
  391. package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
  392. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
  393. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
  394. package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
  395. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
  396. package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
  397. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
  398. package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
  399. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
  400. package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
  401. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
  402. package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
  403. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
  404. package/dist/cesium/Workers/createGeometry.js +0 -26
  405. package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
  406. package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
  407. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
  408. package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
  409. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
  410. package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
  411. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
  412. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
  413. package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
  414. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
  415. package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
  416. package/dist/cesium/Workers/createSphereGeometry.js +0 -26
  417. package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
  418. package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
  419. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
  420. package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
  421. package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
  422. package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
  423. package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
  424. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
  425. package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
  426. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
  427. package/dist/cesium/Workers/createWallGeometry.js +0 -26
  428. package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
  429. package/dist/cesium/Workers/decodeDraco.js +0 -26
  430. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
  431. package/dist/cesium/Workers/decodeI3S.js +0 -26
  432. package/dist/cesium/Workers/transcodeKTX2.js +0 -56
  433. package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
  434. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
  435. /package/src/engines/Cesium/{JapanSeaLevelEllipsoid.ts → hooks/useOverrideGlobeShader/JapanSeaLevelEllipsoid.ts} +0 -0
  436. /package/src/engines/Cesium/{vertexTerrainElevationMaterial.glsl → hooks/useOverrideGlobeShader/vertexTerrainElevationMaterial.glsl} +0 -0
@@ -1,42 +1,31 @@
1
1
  import {
2
- Color,
3
2
  Entity,
4
3
  Cesium3DTileFeature,
5
- Cartesian3,
6
4
  Ion,
7
5
  Cesium3DTileset,
8
6
  JulianDate,
9
7
  Cesium3DTilePointFeature,
10
8
  Model,
11
9
  Cartographic,
12
- SunLight,
13
- DirectionalLight,
14
10
  Viewer as CesiumViewer,
15
11
  Primitive,
16
12
  GroundPrimitive,
17
13
  ShadowMap,
18
14
  ImageryLayer,
19
- Scene,
20
- Math as CesiumMath,
21
15
  } from "cesium";
22
- import CesiumDnD, { Context } from "cesium-dnd";
23
- import { isEqual } from "lodash-es";
24
- import { RefObject, useCallback, useEffect, useMemo, useRef } from "react";
16
+ import { MutableRefObject, RefObject, useCallback, useEffect, useMemo, useRef } from "react";
25
17
  import type { CesiumComponentRef, CesiumMovementEvent, RootEventTarget } from "resium";
26
- import { useCustomCompareCallback } from "use-custom-compare";
27
18
 
28
19
  import type {
29
- Camera,
30
- LatLng,
31
20
  LayerSelectionReason,
32
21
  EngineRef,
33
- SceneProperty,
22
+ ViewerProperty,
34
23
  MouseEvents,
35
24
  LayerEditEvent,
36
25
  LayerVisibilityEvent,
37
26
  } from "..";
38
27
  import { e2eAccessToken, setE2ECesiumViewer } from "../../e2eConfig";
39
- import { ComputedFeature, DataType, SelectedFeatureInfo } from "../../mantle";
28
+ import { ComputedFeature, DataType, SelectedFeatureInfo, LatLng, Camera } from "../../mantle";
40
29
  import {
41
30
  LayerLoadEvent,
42
31
  LayerSelectWithRectEnd,
@@ -45,20 +34,22 @@ import {
45
34
  LayersRef,
46
35
  RequestingRenderMode,
47
36
  } from "../../Map";
48
- import { FORCE_REQUEST_RENDER, NO_REQUEST_RENDER, REQUEST_RENDER_ONCE } from "../../Map/hooks";
49
37
  import { TimelineManagerRef } from "../../Map/useTimelineManager";
50
38
  import { FEATURE_FLAGS } from "../../Visualizer/featureFlags";
51
39
 
52
- import { useCameraLimiter } from "./cameraLimiter";
53
- import { getCamera, isDraggable, isSelectable } from "./common";
40
+ import { isSelectable } from "./common";
54
41
  import { getTag, type Context as FeatureContext } from "./Feature";
55
42
  import { arrayToCartecian3 } from "./helpers/sphericalHaromic";
43
+ import useCamera from "./hooks/useCamera";
44
+ import useEngineRef from "./hooks/useEngineRef";
45
+ import useExplicitRender from "./hooks/useExplicitRender";
46
+ import useLayerDragDrop from "./hooks/useLayerDragDrop";
56
47
  import { useLayerSelectWithRect } from "./hooks/useLayerSelectWithRect";
48
+ import { useOverrideGlobeShader } from "./hooks/useOverrideGlobeShader/useOverrideGlobeShader";
49
+ import useViewerProperty from "./hooks/useViewerProperty";
57
50
  import { InternalCesium3DTileFeature } from "./types";
58
- import useEngineRef from "./useEngineRef";
59
- import { useOverrideGlobeShader } from "./useOverrideGlobeShader";
60
51
  import { makeMouseEventProps } from "./utils/mouse";
61
- import { convertCartesian3ToPosition, findEntity, getEntityContent } from "./utils/utils";
52
+ import { findEntity, getEntityContent } from "./utils/utils";
62
53
 
63
54
  interface CustomGlobeSurface {
64
55
  tileProvider: {
@@ -74,46 +65,48 @@ type CesiumMouseWheelEvent = (delta: number) => void;
74
65
  export default ({
75
66
  ref,
76
67
  property,
77
- camera,
68
+ time,
78
69
  selectedLayerId,
79
70
  selectionReason,
80
- isLayerDraggable,
81
- isLayerDragging,
82
71
  meta,
83
72
  layersRef,
84
73
  featureFlags,
85
- requestingRenderMode,
86
- shouldRender,
87
74
  timelineManagerRef,
88
- cameraForceHorizontalRoll = false,
75
+ isLayerDraggable,
76
+ isLayerDragging,
77
+ shouldRender,
78
+ requestingRenderMode,
79
+ camera,
80
+ cameraForceHorizontalRoll,
89
81
  onLayerSelect,
90
- onCameraChange,
91
82
  onLayerDrag,
92
83
  onLayerDrop,
93
84
  onLayerEdit,
94
85
  onLayerSelectWithRectStart,
95
86
  onLayerSelectWithRectMove,
96
87
  onLayerSelectWithRectEnd,
97
- onMount,
98
88
  onLayerVisibility,
99
89
  onLayerLoad,
90
+ onCameraChange,
91
+ onMount,
100
92
  }: {
101
93
  ref: React.ForwardedRef<EngineRef>;
102
- property?: SceneProperty;
103
- camera?: Camera;
94
+ property?: ViewerProperty;
95
+ time?: string | Date;
104
96
  selectedLayerId?: {
105
97
  layerId?: string;
106
98
  featureId?: string;
107
99
  };
108
100
  layersRef?: RefObject<LayersRef>;
109
101
  selectionReason?: LayerSelectionReason;
110
- isLayerDraggable?: boolean;
111
- isLayerDragging?: boolean;
112
102
  meta?: Record<string, unknown>;
113
103
  featureFlags: number;
114
- requestingRenderMode?: React.MutableRefObject<RequestingRenderMode>;
115
- shouldRender?: boolean;
116
104
  timelineManagerRef?: TimelineManagerRef;
105
+ isLayerDraggable?: boolean;
106
+ isLayerDragging?: boolean;
107
+ shouldRender?: boolean;
108
+ requestingRenderMode?: MutableRefObject<RequestingRenderMode>;
109
+ camera?: Camera;
117
110
  cameraForceHorizontalRoll?: boolean;
118
111
  onLayerSelect?: (
119
112
  layerId?: string,
@@ -121,7 +114,6 @@ export default ({
121
114
  options?: LayerSelectionReason,
122
115
  info?: SelectedFeatureInfo,
123
116
  ) => void;
124
- onCameraChange?: (camera: Camera) => void;
125
117
  onLayerDrag?: (layerId: string, featureId: string | undefined, position: LatLng) => void;
126
118
  onLayerDrop?: (
127
119
  layerId: string,
@@ -132,16 +124,17 @@ export default ({
132
124
  onLayerSelectWithRectStart?: (e: LayerSelectWithRectStart) => void;
133
125
  onLayerSelectWithRectMove?: (e: LayerSelectWithRectMove) => void;
134
126
  onLayerSelectWithRectEnd?: (e: LayerSelectWithRectEnd) => void;
135
- onMount?: () => void;
136
127
  onLayerVisibility?: (e: LayerVisibilityEvent) => void;
137
128
  onLayerLoad?: (e: LayerLoadEvent) => void;
129
+ onCameraChange?: (camera: Camera) => void;
130
+ onMount?: () => void;
138
131
  }) => {
139
132
  const cesium = useRef<CesiumComponentRef<CesiumViewer>>(null);
140
- const cesiumIonDefaultAccessToken =
133
+
134
+ const cesiumIonAccessToken =
141
135
  typeof meta?.cesiumIonAccessToken === "string" && meta.cesiumIonAccessToken
142
136
  ? meta.cesiumIonAccessToken
143
137
  : Ion.defaultAccessToken;
144
- const cesiumIonAccessToken = property?.default?.ion || cesiumIonDefaultAccessToken;
145
138
 
146
139
  // expose ref
147
140
  const engineAPI = useEngineRef(ref, cesium);
@@ -155,54 +148,6 @@ export default ({
155
148
  featureFlags,
156
149
  });
157
150
 
158
- const backgroundColor = useMemo(
159
- () =>
160
- property?.default?.bgcolor ? Color.fromCssColorString(property.default.bgcolor) : undefined,
161
- [property?.default?.bgcolor],
162
- );
163
-
164
- const light = useMemo(() => {
165
- let light;
166
- if (property?.light?.lightType === "sunLight") {
167
- light = new SunLight({
168
- color: property.light?.lightColor
169
- ? Color.fromCssColorString(property.light.lightColor)
170
- : undefined,
171
- intensity: property.light?.lightIntensity,
172
- });
173
- } else if (property?.light?.lightType === "directionalLight") {
174
- light = new DirectionalLight({
175
- direction: new Cartesian3(
176
- property?.light?.lightDirectionX ?? 1,
177
- property?.light?.lightDirectionY ?? 0,
178
- property?.light?.lightDirectionZ ?? 0,
179
- ),
180
- color: property.light?.lightColor
181
- ? Color.fromCssColorString(property.light.lightColor)
182
- : undefined,
183
- intensity: property.light?.lightIntensity,
184
- });
185
- } else {
186
- light = cesium.current?.cesiumElement?.scene.light;
187
- if (light) {
188
- light.color = property?.light?.lightColor
189
- ? Color.fromCssColorString(property.light.lightColor)
190
- : light.color;
191
- light.intensity = property?.light?.lightIntensity
192
- ? property.light.lightIntensity
193
- : light.intensity;
194
- }
195
- }
196
- return light;
197
- }, [
198
- property?.light?.lightType,
199
- property?.light?.lightColor,
200
- property?.light?.lightDirectionX,
201
- property?.light?.lightDirectionY,
202
- property?.light?.lightDirectionZ,
203
- property?.light?.lightIntensity,
204
- ]);
205
-
206
151
  // shadow map
207
152
  type ShadowMapBias = {
208
153
  polygonOffsetFactor?: number;
@@ -222,11 +167,11 @@ export default ({
222
167
  })
223
168
  | undefined;
224
169
  if (!shadowMap) return;
225
- shadowMap.softShadows = property?.atmosphere?.softShadow ?? false;
226
- shadowMap.darkness = property?.atmosphere?.shadowDarkness ?? 0.3;
227
- shadowMap.size = property?.atmosphere?.shadowResolution ?? 2048;
170
+ shadowMap.softShadows = property?.scene?.shadow?.shadowMap?.softShadows ?? false;
171
+ shadowMap.darkness = property?.scene?.shadow?.shadowMap?.darkness ?? 0.3;
172
+ shadowMap.size = property?.scene?.shadow?.shadowMap?.size ?? 2048;
173
+ shadowMap.maximumDistance = property?.scene?.shadow?.shadowMap?.maximumDistance ?? 5000;
228
174
  shadowMap.fadingEnabled = true;
229
- shadowMap.maximumDistance = property?.atmosphere?.shadowMaximumDistance ?? 5000;
230
175
  shadowMap.normalOffset = true;
231
176
 
232
177
  // bias
@@ -279,91 +224,12 @@ export default ({
279
224
  Object.assign(shadowMap._pointBias, defaultPointBias);
280
225
  }
281
226
  }, [
282
- property?.atmosphere?.softShadow,
283
- property?.atmosphere?.shadowDarkness,
284
- property?.atmosphere?.shadowResolution,
285
- property?.atmosphere?.shadowMaximumDistance,
227
+ property?.scene?.shadow?.shadowMap?.softShadows,
228
+ property?.scene?.shadow?.shadowMap?.darkness,
229
+ property?.scene?.shadow?.shadowMap?.size,
230
+ property?.scene?.shadow?.shadowMap?.maximumDistance,
286
231
  ]);
287
232
 
288
- useEffect(() => {
289
- engineAPI.changeSceneMode(property?.default?.sceneMode, 0);
290
- }, [property?.default?.sceneMode, engineAPI]);
291
-
292
- // move to initial position at startup
293
- const initialCameraFlight = useRef(false);
294
-
295
- const handleMount = useCustomCompareCallback(
296
- () => {
297
- if (initialCameraFlight.current) return;
298
- initialCameraFlight.current = true;
299
- if (
300
- property?.cameraLimiter?.cameraLimitterEnabled &&
301
- property?.cameraLimiter?.cameraLimitterTargetArea
302
- ) {
303
- engineAPI.flyTo(property?.cameraLimiter?.cameraLimitterTargetArea, { duration: 0 });
304
- } else if (property?.default?.camera ?? property?.camera?.camera) {
305
- const camera = property?.default?.camera ?? property?.camera?.camera;
306
- engineAPI.flyTo(camera as Camera, { duration: 0 });
307
- }
308
- const camera = getCamera(cesium?.current?.cesiumElement);
309
- if (camera) {
310
- onCameraChange?.(camera);
311
- }
312
- onMount?.();
313
- },
314
- [
315
- engineAPI,
316
- property?.default?.camera,
317
- property?.camera?.camera,
318
- property?.cameraLimiter?.cameraLimitterEnabled,
319
- onCameraChange,
320
- onMount,
321
- ],
322
- (prevDeps, nextDeps) =>
323
- prevDeps[0] === nextDeps[0] &&
324
- isEqual(prevDeps[1], nextDeps[1]) &&
325
- isEqual(prevDeps[2], nextDeps[2]) &&
326
- prevDeps[3] === nextDeps[3] &&
327
- prevDeps[4] === nextDeps[4] &&
328
- prevDeps[5] === nextDeps[5],
329
- );
330
-
331
- const handleUnmount = useCallback(() => {
332
- initialCameraFlight.current = false;
333
- }, []);
334
-
335
- // cache the camera data emitted from viewer camera change
336
- const emittedCamera = useRef<Camera[]>([]);
337
- const updateCamera = useCallback(() => {
338
- const viewer = cesium?.current?.cesiumElement;
339
- if (!viewer || viewer.isDestroyed() || !onCameraChange) return;
340
-
341
- const c = getCamera(viewer);
342
- if (c && !isEqual(c, camera)) {
343
- emittedCamera.current.push(c);
344
- // The state change is not sync now. This number is how many state updates can actually happen to be merged within one re-render.
345
- if (emittedCamera.current.length > 10) {
346
- emittedCamera.current.shift();
347
- }
348
- onCameraChange?.(c);
349
- }
350
- }, [camera, onCameraChange]);
351
-
352
- const handleCameraChange = useCallback(() => {
353
- updateCamera();
354
- }, [updateCamera]);
355
-
356
- const handleCameraMoveEnd = useCallback(() => {
357
- updateCamera();
358
- }, [updateCamera]);
359
-
360
- useEffect(() => {
361
- if (camera && !emittedCamera.current.includes(camera)) {
362
- engineAPI.flyTo(camera, { duration: 0 });
363
- emittedCamera.current = [];
364
- }
365
- }, [camera, engineAPI]);
366
-
367
233
  const prevSelectedEntity = useRef<
368
234
  | Entity
369
235
  | Cesium3DTileset
@@ -379,7 +245,11 @@ export default ({
379
245
  const viewer = cesium.current?.cesiumElement;
380
246
  if (!viewer || viewer.isDestroyed()) return;
381
247
 
382
- if (prevSelectedImageryFeatureId.current === selectedLayerId?.featureId) return;
248
+ if (
249
+ prevSelectedImageryFeatureId.current === selectedLayerId?.featureId &&
250
+ selectedLayerId?.featureId !== undefined
251
+ )
252
+ return;
383
253
 
384
254
  const prevTag = getTag(prevSelectedEntity.current);
385
255
  if (
@@ -489,22 +359,25 @@ export default ({
489
359
 
490
360
  const sphericalHarmonicCoefficients = useMemo(
491
361
  () =>
492
- property?.light?.sphericalHarmonicCoefficients
362
+ property?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients
493
363
  ? arrayToCartecian3(
494
- property?.light?.sphericalHarmonicCoefficients,
495
- property?.light?.imageBasedLightIntensity,
364
+ property?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
365
+ property?.scene?.imageBasedLighting?.intensity,
496
366
  )
497
367
  : undefined,
498
- [property?.light?.sphericalHarmonicCoefficients, property?.light?.imageBasedLightIntensity],
368
+ [
369
+ property?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
370
+ property?.scene?.imageBasedLighting?.intensity,
371
+ ],
499
372
  );
500
373
 
501
374
  useOverrideGlobeShader({
502
375
  cesium,
503
376
  sphericalHarmonicCoefficients,
504
- globeShadowDarkness: property?.atmosphere?.globeShadowDarkness,
505
- globeImageBasedLighting: property?.atmosphere?.globeImageBasedLighting,
506
- enableLighting: property?.atmosphere?.enable_lighting ?? property?.globeLighting?.globeLighting,
507
- hasVertexNormals: property?.terrain?.terrain && property.terrain.terrainNormal,
377
+ globeShadowDarkness: property?.scene?.shadow?.darkness,
378
+ globeImageBasedLighting: property?.scene?.imageBasedLighting?.enabled,
379
+ enableLighting: property?.globe?.enableLighting,
380
+ hasVertexNormals: property?.terrain?.enabled && property.terrain.normal,
508
381
  terrain: property?.terrain,
509
382
  });
510
383
 
@@ -539,18 +412,18 @@ export default ({
539
412
  wheel: CesiumMouseWheelEvent | undefined;
540
413
  } = {
541
414
  click: undefined,
542
- doubleclick: undefined,
543
- mousedown: undefined,
544
- mouseup: undefined,
545
- rightclick: undefined,
546
- rightdown: undefined,
547
- rightup: undefined,
548
- middleclick: undefined,
549
- middledown: undefined,
550
- middleup: undefined,
551
- mousemove: undefined,
552
- mouseenter: undefined,
553
- mouseleave: undefined,
415
+ doubleClick: undefined,
416
+ mouseDown: undefined,
417
+ mouseUp: undefined,
418
+ rightClick: undefined,
419
+ rightDown: undefined,
420
+ rightUp: undefined,
421
+ middleClick: undefined,
422
+ middleDown: undefined,
423
+ middleUp: undefined,
424
+ mouseMove: undefined,
425
+ mouseEnter: undefined,
426
+ mouseLeave: undefined,
554
427
  wheel: (delta: number) => {
555
428
  handleMouseWheel(delta);
556
429
  },
@@ -775,55 +648,6 @@ export default ({
775
648
  viewer.scene.requestRender();
776
649
  }, []);
777
650
 
778
- // enable Drag and Drop Layers
779
- const handleLayerDrag = useCallback(
780
- (e: Entity, position: Cartesian3 | undefined, _context: Context): boolean | void => {
781
- const viewer = cesium.current?.cesiumElement;
782
- if (!viewer || viewer.isDestroyed() || !isSelectable(e) || !isDraggable(e)) return false;
783
-
784
- const pos = convertCartesian3ToPosition(cesium.current?.cesiumElement, position);
785
- if (!pos) return false;
786
-
787
- const tag = getTag(e);
788
- if (!tag) return false;
789
-
790
- onLayerDrag?.(tag.layerId || "", tag.featureId, pos);
791
- },
792
- [onLayerDrag],
793
- );
794
-
795
- const handleLayerDrop = useCallback(
796
- (e: Entity, position: Cartesian3 | undefined): boolean | void => {
797
- const viewer = cesium.current?.cesiumElement;
798
- if (!viewer || viewer.isDestroyed()) return false;
799
-
800
- const tag = getTag(e);
801
- const pos = convertCartesian3ToPosition(cesium.current?.cesiumElement, position);
802
- onLayerDrop?.(tag?.layerId || "", tag?.featureId || "", pos);
803
-
804
- return false; // let apollo-client handle optimistic updates
805
- },
806
- [onLayerDrop],
807
- );
808
-
809
- const cesiumDnD = useRef<CesiumDnD>();
810
- useEffect(() => {
811
- const viewer = cesium.current?.cesiumElement;
812
- if (!viewer || viewer.isDestroyed()) return;
813
- cesiumDnD.current = new CesiumDnD(viewer, {
814
- onDrag: handleLayerDrag,
815
- onDrop: handleLayerDrop,
816
- dragDelay: 1000,
817
- initialDisabled: !isLayerDraggable,
818
- });
819
- return () => {
820
- if (!viewer || viewer.isDestroyed()) return;
821
- cesiumDnD.current?.disable();
822
- };
823
- }, [handleLayerDrag, handleLayerDrop, isLayerDraggable]);
824
- const { cameraViewBoundaries, cameraViewOuterBoundaries, cameraViewBoundariesMaterial } =
825
- useCameraLimiter(cesium, camera, property?.cameraLimiter);
826
-
827
651
  const context = useMemo<FeatureContext>(
828
652
  () => ({
829
653
  selectionReason,
@@ -843,147 +667,86 @@ export default ({
843
667
  );
844
668
 
845
669
  useEffect(() => {
846
- if (!cesium.current?.cesiumElement) return;
847
- const allowCameraMove = !!(featureFlags & FEATURE_FLAGS.CAMERA_MOVE);
848
- const allowCameraZoom = !!(featureFlags & FEATURE_FLAGS.CAMERA_ZOOM);
849
- const allowCameraTilt = !!(featureFlags & FEATURE_FLAGS.CAMERA_TILT);
850
- const allowCameraLook = !!(featureFlags & FEATURE_FLAGS.CAMERA_LOOK);
851
- cesium.current.cesiumElement.scene.screenSpaceCameraController.enableTranslate =
852
- allowCameraMove;
853
- cesium.current.cesiumElement.scene.screenSpaceCameraController.enableRotate = allowCameraMove;
854
- cesium.current.cesiumElement.scene.screenSpaceCameraController.enableLook = allowCameraLook;
855
- cesium.current.cesiumElement.scene.screenSpaceCameraController.enableTilt = allowCameraTilt;
856
- cesium.current.cesiumElement.scene.screenSpaceCameraController.enableZoom = allowCameraZoom;
857
- }, [featureFlags]);
858
-
859
- // Anti-aliasing
860
- useEffect(() => {
861
- const viewer = cesium.current?.cesiumElement;
862
- if (!viewer || viewer.isDestroyed()) return;
863
- // TODO: FXAA doesn't support alpha blending in Cesium, so we will enable FXAA when this is fixed.
864
- // viewer.scene.postProcessStages.fxaa.enabled = property?.render?.antialias === "high";
865
- viewer.scene.msaaSamples =
866
- property?.render?.antialias === "extreme"
867
- ? 8
868
- : property?.render?.antialias === "high"
869
- ? 6
870
- : property?.render?.antialias === "medium"
871
- ? 4
872
- : 1; // default as 1
873
- }, [property?.render?.antialias]);
874
-
875
- // explicit rendering
876
- const explicitRender = useCallback(() => {
877
- const viewer = cesium.current?.cesiumElement;
878
- if (!requestingRenderMode?.current || !viewer || viewer.isDestroyed()) return;
879
- viewer.scene.requestRender();
880
- if (requestingRenderMode.current === REQUEST_RENDER_ONCE) {
881
- requestingRenderMode.current = NO_REQUEST_RENDER;
670
+ const globe = cesium.current?.cesiumElement?.scene.globe;
671
+ if (globe) {
672
+ const surface = (globe as any)._surface as CustomGlobeSurface;
673
+ if (surface) {
674
+ surface.tileProvider._debug.wireframe = property?.debug?.showGlobeWireframe ?? false;
675
+ }
882
676
  }
883
- }, [requestingRenderMode]);
884
-
885
- const explicitRenderRef = useRef<() => void>();
886
-
887
- useEffect(() => {
888
- explicitRenderRef.current = explicitRender;
889
- }, [explicitRender]);
677
+ }, [property?.debug?.showGlobeWireframe]);
890
678
 
891
679
  useEffect(() => {
892
- const viewer = cesium.current?.cesiumElement;
893
- if (!viewer || viewer.isDestroyed()) return;
894
- return viewer.scene.postUpdate.addEventListener(() => {
895
- explicitRenderRef.current?.();
680
+ if (!time) return;
681
+ timelineManagerRef?.current?.commit({
682
+ cmd: "SET_TIME",
683
+ payload: {
684
+ start: time,
685
+ stop: time,
686
+ current: time,
687
+ },
688
+ committer: {
689
+ source: "initialize",
690
+ id: "reearth_core",
691
+ },
896
692
  });
897
- }, []);
693
+ }, [time, timelineManagerRef]);
898
694
 
899
- // render one frame when scene property changes
900
- useEffect(() => {
901
- if (requestingRenderMode) {
902
- requestingRenderMode.current = REQUEST_RENDER_ONCE;
903
- }
904
- }, [property, requestingRenderMode]);
695
+ const { sceneLight, sceneBackgroundColor, sceneMsaaSamples, sceneMode } = useViewerProperty({
696
+ property,
697
+ cesium,
698
+ });
905
699
 
906
- // force render when timeline is animating or is shouldRender
907
- useEffect(() => {
908
- const viewer = cesium.current?.cesiumElement;
909
- if (!viewer || viewer.isDestroyed()) return;
910
- if (requestingRenderMode) {
911
- requestingRenderMode.current =
912
- isLayerDragging || shouldRender
913
- ? FORCE_REQUEST_RENDER
914
- : requestingRenderMode.current === REQUEST_RENDER_ONCE
915
- ? REQUEST_RENDER_ONCE
916
- : NO_REQUEST_RENDER;
917
- }
918
- }, [isLayerDragging, shouldRender, requestingRenderMode]);
700
+ useLayerDragDrop({ cesium, onLayerDrag, onLayerDrop, isLayerDraggable });
919
701
 
920
- // cesium timeline & animation widget
921
- useEffect(() => {
922
- const viewer = cesium.current?.cesiumElement;
923
- if (!viewer) return;
924
- if (viewer.animation?.container) {
925
- (viewer.animation.container as HTMLDivElement).style.visibility = property?.timeline?.visible
926
- ? "visible"
927
- : "hidden";
928
- }
929
- if (viewer.timeline?.container) {
930
- (viewer.timeline.container as HTMLDivElement).style.visibility = property?.timeline?.visible
931
- ? "visible"
932
- : "hidden";
933
- }
934
- viewer.forceResize();
935
- }, [property]);
702
+ useExplicitRender({ cesium, requestingRenderMode, isLayerDragging, shouldRender, property });
936
703
 
937
- const globe = cesium.current?.cesiumElement?.scene.globe;
704
+ const {
705
+ cameraViewBoundaries,
706
+ cameraViewOuterBoundaries,
707
+ cameraViewBoundariesMaterial,
708
+ handleCameraChange,
709
+ handleCameraMoveEnd,
710
+ mountCamera,
711
+ unmountCamera,
712
+ } = useCamera({
713
+ cesium,
714
+ property,
715
+ camera,
716
+ cameraForceHorizontalRoll,
717
+ featureFlags,
718
+ engineAPI,
719
+ onCameraChange,
720
+ });
938
721
 
939
- useEffect(() => {
940
- if (globe) {
941
- const surface = (globe as any)._surface as CustomGlobeSurface;
942
- if (surface) {
943
- surface.tileProvider._debug.wireframe = property?.render?.showWireframe ?? false;
944
- }
945
- }
946
- }, [globe, property?.render?.showWireframe]);
947
-
948
- const onPreRenderCallback = useCallback(
949
- (scene: Scene) => {
950
- if (!scene.camera || !cameraForceHorizontalRoll) return;
951
- if (Math.abs(CesiumMath.negativePiToPi(scene.camera.roll)) > Math.PI / 86400) {
952
- scene.camera.setView({
953
- orientation: {
954
- heading: scene.camera.heading,
955
- pitch: scene.camera.pitch,
956
- roll: 0,
957
- },
958
- });
959
- }
960
- },
961
- [cameraForceHorizontalRoll],
962
- );
722
+ const handleMount = useCallback(() => {
723
+ mountCamera?.();
724
+ onMount?.();
725
+ }, [mountCamera, onMount]);
963
726
 
964
- useEffect(() => {
965
- const viewer = cesium.current?.cesiumElement;
966
- if (!viewer) return;
967
- return viewer.scene.preRender.addEventListener(onPreRenderCallback);
968
- }, [onPreRenderCallback]);
727
+ const handleUnmount = useCallback(() => {
728
+ unmountCamera?.();
729
+ }, [unmountCamera]);
969
730
 
970
731
  return {
971
- backgroundColor,
972
732
  cesium,
973
- cameraViewBoundaries,
974
- cameraViewOuterBoundaries,
975
- cameraViewBoundariesMaterial,
976
733
  cesiumIonAccessToken,
977
734
  mouseEventHandles,
735
+ layerSelectWithRectEventHandlers,
978
736
  context,
979
- light,
980
- handleMount,
981
- handleUnmount,
982
- handleUpdate,
983
- handleClick,
737
+ sceneLight,
738
+ sceneBackgroundColor,
739
+ sceneMsaaSamples,
740
+ sceneMode,
741
+ cameraViewBoundaries,
742
+ cameraViewOuterBoundaries,
743
+ cameraViewBoundariesMaterial,
984
744
  handleCameraChange,
985
745
  handleCameraMoveEnd,
986
- layerSelectWithRectEventHandlers,
746
+ handleUpdate,
747
+ handleClick,
748
+ handleMount,
749
+ handleUnmount,
987
750
  };
988
751
  };
989
752
 
@@ -35,7 +35,7 @@ Default.args = {
35
35
  tiles: [
36
36
  {
37
37
  id: "default",
38
- tile_type: "default",
38
+ type: "default",
39
39
  },
40
40
  ],
41
41
  },