@reearth/core 0.0.7-alpha.5 → 0.0.7-beta.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 (169) hide show
  1. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  2. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +8 -8
  3. package/dist/cesium/Widgets/widgets.css +8 -8
  4. package/dist/cesium/Workers/{chunk-SUQM3OSW.js → chunk-2YD5QWGR.js} +2 -2
  5. package/dist/cesium/Workers/{chunk-74N6MC2V.js → chunk-3T4KR75X.js} +2 -2
  6. package/dist/cesium/Workers/chunk-46KFVW24.js +26 -0
  7. package/dist/cesium/Workers/chunk-4EI6PP43.js +28 -0
  8. package/dist/cesium/Workers/{chunk-YEJWCH6C.js → chunk-4RS52VIY.js} +2 -2
  9. package/dist/cesium/Workers/{chunk-NPBZI5YA.js → chunk-4YLYA3DC.js} +1 -1
  10. package/dist/cesium/Workers/{chunk-JEWHFDAA.js → chunk-5ENAGXBI.js} +2 -2
  11. package/dist/cesium/Workers/{chunk-MRR3RGFO.js → chunk-5VIB3TI5.js} +2 -2
  12. package/dist/cesium/Workers/{chunk-JCJ24DHF.js → chunk-6NGZLDFZ.js} +2 -2
  13. package/dist/cesium/Workers/{chunk-7X2YQ6I4.js → chunk-6RGNWVZ2.js} +2 -2
  14. package/dist/cesium/Workers/{chunk-BK3HCS7I.js → chunk-7AZZVJ52.js} +2 -2
  15. package/dist/cesium/Workers/{chunk-UBIRX2SP.js → chunk-AMXAQQEL.js} +2 -2
  16. package/dist/cesium/Workers/{chunk-LDCAXLGS.js → chunk-AQW44ZPC.js} +2 -2
  17. package/dist/cesium/Workers/{chunk-B6TRTFAA.js → chunk-CPCMDW6Z.js} +2 -2
  18. package/dist/cesium/Workers/{chunk-3C74MLG3.js → chunk-DNL2WDRL.js} +1 -1
  19. package/dist/cesium/Workers/{chunk-FK5KFB6H.js → chunk-ERW7V247.js} +1 -1
  20. package/dist/cesium/Workers/{chunk-5AG2MVRM.js → chunk-EYRIA4TP.js} +2 -2
  21. package/dist/cesium/Workers/{chunk-6AUUBDOF.js → chunk-F7RQIJML.js} +2 -2
  22. package/dist/cesium/Workers/{chunk-JZLZJJQD.js → chunk-FPZMU6QP.js} +2 -2
  23. package/dist/cesium/Workers/{chunk-YBI55DLZ.js → chunk-FZDVQW7A.js} +2 -2
  24. package/dist/cesium/Workers/{chunk-2MBPFWCP.js → chunk-GAZ2U4FO.js} +2 -2
  25. package/dist/cesium/Workers/{chunk-CSISXEG7.js → chunk-I44IOOT4.js} +1 -1
  26. package/dist/cesium/Workers/{chunk-R2AN7EKC.js → chunk-IALXUAD4.js} +1 -1
  27. package/dist/cesium/Workers/{chunk-MDLPQIMP.js → chunk-IXBUEUZL.js} +2 -2
  28. package/dist/cesium/Workers/{chunk-HPBHKP5S.js → chunk-J3GCYV5K.js} +2 -2
  29. package/dist/cesium/Workers/{chunk-KRZBI2MU.js → chunk-KGSZTFHZ.js} +2 -2
  30. package/dist/cesium/Workers/{chunk-B2SKQ7LU.js → chunk-KKKPU2CI.js} +2 -2
  31. package/dist/cesium/Workers/{chunk-QPOPEH3M.js → chunk-KTEJE5KE.js} +2 -2
  32. package/dist/cesium/Workers/chunk-KYZ3DYY6.js +26 -0
  33. package/dist/cesium/Workers/{chunk-LOPN5R3I.js → chunk-L2QG4MRI.js} +2 -2
  34. package/dist/cesium/Workers/{chunk-EXBFEYPQ.js → chunk-MCE3KFYN.js} +2 -2
  35. package/dist/cesium/Workers/{chunk-C6DMEJQ7.js → chunk-MMLDGXML.js} +2 -2
  36. package/dist/cesium/Workers/{chunk-KTTUANTJ.js → chunk-MTBRPBDQ.js} +2 -2
  37. package/dist/cesium/Workers/{chunk-7VZHIB6P.js → chunk-OKT6VBRK.js} +2 -2
  38. package/dist/cesium/Workers/chunk-PHYDKLSY.js +26 -0
  39. package/dist/cesium/Workers/chunk-PWPX3224.js +26 -0
  40. package/dist/cesium/Workers/{chunk-VQZSIOZW.js → chunk-QHOVE6WG.js} +2 -2
  41. package/dist/cesium/Workers/{chunk-CN7UN2OZ.js → chunk-QJ6MBL22.js} +2 -2
  42. package/dist/cesium/Workers/{chunk-NUSW5B6A.js → chunk-QKO6VIG2.js} +2 -2
  43. package/dist/cesium/Workers/{chunk-4N7SRDH5.js → chunk-QVEE4QL2.js} +2 -2
  44. package/dist/cesium/Workers/{chunk-4T6AS6BZ.js → chunk-RXQOQZ7S.js} +2 -2
  45. package/dist/cesium/Workers/{chunk-RURL6ZX2.js → chunk-S3ZKQKMM.js} +2 -2
  46. package/dist/cesium/Workers/{chunk-ZYWD6OQH.js → chunk-SFEUMZSK.js} +2 -2
  47. package/dist/cesium/Workers/{chunk-BOPB43LN.js → chunk-T75MW4X3.js} +2 -2
  48. package/dist/cesium/Workers/chunk-TVO2A75R.js +66 -0
  49. package/dist/cesium/Workers/{chunk-VHNZBQTR.js → chunk-UHR36K45.js} +2 -2
  50. package/dist/cesium/Workers/{chunk-WZUWQMI7.js → chunk-UKJCDZOR.js} +2 -2
  51. package/dist/cesium/Workers/{chunk-B4TQDFIE.js → chunk-VKVIYER6.js} +2 -2
  52. package/dist/cesium/Workers/{chunk-OUXRUXNB.js → chunk-VPIQWTRZ.js} +2 -2
  53. package/dist/cesium/Workers/{chunk-2ED5WI77.js → chunk-XSX5HRFC.js} +2 -2
  54. package/dist/cesium/Workers/{chunk-5Z6L2FHX.js → chunk-Z5WQQHSL.js} +2 -2
  55. package/dist/cesium/Workers/{chunk-YPDO7SPO.js → chunk-Z7B2VEL5.js} +2 -2
  56. package/dist/cesium/Workers/combineGeometry.js +2 -2
  57. package/dist/cesium/Workers/createBoxGeometry.js +2 -2
  58. package/dist/cesium/Workers/createBoxOutlineGeometry.js +2 -2
  59. package/dist/cesium/Workers/createCircleGeometry.js +2 -2
  60. package/dist/cesium/Workers/createCircleOutlineGeometry.js +2 -2
  61. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +2 -2
  62. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +2 -2
  63. package/dist/cesium/Workers/createCorridorGeometry.js +2 -2
  64. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +2 -2
  65. package/dist/cesium/Workers/createCylinderGeometry.js +2 -2
  66. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +2 -2
  67. package/dist/cesium/Workers/createEllipseGeometry.js +2 -2
  68. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +2 -2
  69. package/dist/cesium/Workers/createEllipsoidGeometry.js +2 -2
  70. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +2 -2
  71. package/dist/cesium/Workers/createFrustumGeometry.js +2 -2
  72. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +2 -2
  73. package/dist/cesium/Workers/createGeometry.js +2 -2
  74. package/dist/cesium/Workers/createGroundPolylineGeometry.js +2 -2
  75. package/dist/cesium/Workers/createPlaneGeometry.js +2 -2
  76. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +2 -2
  77. package/dist/cesium/Workers/createPolygonGeometry.js +2 -2
  78. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +2 -2
  79. package/dist/cesium/Workers/createPolylineGeometry.js +2 -2
  80. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +2 -2
  81. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +2 -2
  82. package/dist/cesium/Workers/createRectangleGeometry.js +2 -2
  83. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +2 -2
  84. package/dist/cesium/Workers/createSimplePolylineGeometry.js +2 -2
  85. package/dist/cesium/Workers/createSphereGeometry.js +2 -2
  86. package/dist/cesium/Workers/createSphereOutlineGeometry.js +2 -2
  87. package/dist/cesium/Workers/createTaskProcessorWorker.js +2 -2
  88. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +2 -2
  89. package/dist/cesium/Workers/createVectorTileGeometries.js +2 -2
  90. package/dist/cesium/Workers/createVectorTilePoints.js +2 -2
  91. package/dist/cesium/Workers/createVectorTilePolygons.js +2 -2
  92. package/dist/cesium/Workers/createVectorTilePolylines.js +2 -2
  93. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -2
  94. package/dist/cesium/Workers/createVerticesFromHeightmap.js +2 -2
  95. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -2
  96. package/dist/cesium/Workers/createWallGeometry.js +2 -2
  97. package/dist/cesium/Workers/createWallOutlineGeometry.js +2 -2
  98. package/dist/cesium/Workers/decodeDraco.js +2 -2
  99. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
  100. package/dist/cesium/Workers/decodeI3S.js +2 -2
  101. package/dist/cesium/Workers/transcodeKTX2.js +10 -10
  102. package/dist/cesium/Workers/transferTypedArrayTest.js +1 -1
  103. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +2 -2
  104. package/dist/core.js +34193 -34105
  105. package/dist/core.umd.cjs +3866 -3820
  106. package/dist/index.d.ts +212 -217
  107. package/package.json +5 -5
  108. package/src/Map/ClusteredLayers/index.tsx +2 -2
  109. package/src/Map/Layer/index.tsx +3 -3
  110. package/src/Map/Layers/hooks.ts +0 -10
  111. package/src/Map/Layers/index.tsx +2 -2
  112. package/src/Map/Sketch/hooks.ts +66 -46
  113. package/src/Map/Sketch/index.tsx +24 -2
  114. package/src/Map/Sketch/preset.ts +0 -2
  115. package/src/Map/Sketch/types.ts +0 -31
  116. package/src/Map/hooks.ts +4 -0
  117. package/src/Map/index.tsx +5 -8
  118. package/src/Map/ref.ts +7 -4
  119. package/src/Map/types/index.ts +216 -34
  120. package/src/Map/useTimelineManager.ts +3 -5
  121. package/src/Map/utils.ts +43 -1
  122. package/src/Visualizer/coreContext.tsx +8 -1
  123. package/src/Visualizer/hooks.ts +75 -6
  124. package/src/Visualizer/index.stories.tsx +48 -4
  125. package/src/Visualizer/index.tsx +6 -8
  126. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +1 -1
  127. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +1 -1
  128. package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -1
  129. package/src/engines/Cesium/Feature/Model/index.tsx +9 -10
  130. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +6 -8
  131. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +2 -2
  132. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +1 -1
  133. package/src/engines/Cesium/Feature/Tileset/hooks.ts +11 -12
  134. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +1 -1
  135. package/src/engines/Cesium/Feature/Tileset/index.tsx +4 -4
  136. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +1 -10
  137. package/src/engines/Cesium/Feature/index.tsx +4 -5
  138. package/src/engines/Cesium/Feature/utils.tsx +2 -3
  139. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
  140. package/src/engines/Cesium/{hooks/useOverrideGlobeShader/VertexTerrainElevationMaterial.ts → VertexTerrainElevationMaterial.ts} +2 -3
  141. package/src/engines/Cesium/{hooks/useCameraLimiter.ts → cameraLimiter.ts} +45 -22
  142. package/src/engines/Cesium/core/Globe.tsx +68 -36
  143. package/src/engines/Cesium/core/Imagery.test.ts +9 -9
  144. package/src/engines/Cesium/core/Imagery.tsx +19 -17
  145. package/src/engines/Cesium/core/Indicator/Indicator.tsx +8 -8
  146. package/src/engines/Cesium/hooks.ts +365 -124
  147. package/src/engines/Cesium/index.stories.tsx +1 -1
  148. package/src/engines/Cesium/index.tsx +62 -60
  149. package/src/engines/Cesium/{hooks/useEngineRef.test.tsx → useEngineRef.test.tsx} +34 -38
  150. package/src/engines/Cesium/{hooks/useEngineRef.ts → useEngineRef.ts} +41 -43
  151. package/src/engines/Cesium/{hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts → useOverrideGlobeShader.ts} +17 -20
  152. package/src/engines/index.ts +1 -1
  153. package/src/mantle/compat/types.ts +7 -7
  154. package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
  155. package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
  156. package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
  157. package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
  158. package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
  159. package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
  160. package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
  161. package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
  162. package/src/Map/types/viewerProperty.ts +0 -215
  163. package/src/Visualizer/useCoreAPI.ts +0 -30
  164. package/src/engines/Cesium/hooks/useCamera.ts +0 -135
  165. package/src/engines/Cesium/hooks/useExplicitRender.ts +0 -65
  166. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +0 -77
  167. package/src/engines/Cesium/hooks/useViewerProperty.ts +0 -90
  168. /package/src/engines/Cesium/{hooks/useOverrideGlobeShader/JapanSeaLevelEllipsoid.ts → JapanSeaLevelEllipsoid.ts} +0 -0
  169. /package/src/engines/Cesium/{hooks/useOverrideGlobeShader/vertexTerrainElevationMaterial.glsl → vertexTerrainElevationMaterial.glsl} +0 -0
