@realsee/vreo 2.3.10 → 2.4.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/lib/PlayController/createHTMLAudioElement.js +12 -22
- package/lib/PlayController/index.js +70 -137
- package/lib/Player/App.d.ts +2 -2
- package/lib/Player/App.js +1 -28
- package/lib/Player/Controller.d.ts +3 -3
- package/lib/Player/Controller.js +46 -110
- package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
- package/lib/Player/custom/SpatialScenePanel/index.js +75 -72
- package/lib/Player/hooks.d.ts +3 -3
- package/lib/Player/hooks.js +0 -10
- package/lib/Player/index.js +109 -175
- package/lib/Player/modules/Drawer/index.d.ts +2 -2
- package/lib/Player/modules/Drawer/index.js +2 -21
- package/lib/Player/modules/PopUp/index.d.ts +2 -2
- package/lib/Player/modules/PopUp/index.js +1 -12
- package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
- package/lib/Player/modules/ResizeObserver/index.js +0 -8
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +1 -1
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +148 -247
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +7 -23
- package/lib/Player/modules/VideoAgent/index.d.ts +2 -2
- package/lib/Player/modules/VideoAgent/index.js +2 -20
- package/lib/Player/modules/Wave/index.d.ts +2 -2
- package/lib/Player/modules/Wave/index.js +12 -34
- package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/BgMusic/index.js +41 -64
- package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/CameraMovement/index.js +42 -71
- package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/InfoPanel/index.js +16 -47
- package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/ModelVideo/index.js +52 -83
- package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoEffect/index.js +16 -40
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +1 -9
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -1
- package/lib/Player/modules/keyframes/PanoTag/index.js +6 -25
- package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +31 -50
- package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/Prompter/index.js +11 -29
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +25 -29
- package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/VideoEffect/index.js +52 -87
- package/lib/Player/typings.d.ts +7 -4
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -2
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +1 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/index.js +42 -81
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +3 -7
- package/lib/fivePlugins/CameraMovementPlugin/index.js +181 -241
- package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +4 -4
- package/lib/fivePlugins/CameraMovementPlugin/typings.js +6 -12
- package/lib/fivePlugins/ModelTVVideoPlugin/index.js +37 -87
- package/lib/index.js +0 -1
- package/lib/react/index.d.ts +2 -1
- package/lib/react/index.js +10 -35
- package/lib/shared-utils/Audio.js +57 -106
- package/lib/shared-utils/AudioLike.d.ts +1 -1
- package/lib/shared-utils/AudioLike.js +19 -46
- package/lib/shared-utils/Preloader.js +2 -10
- package/lib/shared-utils/addResizeListener.d.ts +1 -1
- package/lib/shared-utils/addResizeListener.js +0 -5
- package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -1
- package/lib/shared-utils/animationFrame/BetterTween.js +14 -45
- package/lib/shared-utils/animationFrame/index.d.ts +1 -2
- package/lib/shared-utils/animationFrame/index.js +3 -12
- package/lib/shared-utils/animationFrame/tween.d.ts +2 -2
- package/lib/shared-utils/animationFrame/tween.js +3 -14
- package/lib/shared-utils/createTransMatrix.js +1 -10
- package/lib/shared-utils/getFileExpandedName.js +0 -1
- package/lib/shared-utils/getMediaInfo.d.ts +3 -3
- package/lib/shared-utils/getMediaInfo.js +0 -10
- package/lib/shared-utils/setElementDataset.js +0 -2
- package/lib/typings/VreoUnit.d.ts +16 -16
- package/lib/typings/VreoUnit.js +115 -47
- package/package.json +23 -18
package/lib/Player/typings.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import { Subscribe, Five } from '@realsee/five';
|
|
3
3
|
import { VreoKeyframe, VreoKeyframeConfigMap, VreoKeyframeEvent } from '../typings/VreoUnit';
|
|
4
4
|
import { VideoAgentMeshOptions } from './modules/VideoAgent/VideoAgentMesh';
|
|
5
|
+
export type VreoFunctionComponent<P = {}> = (props: P) => ReactNode;
|
|
6
|
+
/** @deprecated 请使用 VreoFunctionComponent<CustomVreoKeyframeProps> 替代 */
|
|
7
|
+
export type LegacyCustomKeyframe = React.FC<CustomVreoKeyframeProps>;
|
|
5
8
|
export interface PlayerConfigs {
|
|
6
9
|
/**
|
|
7
10
|
* @deprecated rename to container
|
|
@@ -24,7 +27,7 @@ export interface PlayerConfigs {
|
|
|
24
27
|
* 如果需要在 底部面板添加自定义内容,可以传递个 React 组件。
|
|
25
28
|
*/
|
|
26
29
|
customPanelChildren?: ReactNode;
|
|
27
|
-
customKeyframes?: React.FC<CustomVreoKeyframeProps>[];
|
|
30
|
+
customKeyframes?: (VreoFunctionComponent<CustomVreoKeyframeProps> | React.FC<CustomVreoKeyframeProps>)[];
|
|
28
31
|
imageOptions?: {
|
|
29
32
|
size: number;
|
|
30
33
|
};
|
|
@@ -38,12 +41,12 @@ export interface PlayerConfigs {
|
|
|
38
41
|
onAvatarClick?: () => any;
|
|
39
42
|
onWaveClick?: () => any;
|
|
40
43
|
}
|
|
41
|
-
export
|
|
42
|
-
export
|
|
44
|
+
export type AppSize = 'S' | 'M' | 'L' | 'XL';
|
|
45
|
+
export type WaveAppearance = 'single' | 'double' | 'solid' | 'swap' | 'expand';
|
|
43
46
|
export interface Appearance {
|
|
44
47
|
waveStyle?: 'wave' | 'solid';
|
|
45
48
|
}
|
|
46
|
-
export
|
|
49
|
+
export type VreoSubscribe = Pick<Subscribe<VreoKeyframeEvent>, 'on' | 'once' | 'off'>;
|
|
47
50
|
export interface CustomVreoKeyframeProps {
|
|
48
51
|
subscribe: Pick<Subscribe<{
|
|
49
52
|
[key: string]: (data: VreoKeyframe, currentTime: number) => any;
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = centerPoint;
|
|
7
|
-
|
|
8
7
|
var _three = require("three");
|
|
9
|
-
|
|
10
8
|
function centerPoint(point1, point2) {
|
|
11
9
|
return new _three.Vector3((point1.x + point2.x) / 2, (point1.y + point2.y) / 2, (point1.z + point2.z) / 2);
|
|
12
10
|
}
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = evenNumber;
|
|
7
|
-
|
|
8
7
|
function evenNumber(num, config) {
|
|
9
8
|
var roundNum = Math.round(num);
|
|
10
9
|
return roundNum % 2 === 0 ? roundNum : roundNum + Number(config !== null && config !== void 0 && config.smaller ? -1 : 1);
|
|
@@ -9,7 +9,7 @@ export interface Vector3Position {
|
|
|
9
9
|
y: number;
|
|
10
10
|
z: number;
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type CSS3DRenderPluginParameterType = undefined;
|
|
13
13
|
export interface CSS3DRenderPluginExportType {
|
|
14
14
|
/**
|
|
15
15
|
* @description: 根据传入的四个点位创建一个3d dom容器,可以通过ReactDom.render()的方式将react组件放到容器中
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = exports.CSS3DRenderPlugin = void 0;
|
|
11
|
-
|
|
12
|
-
var THREE =
|
|
13
|
-
|
|
9
|
+
var _three = _interopRequireWildcard(require("three"));
|
|
10
|
+
var THREE = _three;
|
|
14
11
|
var _CSS3DRenderer = require("three/examples/jsm/renderers/CSS3DRenderer");
|
|
15
|
-
|
|
16
12
|
var _evenNumber = _interopRequireDefault(require("./evenNumber"));
|
|
17
|
-
|
|
18
13
|
var _centerPoint = _interopRequireDefault(require("./centerPoint"));
|
|
19
|
-
|
|
20
14
|
var _transformPositionToVector = _interopRequireDefault(require("./transformPositionToVector3"));
|
|
21
|
-
|
|
22
15
|
var _createResizeObserver = _interopRequireDefault(require("./createResizeObserver"));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
+
/**
|
|
18
|
+
* 三维向量
|
|
19
|
+
*/
|
|
27
20
|
|
|
28
21
|
/**
|
|
29
22
|
* **CSS3DRenderPlugin** 提供矩形区域(三维空间四个坐标点),你可以在此矩形区域中渲染 DOM 内容。
|
|
@@ -31,24 +24,21 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
31
24
|
*
|
|
32
25
|
* @returns
|
|
33
26
|
*/
|
|
34
|
-
var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
27
|
+
var CSS3DRenderPlugin = exports.CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
35
28
|
var state = {
|
|
36
29
|
disposeCallbacks: []
|
|
37
30
|
};
|
|
38
|
-
|
|
39
31
|
var create3DDomContainer = function create3DDomContainer() {
|
|
40
32
|
var _five$model, _five$model2, _config$autoRender;
|
|
41
|
-
|
|
42
33
|
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
34
|
params[_key] = arguments[_key];
|
|
44
35
|
}
|
|
45
|
-
|
|
46
36
|
var points = params[0].map(function (point) {
|
|
47
|
-
return point instanceof
|
|
37
|
+
return point instanceof _three.Vector3 ? point : (0, _transformPositionToVector["default"])(point);
|
|
48
38
|
});
|
|
49
39
|
var config = params[1];
|
|
50
40
|
if ((points === null || points === void 0 ? void 0 : points.length) < 4) return console.error('points must be equal or greater than than 4');
|
|
51
|
-
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
|
|
41
|
+
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 || (_five$model2 = five.model) === null || _five$model2 === void 0 ? void 0 : _five$model2.loaded);
|
|
52
42
|
var fiveElement = five.getElement();
|
|
53
43
|
if (!fiveElement) return console.error('five.getElement() is ' + fiveElement);
|
|
54
44
|
var disposers = [];
|
|
@@ -59,43 +49,40 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
59
49
|
var autoRender = (_config$autoRender = config === null || config === void 0 ? void 0 : config.autoRender) !== null && _config$autoRender !== void 0 ? _config$autoRender : true;
|
|
60
50
|
var behindFiveContainer = (config === null || config === void 0 ? void 0 : config.behindFiveContainer) || fiveElement.parentElement || document.body;
|
|
61
51
|
var container = (config === null || config === void 0 ? void 0 : config.container) || document.createElement('div');
|
|
62
|
-
container.classList.add('
|
|
52
|
+
container.classList.add('__Dnalogel-plugin--CSS3DRenderPlugin');
|
|
63
53
|
|
|
54
|
+
// 获取css3DObject, 如果mode为behind的话,一起获取mesh
|
|
64
55
|
var _createObject = createObject(points, {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
ratio: ratio,
|
|
57
|
+
dpr: dpr,
|
|
58
|
+
container: container,
|
|
59
|
+
mode: mode
|
|
60
|
+
}),
|
|
61
|
+
css3DObject = _createObject.css3DObject,
|
|
62
|
+
mesh = _createObject.mesh;
|
|
63
|
+
|
|
64
|
+
// ======= INIT START =======
|
|
74
65
|
var resizeObserver;
|
|
75
66
|
var frontModeUnInited = mode === 'front' && !state.frontMode;
|
|
76
67
|
var behindModeUnInited = mode === 'behind' && !state.behindMode;
|
|
77
68
|
var inited = !(frontModeUnInited || behindModeUnInited);
|
|
78
69
|
var stopRenderFlag = false;
|
|
79
70
|
var requestAnimationFrameId = null;
|
|
80
|
-
|
|
81
71
|
if (behindModeUnInited) {
|
|
82
72
|
state.behindMode = {
|
|
83
|
-
scene: new
|
|
73
|
+
scene: new _three.Scene(),
|
|
84
74
|
css3DRenderer: new _CSS3DRenderer.CSS3DRenderer()
|
|
85
75
|
};
|
|
86
76
|
}
|
|
87
|
-
|
|
88
77
|
if (frontModeUnInited) {
|
|
89
78
|
state.frontMode = {
|
|
90
|
-
scene: new
|
|
79
|
+
scene: new _three.Scene(),
|
|
91
80
|
css3DRenderer: new _CSS3DRenderer.CSS3DRenderer()
|
|
92
81
|
};
|
|
93
82
|
}
|
|
94
|
-
|
|
95
83
|
var _ref = mode === 'behind' ? state.behindMode : state.frontMode,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
84
|
+
scene = _ref.scene,
|
|
85
|
+
css3DRenderer = _ref.css3DRenderer;
|
|
99
86
|
var render = function () {
|
|
100
87
|
if (!inited) {
|
|
101
88
|
var css3DRendererSetSize = function css3DRendererSetSize() {
|
|
@@ -109,27 +96,22 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
109
96
|
});
|
|
110
97
|
css3DRenderer.setSize(rendererWidth, rendererHeight);
|
|
111
98
|
};
|
|
112
|
-
|
|
113
99
|
css3DRendererSetSize();
|
|
114
100
|
resizeObserver = (0, _createResizeObserver["default"])(css3DRendererSetSize, fiveElement);
|
|
115
101
|
css3DRenderer.domElement.style.position = 'absolute';
|
|
116
102
|
css3DRenderer.domElement.style.top = '0';
|
|
117
103
|
css3DRenderer.domElement.style.userSelect = 'none';
|
|
118
104
|
css3DRenderer.domElement.style.pointerEvents = 'none';
|
|
119
|
-
|
|
120
|
-
var renderEveryFrame = function renderEveryFrame() {
|
|
105
|
+
var _renderEveryFrame = function renderEveryFrame() {
|
|
121
106
|
if (stopRenderFlag) return;
|
|
122
|
-
requestAnimationFrameId = requestAnimationFrame(
|
|
107
|
+
requestAnimationFrameId = requestAnimationFrame(_renderEveryFrame);
|
|
123
108
|
css3DRenderer.render(scene, five.camera);
|
|
124
109
|
};
|
|
125
|
-
|
|
126
110
|
return function () {
|
|
127
111
|
var _resizeObserver, _resizeObserver$obser;
|
|
128
|
-
|
|
129
112
|
scene.add(css3DObject);
|
|
130
|
-
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0
|
|
131
|
-
|
|
132
|
-
|
|
113
|
+
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || (_resizeObserver$obser = _resizeObserver.observe) === null || _resizeObserver$obser === void 0 || _resizeObserver$obser.call(_resizeObserver);
|
|
114
|
+
_renderEveryFrame();
|
|
133
115
|
if (mode === 'behind' && mesh) {
|
|
134
116
|
five.scene.add(mesh);
|
|
135
117
|
disposers.push(function () {
|
|
@@ -143,18 +125,15 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
143
125
|
};
|
|
144
126
|
}
|
|
145
127
|
}();
|
|
146
|
-
|
|
147
128
|
if (frontModeUnInited) {
|
|
148
129
|
var wrapper = fiveElement.parentElement || document.body;
|
|
149
130
|
wrapper.appendChild(css3DRenderer.domElement);
|
|
150
131
|
}
|
|
151
|
-
|
|
152
132
|
if (behindModeUnInited) {
|
|
153
133
|
var _wrapper = behindFiveContainer;
|
|
154
|
-
|
|
155
134
|
_wrapper.appendChild(css3DRenderer.domElement);
|
|
156
|
-
}
|
|
157
|
-
|
|
135
|
+
}
|
|
136
|
+
// ======= INIT END =======
|
|
158
137
|
|
|
159
138
|
var dispose = function dispose() {
|
|
160
139
|
stopRenderFlag = true;
|
|
@@ -163,32 +142,25 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
163
142
|
});
|
|
164
143
|
scene.remove(css3DObject);
|
|
165
144
|
if (typeof requestAnimationFrameId === 'number') cancelAnimationFrame(requestAnimationFrameId);
|
|
166
|
-
|
|
167
145
|
if (scene.children.length === 0) {
|
|
168
146
|
css3DRenderer.domElement.remove();
|
|
169
147
|
if (mode === 'front') state.frontMode = undefined;
|
|
170
148
|
if (mode === 'behind') state.behindMode = undefined;
|
|
171
|
-
|
|
172
149
|
if (!state.behindMode && !state.frontMode) {
|
|
173
150
|
var _resizeObserver2, _resizeObserver2$unob;
|
|
174
|
-
|
|
175
|
-
(_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 ? void 0 : (_resizeObserver2$unob = _resizeObserver2.unobserve) === null || _resizeObserver2$unob === void 0 ? void 0 : _resizeObserver2$unob.call(_resizeObserver2);
|
|
151
|
+
(_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 || (_resizeObserver2$unob = _resizeObserver2.unobserve) === null || _resizeObserver2$unob === void 0 || _resizeObserver2$unob.call(_resizeObserver2);
|
|
176
152
|
}
|
|
177
153
|
}
|
|
178
|
-
|
|
179
154
|
return true;
|
|
180
155
|
};
|
|
181
|
-
|
|
182
156
|
var idx = state.disposeCallbacks.findIndex(function (item) {
|
|
183
157
|
return item === dispose;
|
|
184
158
|
});
|
|
185
|
-
|
|
186
159
|
if (idx !== -1) {
|
|
187
160
|
state.disposeCallbacks.splice(idx, 1);
|
|
188
161
|
} else {
|
|
189
162
|
state.disposeCallbacks.push(dispose);
|
|
190
163
|
}
|
|
191
|
-
|
|
192
164
|
if (autoRender) render();
|
|
193
165
|
return {
|
|
194
166
|
container: container,
|
|
@@ -197,12 +169,11 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
197
169
|
render: autoRender ? undefined : render
|
|
198
170
|
};
|
|
199
171
|
};
|
|
200
|
-
|
|
201
172
|
var createObject = function createObject(points, config) {
|
|
202
173
|
var ratio = config.ratio,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
174
|
+
dpr = config.dpr,
|
|
175
|
+
element = config.container,
|
|
176
|
+
mode = config.mode;
|
|
206
177
|
var planeWidth = points[0].distanceTo(points[1]);
|
|
207
178
|
var planeHeight = points[1].distanceTo(points[2]);
|
|
208
179
|
var domWidthPx = (0, _evenNumber["default"])(planeWidth / ratio * dpr);
|
|
@@ -214,31 +185,26 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
214
185
|
element.style.pointerEvents = 'none';
|
|
215
186
|
var centerPosition = (0, _centerPoint["default"])(points[0], points[2]);
|
|
216
187
|
var vector01 = points[1].clone().sub(points[0]); // 点0 -> 点1 的向量
|
|
217
|
-
|
|
218
188
|
var vector12 = points[2].clone().sub(points[1]); // 点1 -> 点2 的向量
|
|
219
|
-
// 旋转
|
|
220
189
|
|
|
221
|
-
|
|
222
|
-
var
|
|
223
|
-
var
|
|
190
|
+
// 旋转
|
|
191
|
+
var rotateXAngle = new _three.Vector3(0, 1, 0).angleTo(new _three.Vector3(0, vector12.y, vector12.z));
|
|
192
|
+
var rotateYAngle = new _three.Vector3(1, 0, 0).angleTo(new _three.Vector3(vector01.x, 0, vector01.z));
|
|
193
|
+
var rotateZAngle = vector01.angleTo(new _three.Vector3(vector01.x, 0, vector01.z));
|
|
224
194
|
/**
|
|
225
195
|
* [0,1,0] => [0,0,1] 为rolate Worldx正方向
|
|
226
196
|
* [0,0,1] => [0,1,0] 为rolate Worldy正方向
|
|
227
197
|
* [0,1,1] => [-1,0,0] 为rolate Worldz正方向
|
|
228
198
|
*/
|
|
229
|
-
|
|
230
199
|
var rotateX = (vector12.z > 0 ? -1 : 1) * rotateXAngle;
|
|
231
200
|
var rotateY = (vector01.z < 0 ? 1 : -1) * rotateYAngle;
|
|
232
201
|
var rotateZ = (vector01.x > 0 && vector01.y < 0 || vector01.x < 0 && vector01.y > 0 ? -1 : 1) * rotateZAngle;
|
|
233
|
-
css3DObject.rotateOnWorldAxis(new
|
|
234
|
-
|
|
235
|
-
css3DObject.rotateOnWorldAxis(new
|
|
236
|
-
|
|
237
|
-
css3DObject.rotateOnWorldAxis(new THREE.Vector3(0, 0, 1), rotateZ); // z
|
|
202
|
+
css3DObject.rotateOnWorldAxis(new _three.Vector3(1, 0, 0), rotateX); // x
|
|
203
|
+
css3DObject.rotateOnWorldAxis(new _three.Vector3(0, 1, 0), rotateY); // y
|
|
204
|
+
css3DObject.rotateOnWorldAxis(new _three.Vector3(0, 0, 1), rotateZ); // z
|
|
238
205
|
|
|
239
206
|
css3DObject.position.set(centerPosition.x, centerPosition.y, centerPosition.z);
|
|
240
207
|
var mesh;
|
|
241
|
-
|
|
242
208
|
if (mode === 'behind') {
|
|
243
209
|
var material = new THREE.MeshBasicMaterial({
|
|
244
210
|
opacity: 0,
|
|
@@ -252,13 +218,11 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
252
218
|
mesh.rotation.copy(css3DObject.rotation);
|
|
253
219
|
mesh.scale.copy(css3DObject.scale);
|
|
254
220
|
}
|
|
255
|
-
|
|
256
221
|
return {
|
|
257
222
|
css3DObject: css3DObject,
|
|
258
223
|
mesh: mesh
|
|
259
224
|
};
|
|
260
225
|
};
|
|
261
|
-
|
|
262
226
|
return {
|
|
263
227
|
create3DDomContainer: create3DDomContainer,
|
|
264
228
|
disposeAll: function disposeAll() {
|
|
@@ -269,7 +233,4 @@ var CSS3DRenderPlugin = function CSS3DRenderPlugin(five) {
|
|
|
269
233
|
}
|
|
270
234
|
};
|
|
271
235
|
};
|
|
272
|
-
|
|
273
|
-
exports.CSS3DRenderPlugin = CSS3DRenderPlugin;
|
|
274
|
-
var _default = CSS3DRenderPlugin;
|
|
275
|
-
exports["default"] = _default;
|
|
236
|
+
var _default = exports["default"] = CSS3DRenderPlugin;
|
|
@@ -4,15 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _three = require("three");
|
|
9
|
-
|
|
10
8
|
var transformPositionToVector3 = function transformPositionToVector3(_ref) {
|
|
11
9
|
var x = _ref.x,
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
y = _ref.y,
|
|
11
|
+
z = _ref.z;
|
|
14
12
|
return new _three.Vector3(x, y, z);
|
|
15
13
|
};
|
|
16
|
-
|
|
17
|
-
var _default = transformPositionToVector3;
|
|
18
|
-
exports["default"] = _default;
|
|
14
|
+
var _default = exports["default"] = transformPositionToVector3;
|