@realsee/vreo 2.6.4 → 3.0.0-webgpu-react18.8
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/README.md +6 -6
- package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
- package/lib/PlayController/createHTMLAudioElement.d.ts.map +1 -0
- package/lib/PlayController/index.d.ts +14 -24
- package/lib/PlayController/index.d.ts.map +1 -0
- package/lib/PlayController/index.js +74 -220
- package/lib/PlayController/index.js.map +1 -0
- package/lib/Player/App.d.ts +2 -2
- package/lib/Player/App.d.ts.map +1 -0
- package/lib/Player/Controller.d.ts +11 -6
- package/lib/Player/Controller.d.ts.map +1 -0
- package/lib/Player/PlaybackLifecycle.d.ts +1 -0
- package/lib/Player/PlaybackLifecycle.d.ts.map +1 -0
- package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
- package/lib/Player/custom/SpatialScenePanel/index.d.ts.map +1 -0
- package/lib/Player/hooks.d.ts +3 -2
- package/lib/Player/hooks.d.ts.map +1 -0
- package/lib/Player/index.d.ts +3 -2
- package/lib/Player/index.d.ts.map +1 -0
- package/lib/Player/index.js +1770 -437
- package/lib/Player/index.js.map +1 -0
- package/lib/Player/modules/Drawer/index.d.ts +2 -2
- package/lib/Player/modules/Drawer/index.d.ts.map +1 -0
- package/lib/Player/modules/PopUp/index.d.ts +2 -2
- package/lib/Player/modules/PopUp/index.d.ts.map +1 -0
- package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
- package/lib/Player/modules/ResizeObserver/index.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +5 -2
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +8 -5
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/index.d.ts +11 -2
- package/lib/Player/modules/VideoAgent/index.d.ts.map +1 -0
- package/lib/Player/modules/Wave/index.d.ts +2 -2
- package/lib/Player/modules/Wave/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/BgMusic/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/CameraMovement/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/InfoPanel/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/ModelVideo/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoEffect/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts +3 -2
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -0
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/Prompter/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/VideoEffect/index.d.ts.map +1 -0
- package/lib/Player/playback-types.d.ts +1 -0
- package/lib/Player/playback-types.d.ts.map +1 -0
- package/lib/Player/typings.d.ts +2 -1
- package/lib/Player/typings.d.ts.map +1 -0
- package/lib/chunks/index-BgPSzRSs.js +93 -0
- package/lib/chunks/index-BgPSzRSs.js.map +1 -0
- package/lib/chunks/index-CunyJn6H.js +51 -0
- package/lib/chunks/index-CunyJn6H.js.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts +2 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts +5 -6
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +5 -22
- package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts +2 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts.map +1 -0
- package/lib/fivePlugins/CameraMovementPlugin/index.d.ts +2 -1
- package/lib/fivePlugins/CameraMovementPlugin/index.d.ts.map +1 -0
- package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +2 -1
- package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts.map +1 -0
- package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts +2 -1
- package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +12 -1
- package/lib/index.js.map +1 -0
- package/lib/plugins/CSS3DRenderPlugin.js +115 -0
- package/lib/plugins/CSS3DRenderPlugin.js.map +1 -0
- package/lib/plugins/CameraMovementPlugin.js +6 -0
- package/lib/plugins/CameraMovementPlugin.js.map +1 -0
- package/lib/plugins/ModelTVVideoPlugin.js +162 -0
- package/lib/plugins/ModelTVVideoPlugin.js.map +1 -0
- package/lib/react/index.d.ts +5 -4
- package/lib/react/index.d.ts.map +1 -0
- package/lib/react/index.js +39 -226
- package/lib/react/index.js.map +1 -0
- package/lib/shared-utils/Audio.d.ts +3 -1
- package/lib/shared-utils/Audio.d.ts.map +1 -0
- package/lib/shared-utils/AudioLike.d.ts +2 -1
- package/lib/shared-utils/AudioLike.d.ts.map +1 -0
- package/lib/shared-utils/Preloader.d.ts +1 -0
- package/lib/shared-utils/Preloader.d.ts.map +1 -0
- package/lib/shared-utils/addResizeListener.d.ts +2 -1
- package/lib/shared-utils/addResizeListener.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -0
- package/lib/shared-utils/animationFrame/BetterTween.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/index.d.ts +5 -14
- package/lib/shared-utils/animationFrame/index.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/tween.d.ts +1 -0
- package/lib/shared-utils/animationFrame/tween.d.ts.map +1 -0
- package/lib/shared-utils/createTransMatrix.d.ts +3 -1
- package/lib/shared-utils/createTransMatrix.d.ts.map +1 -0
- package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
- package/lib/shared-utils/getFileExpandedName.d.ts.map +1 -0
- package/lib/shared-utils/getMediaInfo.d.ts +1 -0
- package/lib/shared-utils/getMediaInfo.d.ts.map +1 -0
- package/lib/shared-utils/setElementDataset.d.ts +1 -0
- package/lib/shared-utils/setElementDataset.d.ts.map +1 -0
- package/lib/timeline/index.d.ts +18 -0
- package/lib/timeline/index.d.ts.map +1 -0
- package/lib/types/index.js +10 -0
- package/lib/types/index.js.map +1 -0
- package/lib/typings/VreoUnit.d.ts +2 -1
- package/lib/typings/VreoUnit.d.ts.map +1 -0
- package/lib/typings/index.d.ts +1 -0
- package/lib/typings/index.d.ts.map +1 -0
- package/package.json +51 -71
- package/lib/PlayController/createHTMLAudioElement.js +0 -34
- package/lib/Player/App.js +0 -52
- package/lib/Player/Controller.js +0 -536
- package/lib/Player/PlaybackLifecycle.js +0 -118
- package/lib/Player/custom/SpatialScenePanel/index.js +0 -240
- package/lib/Player/hooks.js +0 -22
- package/lib/Player/modules/Drawer/index.js +0 -40
- package/lib/Player/modules/PopUp/index.js +0 -23
- package/lib/Player/modules/ResizeObserver/index.js +0 -22
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +0 -456
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +0 -53
- package/lib/Player/modules/VideoAgent/index.js +0 -72
- package/lib/Player/modules/Wave/index.js +0 -171
- package/lib/Player/modules/keyframes/BgMusic/index.js +0 -65
- package/lib/Player/modules/keyframes/CameraMovement/index.js +0 -75
- package/lib/Player/modules/keyframes/InfoPanel/index.js +0 -170
- package/lib/Player/modules/keyframes/ModelVideo/index.js +0 -128
- package/lib/Player/modules/keyframes/PanoEffect/index.js +0 -99
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -30
- package/lib/Player/modules/keyframes/PanoTag/index.js +0 -110
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -122
- package/lib/Player/modules/keyframes/Prompter/index.js +0 -56
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +0 -98
- package/lib/Player/modules/keyframes/VideoEffect/index.js +0 -154
- package/lib/Player/playback-types.js +0 -1
- package/lib/Player/typings.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -4
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -25
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -4
- package/lib/fivePlugins/CSS3DRenderPlugin/index.js +0 -226
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +0 -8
- package/lib/fivePlugins/CameraMovementPlugin/index.js +0 -245
- package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -15
- package/lib/fivePlugins/ModelTVVideoPlugin/index.js +0 -349
- package/lib/shared-utils/Audio.js +0 -151
- package/lib/shared-utils/AudioLike.js +0 -123
- package/lib/shared-utils/Preloader.js +0 -37
- package/lib/shared-utils/addResizeListener.js +0 -39
- package/lib/shared-utils/animationFrame/BetterTween.js +0 -58
- package/lib/shared-utils/animationFrame/index.js +0 -52
- package/lib/shared-utils/animationFrame/tween.js +0 -58
- package/lib/shared-utils/createTransMatrix.js +0 -12
- package/lib/shared-utils/getFileExpandedName.js +0 -6
- package/lib/shared-utils/getMediaInfo.js +0 -55
- package/lib/shared-utils/setElementDataset.js +0 -16
- package/lib/typings/VreoUnit.js +0 -64
- package/lib/typings/index.js +0 -1
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description: 简陋的 ResizeObserver polyfill
|
|
3
|
-
*/
|
|
4
|
-
export default function createResizeObserver(func, element) {
|
|
5
|
-
if (!element || typeof ResizeObserver === 'undefined') {
|
|
6
|
-
return {
|
|
7
|
-
observe: function observe() {
|
|
8
|
-
return window.addEventListener('resize', func);
|
|
9
|
-
},
|
|
10
|
-
unobserve: function unobserve() {
|
|
11
|
-
return window.removeEventListener('resize', func);
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
} else {
|
|
15
|
-
var observer = new ResizeObserver(func);
|
|
16
|
-
return {
|
|
17
|
-
observe: function observe() {
|
|
18
|
-
return observer.observe(element);
|
|
19
|
-
},
|
|
20
|
-
unobserve: function unobserve() {
|
|
21
|
-
return observer.unobserve(element);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import { Scene, Vector3 } from 'three';
|
|
3
|
-
import { CSS3DObject, CSS3DRenderer } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
4
|
-
import evenNumber from "./evenNumber.js";
|
|
5
|
-
import centerPoint from "./centerPoint.js";
|
|
6
|
-
import transformPositionToVector3 from "./transformPositionToVector3.js";
|
|
7
|
-
import createResizeObserver from "./createResizeObserver.js";
|
|
8
|
-
/**
|
|
9
|
-
* 三维向量
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* **CSS3DRenderPlugin** 提供矩形区域(三维空间四个坐标点),你可以在此矩形区域中渲染 DOM 内容。
|
|
13
|
-
* 实现原理参考[CSS3DRenderer](https://threejs.org/docs/index.html?q=CSS3D#examples/en/renderers/CSS3DRenderer)。
|
|
14
|
-
*
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
export var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
18
|
-
var state = {
|
|
19
|
-
disposeCallbacks: []
|
|
20
|
-
};
|
|
21
|
-
var create3DDomContainer = function create3DDomContainer() {
|
|
22
|
-
var _five$model, _five$model2, _config$autoRender;
|
|
23
|
-
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
24
|
-
params[_key] = arguments[_key];
|
|
25
|
-
}
|
|
26
|
-
var points = params[0].map(function (point) {
|
|
27
|
-
return point instanceof Vector3 ? point : transformPositionToVector3(point);
|
|
28
|
-
});
|
|
29
|
-
var config = params[1];
|
|
30
|
-
if ((points === null || points === void 0 ? void 0 : points.length) < 4) return console.error('points must be equal or greater than than 4');
|
|
31
|
-
if (!(five !== null && five !== void 0 && (_five$model = five.model) !== null && _five$model !== void 0 && _five$model.loaded)) return console.error('five.model.loaded is: ', five === null || five === void 0 ? void 0 : (_five$model2 = five.model) === null || _five$model2 === void 0 ? void 0 : _five$model2.loaded);
|
|
32
|
-
var fiveElement = five.getElement();
|
|
33
|
-
if (!fiveElement) return console.error('five.getElement() is ' + fiveElement);
|
|
34
|
-
var disposers = [];
|
|
35
|
-
var ratio = (config === null || config === void 0 ? void 0 : config.ratio) || 0.00216;
|
|
36
|
-
if (ratio <= 0.00215) console.warn('if you need click css3DElement on safari, ratio must be greater than 0.00215');
|
|
37
|
-
var dpr = (config === null || config === void 0 ? void 0 : config.dpr) || 1;
|
|
38
|
-
var mode = (config === null || config === void 0 ? void 0 : config.mode) || 'front';
|
|
39
|
-
var autoRender = (_config$autoRender = config === null || config === void 0 ? void 0 : config.autoRender) !== null && _config$autoRender !== void 0 ? _config$autoRender : true;
|
|
40
|
-
var behindFiveContainer = (config === null || config === void 0 ? void 0 : config.behindFiveContainer) || fiveElement.parentElement || document.body;
|
|
41
|
-
var container = (config === null || config === void 0 ? void 0 : config.container) || document.createElement('div');
|
|
42
|
-
container.classList.add('__Dnalogel-plugin--CSS3DRenderPlugin');
|
|
43
|
-
|
|
44
|
-
// 获取css3DObject, 如果mode为behind的话,一起获取mesh
|
|
45
|
-
var _createObject = createObject(points, {
|
|
46
|
-
ratio: ratio,
|
|
47
|
-
dpr: dpr,
|
|
48
|
-
container: container,
|
|
49
|
-
mode: mode
|
|
50
|
-
}),
|
|
51
|
-
css3DObject = _createObject.css3DObject,
|
|
52
|
-
mesh = _createObject.mesh;
|
|
53
|
-
|
|
54
|
-
// ======= INIT START =======
|
|
55
|
-
var resizeObserver;
|
|
56
|
-
var frontModeUnInited = mode === 'front' && !state.frontMode;
|
|
57
|
-
var behindModeUnInited = mode === 'behind' && !state.behindMode;
|
|
58
|
-
var inited = !(frontModeUnInited || behindModeUnInited);
|
|
59
|
-
var stopRenderFlag = false;
|
|
60
|
-
var requestAnimationFrameId = null;
|
|
61
|
-
if (behindModeUnInited) {
|
|
62
|
-
state.behindMode = {
|
|
63
|
-
scene: new Scene(),
|
|
64
|
-
css3DRenderer: new CSS3DRenderer()
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if (frontModeUnInited) {
|
|
68
|
-
state.frontMode = {
|
|
69
|
-
scene: new Scene(),
|
|
70
|
-
css3DRenderer: new CSS3DRenderer()
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
var _ref = mode === 'behind' ? state.behindMode : state.frontMode,
|
|
74
|
-
scene = _ref.scene,
|
|
75
|
-
css3DRenderer = _ref.css3DRenderer;
|
|
76
|
-
var render = function () {
|
|
77
|
-
if (!inited) {
|
|
78
|
-
var css3DRendererSetSize = function css3DRendererSetSize() {
|
|
79
|
-
// 这里evenNumber策略是遇到奇数会加1,不知道为啥会触发滚动条显示,导致fiveElement变小,fiveElement变小又触发了这里的resize,宽高变小,滚动条消失,然后又触发resize。。。无限循环
|
|
80
|
-
// 为了规避上面这种情况,evenNumber设置了一个参数,遇到奇数可选择减一
|
|
81
|
-
var rendererWidth = evenNumber(fiveElement.clientWidth, {
|
|
82
|
-
smaller: true
|
|
83
|
-
});
|
|
84
|
-
var rendererHeight = evenNumber(fiveElement.clientHeight, {
|
|
85
|
-
smaller: true
|
|
86
|
-
});
|
|
87
|
-
css3DRenderer.setSize(rendererWidth, rendererHeight);
|
|
88
|
-
};
|
|
89
|
-
css3DRendererSetSize();
|
|
90
|
-
resizeObserver = createResizeObserver(css3DRendererSetSize, fiveElement);
|
|
91
|
-
css3DRenderer.domElement.style.position = 'absolute';
|
|
92
|
-
css3DRenderer.domElement.style.top = '0';
|
|
93
|
-
css3DRenderer.domElement.style.userSelect = 'none';
|
|
94
|
-
css3DRenderer.domElement.style.pointerEvents = 'none';
|
|
95
|
-
var renderEveryFrame = function renderEveryFrame() {
|
|
96
|
-
if (stopRenderFlag) return;
|
|
97
|
-
requestAnimationFrameId = requestAnimationFrame(renderEveryFrame);
|
|
98
|
-
css3DRenderer.render(scene, five.camera);
|
|
99
|
-
};
|
|
100
|
-
return function () {
|
|
101
|
-
var _resizeObserver, _resizeObserver$obser;
|
|
102
|
-
scene.add(css3DObject);
|
|
103
|
-
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 ? void 0 : (_resizeObserver$obser = _resizeObserver.observe) === null || _resizeObserver$obser === void 0 ? void 0 : _resizeObserver$obser.call(_resizeObserver);
|
|
104
|
-
renderEveryFrame();
|
|
105
|
-
if (mode === 'behind' && mesh) {
|
|
106
|
-
five.scene.add(mesh);
|
|
107
|
-
disposers.push(function () {
|
|
108
|
-
return mesh && five.scene.remove(mesh);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
} else {
|
|
113
|
-
return function () {
|
|
114
|
-
scene.add(css3DObject);
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}();
|
|
118
|
-
if (frontModeUnInited) {
|
|
119
|
-
var wrapper = fiveElement.parentElement || document.body;
|
|
120
|
-
wrapper.appendChild(css3DRenderer.domElement);
|
|
121
|
-
}
|
|
122
|
-
if (behindModeUnInited) {
|
|
123
|
-
var _wrapper = behindFiveContainer;
|
|
124
|
-
_wrapper.appendChild(css3DRenderer.domElement);
|
|
125
|
-
}
|
|
126
|
-
// ======= INIT END =======
|
|
127
|
-
|
|
128
|
-
var dispose = function dispose() {
|
|
129
|
-
stopRenderFlag = true;
|
|
130
|
-
disposers.forEach(function (d) {
|
|
131
|
-
return d === null || d === void 0 ? void 0 : d();
|
|
132
|
-
});
|
|
133
|
-
scene.remove(css3DObject);
|
|
134
|
-
if (typeof requestAnimationFrameId === 'number') cancelAnimationFrame(requestAnimationFrameId);
|
|
135
|
-
if (scene.children.length === 0) {
|
|
136
|
-
css3DRenderer.domElement.remove();
|
|
137
|
-
if (mode === 'front') state.frontMode = undefined;
|
|
138
|
-
if (mode === 'behind') state.behindMode = undefined;
|
|
139
|
-
if (!state.behindMode && !state.frontMode) {
|
|
140
|
-
var _resizeObserver2, _resizeObserver2$unob;
|
|
141
|
-
(_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 ? void 0 : (_resizeObserver2$unob = _resizeObserver2.unobserve) === null || _resizeObserver2$unob === void 0 ? void 0 : _resizeObserver2$unob.call(_resizeObserver2);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return true;
|
|
145
|
-
};
|
|
146
|
-
var idx = state.disposeCallbacks.findIndex(function (item) {
|
|
147
|
-
return item === dispose;
|
|
148
|
-
});
|
|
149
|
-
if (idx !== -1) {
|
|
150
|
-
state.disposeCallbacks.splice(idx, 1);
|
|
151
|
-
} else {
|
|
152
|
-
state.disposeCallbacks.push(dispose);
|
|
153
|
-
}
|
|
154
|
-
if (autoRender) render();
|
|
155
|
-
return {
|
|
156
|
-
container: container,
|
|
157
|
-
dispose: dispose,
|
|
158
|
-
css3DObject: css3DObject,
|
|
159
|
-
render: autoRender ? undefined : render
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
var createObject = function createObject(points, config) {
|
|
163
|
-
var ratio = config.ratio,
|
|
164
|
-
dpr = config.dpr,
|
|
165
|
-
element = config.container,
|
|
166
|
-
mode = config.mode;
|
|
167
|
-
var planeWidth = points[0].distanceTo(points[1]);
|
|
168
|
-
var planeHeight = points[1].distanceTo(points[2]);
|
|
169
|
-
var domWidthPx = evenNumber(planeWidth / ratio * dpr);
|
|
170
|
-
var domHeightPx = evenNumber(planeHeight / ratio * dpr);
|
|
171
|
-
var css3DObject = new CSS3DObject(element);
|
|
172
|
-
css3DObject.scale.set(ratio, ratio, ratio);
|
|
173
|
-
element.style.width = domWidthPx + 'px';
|
|
174
|
-
element.style.height = domHeightPx + 'px';
|
|
175
|
-
element.style.pointerEvents = 'none';
|
|
176
|
-
var centerPosition = centerPoint(points[0], points[2]);
|
|
177
|
-
var vector01 = points[1].clone().sub(points[0]); // 点0 -> 点1 的向量
|
|
178
|
-
var vector12 = points[2].clone().sub(points[1]); // 点1 -> 点2 的向量
|
|
179
|
-
|
|
180
|
-
// 旋转
|
|
181
|
-
var rotateXAngle = new Vector3(0, 1, 0).angleTo(new Vector3(0, vector12.y, vector12.z));
|
|
182
|
-
var rotateYAngle = new Vector3(1, 0, 0).angleTo(new Vector3(vector01.x, 0, vector01.z));
|
|
183
|
-
var rotateZAngle = vector01.angleTo(new Vector3(vector01.x, 0, vector01.z));
|
|
184
|
-
/**
|
|
185
|
-
* [0,1,0] => [0,0,1] 为rolate Worldx正方向
|
|
186
|
-
* [0,0,1] => [0,1,0] 为rolate Worldy正方向
|
|
187
|
-
* [0,1,1] => [-1,0,0] 为rolate Worldz正方向
|
|
188
|
-
*/
|
|
189
|
-
var rotateX = (vector12.z > 0 ? -1 : 1) * rotateXAngle;
|
|
190
|
-
var rotateY = (vector01.z < 0 ? 1 : -1) * rotateYAngle;
|
|
191
|
-
var rotateZ = (vector01.x > 0 && vector01.y < 0 || vector01.x < 0 && vector01.y > 0 ? -1 : 1) * rotateZAngle;
|
|
192
|
-
css3DObject.rotateOnWorldAxis(new Vector3(1, 0, 0), rotateX); // x
|
|
193
|
-
css3DObject.rotateOnWorldAxis(new Vector3(0, 1, 0), rotateY); // y
|
|
194
|
-
css3DObject.rotateOnWorldAxis(new Vector3(0, 0, 1), rotateZ); // z
|
|
195
|
-
|
|
196
|
-
css3DObject.position.set(centerPosition.x, centerPosition.y, centerPosition.z);
|
|
197
|
-
var mesh;
|
|
198
|
-
if (mode === 'behind') {
|
|
199
|
-
var material = new THREE.MeshBasicMaterial({
|
|
200
|
-
opacity: 0,
|
|
201
|
-
transparent: false,
|
|
202
|
-
side: THREE.DoubleSide
|
|
203
|
-
});
|
|
204
|
-
var geometry = new THREE.PlaneGeometry(domWidthPx, domHeightPx);
|
|
205
|
-
mesh = new THREE.Mesh(geometry, material);
|
|
206
|
-
mesh.name = 'CSS3DRenderPlugin-mesh';
|
|
207
|
-
mesh.position.copy(css3DObject.position);
|
|
208
|
-
mesh.rotation.copy(css3DObject.rotation);
|
|
209
|
-
mesh.scale.copy(css3DObject.scale);
|
|
210
|
-
}
|
|
211
|
-
return {
|
|
212
|
-
css3DObject: css3DObject,
|
|
213
|
-
mesh: mesh
|
|
214
|
-
};
|
|
215
|
-
};
|
|
216
|
-
return {
|
|
217
|
-
create3DDomContainer: create3DDomContainer,
|
|
218
|
-
disposeAll: function disposeAll() {
|
|
219
|
-
state.disposeCallbacks.forEach(function (d) {
|
|
220
|
-
return d === null || d === void 0 ? void 0 : d();
|
|
221
|
-
});
|
|
222
|
-
state.disposeCallbacks = [];
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
};
|
|
226
|
-
export default CSS3DRenderPlugin;
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
-
import { Five } from '@realsee/five';
|
|
4
|
-
import { Rotation } from "./typings.js";
|
|
5
|
-
var PI = Math.PI;
|
|
6
|
-
var PI_2 = PI * 2;
|
|
7
|
-
var moving = false; // five 6 神秘bug, move 的时候不能 setState
|
|
8
|
-
|
|
9
|
-
function progressNumber(from, to, pst) {
|
|
10
|
-
if (from === to) return from;
|
|
11
|
-
return from + (to - from) * pst;
|
|
12
|
-
}
|
|
13
|
-
function progressLongitude(fromLongitude, toLongitude, rotation, progress) {
|
|
14
|
-
var clockwise = rotation === Rotation.Clockwise;
|
|
15
|
-
var delta = clockwise ? fromLongitude - toLongitude : toLongitude - fromLongitude;
|
|
16
|
-
var deltaMod = delta % PI_2;
|
|
17
|
-
var deltaMod2 = deltaMod < 0 ? deltaMod + PI_2 : deltaMod;
|
|
18
|
-
var deltaMod3 = clockwise ? -deltaMod2 : deltaMod2;
|
|
19
|
-
var progressLongitude = fromLongitude + deltaMod3 * progress;
|
|
20
|
-
return progressLongitude % PI_2;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* **运镜插件** 模拟类似于电影运镜效果。
|
|
25
|
-
*/
|
|
26
|
-
export var CameraMovementPlugin = function CameraMovementPlugin(five) {
|
|
27
|
-
var move = function move(args, duration) {
|
|
28
|
-
var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
29
|
-
preload: true
|
|
30
|
-
};
|
|
31
|
-
return new Promise( /*#__PURE__*/function () {
|
|
32
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
|
|
33
|
-
var _opts$asyncEndCallbac;
|
|
34
|
-
var panoIndex, start, movePanoOptions;
|
|
35
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
36
|
-
while (1) {
|
|
37
|
-
switch (_context.prev = _context.next) {
|
|
38
|
-
case 0:
|
|
39
|
-
moving = true;
|
|
40
|
-
if (opts.asyncStartCallback) {
|
|
41
|
-
opts.asyncStartCallback();
|
|
42
|
-
}
|
|
43
|
-
if (!(five.panoIndex === undefined)) {
|
|
44
|
-
_context.next = 4;
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
return _context.abrupt("return", reject(false));
|
|
48
|
-
case 4:
|
|
49
|
-
if (!(args.mode && args.mode !== five.currentMode)) {
|
|
50
|
-
_context.next = 8;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
_context.next = 7;
|
|
54
|
-
return five.changeMode(args.mode, args, duration);
|
|
55
|
-
case 7:
|
|
56
|
-
return _context.abrupt("return", resolve(true));
|
|
57
|
-
case 8:
|
|
58
|
-
if (!(args.mode === Five.Mode.Floorplan)) {
|
|
59
|
-
_context.next = 10;
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
return _context.abrupt("return", resolve(true));
|
|
63
|
-
case 10:
|
|
64
|
-
if (!(opts.preload && args.panoIndex !== undefined && args.panoIndex !== five.panoIndex)) {
|
|
65
|
-
_context.next = 13;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
_context.next = 13;
|
|
69
|
-
return five.preloadPano(args.panoIndex);
|
|
70
|
-
case 13:
|
|
71
|
-
(_opts$asyncEndCallbac = opts.asyncEndCallback) === null || _opts$asyncEndCallbac === void 0 ? void 0 : _opts$asyncEndCallbac.call(opts);
|
|
72
|
-
if (!(args.panoIndex === undefined && args.fov === undefined && args.latitude === undefined && args.longitude === undefined)) {
|
|
73
|
-
_context.next = 16;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
return _context.abrupt("return", resolve(true));
|
|
77
|
-
case 16:
|
|
78
|
-
panoIndex = args.panoIndex !== undefined ? args.panoIndex : five.panoIndex;
|
|
79
|
-
if (!(panoIndex !== undefined)) {
|
|
80
|
-
_context.next = 26;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
start = performance.now();
|
|
84
|
-
_context.next = 21;
|
|
85
|
-
return five.ready();
|
|
86
|
-
case 21:
|
|
87
|
-
movePanoOptions = Object.assign({}, args, {
|
|
88
|
-
duration: duration - (performance.now() - start),
|
|
89
|
-
// 移动耗时
|
|
90
|
-
moveEndCallback: function moveEndCallback() {
|
|
91
|
-
return resolve(true);
|
|
92
|
-
},
|
|
93
|
-
// 移动结束
|
|
94
|
-
moveCancelCallback: function moveCancelCallback() {
|
|
95
|
-
resolve(true);
|
|
96
|
-
},
|
|
97
|
-
// 移动开始
|
|
98
|
-
effect: args.transEffect || 'fly'
|
|
99
|
-
});
|
|
100
|
-
_context.next = 24;
|
|
101
|
-
return five.moveToPano(panoIndex, movePanoOptions);
|
|
102
|
-
case 24:
|
|
103
|
-
_context.next = 27;
|
|
104
|
-
break;
|
|
105
|
-
case 26:
|
|
106
|
-
reject(false);
|
|
107
|
-
case 27:
|
|
108
|
-
case "end":
|
|
109
|
-
return _context.stop();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}, _callee);
|
|
113
|
-
}));
|
|
114
|
-
return function (_x, _x2) {
|
|
115
|
-
return _ref.apply(this, arguments);
|
|
116
|
-
};
|
|
117
|
-
}());
|
|
118
|
-
};
|
|
119
|
-
var rotate = /*#__PURE__*/function () {
|
|
120
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(args, duration) {
|
|
121
|
-
var _opts$asyncStartCallb, _opts$asyncEndCallbac2;
|
|
122
|
-
var opts,
|
|
123
|
-
from,
|
|
124
|
-
to,
|
|
125
|
-
timeEnd,
|
|
126
|
-
start,
|
|
127
|
-
animeDuration,
|
|
128
|
-
onFiveRenderFrame,
|
|
129
|
-
_args2 = arguments;
|
|
130
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
131
|
-
while (1) {
|
|
132
|
-
switch (_context2.prev = _context2.next) {
|
|
133
|
-
case 0:
|
|
134
|
-
opts = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};
|
|
135
|
-
moving = false;
|
|
136
|
-
(_opts$asyncStartCallb = opts.asyncStartCallback) === null || _opts$asyncStartCallb === void 0 ? void 0 : _opts$asyncStartCallb.call(opts);
|
|
137
|
-
|
|
138
|
-
// 先切换模型再出旋转效果
|
|
139
|
-
if (!(args.mode && five.currentMode !== args.mode)) {
|
|
140
|
-
_context2.next = 6;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
_context2.next = 6;
|
|
144
|
-
return five.changeMode(args.mode, args.mode === Five.Mode.Panorama ? {
|
|
145
|
-
latitude: 0
|
|
146
|
-
} : undefined);
|
|
147
|
-
case 6:
|
|
148
|
-
if (!(args.mode === Five.Mode.Panorama && five.currentMode === Five.Mode.Panorama && args.panoIndex !== undefined && args.panoIndex !== five.panoIndex)) {
|
|
149
|
-
_context2.next = 12;
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
if (!opts.preload) {
|
|
153
|
-
_context2.next = 10;
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
_context2.next = 10;
|
|
157
|
-
return five.preloadPano(args.panoIndex);
|
|
158
|
-
case 10:
|
|
159
|
-
_context2.next = 12;
|
|
160
|
-
return new Promise(function (resolve, reject) {
|
|
161
|
-
five.moveToPano(args.panoIndex, {
|
|
162
|
-
moveEndCallback: function moveEndCallback() {
|
|
163
|
-
return resolve(true);
|
|
164
|
-
},
|
|
165
|
-
// 移动结束
|
|
166
|
-
moveCancelCallback: function moveCancelCallback() {
|
|
167
|
-
return reject(false);
|
|
168
|
-
},
|
|
169
|
-
// 移动开始
|
|
170
|
-
effect: 'fade'
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
case 12:
|
|
174
|
-
_context2.next = 14;
|
|
175
|
-
return five.ready();
|
|
176
|
-
case 14:
|
|
177
|
-
(_opts$asyncEndCallbac2 = opts.asyncEndCallback) === null || _opts$asyncEndCallbac2 === void 0 ? void 0 : _opts$asyncEndCallbac2.call(opts);
|
|
178
|
-
|
|
179
|
-
// 计算to
|
|
180
|
-
from = five.getCurrentState();
|
|
181
|
-
to = function () {
|
|
182
|
-
return args;
|
|
183
|
-
}();
|
|
184
|
-
timeEnd = false; // 开始时间
|
|
185
|
-
start = performance.now();
|
|
186
|
-
animeDuration = duration;
|
|
187
|
-
if (args.rotation === Rotation.Loop) {
|
|
188
|
-
animeDuration = args.rotateSpeed ? Math.ceil(Math.abs(to.longitude - from.longitude) / args.rotateSpeed * 1000) : duration;
|
|
189
|
-
animeDuration = Math.min(duration, animeDuration);
|
|
190
|
-
}
|
|
191
|
-
onFiveRenderFrame = function onFiveRenderFrame() {
|
|
192
|
-
if (timeEnd || moving) {
|
|
193
|
-
five.off('renderFrame', onFiveRenderFrame);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
var targetState = {};
|
|
197
|
-
if (args.rotation !== Rotation.Loop) {
|
|
198
|
-
var progress = (performance.now() - start) / duration;
|
|
199
|
-
targetState = {
|
|
200
|
-
fov: progressNumber(from.fov, to.fov, progress),
|
|
201
|
-
latitude: progressNumber(from.latitude, to.latitude, progress),
|
|
202
|
-
longitude: progressLongitude(from.longitude, to.longitude, args.rotation, progress)
|
|
203
|
-
};
|
|
204
|
-
} else {
|
|
205
|
-
var _progress = (performance.now() - start) / animeDuration; // 可能大于1
|
|
206
|
-
var times = Math.floor(_progress);
|
|
207
|
-
var progress2 = _progress - times; // 一定小于1
|
|
208
|
-
var isNegative = times % 2 === 1; // 是否为反向旋转, 0: 正, 1: 反, 2: 正, 3: 反 以此类推
|
|
209
|
-
var resultProgress = isNegative ? 1 - progress2 : progress2;
|
|
210
|
-
targetState = {
|
|
211
|
-
fov: progressNumber(from.fov, to.fov, resultProgress),
|
|
212
|
-
latitude: progressNumber(from.latitude, to.latitude, resultProgress),
|
|
213
|
-
longitude: progressNumber(from.longitude, to.longitude, resultProgress)
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
five.setState(targetState, true);
|
|
217
|
-
};
|
|
218
|
-
five.on('renderFrame', onFiveRenderFrame);
|
|
219
|
-
_context2.next = 25;
|
|
220
|
-
return new Promise(function (resolve) {
|
|
221
|
-
setTimeout(function () {
|
|
222
|
-
timeEnd = true;
|
|
223
|
-
five.off('renderFrame', onFiveRenderFrame);
|
|
224
|
-
// 总时间到了之后强制结束,同时也是 Loop 模式的结束方式
|
|
225
|
-
resolve(true);
|
|
226
|
-
}, duration);
|
|
227
|
-
});
|
|
228
|
-
case 25:
|
|
229
|
-
return _context2.abrupt("return", _context2.sent);
|
|
230
|
-
case 26:
|
|
231
|
-
case "end":
|
|
232
|
-
return _context2.stop();
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}, _callee2);
|
|
236
|
-
}));
|
|
237
|
-
return function rotate(_x3, _x4) {
|
|
238
|
-
return _ref2.apply(this, arguments);
|
|
239
|
-
};
|
|
240
|
-
}();
|
|
241
|
-
return {
|
|
242
|
-
move: move,
|
|
243
|
-
rotate: rotate
|
|
244
|
-
};
|
|
245
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prettier/prettier */
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
4
|
-
|
|
5
|
-
export var CameraMovementEffect;
|
|
6
|
-
(function (CameraMovementEffect) {
|
|
7
|
-
CameraMovementEffect["Move"] = "Move";
|
|
8
|
-
CameraMovementEffect["Rotate"] = "Rotate";
|
|
9
|
-
})(CameraMovementEffect || (CameraMovementEffect = {}));
|
|
10
|
-
export var Rotation;
|
|
11
|
-
(function (Rotation) {
|
|
12
|
-
Rotation["Clockwise"] = "Clockwise";
|
|
13
|
-
Rotation["Anticlockwise"] = "Anticlockwise";
|
|
14
|
-
Rotation["Loop"] = "Loop";
|
|
15
|
-
})(Rotation || (Rotation = {}));
|