@@ -36,7 +36,6 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
36
36
  className,
37
37
  style,
38
38
  property,
39
- time,
40
39
  camera,
41
40
  small,
42
41
  ready,
@@ -67,51 +66,48 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
67
66
  ref,
68
67
  ) => {
69
68
  const {
69
+ backgroundColor,
70
70
  cesium,
71
+ cameraViewBoundaries,
72
+ cameraViewOuterBoundaries,
73
+ cameraViewBoundariesMaterial,
71
74
  mouseEventHandles,
72
75
  cesiumIonAccessToken,
73
76
  context,
77
+ light,
74
78
  layerSelectWithRectEventHandlers,
75
- sceneLight,
76
- sceneBackgroundColor,
77
- sceneMsaaSamples,
78
- sceneMode,
79
- cameraViewBoundaries,
80
- cameraViewOuterBoundaries,
81
- cameraViewBoundariesMaterial,
82
- handleCameraChange,
83
- handleCameraMoveEnd,
84
- handleUpdate,
85
- handleClick,
86
79
  handleMount,
87
80
  handleUnmount,
81
+ handleUpdate,
82
+ handleClick,
83
+ handleCameraChange,
84
+ handleCameraMoveEnd,
88
85
  } = useHooks({
89
86
  ref,
90
87
  property,
91
- time,
88
+ camera,
92
89
  selectedLayerId,
93
90
  selectionReason: layerSelectionReason,
91
+ isLayerDraggable,
92
+ isLayerDragging,
94
93
  meta,
95
94
  layersRef,
96
95
  featureFlags,
97
- timelineManagerRef,
98
- isLayerDraggable,
99
- isLayerDragging,
100
- shouldRender,
101
96
  requestingRenderMode,
102
- camera,
97
+ shouldRender,
98
+ timelineManagerRef,
103
99
  cameraForceHorizontalRoll,
100
+ onLayerSelect,
101
+ onCameraChange,
104
102
  onLayerDrag,
105
103
  onLayerDrop,
106
- onLayerSelect,
107
104
  onLayerEdit,
108
105
  onLayerSelectWithRectStart,
109
106
  onLayerSelectWithRectMove,
110
107
  onLayerSelectWithRectEnd,
108
+ onMount,
111
109
  onLayerVisibility,
112
110
  onLayerLoad,
113
- onCameraChange,
114
- onMount,
115
111
  });
116
112
 
117
113
  return (
@@ -141,20 +137,20 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
141
137
  cursor: isLayerDragging ? "grab" : undefined,
142
138
  ...style,
143
139
  }}
