@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
package/src/Visualizer/index.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import { ComputedFeature } from "../mantle";
|
|
|
5
5
|
import {
|
|
6
6
|
Map,
|
|
7
7
|
type MapRef,
|
|
8
|
-
type
|
|
8
|
+
type SceneProperty,
|
|
9
9
|
type Layer,
|
|
10
10
|
type LayerSelectionReason,
|
|
11
11
|
type Camera,
|
|
@@ -33,10 +33,9 @@ export type CoreVisualizerProps = {
|
|
|
33
33
|
engine?: EngineType;
|
|
34
34
|
isBuilt?: boolean;
|
|
35
35
|
isEditable?: boolean;
|
|
36
|
-
|
|
36
|
+
sceneProperty?: SceneProperty;
|
|
37
37
|
layers?: Layer[];
|
|
38
38
|
clusters?: Cluster[]; // TODO: remove completely from beta core
|
|
39
|
-
time?: string | Date;
|
|
40
39
|
camera?: Camera;
|
|
41
40
|
interactionMode?: InteractionModeType;
|
|
42
41
|
shouldRender?: boolean;
|
|
@@ -68,14 +67,13 @@ export const CoreVisualizer = memo(
|
|
|
68
67
|
engine,
|
|
69
68
|
isBuilt,
|
|
70
69
|
isEditable,
|
|
71
|
-
|
|
70
|
+
sceneProperty,
|
|
72
71
|
layers,
|
|
73
72
|
clusters,
|
|
74
73
|
small,
|
|
75
74
|
ready,
|
|
76
75
|
hiddenLayers,
|
|
77
76
|
camera: initialCamera,
|
|
78
|
-
time,
|
|
79
77
|
interactionMode,
|
|
80
78
|
shouldRender,
|
|
81
79
|
meta,
|
|
@@ -99,6 +97,7 @@ export const CoreVisualizer = memo(
|
|
|
99
97
|
selectedFeature,
|
|
100
98
|
camera,
|
|
101
99
|
featureFlags,
|
|
100
|
+
overriddenSceneProperty,
|
|
102
101
|
isLayerDragging,
|
|
103
102
|
timelineManagerRef,
|
|
104
103
|
cursor,
|
|
@@ -122,8 +121,8 @@ export const CoreVisualizer = memo(
|
|
|
122
121
|
{
|
|
123
122
|
camera: initialCamera,
|
|
124
123
|
interactionMode,
|
|
124
|
+
sceneProperty,
|
|
125
125
|
zoomedLayerId,
|
|
126
|
-
viewerProperty,
|
|
127
126
|
onLayerSelect,
|
|
128
127
|
onCameraChange,
|
|
129
128
|
onZoomToLayer,
|
|
@@ -155,8 +154,7 @@ export const CoreVisualizer = memo(
|
|
|
155
154
|
style={style}
|
|
156
155
|
featureFlags={featureFlags}
|
|
157
156
|
shouldRender={shouldRender}
|
|
158
|
-
property={
|
|
159
|
-
time={time}
|
|
157
|
+
property={overriddenSceneProperty}
|
|
160
158
|
small={small}
|
|
161
159
|
ready={ready}
|
|
162
160
|
timelineManagerRef={timelineManagerRef}
|
|
@@ -39,7 +39,7 @@ export default function Model({
|
|
|
39
39
|
id,
|
|
40
40
|
isVisible,
|
|
41
41
|
property,
|
|
42
|
-
|
|
42
|
+
sceneProperty,
|
|
43
43
|
geometry,
|
|
44
44
|
layer,
|
|
45
45
|
feature,
|
|
@@ -120,19 +120,18 @@ export default function Model({
|
|
|
120
120
|
if (
|
|
121
121
|
!property?.specularEnvironmentMaps &&
|
|
122
122
|
!property?.sphericalHarmonicCoefficients &&
|
|
123
|
-
!
|
|
124
|
-
!
|
|
123
|
+
!sceneProperty?.light?.specularEnvironmentMaps &&
|
|
124
|
+
!sceneProperty?.light?.sphericalHarmonicCoefficients
|
|
125
125
|
)
|
|
126
126
|
return ibl;
|
|
127
127
|
|
|
128
128
|
const specularEnvironmentMaps =
|
|
129
|
-
property?.specularEnvironmentMaps ??
|
|
130
|
-
viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps;
|
|
129
|
+
property?.specularEnvironmentMaps ?? sceneProperty?.light?.specularEnvironmentMaps;
|
|
131
130
|
const imageBasedLightIntensity =
|
|
132
|
-
property?.imageBasedLightIntensity ??
|
|
131
|
+
property?.imageBasedLightIntensity ?? sceneProperty?.light?.imageBasedLightIntensity;
|
|
133
132
|
const sphericalHarmonicCoefficients = arrayToCartecian3(
|
|
134
133
|
property?.sphericalHarmonicCoefficients ??
|
|
135
|
-
|
|
134
|
+
sceneProperty?.light?.sphericalHarmonicCoefficients,
|
|
136
135
|
imageBasedLightIntensity,
|
|
137
136
|
);
|
|
138
137
|
|
|
@@ -147,9 +146,9 @@ export default function Model({
|
|
|
147
146
|
property?.specularEnvironmentMaps,
|
|
148
147
|
property?.sphericalHarmonicCoefficients,
|
|
149
148
|
property?.imageBasedLightIntensity,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
sceneProperty?.light?.specularEnvironmentMaps,
|
|
150
|
+
sceneProperty?.light?.sphericalHarmonicCoefficients,
|
|
151
|
+
sceneProperty?.light?.imageBasedLightIntensity,
|
|
153
152
|
]);
|
|
154
153
|
|
|
155
154
|
const { viewer } = useCesium();
|
|
@@ -58,7 +58,7 @@ Basic.args = {
|
|
|
58
58
|
tiles: [
|
|
59
59
|
{
|
|
60
60
|
id: "default",
|
|
61
|
-
|
|
61
|
+
tile_type: "default",
|
|
62
62
|
},
|
|
63
63
|
],
|
|
64
64
|
},
|
|
@@ -113,7 +113,7 @@ Excluded.args = {
|
|
|
113
113
|
tiles: [
|
|
114
114
|
{
|
|
115
115
|
id: "default",
|
|
116
|
-
|
|
116
|
+
tile_type: "default",
|
|
117
117
|
},
|
|
118
118
|
],
|
|
119
119
|
},
|
|
@@ -162,15 +162,13 @@ ClampToGround.args = {
|
|
|
162
162
|
tiles: [
|
|
163
163
|
{
|
|
164
164
|
id: "default",
|
|
165
|
-
|
|
165
|
+
tile_type: "default",
|
|
166
166
|
},
|
|
167
167
|
],
|
|
168
|
-
globe: {
|
|
169
|
-
depthTestAgainstTerrain: true,
|
|
170
|
-
},
|
|
171
168
|
terrain: {
|
|
172
|
-
|
|
173
|
-
|
|
169
|
+
terrain: true,
|
|
170
|
+
terrainType: "cesium",
|
|
171
|
+
depthTestAgainstTerrain: true,
|
|
174
172
|
},
|
|
175
173
|
},
|
|
176
174
|
};
|
|
@@ -35,7 +35,7 @@ WMS.args = {
|
|
|
35
35
|
tiles: [
|
|
36
36
|
{
|
|
37
37
|
id: "default",
|
|
38
|
-
|
|
38
|
+
tile_type: "default",
|
|
39
39
|
},
|
|
40
40
|
],
|
|
41
41
|
},
|
|
@@ -70,7 +70,7 @@ MVT.args = {
|
|
|
70
70
|
tiles: [
|
|
71
71
|
{
|
|
72
72
|
id: "default",
|
|
73
|
-
|
|
73
|
+
tile_type: "default",
|
|
74
74
|
},
|
|
75
75
|
],
|
|
76
76
|
},
|
|
@@ -32,7 +32,7 @@ import type {
|
|
|
32
32
|
ComputedLayer,
|
|
33
33
|
Feature,
|
|
34
34
|
EvalFeature,
|
|
35
|
-
|
|
35
|
+
SceneProperty,
|
|
36
36
|
Cesium3DTilesAppearance,
|
|
37
37
|
} from "../../..";
|
|
38
38
|
import { useRefValue } from "../../../../hooks";
|
|
@@ -429,7 +429,7 @@ export const useHooks = ({
|
|
|
429
429
|
boxId,
|
|
430
430
|
isVisible,
|
|
431
431
|
property,
|
|
432
|
-
|
|
432
|
+
sceneProperty,
|
|
433
433
|
layer,
|
|
434
434
|
meta,
|
|
435
435
|
evalFeature,
|
|
@@ -440,7 +440,7 @@ export const useHooks = ({
|
|
|
440
440
|
boxId: string;
|
|
441
441
|
isVisible?: boolean;
|
|
442
442
|
property?: Property;
|
|
443
|
-
|
|
443
|
+
sceneProperty?: SceneProperty;
|
|
444
444
|
layer?: ComputedLayer;
|
|
445
445
|
feature?: ComputedFeature;
|
|
446
446
|
meta?: Record<string, unknown>;
|
|
@@ -738,20 +738,19 @@ export const useHooks = ({
|
|
|
738
738
|
if (
|
|
739
739
|
!property?.specularEnvironmentMaps &&
|
|
740
740
|
!property?.sphericalHarmonicCoefficients &&
|
|
741
|
-
!
|
|
742
|
-
!
|
|
741
|
+
!sceneProperty?.light?.specularEnvironmentMaps &&
|
|
742
|
+
!sceneProperty?.light?.sphericalHarmonicCoefficients
|
|
743
743
|
)
|
|
744
744
|
return;
|
|
745
745
|
|
|
746
746
|
const ibl = new ImageBasedLighting();
|
|
747
747
|
const specularEnvironmentMaps =
|
|
748
|
-
property?.specularEnvironmentMaps ??
|
|
749
|
-
viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps;
|
|
748
|
+
property?.specularEnvironmentMaps ?? sceneProperty?.light?.specularEnvironmentMaps;
|
|
750
749
|
const imageBasedLightIntensity =
|
|
751
|
-
property?.imageBasedLightIntensity ??
|
|
750
|
+
property?.imageBasedLightIntensity ?? sceneProperty?.light?.imageBasedLightIntensity;
|
|
752
751
|
const sphericalHarmonicCoefficients = arrayToCartecian3(
|
|
753
752
|
property?.sphericalHarmonicCoefficients ??
|
|
754
|
-
|
|
753
|
+
sceneProperty?.light?.sphericalHarmonicCoefficients,
|
|
755
754
|
imageBasedLightIntensity,
|
|
756
755
|
);
|
|
757
756
|
|
|
@@ -766,9 +765,9 @@ export const useHooks = ({
|
|
|
766
765
|
property?.specularEnvironmentMaps,
|
|
767
766
|
property?.sphericalHarmonicCoefficients,
|
|
768
767
|
property?.imageBasedLightIntensity,
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
768
|
+
sceneProperty?.light?.specularEnvironmentMaps,
|
|
769
|
+
sceneProperty?.light?.sphericalHarmonicCoefficients,
|
|
770
|
+
sceneProperty?.light?.imageBasedLightIntensity,
|
|
772
771
|
]);
|
|
773
772
|
|
|
774
773
|
const handleReady = useCallback(
|
|
@@ -26,7 +26,7 @@ function Tileset({
|
|
|
26
26
|
property,
|
|
27
27
|
layer,
|
|
28
28
|
feature,
|
|
29
|
-
|
|
29
|
+
sceneProperty,
|
|
30
30
|
meta,
|
|
31
31
|
evalFeature,
|
|
32
32
|
onComputedFeatureFetch,
|
|
@@ -53,7 +53,7 @@ function Tileset({
|
|
|
53
53
|
layer,
|
|
54
54
|
feature,
|
|
55
55
|
property,
|
|
56
|
-
|
|
56
|
+
sceneProperty,
|
|
57
57
|
meta,
|
|
58
58
|
evalFeature,
|
|
59
59
|
onComputedFeatureFetch,
|
|
@@ -95,7 +95,7 @@ function Tileset({
|
|
|
95
95
|
<Box
|
|
96
96
|
{...props}
|
|
97
97
|
id={boxId}
|
|
98
|
-
|
|
98
|
+
sceneProperty={sceneProperty}
|
|
99
99
|
property={boxProperty as any}
|
|
100
100
|
geometry={builtinBoxProps.geometry}
|
|
101
101
|
feature={feature}
|
|
@@ -117,7 +117,7 @@ export default memo(
|
|
|
117
117
|
prev.isVisible === next.isVisible &&
|
|
118
118
|
prev.property === next.property &&
|
|
119
119
|
prev.layer?.layer === next.layer?.layer &&
|
|
120
|
-
prev.
|
|
120
|
+
prev.sceneProperty === next.sceneProperty &&
|
|
121
121
|
prev.meta === next.meta &&
|
|
122
122
|
prev.evalFeature === next.evalFeature &&
|
|
123
123
|
prev.onComputedFeatureFetch === next.onComputedFeatureFetch &&
|
|
@@ -411,16 +411,7 @@ export const useClippingBox = ({
|
|
|
411
411
|
eventHandler.setInputAction(handleMouseUp, ScreenSpaceEventType.LEFT_UP);
|
|
412
412
|
}, [eventHandler, handleMouseDown, handleRawMouseMove, handleMouseUp]);
|
|
413
413
|
|
|
414
|
-
useEffect(
|
|
415
|
-
() => () => {
|
|
416
|
-
requestAnimationFrame(() => {
|
|
417
|
-
if (!eventHandler.isDestroyed()) {
|
|
418
|
-
eventHandler.destroy();
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
},
|
|
422
|
-
[eventHandler],
|
|
423
|
-
);
|
|
414
|
+
useEffect(() => () => eventHandler.destroy(), [eventHandler]);
|
|
424
415
|
|
|
425
416
|
const boxProperty = useMemo(
|
|
426
417
|
() => ({ ...boxState, ...dimensions, allowEnterGround }),
|
|
@@ -127,9 +127,8 @@ export default function Feature({
|
|
|
127
127
|
if (!isRenderableAppearance(k)) return null;
|
|
128
128
|
|
|
129
129
|
const useSceneSphericalHarmonicCoefficients =
|
|
130
|
-
!!props.
|
|
131
|
-
const useSceneSpecularEnvironmentMaps =
|
|
132
|
-
!!props.viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps;
|
|
130
|
+
!!props.sceneProperty?.light?.sphericalHarmonicCoefficients;
|
|
131
|
+
const useSceneSpecularEnvironmentMaps = !!props.sceneProperty?.light?.specularEnvironmentMaps;
|
|
133
132
|
|
|
134
133
|
const isVisible = layer.layer.visible !== false && !isHidden;
|
|
135
134
|
|
|
@@ -206,9 +205,9 @@ export default function Feature({
|
|
|
206
205
|
const isVisible = layer.layer.visible !== false && !isHidden;
|
|
207
206
|
// NOTE: IBL for 3dtiles is not updated unless Tileset feature component is re-created.
|
|
208
207
|
const useSceneSphericalHarmonicCoefficients =
|
|
209
|
-
!!props.
|
|
208
|
+
!!props.sceneProperty?.light?.sphericalHarmonicCoefficients;
|
|
210
209
|
const useSceneSpecularEnvironmentMaps =
|
|
211
|
-
!!props.
|
|
210
|
+
!!props.sceneProperty?.light?.specularEnvironmentMaps;
|
|
212
211
|
const use3dtilesSphericalHarmonicCoefficients =
|
|
213
212
|
layer?.layer?.type === "simple" &&
|
|
214
213
|
!!layer?.layer?.["3dtiles"]?.sphericalHarmonicCoefficients;
|
|
@@ -35,7 +35,7 @@ import type {
|
|
|
35
35
|
ComputedLayer,
|
|
36
36
|
FeatureComponentProps,
|
|
37
37
|
Geometry,
|
|
38
|
-
|
|
38
|
+
SceneProperty,
|
|
39
39
|
} from "../..";
|
|
40
40
|
import { Data, Layer, LayerSimple, TimeInterval } from "../../../mantle";
|
|
41
41
|
import { FeatureIndex } from "../FeatureIndex";
|
|
@@ -48,7 +48,7 @@ export type FeatureProps<P = any> = {
|
|
|
48
48
|
layer?: ComputedLayer;
|
|
49
49
|
feature?: ComputedFeature;
|
|
50
50
|
geometry?: Geometry;
|
|
51
|
-
|
|
51
|
+
sceneProperty?: SceneProperty;
|
|
52
52
|
} & Omit<FeatureComponentProps, "layer">;
|
|
53
53
|
|
|
54
54
|
export type FeatureComponent = ComponentType<FeatureProps>;
|
|
@@ -105,7 +105,6 @@ function EntityExtComponent(
|
|
|
105
105
|
props.id,
|
|
106
106
|
unselectable,
|
|
107
107
|
hideIndicator,
|
|
108
|
-
r.current?.cesiumElement,
|
|
109
108
|
]);
|
|
110
109
|
|
|
111
110
|
return <Entity ref={composeRefs(ref, r)} {...props} />;
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
// https://github.com/CesiumGS/cesium/blob/1.106/packages/engine/Source/Shaders/Model/ImageBasedLightingStageFS.glsl
|
|
7
7
|
// Specular term was removed, as I never apply it on terrain.
|
|
8
8
|
vec3 reearth_imageBasedLightingStage(vec3 positionEC, vec3 normalEC,
|
|
9
|
-
vec3 lightDirectionEC,
|
|
10
|
-
czm_pbrParameters pbrParameters) {
|
|
9
|
+
vec3 lightDirectionEC, czm_modelMaterial material) {
|
|
11
10
|
vec3 v = -positionEC;
|
|
12
11
|
vec3 n = normalEC;
|
|
13
12
|
vec3 l = normalize(lightDirectionEC);
|
|
@@ -24,21 +23,18 @@ vec3 reearth_imageBasedLightingStage(vec3 positionEC, vec3 normalEC,
|
|
|
24
23
|
vec3 diffuseIrradiance =
|
|
25
24
|
czm_sphericalHarmonics(cubeDir, u_reearth_sphericalHarmonicCoefficients);
|
|
26
25
|
|
|
27
|
-
return
|
|
26
|
+
return material.diffuse * diffuseIrradiance;
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
vec4 reearth_computeImageBasedLightingColor(vec4 color) {
|
|
31
30
|
if (u_reearth_globeImageBasedLighting) {
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
czm_modelMaterial material;
|
|
32
|
+
material.diffuse = color.rgb;
|
|
34
33
|
|
|
35
34
|
vec3 normalEC = normalize(v_normalEC);
|
|
36
35
|
vec3 lighting =
|
|
37
|
-
czm_pbrLighting(v_positionEC, normalEC, czm_lightDirectionEC,
|
|
38
|
-
|
|
39
|
-
lighting += reearth_imageBasedLightingStage(
|
|
40
|
-
v_positionEC, normalEC, czm_lightDirectionEC,
|
|
41
|
-
czm_lightColorHdr, pbrParameters) *
|
|
36
|
+
czm_pbrLighting(v_positionEC, normalEC, czm_lightDirectionEC, material) * czm_lightColorHdr;
|
|
37
|
+
lighting += reearth_imageBasedLightingStage(v_positionEC, normalEC, czm_lightDirectionEC, material) *
|
|
42
38
|
u_vertexShadowDarkness;
|
|
43
39
|
|
|
44
40
|
#ifndef HDR
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Ellipsoid, Material } from "cesium";
|
|
2
2
|
|
|
3
|
-
import { createColorMapImage } from "
|
|
4
|
-
import { turboColorMap } from "
|
|
5
|
-
|
|
3
|
+
import { createColorMapImage } from "./Feature/HeatMap/colorMap";
|
|
4
|
+
import { turboColorMap } from "./Feature/HeatMap/constants";
|
|
6
5
|
import { JapanSeaLevelEllipsoid } from "./JapanSeaLevelEllipsoid";
|
|
7
6
|
import source from "./vertexTerrainElevationMaterial.glsl?raw";
|
|
8
7
|
|
|
@@ -12,9 +12,10 @@ import type { Viewer as CesiumViewer } from "cesium";
|
|
|
12
12
|
import { useEffect, useMemo, useState, RefObject } from "react";
|
|
13
13
|
import { CesiumComponentRef } from "resium";
|
|
14
14
|
|
|
15
|
-
import {
|
|
16
|
-
import { Camera } from "
|
|
17
|
-
|
|
15
|
+
import type { SceneProperty } from "..";
|
|
16
|
+
import { Camera } from "../../utils";
|
|
17
|
+
|
|
18
|
+
import { getCamera } from "./common";
|
|
18
19
|
|
|
19
20
|
const targetWidth = 1000000;
|
|
20
21
|
const targetLength = 1000000;
|
|
@@ -22,30 +23,44 @@ const targetLength = 1000000;
|
|
|
22
23
|
export function useCameraLimiter(
|
|
23
24
|
cesium: RefObject<CesiumComponentRef<CesiumViewer>>,
|
|
24
25
|
camera: Camera | undefined,
|
|
25
|
-
property:
|
|
26
|
+
property: SceneProperty["cameraLimiter"] | undefined,
|
|
26
27
|
) {
|
|
27
28
|
const geodesic = useMemo(() => {
|
|
28
29
|
const viewer = cesium.current?.cesiumElement;
|
|
29
30
|
if (
|
|
30
31
|
!viewer ||
|
|
31
32
|
viewer.isDestroyed() ||
|
|
32
|
-
!property?.
|
|
33
|
-
!property.
|
|
34
|
-
!property.
|
|
33
|
+
!property?.cameraLimitterEnabled ||
|
|
34
|
+
!property.cameraLimitterTargetArea?.lng ||
|
|
35
|
+
!property.cameraLimitterTargetArea.lat
|
|
35
36
|
) {
|
|
36
37
|
return undefined;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
return getGeodesic(
|
|
40
|
-
|
|
40
|
+
return getGeodesic(
|
|
41
|
+
viewer,
|
|
42
|
+
property.cameraLimitterTargetArea.lng,
|
|
43
|
+
property.cameraLimitterTargetArea.lat,
|
|
44
|
+
);
|
|
45
|
+
}, [
|
|
46
|
+
cesium,
|
|
47
|
+
property?.cameraLimitterEnabled,
|
|
48
|
+
property?.cameraLimitterTargetArea?.lng,
|
|
49
|
+
property?.cameraLimitterTargetArea?.lat,
|
|
50
|
+
]);
|
|
41
51
|
|
|
42
52
|
// calculate inner limiter dimensions
|
|
43
53
|
const limiterDimensions = useMemo((): InnerLimiterDimensions | undefined => {
|
|
44
54
|
if (!geodesic) return undefined;
|
|
45
55
|
|
|
46
|
-
const width =
|
|
56
|
+
const width =
|
|
57
|
+
typeof property?.cameraLimitterTargetWidth === "number"
|
|
58
|
+
? property.cameraLimitterTargetWidth
|
|
59
|
+
: targetWidth;
|
|
47
60
|
const length =
|
|
48
|
-
typeof property?.
|
|
61
|
+
typeof property?.cameraLimitterTargetLength === "number"
|
|
62
|
+
? property.cameraLimitterTargetLength
|
|
63
|
+
: targetLength;
|
|
49
64
|
|
|
50
65
|
const { cartesianArray, cartographicDimensions } = calcBoundaryBox(
|
|
51
66
|
geodesic,
|
|
@@ -57,7 +72,7 @@ export function useCameraLimiter(
|
|
|
57
72
|
cartographicDimensions,
|
|
58
73
|
cartesianArray,
|
|
59
74
|
};
|
|
60
|
-
}, [property?.
|
|
75
|
+
}, [property?.cameraLimitterTargetWidth, property?.cameraLimitterTargetLength, geodesic]);
|
|
61
76
|
|
|
62
77
|
// calculate maximum camera view (outer boundaries)
|
|
63
78
|
const [cameraViewOuterBoundaries, setCameraViewOuterBoundaries] = useState<
|
|
@@ -66,19 +81,19 @@ export function useCameraLimiter(
|
|
|
66
81
|
|
|
67
82
|
useEffect(() => {
|
|
68
83
|
const viewer = cesium.current?.cesiumElement;
|
|
69
|
-
if (!viewer || viewer.isDestroyed() || !property?.
|
|
84
|
+
if (!viewer || viewer.isDestroyed() || !property?.cameraLimitterTargetArea || !geodesic) return;
|
|
70
85
|
|
|
71
86
|
const camera = new CesiumCamera(viewer.scene);
|
|
72
87
|
camera.setView({
|
|
73
88
|
destination: Cartesian3.fromDegrees(
|
|
74
|
-
property.
|
|
75
|
-
property.
|
|
76
|
-
property.
|
|
89
|
+
property.cameraLimitterTargetArea.lng,
|
|
90
|
+
property.cameraLimitterTargetArea.lat,
|
|
91
|
+
property.cameraLimitterTargetArea.height,
|
|
77
92
|
),
|
|
78
93
|
orientation: {
|
|
79
|
-
heading: property?.
|
|
80
|
-
pitch: property?.
|
|
81
|
-
roll: property?.
|
|
94
|
+
heading: property?.cameraLimitterTargetArea.heading,
|
|
95
|
+
pitch: property?.cameraLimitterTargetArea.pitch,
|
|
96
|
+
roll: property?.cameraLimitterTargetArea.roll,
|
|
82
97
|
up: camera.up,
|
|
83
98
|
},
|
|
84
99
|
});
|
|
@@ -88,8 +103,10 @@ export function useCameraLimiter(
|
|
|
88
103
|
const rectangleHalfWidth = Rectangle.computeWidth(computedViewRectangle) * Math.PI * 1000000;
|
|
89
104
|
const rectangleHalfHeight = Rectangle.computeHeight(computedViewRectangle) * Math.PI * 1000000;
|
|
90
105
|
|
|
91
|
-
const {
|
|
92
|
-
|
|
106
|
+
const {
|
|
107
|
+
cameraLimitterTargetWidth: width = targetWidth,
|
|
108
|
+
cameraLimitterTargetLength: length = targetLength,
|
|
109
|
+
} = property ?? {};
|
|
93
110
|
|
|
94
111
|
const { cartesianArray } = calcBoundaryBox(
|
|
95
112
|
geodesic,
|
|
@@ -104,7 +121,13 @@ export function useCameraLimiter(
|
|
|
104
121
|
useEffect(() => {
|
|
105
122
|
const viewer = cesium?.current?.cesiumElement;
|
|
106
123
|
const camera = getCamera(cesium?.current?.cesiumElement);
|
|
107
|
-
if (
|
|
124
|
+
if (
|
|
125
|
+
!viewer ||
|
|
126
|
+
viewer.isDestroyed() ||
|
|
127
|
+
!camera ||
|
|
128
|
+
!property?.cameraLimitterEnabled ||
|
|
129
|
+
!limiterDimensions
|
|
130
|
+
)
|
|
108
131
|
return;
|
|
109
132
|
viewer.camera.setView({
|
|
110
133
|
destination: getAllowedCameraDestination(camera, limiterDimensions),
|