@reearth/core 0.0.7-alpha.1 → 0.0.7-alpha.2
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/core.js +3645 -3664
- package/dist/core.umd.cjs +52 -52
- package/dist/index.d.ts +44 -39
- package/package.json +1 -1
- package/src/Map/Sketch/hooks.ts +46 -66
- package/src/Map/Sketch/index.tsx +2 -24
- package/src/Map/Sketch/preset.ts +2 -0
- package/src/Map/Sketch/types.ts +31 -0
- package/src/Map/ref.ts +3 -7
- package/src/Map/types/index.ts +29 -34
- package/src/Map/types/viewerProperty.ts +3 -4
- package/src/Map/useTimelineManager.ts +3 -1
- package/src/Visualizer/useCoreAPI.ts +2 -2
- package/src/engines/Cesium/core/Globe.tsx +7 -7
- package/src/engines/Cesium/hooks/useCamera.ts +4 -13
- package/src/engines/Cesium/hooks/useEngineRef.test.tsx +24 -24
- package/src/engines/Cesium/hooks/useEngineRef.ts +26 -24
- package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +1 -1
- package/src/engines/Cesium/hooks.ts +12 -12
- package/src/engines/Cesium/index.tsx +12 -12
- package/src/mantle/compat/types.ts +7 -7
|
@@ -84,21 +84,12 @@ export default ({
|
|
|
84
84
|
initialCameraFlight.current = true;
|
|
85
85
|
if (property?.camera?.limiter?.enabled && property?.camera?.limiter?.targetArea) {
|
|
86
86
|
engineAPI.flyTo(property?.camera?.limiter?.targetArea, { duration: 0 });
|
|
87
|
-
} else if (
|
|
88
|
-
|
|
89
|
-
engineAPI.flyTo(camera as Camera, { duration: 0 });
|
|
90
|
-
}
|
|
91
|
-
const camera = getCamera(cesium?.current?.cesiumElement);
|
|
92
|
-
if (camera) {
|
|
93
|
-
onCameraChange?.(camera);
|
|
87
|
+
} else if (camera) {
|
|
88
|
+
engineAPI.flyTo(camera, { duration: 0 });
|
|
94
89
|
}
|
|
95
90
|
},
|
|
96
|
-
[engineAPI, property?.camera?.
|
|
97
|
-
(prevDeps, nextDeps) =>
|
|
98
|
-
prevDeps[0] === nextDeps[0] &&
|
|
99
|
-
isEqual(prevDeps[1], nextDeps[1]) &&
|
|
100
|
-
prevDeps[2] === nextDeps[2] &&
|
|
101
|
-
prevDeps[3] === nextDeps[3],
|
|
91
|
+
[engineAPI, property?.camera?.limiter?.enabled],
|
|
92
|
+
(prevDeps, nextDeps) => prevDeps[0] === nextDeps[0] && prevDeps[1] === nextDeps[1],
|
|
102
93
|
);
|
|
103
94
|
|
|
104
95
|
const unmountCamera = useCallback(() => {
|
|
@@ -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
|
|
|
@@ -53,18 +53,18 @@ export default function useEngineRef(
|
|
|
53
53
|
const cancelCameraFlight = useRef<() => void>();
|
|
54
54
|
const mouseEventCallbacks = useRef<MouseEventCallbacks>({
|
|
55
55
|
click: [],
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
56
|
+
doubleClick: [],
|
|
57
|
+
mouseDown: [],
|
|
58
|
+
mouseUp: [],
|
|
59
|
+
rightClick: [],
|
|
60
|
+
rightDown: [],
|
|
61
|
+
rightUp: [],
|
|
62
|
+
middleClick: [],
|
|
63
|
+
middleDown: [],
|
|
64
|
+
middleUp: [],
|
|
65
|
+
mouseMove: [],
|
|
66
|
+
mouseEnter: [],
|
|
67
|
+
mouseLeave: [],
|
|
68
68
|
wheel: [],
|
|
69
69
|
});
|
|
70
70
|
const tickEventCallback = useRef<TickEventCallback[]>([]);
|
|
@@ -237,6 +237,8 @@ export default function useEngineRef(
|
|
|
237
237
|
setView: camera => {
|
|
238
238
|
const viewer = cesium.current?.cesiumElement;
|
|
239
239
|
if (!viewer || viewer.isDestroyed()) return false;
|
|
240
|
+
if (camera.lat === undefined || camera.lng === undefined || camera.height === undefined)
|
|
241
|
+
return false;
|
|
240
242
|
const scene = viewer.scene;
|
|
241
243
|
if (camera.lng || camera.lat || camera.height) {
|
|
242
244
|
const xyz = Cesium.Cartesian3.fromDegrees(camera.lng, camera.lat, camera.height);
|
|
@@ -675,40 +677,40 @@ export default function useEngineRef(
|
|
|
675
677
|
mouseEventCallbacks.current.click.push(cb);
|
|
676
678
|
},
|
|
677
679
|
onDoubleClick: (cb: (props: MouseEventProps) => void) => {
|
|
678
|
-
mouseEventCallbacks.current.
|
|
680
|
+
mouseEventCallbacks.current.doubleClick.push(cb);
|
|
679
681
|
},
|
|
680
682
|
onMouseDown: (cb: (props: MouseEventProps) => void) => {
|
|
681
|
-
mouseEventCallbacks.current.
|
|
683
|
+
mouseEventCallbacks.current.mouseDown.push(cb);
|
|
682
684
|
},
|
|
683
685
|
onMouseUp: (cb: (props: MouseEventProps) => void) => {
|
|
684
|
-
mouseEventCallbacks.current.
|
|
686
|
+
mouseEventCallbacks.current.mouseUp.push(cb);
|
|
685
687
|
},
|
|
686
688
|
onRightClick: (cb: (props: MouseEventProps) => void) => {
|
|
687
|
-
mouseEventCallbacks.current.
|
|
689
|
+
mouseEventCallbacks.current.rightClick.push(cb);
|
|
688
690
|
},
|
|
689
691
|
onRightDown: (cb: (props: MouseEventProps) => void) => {
|
|
690
|
-
mouseEventCallbacks.current.
|
|
692
|
+
mouseEventCallbacks.current.rightDown.push(cb);
|
|
691
693
|
},
|
|
692
694
|
onRightUp: (cb: (props: MouseEventProps) => void) => {
|
|
693
|
-
mouseEventCallbacks.current.
|
|
695
|
+
mouseEventCallbacks.current.rightUp.push(cb);
|
|
694
696
|
},
|
|
695
697
|
onMiddleClick: (cb: (props: MouseEventProps) => void) => {
|
|
696
|
-
mouseEventCallbacks.current.
|
|
698
|
+
mouseEventCallbacks.current.middleClick.push(cb);
|
|
697
699
|
},
|
|
698
700
|
onMiddleDown: (cb: (props: MouseEventProps) => void) => {
|
|
699
|
-
mouseEventCallbacks.current.
|
|
701
|
+
mouseEventCallbacks.current.middleDown.push(cb);
|
|
700
702
|
},
|
|
701
703
|
onMiddleUp: (cb: (props: MouseEventProps) => void) => {
|
|
702
|
-
mouseEventCallbacks.current.
|
|
704
|
+
mouseEventCallbacks.current.middleUp.push(cb);
|
|
703
705
|
},
|
|
704
706
|
onMouseMove: (cb: (props: MouseEventProps) => void) => {
|
|
705
|
-
mouseEventCallbacks.current.
|
|
707
|
+
mouseEventCallbacks.current.mouseMove.push(cb);
|
|
706
708
|
},
|
|
707
709
|
onMouseEnter: (cb: (props: MouseEventProps) => void) => {
|
|
708
|
-
mouseEventCallbacks.current.
|
|
710
|
+
mouseEventCallbacks.current.mouseEnter.push(cb);
|
|
709
711
|
},
|
|
710
712
|
onMouseLeave: (cb: (props: MouseEventProps) => void) => {
|
|
711
|
-
mouseEventCallbacks.current.
|
|
713
|
+
mouseEventCallbacks.current.mouseLeave.push(cb);
|
|
712
714
|
},
|
|
713
715
|
onWheel: (cb: (props: MouseEventProps) => void) => {
|
|
714
716
|
mouseEventCallbacks.current.wheel.push(cb);
|
|
@@ -133,7 +133,7 @@ const useTerrainHeatmap = ({
|
|
|
133
133
|
minHeight: heatmapMinHeight,
|
|
134
134
|
logarithmic: heatmapLogarithmic,
|
|
135
135
|
colorLUT: heatmapColorLUT,
|
|
136
|
-
} = terrain?.
|
|
136
|
+
} = terrain?.elevationHeatMap ?? {};
|
|
137
137
|
|
|
138
138
|
const isCustomHeatmapEnabled = useMemo(() => heatmapType === "custom", [heatmapType]);
|
|
139
139
|
|
|
@@ -412,18 +412,18 @@ export default ({
|
|
|
412
412
|
wheel: CesiumMouseWheelEvent | undefined;
|
|
413
413
|
} = {
|
|
414
414
|
click: undefined,
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
415
|
+
doubleClick: undefined,
|
|
416
|
+
mouseDown: undefined,
|
|
417
|
+
mouseUp: undefined,
|
|
418
|
+
rightClick: undefined,
|
|
419
|
+
rightDown: undefined,
|
|
420
|
+
rightUp: undefined,
|
|
421
|
+
middleClick: undefined,
|
|
422
|
+
middleDown: undefined,
|
|
423
|
+
middleUp: undefined,
|
|
424
|
+
mouseMove: undefined,
|
|
425
|
+
mouseEnter: undefined,
|
|
426
|
+
mouseLeave: undefined,
|
|
427
427
|
wheel: (delta: number) => {
|
|
428
428
|
handleMouseWheel(delta);
|
|
429
429
|
},
|
|
@@ -143,18 +143,18 @@ const Cesium: React.ForwardRefRenderFunction<EngineRef, EngineProps> = (
|
|
|
143
143
|
}}
|
|
144
144
|
shadows={!!property?.scene?.shadow?.enabled}
|
|
145
145
|
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.
|
|
146
|
+
onDoubleClick={mouseEventHandles.doubleClick}
|
|
147
|
+
onMouseDown={mouseEventHandles.mouseDown}
|
|
148
|
+
onMouseUp={mouseEventHandles.mouseUp}
|
|
149
|
+
onRightClick={mouseEventHandles.rightClick}
|
|
150
|
+
onRightDown={mouseEventHandles.rightDown}
|
|
151
|
+
onRightUp={mouseEventHandles.rightUp}
|
|
152
|
+
onMiddleClick={mouseEventHandles.middleClick}
|
|
153
|
+
onMiddleDown={mouseEventHandles.middleDown}
|
|
154
|
+
onMiddleUp={mouseEventHandles.middleUp}
|
|
155
|
+
onMouseMove={mouseEventHandles.mouseMove}
|
|
156
|
+
onMouseEnter={mouseEventHandles.mouseEnter}
|
|
157
|
+
onMouseLeave={mouseEventHandles.mouseLeave}
|
|
158
158
|
onWheel={mouseEventHandles.wheel}>
|
|
159
159
|
<Event onMount={handleMount} onUnmount={handleUnmount} />
|
|
160
160
|
<Clock timelineManagerRef={timelineManagerRef} />
|
|
@@ -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
|
};
|