144
- shadows={!!property?.scene?.shadow?.enabled}
140
+ shadows={!!(property?.atmosphere?.shadows ?? property?.globeShadow?.globeShadow)}
145
141
  onClick={handleClick}
146
- onDoubleClick={mouseEventHandles.doubleClick}
147
- onMouseDown={mouseEventHandles.mouseDown}
148
- onMouseUp={mouseEventHandles.mouseUp}
149
- onRightClick={mouseEventHandles.rightClick}
150
- onRightDown={mouseEventHandles.rightDown}
151
- onRightUp={mouseEventHandles.rightUp}
152
- onMiddleClick={mouseEventHandles.middleClick}
153
- onMiddleDown={mouseEventHandles.middleDown}
154
- onMiddleUp={mouseEventHandles.middleUp}
155
- onMouseMove={mouseEventHandles.mouseMove}
156
- onMouseEnter={mouseEventHandles.mouseEnter}
157
- onMouseLeave={mouseEventHandles.mouseLeave}
142
+ onDoubleClick={mouseEventHandles.doubleclick}
143
+ onMouseDown={mouseEventHandles.mousedown}
144
+ onMouseUp={mouseEventHandles.mouseup}
145
+ onRightClick={mouseEventHandles.rightclick}
146
+ onRightDown={mouseEventHandles.rightdown}
147
+ onRightUp={mouseEventHandles.rightup}
148
+ onMiddleClick={mouseEventHandles.middleclick}
149
+ onMiddleDown={mouseEventHandles.middledown}
150
+ onMiddleUp={mouseEventHandles.middleup}
151
+ onMouseMove={mouseEventHandles.mousemove}
152
+ onMouseEnter={mouseEventHandles.mouseenter}
153
+ onMouseLeave={mouseEventHandles.mouseleave}
158
154
  onWheel={mouseEventHandles.wheel}>
