@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
@@ -5,7 +5,7 @@ import { ComputedFeature } from "../mantle";
5
5
  import {
6
6
  Map,
7
7
  type MapRef,
8
- type ViewerProperty,
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
- viewerProperty?: ViewerProperty;
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
- viewerProperty,
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={viewerProperty}
159
- time={time}
157
+ property={overriddenSceneProperty}
160
158
  small={small}
161
159
  ready={ready}
162
160
  timelineManagerRef={timelineManagerRef}
@@ -41,7 +41,7 @@ Default.args = {
41
41
  tiles: [
42
42
  {
43
43
  id: "default",
44
- type: "default",
44
+ tile_type: "default",
45
45
  },
46
46
  ],
47
47
  },
@@ -42,7 +42,7 @@ Default.args = {
42
42
  tiles: [
43
43
  {
44
44
  id: "default",
45
- type: "default",
45
+ tile_type: "default",
46
46
  },
47
47
  ],
48
48
  },
@@ -41,7 +41,7 @@ Default.args = {
41
41
  tiles: [
42
42
  {
43
43
  id: "default",
44
- type: "default",
44
+ tile_type: "default",
45
45
  },
46
46
  ],
47
47
  },
@@ -39,7 +39,7 @@ export default function Model({
39
39
  id,
40
40
  isVisible,
41
41
  property,
42
- viewerProperty,
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
- !viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps &&
124
- !viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients
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 ?? viewerProperty?.scene?.imageBasedLighting?.intensity;
131
+ property?.imageBasedLightIntensity ?? sceneProperty?.light?.imageBasedLightIntensity;
133
132
  const sphericalHarmonicCoefficients = arrayToCartecian3(
134
133
  property?.sphericalHarmonicCoefficients ??
135
- viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
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
- viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps,
151
- viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
152
- viewerProperty?.scene?.imageBasedLighting?.intensity,
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
- type: "default",
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
- type: "default",
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
- type: "default",
165
+ tile_type: "default",
166
166
  },
167
167
  ],
168
- globe: {
169
- depthTestAgainstTerrain: true,
170
- },
171
168
  terrain: {
172
- enabled: true,
173
- type: "cesium",
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
- type: "default",
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
- type: "default",
73
+ tile_type: "default",
74
74
  },
75
75
  ],
76
76
  },
@@ -39,7 +39,7 @@ Default.args = {
39
39
  tiles: [
40
40
  {
41
41
  id: "default",
42
- type: "default",
42
+ tile_type: "default",
43
43
  },
44
44
  ],
45
45
  },
@@ -32,7 +32,7 @@ import type {
32
32
  ComputedLayer,
33
33
  Feature,
34
34
  EvalFeature,
35
- ViewerProperty,
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
- viewerProperty,
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
- viewerProperty?: ViewerProperty;
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
- !viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps &&
742
- !viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients
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 ?? viewerProperty?.scene?.imageBasedLighting?.intensity;
750
+ property?.imageBasedLightIntensity ?? sceneProperty?.light?.imageBasedLightIntensity;
752
751
  const sphericalHarmonicCoefficients = arrayToCartecian3(
753
752
  property?.sphericalHarmonicCoefficients ??
754
- viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
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
- viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps,
770
- viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients,
771
- viewerProperty?.scene?.imageBasedLighting?.intensity,
768
+ sceneProperty?.light?.specularEnvironmentMaps,
769
+ sceneProperty?.light?.sphericalHarmonicCoefficients,
770
+ sceneProperty?.light?.imageBasedLightIntensity,
772
771
  ]);
773
772
 
774
773
  const handleReady = useCallback(
@@ -34,7 +34,7 @@ Default.args = {
34
34
  tiles: [
35
35
  {
36
36
  id: "default",
37
- type: "default",
37
+ tile_type: "default",
38
38
  },
39
39
  ],
40
40
  },
@@ -26,7 +26,7 @@ function Tileset({
26
26
  property,
27
27
  layer,
28
28
  feature,
29
- viewerProperty,
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
- viewerProperty,
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
- viewerProperty={viewerProperty}
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.viewerProperty === next.viewerProperty &&
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.viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients;
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.viewerProperty?.scene?.imageBasedLighting?.sphericalHarmonicCoefficients;
208
+ !!props.sceneProperty?.light?.sphericalHarmonicCoefficients;
210
209
  const useSceneSpecularEnvironmentMaps =
211
- !!props.viewerProperty?.scene?.imageBasedLighting?.specularEnvironmentMaps;
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
- ViewerProperty,
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
- viewerProperty?: ViewerProperty;
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, vec3 lightColorHdr,
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 pbrParameters.diffuseColor * diffuseIrradiance;
26
+ return material.diffuse * diffuseIrradiance;
28
27
  }
29
28
 
30
29
  vec4 reearth_computeImageBasedLightingColor(vec4 color) {
31
30
  if (u_reearth_globeImageBasedLighting) {
32
- czm_pbrParameters pbrParameters;
33
- pbrParameters.diffuseColor = color.rgb;
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
- czm_lightColorHdr, pbrParameters);
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 "../../Feature/HeatMap/colorMap";
4
- import { turboColorMap } from "../../Feature/HeatMap/constants";
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 { CameraLimiterProperty } from "../../../Map";
16
- import { Camera } from "../../../utils";
17
- import { getCamera } from "../common";
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: CameraLimiterProperty | undefined,
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?.enabled ||
33
- !property.targetArea?.lng ||
34
- !property.targetArea.lat
33
+ !property?.cameraLimitterEnabled ||
34
+ !property.cameraLimitterTargetArea?.lng ||
35
+ !property.cameraLimitterTargetArea.lat
35
36
  ) {
36
37
  return undefined;
37
38
  }
38
39
 
39
- return getGeodesic(viewer, property.targetArea.lng, property.targetArea.lat);
40
- }, [cesium, property?.enabled, property?.targetArea?.lng, property?.targetArea?.lat]);
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 = typeof property?.targetWidth === "number" ? property.targetWidth : targetWidth;
56
+ const width =
57
+ typeof property?.cameraLimitterTargetWidth === "number"
58
+ ? property.cameraLimitterTargetWidth
59
+ : targetWidth;
47
60
  const length =
48
- typeof property?.targetLength === "number" ? property.targetLength : targetLength;
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?.targetWidth, property?.targetLength, geodesic]);
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?.targetArea || !geodesic) return;
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.targetArea.lng,
75
- property.targetArea.lat,
76
- property.targetArea.height,
89
+ property.cameraLimitterTargetArea.lng,
90
+ property.cameraLimitterTargetArea.lat,
91
+ property.cameraLimitterTargetArea.height,
77
92
  ),
78
93
  orientation: {
79
- heading: property?.targetArea.heading,
80
- pitch: property?.targetArea.pitch,
81
- roll: property?.targetArea.roll,
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 { targetWidth: width = targetWidth, targetLength: length = targetLength } =
92
- property ?? {};
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 (!viewer || viewer.isDestroyed() || !camera || !property?.enabled || !limiterDimensions)
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),