@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.
- package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +8 -8
- package/dist/cesium/Widgets/widgets.css +8 -8
- package/dist/cesium/Workers/{chunk-SUQM3OSW.js → chunk-2YD5QWGR.js} +2 -2
- package/dist/cesium/Workers/{chunk-74N6MC2V.js → chunk-3T4KR75X.js} +2 -2
- package/dist/cesium/Workers/chunk-46KFVW24.js +26 -0
- package/dist/cesium/Workers/chunk-4EI6PP43.js +28 -0
- package/dist/cesium/Workers/{chunk-YEJWCH6C.js → chunk-4RS52VIY.js} +2 -2
- package/dist/cesium/Workers/{chunk-NPBZI5YA.js → chunk-4YLYA3DC.js} +1 -1
- package/dist/cesium/Workers/{chunk-JEWHFDAA.js → chunk-5ENAGXBI.js} +2 -2
- package/dist/cesium/Workers/{chunk-MRR3RGFO.js → chunk-5VIB3TI5.js} +2 -2
- package/dist/cesium/Workers/{chunk-JCJ24DHF.js → chunk-6NGZLDFZ.js} +2 -2
- package/dist/cesium/Workers/{chunk-7X2YQ6I4.js → chunk-6RGNWVZ2.js} +2 -2
- package/dist/cesium/Workers/{chunk-BK3HCS7I.js → chunk-7AZZVJ52.js} +2 -2
- package/dist/cesium/Workers/{chunk-UBIRX2SP.js → chunk-AMXAQQEL.js} +2 -2
- package/dist/cesium/Workers/{chunk-LDCAXLGS.js → chunk-AQW44ZPC.js} +2 -2
- package/dist/cesium/Workers/{chunk-B6TRTFAA.js → chunk-CPCMDW6Z.js} +2 -2
- package/dist/cesium/Workers/{chunk-3C74MLG3.js → chunk-DNL2WDRL.js} +1 -1
- package/dist/cesium/Workers/{chunk-FK5KFB6H.js → chunk-ERW7V247.js} +1 -1
- package/dist/cesium/Workers/{chunk-5AG2MVRM.js → chunk-EYRIA4TP.js} +2 -2
- package/dist/cesium/Workers/{chunk-6AUUBDOF.js → chunk-F7RQIJML.js} +2 -2
- package/dist/cesium/Workers/{chunk-JZLZJJQD.js → chunk-FPZMU6QP.js} +2 -2
- package/dist/cesium/Workers/{chunk-YBI55DLZ.js → chunk-FZDVQW7A.js} +2 -2
- package/dist/cesium/Workers/{chunk-2MBPFWCP.js → chunk-GAZ2U4FO.js} +2 -2
- package/dist/cesium/Workers/{chunk-CSISXEG7.js → chunk-I44IOOT4.js} +1 -1
- package/dist/cesium/Workers/{chunk-R2AN7EKC.js → chunk-IALXUAD4.js} +1 -1
- package/dist/cesium/Workers/{chunk-MDLPQIMP.js → chunk-IXBUEUZL.js} +2 -2
- package/dist/cesium/Workers/{chunk-HPBHKP5S.js → chunk-J3GCYV5K.js} +2 -2
- package/dist/cesium/Workers/{chunk-KRZBI2MU.js → chunk-KGSZTFHZ.js} +2 -2
- package/dist/cesium/Workers/{chunk-B2SKQ7LU.js → chunk-KKKPU2CI.js} +2 -2
- package/dist/cesium/Workers/{chunk-QPOPEH3M.js → chunk-KTEJE5KE.js} +2 -2
- package/dist/cesium/Workers/chunk-KYZ3DYY6.js +26 -0
- package/dist/cesium/Workers/{chunk-LOPN5R3I.js → chunk-L2QG4MRI.js} +2 -2
- package/dist/cesium/Workers/{chunk-EXBFEYPQ.js → chunk-MCE3KFYN.js} +2 -2
- package/dist/cesium/Workers/{chunk-C6DMEJQ7.js → chunk-MMLDGXML.js} +2 -2
- package/dist/cesium/Workers/{chunk-KTTUANTJ.js → chunk-MTBRPBDQ.js} +2 -2
- package/dist/cesium/Workers/{chunk-7VZHIB6P.js → chunk-OKT6VBRK.js} +2 -2
- package/dist/cesium/Workers/chunk-PHYDKLSY.js +26 -0
- package/dist/cesium/Workers/chunk-PWPX3224.js +26 -0
- package/dist/cesium/Workers/{chunk-VQZSIOZW.js → chunk-QHOVE6WG.js} +2 -2
- package/dist/cesium/Workers/{chunk-CN7UN2OZ.js → chunk-QJ6MBL22.js} +2 -2
- package/dist/cesium/Workers/{chunk-NUSW5B6A.js → chunk-QKO6VIG2.js} +2 -2
- package/dist/cesium/Workers/{chunk-4N7SRDH5.js → chunk-QVEE4QL2.js} +2 -2
- package/dist/cesium/Workers/{chunk-4T6AS6BZ.js → chunk-RXQOQZ7S.js} +2 -2
- package/dist/cesium/Workers/{chunk-RURL6ZX2.js → chunk-S3ZKQKMM.js} +2 -2
- package/dist/cesium/Workers/{chunk-ZYWD6OQH.js → chunk-SFEUMZSK.js} +2 -2
- package/dist/cesium/Workers/{chunk-BOPB43LN.js → chunk-T75MW4X3.js} +2 -2
- package/dist/cesium/Workers/chunk-TVO2A75R.js +66 -0
- package/dist/cesium/Workers/{chunk-VHNZBQTR.js → chunk-UHR36K45.js} +2 -2
- package/dist/cesium/Workers/{chunk-WZUWQMI7.js → chunk-UKJCDZOR.js} +2 -2
- package/dist/cesium/Workers/{chunk-B4TQDFIE.js → chunk-VKVIYER6.js} +2 -2
- package/dist/cesium/Workers/{chunk-OUXRUXNB.js → chunk-VPIQWTRZ.js} +2 -2
- package/dist/cesium/Workers/{chunk-2ED5WI77.js → chunk-XSX5HRFC.js} +2 -2
- package/dist/cesium/Workers/{chunk-5Z6L2FHX.js → chunk-Z5WQQHSL.js} +2 -2
- package/dist/cesium/Workers/{chunk-YPDO7SPO.js → chunk-Z7B2VEL5.js} +2 -2
- package/dist/cesium/Workers/combineGeometry.js +2 -2
- package/dist/cesium/Workers/createBoxGeometry.js +2 -2
- package/dist/cesium/Workers/createBoxOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createCircleGeometry.js +2 -2
- package/dist/cesium/Workers/createCircleOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +2 -2
- package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createCorridorGeometry.js +2 -2
- package/dist/cesium/Workers/createCorridorOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createCylinderGeometry.js +2 -2
- package/dist/cesium/Workers/createCylinderOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createEllipseGeometry.js +2 -2
- package/dist/cesium/Workers/createEllipseOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createEllipsoidGeometry.js +2 -2
- package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createFrustumGeometry.js +2 -2
- package/dist/cesium/Workers/createFrustumOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createGeometry.js +2 -2
- package/dist/cesium/Workers/createGroundPolylineGeometry.js +2 -2
- package/dist/cesium/Workers/createPlaneGeometry.js +2 -2
- package/dist/cesium/Workers/createPlaneOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createPolygonGeometry.js +2 -2
- package/dist/cesium/Workers/createPolygonOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createPolylineGeometry.js +2 -2
- package/dist/cesium/Workers/createPolylineVolumeGeometry.js +2 -2
- package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createRectangleGeometry.js +2 -2
- package/dist/cesium/Workers/createRectangleOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createSimplePolylineGeometry.js +2 -2
- package/dist/cesium/Workers/createSphereGeometry.js +2 -2
- package/dist/cesium/Workers/createSphereOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/createTaskProcessorWorker.js +2 -2
- package/dist/cesium/Workers/createVectorTileClampedPolylines.js +2 -2
- package/dist/cesium/Workers/createVectorTileGeometries.js +2 -2
- package/dist/cesium/Workers/createVectorTilePoints.js +2 -2
- package/dist/cesium/Workers/createVectorTilePolygons.js +2 -2
- package/dist/cesium/Workers/createVectorTilePolylines.js +2 -2
- package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +2 -2
- package/dist/cesium/Workers/createVerticesFromHeightmap.js +2 -2
- package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +2 -2
- package/dist/cesium/Workers/createWallGeometry.js +2 -2
- package/dist/cesium/Workers/createWallOutlineGeometry.js +2 -2
- package/dist/cesium/Workers/decodeDraco.js +2 -2
- package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2 -2
- package/dist/cesium/Workers/decodeI3S.js +2 -2
- package/dist/cesium/Workers/transcodeKTX2.js +10 -10
- package/dist/cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +2 -2
- package/dist/core.js +34193 -34105
- package/dist/core.umd.cjs +3866 -3820
- package/dist/index.d.ts +212 -217
- package/package.json +5 -5
- package/src/Map/ClusteredLayers/index.tsx +2 -2
- package/src/Map/Layer/index.tsx +3 -3
- package/src/Map/Layers/hooks.ts +0 -10
- package/src/Map/Layers/index.tsx +2 -2
- package/src/Map/Sketch/hooks.ts +66 -46
- package/src/Map/Sketch/index.tsx +24 -2
- package/src/Map/Sketch/preset.ts +0 -2
- package/src/Map/Sketch/types.ts +0 -31
- package/src/Map/hooks.ts +4 -0
- package/src/Map/index.tsx +5 -8
- package/src/Map/ref.ts +7 -4
- package/src/Map/types/index.ts +216 -34
- package/src/Map/useTimelineManager.ts +3 -5
- package/src/Map/utils.ts +43 -1
- package/src/Visualizer/coreContext.tsx +8 -1
- package/src/Visualizer/hooks.ts +75 -6
- package/src/Visualizer/index.stories.tsx +48 -4
- package/src/Visualizer/index.tsx +6 -8
- package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +1 -1
- package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +1 -1
- package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -1
- package/src/engines/Cesium/Feature/Model/index.tsx +9 -10
- package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +6 -8
- package/src/engines/Cesium/Feature/Raster/index.stories.tsx +2 -2
- package/src/engines/Cesium/Feature/Resource/index.stories.tsx +1 -1
- package/src/engines/Cesium/Feature/Tileset/hooks.ts +11 -12
- package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +1 -1
- package/src/engines/Cesium/Feature/Tileset/index.tsx +4 -4
- package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +1 -10
- package/src/engines/Cesium/Feature/index.tsx +4 -5
- package/src/engines/Cesium/Feature/utils.tsx +2 -3
- package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
- package/src/engines/Cesium/{hooks/useOverrideGlobeShader/VertexTerrainElevationMaterial.ts → VertexTerrainElevationMaterial.ts} +2 -3
- package/src/engines/Cesium/{hooks/useCameraLimiter.ts → cameraLimiter.ts} +45 -22
- package/src/engines/Cesium/core/Globe.tsx +68 -36
- package/src/engines/Cesium/core/Imagery.test.ts +9 -9
- package/src/engines/Cesium/core/Imagery.tsx +19 -17
- package/src/engines/Cesium/core/Indicator/Indicator.tsx +8 -8
- package/src/engines/Cesium/hooks.ts +365 -124
- package/src/engines/Cesium/index.stories.tsx +1 -1
- package/src/engines/Cesium/index.tsx +62 -60
- package/src/engines/Cesium/{hooks/useEngineRef.test.tsx → useEngineRef.test.tsx} +34 -38
- package/src/engines/Cesium/{hooks/useEngineRef.ts → useEngineRef.ts} +41 -43
- package/src/engines/Cesium/{hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts → useOverrideGlobeShader.ts} +17 -20
- package/src/engines/index.ts +1 -1
- package/src/mantle/compat/types.ts +7 -7
- package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
- package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
- package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
- package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
- package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
- package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
- package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
- package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
- package/src/Map/types/viewerProperty.ts +0 -215
- package/src/Visualizer/useCoreAPI.ts +0 -30
- package/src/engines/Cesium/hooks/useCamera.ts +0 -135
- package/src/engines/Cesium/hooks/useExplicitRender.ts +0 -65
- package/src/engines/Cesium/hooks/useLayerDragDrop.ts +0 -77
- package/src/engines/Cesium/hooks/useViewerProperty.ts +0 -90
- /package/src/engines/Cesium/{hooks/useOverrideGlobeShader/JapanSeaLevelEllipsoid.ts → JapanSeaLevelEllipsoid.ts} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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?.
|
|
140
|
+
shadows={!!(property?.atmosphere?.shadows ?? property?.globeShadow?.globeShadow)}
|
|
145
141
|
onClick={handleClick}
|
|
146
|
-
onDoubleClick={mouseEventHandles.
|
|
147
|
-
onMouseDown={mouseEventHandles.
|
|
148
|
-
onMouseUp={mouseEventHandles.
|
|
149
|
-
onRightClick={mouseEventHandles.
|
|
150
|
-
onRightDown={mouseEventHandles.
|
|
151
|
-
onRightUp={mouseEventHandles.
|
|
152
|
-
onMiddleClick={mouseEventHandles.
|
|
153
|
-
onMiddleDown={mouseEventHandles.
|
|
154
|
-
onMiddleUp={mouseEventHandles.
|
|
155
|
-
onMouseMove={mouseEventHandles.
|
|
156
|
-
onMouseEnter={mouseEventHandles.
|
|
157
|
-
onMouseLeave={mouseEventHandles.
|
|
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?.
|
|
204
|
-
? property.
|
|
199
|
+
property?.cameraLimiter?.cameraLimitterEnabled
|
|
200
|
+
? property.cameraLimiter?.cameraLimitterTargetArea?.height ?? Number.POSITIVE_INFINITY
|
|
205
201
|
: Number.POSITIVE_INFINITY
|
|
206
202
|
}
|
|
207
|
-
enableCollisionDetection={
|
|
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?.
|
|
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?.
|
|
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={
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
msaaSamples={sceneMsaaSamples}
|
|
234
|
+
backgroundColor={backgroundColor}
|
|
235
|
+
useWebVR={!!property?.default?.vr || undefined}
|
|
236
|
+
light={light}
|
|
239
237
|
useDepthPicking={false}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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?.
|
|
246
|
-
<Fog
|
|
247
|
-
|
|
248
|
-
|
|
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={
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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?.
|
|
259
|
-
enabled={!!property?.
|
|
260
|
-
intensity={property?.
|
|
260
|
+
{...AMBIENT_OCCLUSION_QUALITY[property?.ambientOcclusion?.quality || "low"]}
|
|
261
|
+
enabled={!!property?.ambientOcclusion?.enabled}
|
|
262
|
+
intensity={property?.ambientOcclusion?.intensity ?? 100}
|
|
261
263
|
outputType={
|
|
262
|
-
property?.
|
|
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.
|
|
60
|
+
expect(result.current.current?.mouseEventCallbacks.doubleclick[0]).toBe(mockMouseEventCallback);
|
|
61
61
|
|
|
62
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
67
|
+
expect(result.current.current?.mouseEventCallbacks.mousedown[0]).toBe(mockMouseEventCallback);
|
|
68
68
|
|
|
69
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
74
|
+
expect(result.current.current?.mouseEventCallbacks.mouseup[0]).toBe(mockMouseEventCallback);
|
|
75
75
|
|
|
76
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
81
|
+
expect(result.current.current?.mouseEventCallbacks.rightclick[0]).toBe(mockMouseEventCallback);
|
|
82
82
|
|
|
83
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
88
|
+
expect(result.current.current?.mouseEventCallbacks.rightdown[0]).toBe(mockMouseEventCallback);
|
|
89
89
|
|
|
90
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
95
|
+
expect(result.current.current?.mouseEventCallbacks.rightup[0]).toBe(mockMouseEventCallback);
|
|
96
96
|
|
|
97
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
102
|
+
expect(result.current.current?.mouseEventCallbacks.middleclick[0]).toBe(mockMouseEventCallback);
|
|
103
103
|
|
|
104
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
109
|
+
expect(result.current.current?.mouseEventCallbacks.middledown[0]).toBe(mockMouseEventCallback);
|
|
110
110
|
|
|
111
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
116
|
+
expect(result.current.current?.mouseEventCallbacks.middleup[0]).toBe(mockMouseEventCallback);
|
|
117
117
|
|
|
118
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
123
|
+
expect(result.current.current?.mouseEventCallbacks.mousemove[0]).toBe(mockMouseEventCallback);
|
|
124
124
|
|
|
125
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
130
|
+
expect(result.current.current?.mouseEventCallbacks.mouseenter[0]).toBe(mockMouseEventCallback);
|
|
131
131
|
|
|
132
|
-
result.current.current?.mouseEventCallbacks.
|
|
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.
|
|
137
|
+
expect(result.current.current?.mouseEventCallbacks.mouseleave[0]).toBe(mockMouseEventCallback);
|
|
138
138
|
|
|
139
|
-
result.current.current?.mouseEventCallbacks.
|
|
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("
|
|
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("
|
|
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.
|
|
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("
|
|
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
|
|
9
|
-
import {
|
|
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 "
|
|
36
|
-
import { attachTag, getTag } from "
|
|
37
|
-
import { PickedFeature, pickManyFromViewportAsFeature } from "
|
|
38
|
-
import { createGeometry } from "
|
|
39
|
-
import { CursorType } from "
|
|
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 "
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
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
|
-
|
|
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.
|
|
678
|
+
mouseEventCallbacks.current.doubleclick.push(cb);
|
|
681
679
|
},
|
|
682
680
|
onMouseDown: (cb: (props: MouseEventProps) => void) => {
|
|
683
|
-
mouseEventCallbacks.current.
|
|
681
|
+
mouseEventCallbacks.current.mousedown.push(cb);
|
|
684
682
|
},
|
|
685
683
|
onMouseUp: (cb: (props: MouseEventProps) => void) => {
|
|
686
|
-
mouseEventCallbacks.current.
|
|
684
|
+
mouseEventCallbacks.current.mouseup.push(cb);
|
|
687
685
|
},
|
|
688
686
|
onRightClick: (cb: (props: MouseEventProps) => void) => {
|
|
689
|
-
mouseEventCallbacks.current.
|
|
687
|
+
mouseEventCallbacks.current.rightclick.push(cb);
|
|
690
688
|
},
|
|
691
689
|
onRightDown: (cb: (props: MouseEventProps) => void) => {
|
|
692
|
-
mouseEventCallbacks.current.
|
|
690
|
+
mouseEventCallbacks.current.rightdown.push(cb);
|
|
693
691
|
},
|
|
694
692
|
onRightUp: (cb: (props: MouseEventProps) => void) => {
|
|
695
|
-
mouseEventCallbacks.current.
|
|
693
|
+
mouseEventCallbacks.current.rightup.push(cb);
|
|
696
694
|
},
|
|
697
695
|
onMiddleClick: (cb: (props: MouseEventProps) => void) => {
|
|
698
|
-
mouseEventCallbacks.current.
|
|
696
|
+
mouseEventCallbacks.current.middleclick.push(cb);
|
|
699
697
|
},
|
|
700
698
|
onMiddleDown: (cb: (props: MouseEventProps) => void) => {
|
|
701
|
-
mouseEventCallbacks.current.
|
|
699
|
+
mouseEventCallbacks.current.middledown.push(cb);
|
|
702
700
|
},
|
|
703
701
|
onMiddleUp: (cb: (props: MouseEventProps) => void) => {
|
|
704
|
-
mouseEventCallbacks.current.
|
|
702
|
+
mouseEventCallbacks.current.middleup.push(cb);
|
|
705
703
|
},
|
|
706
704
|
onMouseMove: (cb: (props: MouseEventProps) => void) => {
|
|
707
|
-
mouseEventCallbacks.current.
|
|
705
|
+
mouseEventCallbacks.current.mousemove.push(cb);
|
|
708
706
|
},
|
|
709
707
|
onMouseEnter: (cb: (props: MouseEventProps) => void) => {
|
|
710
|
-
mouseEventCallbacks.current.
|
|
708
|
+
mouseEventCallbacks.current.mouseenter.push(cb);
|
|
711
709
|
},
|
|
712
710
|
onMouseLeave: (cb: (props: MouseEventProps) => void) => {
|
|
713
|
-
mouseEventCallbacks.current.
|
|
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 "
|
|
13
|
-
import { StringMatcher } from "
|
|
14
|
-
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
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 =
|
|
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,
|
package/src/engines/index.ts
CHANGED
|
@@ -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
|
|
34
|
+
lat: number;
|
|
35
35
|
/** degrees */
|
|
36
|
-
lng
|
|
36
|
+
lng: number;
|
|
37
37
|
/** meters */
|
|
38
|
-
height
|
|
38
|
+
height: number;
|
|
39
39
|
/** radians */
|
|
40
|
-
heading
|
|
40
|
+
heading: number;
|
|
41
41
|
/** radians */
|
|
42
|
-
pitch
|
|
42
|
+
pitch: number;
|
|
43
43
|
/** radians */
|
|
44
|
-
roll
|
|
44
|
+
roll: number;
|
|
45
45
|
/** Field of view expressed in radians */
|
|
46
|
-
fov
|
|
46
|
+
fov: number;
|
|
47
47
|
/** Aspect ratio of frustum */
|
|
48
48
|
aspectRatio?: number;
|
|
49
49
|
};
|