159
155
  <Event onMount={handleMount} onUnmount={handleUnmount} />
160
156
  <Clock timelineManagerRef={timelineManagerRef} />
@@ -200,18 +196,20 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
200
196
  </ScreenSpaceEventHandler>
201
197
  <ScreenSpaceCameraController
202
198
  maximumZoomDistance={
203
- property?.camera?.limiter?.enabled
204
- ? property.camera?.limiter?.targetArea?.height ?? Number.POSITIVE_INFINITY
199
+ property?.cameraLimiter?.cameraLimitterEnabled
200
+ ? property.cameraLimiter?.cameraLimitterTargetArea?.height ?? Number.POSITIVE_INFINITY
205
201
  : Number.POSITIVE_INFINITY
206
202
  }
207
- enableCollisionDetection={!property?.camera?.allowEnterGround}
203
+ enableCollisionDetection={
204
+ !(property?.default?.allowEnterGround ?? property?.camera?.allowEnterGround)
205
+ }
208
206
  />
209
207
  <Camera
210
- percentageChanged={0.2}
211
208
  onChange={handleCameraChange}
209
+ percentageChanged={0.2}
212
210
  onMoveEnd={handleCameraMoveEnd}
213
211
  />
214
- {cameraViewBoundaries && property?.camera?.limiter?.showHelper && (
212
+ {cameraViewBoundaries && property?.cameraLimiter?.cameraLimitterShowHelper && (
215
213
  <Entity>
216
214
  <PolylineGraphics
217
215
  positions={cameraViewBoundaries}
@@ -221,7 +219,7 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
221
219
  />
222
220
  </Entity>
223
221
  )}
224
- {cameraViewOuterBoundaries && property?.camera?.limiter?.showHelper && (
222
+ {cameraViewOuterBoundaries && property?.cameraLimiter?.cameraLimitterShowHelper && (
225
223
  <Entity>
226
224
  <PolylineGraphics
227
225
  positions={cameraViewOuterBoundaries}
@@ -231,35 +229,39 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
231
229
  />
232
230
  </Entity>
233
231
  )}
232
+ {/* NOTE: useWebVR={false} will crash Cesium */}
234
233
  <Scene
235
- backgroundColor={sceneBackgroundColor}
236
- light={sceneLight}
237
- mode={sceneMode}
238
- msaaSamples={sceneMsaaSamples}
234
+ backgroundColor={backgroundColor}
235
+ useWebVR={!!property?.default?.vr || undefined}
236
+ light={light}
239
237
  useDepthPicking={false}
240
- useWebVR={!!property?.scene?.vr || undefined} // NOTE: useWebVR={false} will crash Cesium
241
- debugShowFramesPerSecond={!!property?.debug?.showFramesPerSecond}
242
- verticalExaggerationRelativeHeight={property?.scene?.verticalExaggerationRelativeHeight}
243
- verticalExaggeration={property?.scene?.verticalExaggeration}
238
+ debugShowFramesPerSecond={!!property?.render?.debugFramePerSecond}
239
+ verticalExaggerationRelativeHeight={property?.terrain?.terrainExaggerationRelativeHeight}
240
+ verticalExaggeration={property?.terrain?.terrainExaggeration}
244
241
  />
245
- <SkyBox show={property?.sky?.skyBox?.show ?? true} />
246
- <Fog enabled={property?.sky?.fog?.enabled ?? true} density={property?.sky?.fog?.density} />
247
- <Sun show={property?.sky?.sun?.show ?? true} />
248
- <Moon show={property?.sky?.moon?.show ?? true} />
242
+ <SkyBox show={property?.default?.skybox ?? property?.skyBox?.skyBox ?? true} />
243
+ <Fog
244
+ enabled={property?.atmosphere?.fog ?? true}
245
+ density={property?.atmosphere?.fog_density}
246
+ />
247
+ <Sun show={property?.atmosphere?.enable_sun ?? property?.sun?.sun ?? true} />
248
+ <Moon show={property?.atmosphere?.enableMoon ?? property?.moon?.moon ?? true} />
249
249
  <SkyAtmosphere
250
- show={property?.sky?.skyAtmosphere?.show ?? true}
251
- atmosphereLightIntensity={property?.sky?.skyAtmosphere?.lightIntensity}
252
- saturationShift={property?.sky?.skyAtmosphere?.saturationShift}
253
- brightnessShift={property?.sky?.skyAtmosphere?.brightnessShift}
250
+ show={
251
+ property?.atmosphere?.sky_atmosphere ?? property?.skyAtmosphere?.skyAtmosphere ?? true
252
+ }
253
+ saturationShift={property?.atmosphere?.skyboxSurturationShift}
254
+ atmosphereLightIntensity={property?.skyAtmosphere?.skyAtmosphereIntensity}
255
+ brightnessShift={property?.atmosphere?.skyboxBrightnessShift}
254
256
  />
255
257
  <Globe property={property} cesiumIonAccessToken={cesiumIonAccessToken} />
256
258
  <featureContext.Provider value={context}>{ready ? children : null}</featureContext.Provider>
257
259
  <AmbientOcclusion
258
- {...AMBIENT_OCCLUSION_QUALITY[property?.render?.ambientOcclusion?.quality || "low"]}
259
- enabled={!!property?.render?.ambientOcclusion?.enabled}
260
- intensity={property?.render?.ambientOcclusion?.intensity ?? 100}
260
+ {...AMBIENT_OCCLUSION_QUALITY[property?.ambientOcclusion?.quality || "low"]}
261
+ enabled={!!property?.ambientOcclusion?.enabled}
262
+ intensity={property?.ambientOcclusion?.intensity ?? 100}
261
263
  outputType={
262
- property?.render?.ambientOcclusion?.ambientOcclusionOnly
264
+ property?.ambientOcclusion?.ambientOcclusionOnly
263
265
  ? AmbientOcclusionOutputType.Occlusion
264
266
  : null
265
267
  }
@@ -12,7 +12,7 @@ import { useRef } from "react";
12
12
  import type { CesiumComponentRef } from "resium";
13
13
  import { vi, expect, test, afterEach } from "vitest";
14
14
 
15
- import type { EngineRef, Clock } from "../../..";
15
+ import type { EngineRef, Clock } from "..";
16
16
 
17
17
  import useEngineRef from "./useEngineRef";
18
18
 
@@ -57,86 +57,86 @@ test("bind mouse events", () => {
57
57
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
58
58
 
59
59
  result.current.current?.onDoubleClick(mockMouseEventCallback);
60
- expect(result.current.current?.mouseEventCallbacks.doubleClick[0]).toBe(mockMouseEventCallback);
60
+ expect(result.current.current?.mouseEventCallbacks.doubleclick[0]).toBe(mockMouseEventCallback);
61
61
 
62
- result.current.current?.mouseEventCallbacks.doubleClick[0]?.(props);
62
+ result.current.current?.mouseEventCallbacks.doubleclick[0]?.(props);
63
63
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(2);
64
64
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
65
65
 
66
66
  result.current.current?.onMouseDown(mockMouseEventCallback);
67
- expect(result.current.current?.mouseEventCallbacks.mouseDown[0]).toBe(mockMouseEventCallback);
67
+ expect(result.current.current?.mouseEventCallbacks.mousedown[0]).toBe(mockMouseEventCallback);
68
68
 
69
- result.current.current?.mouseEventCallbacks.mouseDown[0]?.(props);
69
+ result.current.current?.mouseEventCallbacks.mousedown[0]?.(props);
70
70
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(3);
71
71
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
72
72
 
73
73
  result.current.current?.onMouseUp(mockMouseEventCallback);
74
- expect(result.current.current?.mouseEventCallbacks.mouseUp[0]).toBe(mockMouseEventCallback);
74
+ expect(result.current.current?.mouseEventCallbacks.mouseup[0]).toBe(mockMouseEventCallback);
75
75
 
76
- result.current.current?.mouseEventCallbacks.mouseUp[0]?.(props);
76
+ result.current.current?.mouseEventCallbacks.mouseup[0]?.(props);
77
77
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(4);
78
78
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
79
79
 
80
80
  result.current.current?.onRightClick(mockMouseEventCallback);
81
- expect(result.current.current?.mouseEventCallbacks.rightClick[0]).toBe(mockMouseEventCallback);
81
+ expect(result.current.current?.mouseEventCallbacks.rightclick[0]).toBe(mockMouseEventCallback);
82
82
 
83
- result.current.current?.mouseEventCallbacks.rightClick[0]?.(props);
83
+ result.current.current?.mouseEventCallbacks.rightclick[0]?.(props);
84
84
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(5);
85
85
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
86
86
 
87
87
  result.current.current?.onRightDown(mockMouseEventCallback);
88
- expect(result.current.current?.mouseEventCallbacks.rightDown[0]).toBe(mockMouseEventCallback);
88
+ expect(result.current.current?.mouseEventCallbacks.rightdown[0]).toBe(mockMouseEventCallback);
89
89
 
90
- result.current.current?.mouseEventCallbacks.rightDown[0]?.(props);
90
+ result.current.current?.mouseEventCallbacks.rightdown[0]?.(props);
91
91
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(6);
92
92
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
93
93
 
94
94
  result.current.current?.onRightUp(mockMouseEventCallback);
95
- expect(result.current.current?.mouseEventCallbacks.rightUp[0]).toBe(mockMouseEventCallback);
95
+ expect(result.current.current?.mouseEventCallbacks.rightup[0]).toBe(mockMouseEventCallback);
96
96
 
97
- result.current.current?.mouseEventCallbacks.rightUp[0]?.(props);
97
+ result.current.current?.mouseEventCallbacks.rightup[0]?.(props);
98
98
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(7);
99
99
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
100
100
 
101
101
  result.current.current?.onMiddleClick(mockMouseEventCallback);
102
- expect(result.current.current?.mouseEventCallbacks.middleClick[0]).toBe(mockMouseEventCallback);
102
+ expect(result.current.current?.mouseEventCallbacks.middleclick[0]).toBe(mockMouseEventCallback);
103
103
 
104
- result.current.current?.mouseEventCallbacks.middleClick[0]?.(props);
104
+ result.current.current?.mouseEventCallbacks.middleclick[0]?.(props);
105
105
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(8);
106
106
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
107
107
 
108
108
  result.current.current?.onMiddleDown(mockMouseEventCallback);
109
- expect(result.current.current?.mouseEventCallbacks.middleDown[0]).toBe(mockMouseEventCallback);
109
+ expect(result.current.current?.mouseEventCallbacks.middledown[0]).toBe(mockMouseEventCallback);
110
110
 
111
- result.current.current?.mouseEventCallbacks.middleDown[0]?.(props);
111
+ result.current.current?.mouseEventCallbacks.middledown[0]?.(props);
112
112
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(9);
113
113
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
114
114
 
115
115
  result.current.current?.onMiddleUp(mockMouseEventCallback);
116
- expect(result.current.current?.mouseEventCallbacks.middleUp[0]).toBe(mockMouseEventCallback);
116
+ expect(result.current.current?.mouseEventCallbacks.middleup[0]).toBe(mockMouseEventCallback);
117
117
 
118
- result.current.current?.mouseEventCallbacks.middleUp[0]?.(props);
118
+ result.current.current?.mouseEventCallbacks.middleup[0]?.(props);
119
119
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(10);
120
120
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
121
121
 
122
122
  result.current.current?.onMouseMove(mockMouseEventCallback);
123
- expect(result.current.current?.mouseEventCallbacks.mouseMove[0]).toBe(mockMouseEventCallback);
123
+ expect(result.current.current?.mouseEventCallbacks.mousemove[0]).toBe(mockMouseEventCallback);
124
124
 
125
- result.current.current?.mouseEventCallbacks.mouseMove[0]?.(props);
125
+ result.current.current?.mouseEventCallbacks.mousemove[0]?.(props);
126
126
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(11);
127
127
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
128
128
 
129
129
  result.current.current?.onMouseEnter(mockMouseEventCallback);
130
- expect(result.current.current?.mouseEventCallbacks.mouseEnter[0]).toBe(mockMouseEventCallback);
130
+ expect(result.current.current?.mouseEventCallbacks.mouseenter[0]).toBe(mockMouseEventCallback);
131
131
 
132
- result.current.current?.mouseEventCallbacks.mouseEnter[0]?.(props);
132
+ result.current.current?.mouseEventCallbacks.mouseenter[0]?.(props);
133
133
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(12);
134
134
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
135
135
 
136
136
  result.current.current?.onMouseLeave(mockMouseEventCallback);
137
- expect(result.current.current?.mouseEventCallbacks.mouseLeave[0]).toBe(mockMouseEventCallback);
137
+ expect(result.current.current?.mouseEventCallbacks.mouseleave[0]).toBe(mockMouseEventCallback);
138
138
 
139
- result.current.current?.mouseEventCallbacks.mouseLeave[0]?.(props);
139
+ result.current.current?.mouseEventCallbacks.mouseleave[0]?.(props);
140
140
  expect(mockMouseEventCallback).toHaveBeenCalledTimes(13);
141
141
  expect(mockMouseEventCallback).toHaveBeenCalledWith(props);
142
142
 
@@ -188,11 +188,10 @@ test("zoom", async () => {
188
188
  return engineRef;
189
189
  });
190
190
 
191
- const commons = await import("../common");
192
- const zoom = vi.spyOn(commons, "zoom");
191
+ const commons = await import("./common");
193
192
 
194
193
  result.current.current?.zoomIn(10);
195
- expect(zoom).toHaveBeenCalledTimes(1);
194
+ expect(commons.zoom).toHaveBeenCalledTimes(1);
196
195
  expect(commons.zoom).toHaveBeenCalledWith(
197
196
  {
198
197
  viewer,
@@ -222,7 +221,6 @@ test("call orbit when camera focuses on center", async () => {
222
221
  rotateUp: vi.fn(),
223
222
  look: vi.fn(),
224
223
  move: vi.fn(),
225
- getPickRay: vi.fn(),
226
224
  positionCartographic: new Cartesian3(),
227
225
  },
228
226
  mode: SceneMode.SCENE3D,
@@ -249,14 +247,15 @@ test("call orbit when camera focuses on center", async () => {
249
247
  return [engineRef, cesium] as const;
250
248
  });
251
249
 
252
- const commons = await import("../common");
253
- const getCenterCamera = vi.spyOn(commons, "getCenterCamera");
250
+ const commons = await import("./common");
254
251
 
255
252
  const [engineRef, cesium] = result.current;
256
253
 
257
254
  engineRef.current?.orbit(90);
258
- expect(getCenterCamera).toHaveBeenCalled();
259
- expect(cesium.current.cesiumElement?.scene.camera.lookAtTransform).toHaveBeenCalledTimes(1);
255
+ expect(commons.getCenterCamera).toHaveBeenCalled();
256
+ expect(cesium.current.cesiumElement?.scene.camera.rotateLeft).toHaveBeenCalled();
257
+ expect(cesium.current.cesiumElement?.scene.camera.rotateUp).toHaveBeenCalled();
258
+ expect(cesium.current.cesiumElement?.scene.camera.lookAtTransform).toHaveBeenCalledTimes(2);
260
259
  });
261
260
 
262
261
  test("call orbit when camera does not focus on center", async () => {
@@ -269,7 +268,6 @@ test("call orbit when camera does not focus on center", async () => {
269
268
  rotateUp: vi.fn(),
270
269
  look: vi.fn(),
271
270
  move: vi.fn(),
272
- getPickRay: vi.fn(),
273
271
  positionWC: new Cartesian3(),
274
272
  positionCartographic: new Cartesian3(),
275
273
  },
@@ -296,13 +294,12 @@ test("call orbit when camera does not focus on center", async () => {
296
294
  return [engineRef, cesium] as const;
297
295
  });
298
296
 
299
- const commons = await import("../common");
300
- const getCenterCamera = vi.spyOn(commons, "getCenterCamera");
297
+ const commons = await import("./common");
301
298
 
302
299
  const [engineRef, cesium] = result.current;
303
300
 
304
301
  engineRef.current?.orbit(90);
305
- expect(getCenterCamera).toHaveBeenCalled();
302
+ expect(commons.getCenterCamera).toHaveBeenCalled();
306
303
  expect(cesium.current.cesiumElement?.scene.camera.look).toHaveBeenCalledTimes(2);
307
304
  expect(cesium.current.cesiumElement?.scene.camera.lookAtTransform).toHaveBeenCalledTimes(2);
308
305
  });
@@ -317,7 +314,6 @@ test("orbit on 2D mode", async () => {
317
314
  rotateUp: vi.fn(),
318
315
  look: vi.fn(),
319
316
  move: vi.fn(),
320
- getPickRay: vi.fn(),
321
317
  positionWC: new Cartesian3(),
322
318
  positionCartographic: new Cartesian3(),
323
319
  },
@@ -4,9 +4,11 @@ import { ClockStep, JulianDate, Math as CesiumMath } from "cesium";
4
4
  import { useImperativeHandle, Ref, RefObject, useMemo, useRef } from "react";
5
5
  import { CesiumComponentRef } from "resium";
6
6
 
7
- import type { EngineRef, MouseEventProps, Feature, ComputedFeature } from "../..";
8
- import { MouseEventCallbacks, TickEventCallback, SketchType } from "../../../Map";
9
- import { Position2d, Position3d } from "../../../types";
7
+ import type { EngineRef, MouseEventProps, Feature, ComputedFeature } from "..";
8
+ import { MouseEventCallbacks, TickEventCallback } from "../../Map";
9
+ import { SketchType } from "../../Map/Sketch/types";
10
+ import { Position2d, Position3d } from "../../types";
11
+
10
12
  import {
11
13
  getLocationFromScreen,
12
14
  flyTo,
@@ -32,11 +34,11 @@ import {
32
34
  cartesianToLatLngHeight,
33
35
  getExtrudedHeight,
34
36
  getOverriddenScreenSpaceCameraOptions,
35
- } from "../common";
36
- import { attachTag, getTag } from "../Feature";
37
- import { PickedFeature, pickManyFromViewportAsFeature } from "../pickMany";
38
- import { createGeometry } from "../Sketch/createGeometry";
39
- import { CursorType } from "../types";
37
+ } from "./common";
38
+ import { attachTag, getTag } from "./Feature";
39
+ import { PickedFeature, pickManyFromViewportAsFeature } from "./pickMany";
40
+ import { createGeometry } from "./Sketch/createGeometry";
41
+ import { CursorType } from "./types";
40
42
  import {
41
43
  convertCesium3DTileFeatureProperties,
42
44
  convertEntityDescription,
@@ -44,7 +46,7 @@ import {
44
46
  convertObjToComputedFeature,
45
47
  findEntity,
46
48
  findFeaturesFromLayer,
47
- } from "../utils/utils";
49
+ } from "./utils/utils";
48
50
 
49
51
  export default function useEngineRef(
50
52
  ref: Ref<EngineRef>,
@@ -53,18 +55,18 @@ export default function useEngineRef(
53
55
  const cancelCameraFlight = useRef<() => void>();
54
56
  const mouseEventCallbacks = useRef<MouseEventCallbacks>({
55
57
  click: [],
56
- doubleClick: [],
57
- mouseDown: [],
58
- mouseUp: [],
59
- rightClick: [],
60
- rightDown: [],
61
- rightUp: [],
62
- middleClick: [],
63
- middleDown: [],
64
- middleUp: [],
65
- mouseMove: [],
66
- mouseEnter: [],
67
- mouseLeave: [],
58
+ doubleclick: [],
59
+ mousedown: [],
60
+ mouseup: [],
61
+ rightclick: [],
62
+ rightdown: [],
63
+ rightup: [],
64
+ middleclick: [],
65
+ middledown: [],
66
+ middleup: [],
67
+ mousemove: [],
68
+ mouseenter: [],
69
+ mouseleave: [],
68
70
  wheel: [],
69
71
  });
70
72
  const tickEventCallback = useRef<TickEventCallback[]>([]);
@@ -237,8 +239,6 @@ export default function useEngineRef(
237
239
  setView: camera => {
238
240
  const viewer = cesium.current?.cesiumElement;
239
241
  if (!viewer || viewer.isDestroyed()) return false;
240
- if (camera.lat === undefined || camera.lng === undefined || camera.height === undefined)
241
- return false;
242
242
  const scene = viewer.scene;
243
243
  if (camera.lng || camera.lat || camera.height) {
244
244
  const xyz = Cesium.Cartesian3.fromDegrees(camera.lng, camera.lat, camera.height);
@@ -539,15 +539,13 @@ export default function useEngineRef(
539
539
  const oldTransform = Cesium.Matrix4.clone(camera.transform);
540
540
 
541
541
  const center = getCenterCamera({ camera, scene });
542
- if (center || camera.positionWC) {
543
- // Get fixed frame from center to globe ellipsoid.
544
- const frame = Cesium.Transforms.eastNorthUpToFixedFrame(
545
- center || camera.positionWC,
546
- scene.globe.ellipsoid,
547
- );
542
+ // Get fixed frame from center to globe ellipsoid.
543
+ const frame = Cesium.Transforms.eastNorthUpToFixedFrame(
544
+ center || camera.positionWC,
545
+ scene.globe.ellipsoid,
546
+ );
548
547
 
549
- camera.lookAtTransform(frame);
550
- }
548
+ camera.lookAtTransform(frame);
551
549
 
552
550
  if (viewer.scene.mode !== Cesium.SceneMode.SCENE3D) {
553
551
  camera.move(
@@ -677,40 +675,40 @@ export default function useEngineRef(
677
675
  mouseEventCallbacks.current.click.push(cb);
678
676
  },
679
677
  onDoubleClick: (cb: (props: MouseEventProps) => void) => {
680
- mouseEventCallbacks.current.doubleClick.push(cb);
678
+ mouseEventCallbacks.current.doubleclick.push(cb);
681
679
  },
682
680
  onMouseDown: (cb: (props: MouseEventProps) => void) => {
683
- mouseEventCallbacks.current.mouseDown.push(cb);
681
+ mouseEventCallbacks.current.mousedown.push(cb);
684
682
  },
685
683
  onMouseUp: (cb: (props: MouseEventProps) => void) => {
686
- mouseEventCallbacks.current.mouseUp.push(cb);
684
+ mouseEventCallbacks.current.mouseup.push(cb);
687
685
  },
688
686
  onRightClick: (cb: (props: MouseEventProps) => void) => {
689
- mouseEventCallbacks.current.rightClick.push(cb);
687
+ mouseEventCallbacks.current.rightclick.push(cb);
690
688
  },
691
689
  onRightDown: (cb: (props: MouseEventProps) => void) => {
692
- mouseEventCallbacks.current.rightDown.push(cb);
690
+ mouseEventCallbacks.current.rightdown.push(cb);
693
691
  },
694
692
  onRightUp: (cb: (props: MouseEventProps) => void) => {
695
- mouseEventCallbacks.current.rightUp.push(cb);
693
+ mouseEventCallbacks.current.rightup.push(cb);
696
694
  },
697
695
  onMiddleClick: (cb: (props: MouseEventProps) => void) => {
698
- mouseEventCallbacks.current.middleClick.push(cb);
696
+ mouseEventCallbacks.current.middleclick.push(cb);
699
697
  },
700
698
  onMiddleDown: (cb: (props: MouseEventProps) => void) => {
701
- mouseEventCallbacks.current.middleDown.push(cb);
699
+ mouseEventCallbacks.current.middledown.push(cb);
702
700
  },
703
701
  onMiddleUp: (cb: (props: MouseEventProps) => void) => {
704
- mouseEventCallbacks.current.middleUp.push(cb);
702
+ mouseEventCallbacks.current.middleup.push(cb);
705
703
  },
706
704
  onMouseMove: (cb: (props: MouseEventProps) => void) => {
707
- mouseEventCallbacks.current.mouseMove.push(cb);
705
+ mouseEventCallbacks.current.mousemove.push(cb);
708
706
  },
709
707
  onMouseEnter: (cb: (props: MouseEventProps) => void) => {
710
- mouseEventCallbacks.current.mouseEnter.push(cb);
708
+ mouseEventCallbacks.current.mouseenter.push(cb);
711
709
  },
712
710
  onMouseLeave: (cb: (props: MouseEventProps) => void) => {
713
- mouseEventCallbacks.current.mouseLeave.push(cb);
711
+ mouseEventCallbacks.current.mouseleave.push(cb);
714
712
  },
715
713
  onWheel: (cb: (props: MouseEventProps) => void) => {
716
714
  mouseEventCallbacks.current.wheel.push(cb);
@@ -8,15 +8,15 @@ import { Viewer, Globe, Material, Cartesian3 } from "cesium";
8
8
  import { RefObject, useCallback, useEffect, useMemo, useRef } from "react";
9
9
  import { CesiumComponentRef } from "resium";
10
10
 
11
- import { TerrainProperty } from "../../..";
12
- import { useImmutableFunction } from "../../../../hooks/useRefFunction";
13
- import { StringMatcher } from "../../../../utils/StringMatcher";
14
- import { createColorMapImage } from "../../Feature/HeatMap/colorMap";
15
- import GlobeFSDefinitions from "../../Shaders/OverriddenShaders/GlobeFS/Definitions.glsl?raw";
16
- import HeatmapForTerrainFS from "../../Shaders/OverriddenShaders/GlobeFS/HeatmapForTerrain.glsl?raw";
17
- import IBLFS from "../../Shaders/OverriddenShaders/GlobeFS/IBL.glsl?raw";
18
- import { PrivateCesiumGlobe } from "../../types";
19
-
11
+ import { TerrainProperty } from "..";
12
+ import { useImmutableFunction } from "../../hooks/useRefFunction";
13
+ import { StringMatcher } from "../../utils/StringMatcher";
14
+
15
+ import { createColorMapImage } from "./Feature/HeatMap/colorMap";
16
+ import GlobeFSDefinitions from "./Shaders/OverriddenShaders/GlobeFS/Definitions.glsl?raw";
17
+ import HeatmapForTerrainFS from "./Shaders/OverriddenShaders/GlobeFS/HeatmapForTerrain.glsl?raw";
18
+ import IBLFS from "./Shaders/OverriddenShaders/GlobeFS/IBL.glsl?raw";
19
+ import { PrivateCesiumGlobe } from "./types";
20
20
  import { VertexTerrainElevationMaterial } from "./VertexTerrainElevationMaterial";
21
21
 
22
22
  const defaultMatcher = new StringMatcher()
@@ -122,19 +122,17 @@ const useIBL = ({
122
122
 
123
123
  const useTerrainHeatmap = ({
124
124
  cesium,
125
- terrain,
125
+ terrain: {
126
+ heatmapType,
127
+ heatmapMaxHeight,
128
+ heatmapMinHeight,
129
+ heatmapLogarithmic,
130
+ heatmapColorLUT,
131
+ } = {},
126
132
  }: {
127
133
  cesium: RefObject<CesiumComponentRef<Viewer>>;
128
134
  terrain: TerrainProperty | undefined;
129
135
  }) => {
130
- const {
131
- type: heatmapType,
132
- maxHeight: heatmapMaxHeight,
133
- minHeight: heatmapMinHeight,
134
- logarithmic: heatmapLogarithmic,
135
- colorLUT: heatmapColorLUT,
136
- } = terrain?.elevationHeatMap ?? {};
137
-
138
136
  const isCustomHeatmapEnabled = useMemo(() => heatmapType === "custom", [heatmapType]);
139
137
 
140
138
  const shaderForTerrainHeatmap = useMemo(
@@ -143,7 +141,7 @@ const useTerrainHeatmap = ({
143
141
  [
144
142
  "#ifdef APPLY_COLOR_TO_ALPHA",
145
143
  "vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb);",
146
- "colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b);",
144
+ "colorDiff.r = czm_maximumComponent(colorDiff);",
147
145
  "alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha);",
148
146
  "#endif",
149
147
  ],
@@ -208,7 +206,6 @@ export const useOverrideGlobeShader = ({
208
206
  enableLighting,
209
207
  });
210
208
 
211
- // Terrain Heatmap is actually a built-in feature for globe, it renders as a heatmap using terrain height data.
212
209
  const { isCustomHeatmapEnabled, shaderForTerrainHeatmap } = useTerrainHeatmap({
213
210
  cesium,
214
211
  terrain,
@@ -5,7 +5,7 @@ export type {
5
5
  EngineRef,
6
6
  EngineProps,
7
7
  LayerSelectionReason,
8
- ViewerProperty,
8
+ SceneProperty,
9
9
  MouseEventProps,
10
10
  MouseEvents,
11
11
  Geometry,
@@ -31,19 +31,19 @@ export type Rect = {
31
31
  /** Represents the camera position and state */
32
32
  export type CameraPosition = {
33
33
  /** degrees */
34
- lat?: number;
34
+ lat: number;
35
35
  /** degrees */
36
- lng?: number;
36
+ lng: number;
37
37
  /** meters */
38
- height?: number;
38
+ height: number;
39
39
  /** radians */
40
- heading?: number;
40
+ heading: number;
41
41
  /** radians */
42
- pitch?: number;
42
+ pitch: number;
43
43
  /** radians */
44
- roll?: number;
44
+ roll: number;
45
45
  /** Field of view expressed in radians */
46
- fov?: number;
46
+ fov: number;
47
47
  /** Aspect ratio of frustum */
48
48
  aspectRatio?: number;
49
49
  };