@realsee/vreo 2.3.8 → 2.3.9-alpha.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 (48) hide show
  1. package/lib/PlayController/createHTMLAudioElement.js +10 -2
  2. package/lib/PlayController/index.js +66 -6
  3. package/lib/Player/App.js +26 -0
  4. package/lib/Player/Controller.js +77 -21
  5. package/lib/Player/custom/SpatialScenePanel/index.js +63 -42
  6. package/lib/Player/hooks.js +10 -0
  7. package/lib/Player/index.js +79 -19
  8. package/lib/Player/modules/Drawer/index.js +17 -0
  9. package/lib/Player/modules/PopUp/index.js +10 -0
  10. package/lib/Player/modules/ResizeObserver/index.js +8 -0
  11. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +96 -8
  12. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +17 -3
  13. package/lib/Player/modules/VideoAgent/index.js +17 -0
  14. package/lib/Player/modules/Wave/index.js +32 -11
  15. package/lib/Player/modules/keyframes/BgMusic/index.js +24 -4
  16. package/lib/Player/modules/keyframes/CameraMovement/index.js +26 -0
  17. package/lib/Player/modules/keyframes/InfoPanel/index.js +38 -8
  18. package/lib/Player/modules/keyframes/ModelVideo/index.js +28 -0
  19. package/lib/Player/modules/keyframes/PanoEffect/index.js +38 -15
  20. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +7 -0
  21. package/lib/Player/modules/keyframes/PanoTag/index.js +22 -4
  22. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +42 -22
  23. package/lib/Player/modules/keyframes/Prompter/index.js +27 -10
  24. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +25 -18
  25. package/lib/Player/modules/keyframes/VideoEffect/index.js +42 -10
  26. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +2 -0
  27. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +1 -0
  28. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +1 -0
  29. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +60 -19
  30. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +5 -2
  31. package/lib/fivePlugins/CameraMovementPlugin/index.js +109 -50
  32. package/lib/fivePlugins/CameraMovementPlugin/typings.js +4 -0
  33. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +54 -8
  34. package/lib/index.js +1 -0
  35. package/lib/react/index.js +30 -7
  36. package/lib/shared-utils/Audio.js +49 -8
  37. package/lib/shared-utils/AudioLike.js +28 -3
  38. package/lib/shared-utils/Preloader.js +7 -0
  39. package/lib/shared-utils/addResizeListener.js +5 -0
  40. package/lib/shared-utils/animationFrame/BetterTween.js +28 -0
  41. package/lib/shared-utils/animationFrame/index.js +10 -2
  42. package/lib/shared-utils/animationFrame/tween.js +11 -2
  43. package/lib/shared-utils/createTransMatrix.js +8 -0
  44. package/lib/shared-utils/getFileExpandedName.js +1 -0
  45. package/lib/shared-utils/getMediaInfo.js +9 -0
  46. package/lib/shared-utils/setElementDataset.js +2 -0
  47. package/lib/typings/VreoUnit.js +15 -0
  48. package/package.json +1 -1
@@ -1,64 +1,82 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.BgMusic = BgMusic;
11
+
9
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
10
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
11
16
  var React = _interopRequireWildcard(require("react"));
17
+
12
18
  var _Audio = require("../../../../shared-utils/Audio");
19
+
13
20
  var _VreoUnit = require("../../../../typings/VreoUnit");
21
+
14
22
  var _hooks = require("../../../hooks");
23
+
15
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
16
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
17
28
  function BgMusic() {
18
29
  var controller = (0, _hooks.useController)();
19
30
  React.useEffect(function () {
20
31
  var callback = /*#__PURE__*/function () {
21
32
  var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyframe, currentTime) {
22
33
  var start, end, _currentTime, audio, cleanAudio, play;
34
+
23
35
  return _regenerator["default"].wrap(function _callee$(_context) {
24
36
  while (1) {
25
37
  switch (_context.prev = _context.next) {
26
38
  case 0:
27
39
  start = keyframe.start, end = keyframe.end;
28
40
  _currentTime = (currentTime - start) / 1000;
41
+
29
42
  if (!(_currentTime < 0 || _currentTime >= keyframe.end - keyframe.start)) {
30
43
  _context.next = 4;
31
44
  break;
32
45
  }
46
+
33
47
  return _context.abrupt("return");
48
+
34
49
  case 4:
35
50
  audio = (0, _Audio.getAudio)(keyframe.data.url);
36
- audio.currentTime = Math.max(0, _currentTime);
37
- // console.log('play', audio.src)
51
+ audio.currentTime = Math.max(0, _currentTime); // console.log('play', audio.src)
38
52
  // const play = () => audio.play()
39
53
 
40
54
  audio.play();
55
+
41
56
  cleanAudio = function cleanAudio() {
42
57
  // audio.removeEventListener('canplaythrough', play)
43
58
  audio.removeEventListener('pause', play);
44
59
  audio.pause();
45
- audio.src = '';
46
- // cleanTimeout()
60
+ audio.src = ''; // cleanTimeout()
47
61
  }; // audio.addEventListener('canplaythrough', play)
48
62
 
63
+
49
64
  audio.addEventListener('ended', function () {
50
65
  cleanAudio();
51
66
  });
67
+
52
68
  play = function play() {
53
69
  if (audio.realSrc === keyframe.data.url) {
54
70
  // 有可能会被其他音轨打断
55
71
  audio.play();
56
72
  }
57
73
  };
74
+
58
75
  audio.addEventListener('pause', play);
59
76
  controller.once('paused', function () {
60
77
  cleanAudio();
61
78
  });
79
+
62
80
  case 12:
63
81
  case "end":
64
82
  return _context.stop();
@@ -66,10 +84,12 @@ function BgMusic() {
66
84
  }
67
85
  }, _callee);
68
86
  }));
87
+
69
88
  return function callback(_x, _x2) {
70
89
  return _ref.apply(this, arguments);
71
90
  };
72
91
  }();
92
+
73
93
  controller.on(_VreoUnit.VreoKeyframeEnum.BgMusic, callback);
74
94
  return function () {
75
95
  controller.off(_VreoUnit.VreoKeyframeEnum.BgMusic, callback);
@@ -1,20 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.CameraMovement = CameraMovement;
11
+
9
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
10
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
11
16
  var React = _interopRequireWildcard(require("react"));
17
+
12
18
  var _CameraMovementPlugin = require("../../../../fivePlugins/CameraMovementPlugin");
19
+
13
20
  var _typings = require("../../../../fivePlugins/CameraMovementPlugin/typings");
21
+
14
22
  var _VreoUnit = require("../../../../typings/VreoUnit");
23
+
15
24
  var _hooks = require("../../../hooks");
25
+
16
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
17
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
18
30
  function CameraMovement() {
19
31
  var controller = (0, _hooks.useController)();
20
32
  var five = (0, _hooks.useFiveInstance)();
@@ -30,41 +42,53 @@ function CameraMovement() {
30
42
  if (!ref.current) {
31
43
  ref.current = (0, _CameraMovementPlugin.CameraMovementPlugin)(five, {});
32
44
  }
45
+
33
46
  start = keyframe.start, end = keyframe.end, data = keyframe.data;
34
47
  cameraMovementData = data;
35
48
  effect = cameraMovementData.effect;
49
+
36
50
  if (!(effect === _typings.CameraMovementEffect.Rotate)) {
37
51
  _context.next = 9;
38
52
  break;
39
53
  }
54
+
40
55
  _context.next = 7;
41
56
  return ref.current.rotate(data, end - start);
57
+
42
58
  case 7:
43
59
  _context.next = 21;
44
60
  break;
61
+
45
62
  case 9:
46
63
  if (!(effect === _typings.CameraMovementEffect.Move)) {
47
64
  _context.next = 14;
48
65
  break;
49
66
  }
67
+
50
68
  _context.next = 12;
51
69
  return ref.current.move(data, end - start);
70
+
52
71
  case 12:
53
72
  _context.next = 21;
54
73
  break;
74
+
55
75
  case 14:
56
76
  if (!(cameraMovementData.panoIndex !== undefined && cameraMovementData.panoIndex !== five.panoIndex)) {
57
77
  _context.next = 19;
58
78
  break;
59
79
  }
80
+
60
81
  _context.next = 17;
61
82
  return ref.current.move(data, end - start);
83
+
62
84
  case 17:
63
85
  _context.next = 21;
64
86
  break;
87
+
65
88
  case 19:
66
89
  _context.next = 21;
67
90
  return ref.current.rotate(data, end - start);
91
+
68
92
  case 21:
69
93
  case "end":
70
94
  return _context.stop();
@@ -72,10 +96,12 @@ function CameraMovement() {
72
96
  }
73
97
  }, _callee);
74
98
  }));
99
+
75
100
  return function callback(_x) {
76
101
  return _ref.apply(this, arguments);
77
102
  };
78
103
  }();
104
+
79
105
  controller.on(_VreoUnit.VreoKeyframeEnum.CameraMovement, callback);
80
106
  return function () {
81
107
  controller.off(_VreoUnit.VreoKeyframeEnum.CameraMovement, callback);
@@ -1,21 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.InfoPanel = InfoPanel;
9
+
8
10
  var React = _interopRequireWildcard(require("react"));
11
+
9
12
  var _VreoUnit = require("../../../../typings/VreoUnit");
13
+
10
14
  var _hooks = require("../../../hooks");
15
+
11
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
12
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
13
20
  var isWX = navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1;
14
21
  var isIOS = navigator.userAgent.toLowerCase().indexOf('iphone') !== -1;
15
22
  var isIOSorWX = isIOS || isWX;
23
+
16
24
  var _videoElement = document.createElement('video');
25
+
17
26
  _videoElement.setAttribute('playsinline', 'true');
27
+
18
28
  _videoElement.setAttribute('webkit-playsinline', 'true');
29
+
19
30
  if (isIOSorWX) {
20
31
  if (_videoElement.paused) {
21
32
  _videoElement.addEventListener('click', function () {
@@ -25,9 +36,10 @@ if (isIOSorWX) {
25
36
  });
26
37
  }
27
38
  }
39
+
28
40
  function InfoPanelImg(_ref) {
29
41
  var url = _ref.url,
30
- children = _ref.children;
42
+ children = _ref.children;
31
43
  return /*#__PURE__*/React.createElement("div", {
32
44
  className: "vreo-infoPanel-container"
33
45
  }, /*#__PURE__*/React.createElement("div", {
@@ -36,33 +48,40 @@ function InfoPanelImg(_ref) {
36
48
  src: url
37
49
  })));
38
50
  }
51
+
39
52
  function InfoPanelVideo(_ref2) {
40
53
  var url = _ref2.url,
41
- children = _ref2.children;
54
+ children = _ref2.children;
42
55
  var videoWrapperRef = React.useRef(null);
43
56
  var controller = (0, _hooks.useController)();
44
57
  React.useEffect(function () {
45
58
  var _controller$configs, _controller$configs$v;
59
+
46
60
  // if (!isIOSorWX) return
47
61
  var video = ((_controller$configs = controller.configs) === null || _controller$configs === void 0 ? void 0 : (_controller$configs$v = _controller$configs.videos) === null || _controller$configs$v === void 0 ? void 0 : _controller$configs$v.videoPanel) || _videoElement;
48
62
  if (!videoWrapperRef.current) return;
49
63
  video.src = url;
64
+
50
65
  if (!videoWrapperRef.current.contains(video)) {
51
66
  videoWrapperRef.current.appendChild(video);
52
67
  }
68
+
53
69
  var canplaythrough = function canplaythrough() {
54
70
  video.removeEventListener('canplaythrough', canplaythrough);
71
+
55
72
  try {
56
73
  video.play();
57
74
  } catch (error) {}
58
75
  };
76
+
59
77
  video.addEventListener('canplaythrough', canplaythrough);
60
- video.load();
61
- // video.play()
78
+ video.load(); // video.play()
62
79
 
63
80
  return function () {
64
81
  var _videoWrapperRef$curr;
82
+
65
83
  video.pause();
84
+
66
85
  if ((_videoWrapperRef$curr = videoWrapperRef.current) !== null && _videoWrapperRef$curr !== void 0 && _videoWrapperRef$curr.contains(video)) {
67
86
  videoWrapperRef.current.removeChild(video);
68
87
  }
@@ -77,10 +96,12 @@ function InfoPanelVideo(_ref2) {
77
96
  ref: videoWrapperRef
78
97
  })));
79
98
  }
99
+
80
100
  var Title = function Title(props) {
81
101
  if (!props.title && !props.subTitle) {
82
102
  return null;
83
103
  }
104
+
84
105
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
85
106
  className: "vreo-infoPanel-title"
86
107
  }, /*#__PURE__*/React.createElement("div", {
@@ -89,22 +110,26 @@ var Title = function Title(props) {
89
110
  className: "vreo-infoPanel-t2"
90
111
  }, props.subTitle)));
91
112
  };
113
+
92
114
  function InfoPanel() {
93
115
  var timeoutRef = React.useRef();
94
116
  var controller = (0, _hooks.useController)();
95
117
  React.useEffect(function () {
96
118
  var _controller$configs2;
119
+
97
120
  if (((_controller$configs2 = controller.configs) === null || _controller$configs2 === void 0 ? void 0 : _controller$configs2.keyframeMap.InfoPanel) === false) {
98
121
  return;
99
122
  }
123
+
100
124
  var callback = function callback(keyframe) {
101
125
  var start = keyframe.start,
102
- end = keyframe.end,
103
- data = keyframe.data;
126
+ end = keyframe.end,
127
+ data = keyframe.data;
104
128
  var infoPanelData = data;
105
129
  var title = infoPanelData.title,
106
- subTitle = infoPanelData.subTitle,
107
- style = infoPanelData.style;
130
+ subTitle = infoPanelData.subTitle,
131
+ style = infoPanelData.style;
132
+
108
133
  do {
109
134
  if (style === _VreoUnit.InfoPanelStyleEnum.PopUp) {
110
135
  if (infoPanelData.type === _VreoUnit.InfoPanelTypeEnum.Image) {
@@ -122,8 +147,10 @@ function InfoPanel() {
122
147
  subTitle: subTitle
123
148
  })));
124
149
  }
150
+
125
151
  break;
126
152
  }
153
+
127
154
  if (infoPanelData.type === _VreoUnit.InfoPanelTypeEnum.Image) {
128
155
  controller.openDrawer({
129
156
  content: /*#__PURE__*/React.createElement(InfoPanelImg, {
@@ -146,11 +173,13 @@ function InfoPanel() {
146
173
  });
147
174
  }
148
175
  } while (false);
176
+
149
177
  timeoutRef.current = setTimeout(function () {
150
178
  controller.openDrawer(false);
151
179
  controller.openPopUp(false);
152
180
  }, end - start);
153
181
  };
182
+
154
183
  controller.on(_VreoUnit.VreoKeyframeEnum.InfoPanel, callback);
155
184
  controller.on('ended', function () {
156
185
  controller.openPopUp(false);
@@ -160,6 +189,7 @@ function InfoPanel() {
160
189
  });
161
190
  return function () {
162
191
  controller.off(_VreoUnit.VreoKeyframeEnum.InfoPanel, callback);
192
+
163
193
  if (timeoutRef.current) {
164
194
  clearTimeout(timeoutRef.current);
165
195
  }
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.ModelVideo = ModelVideo;
11
+
9
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
10
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
11
16
  var React = _interopRequireWildcard(require("react"));
17
+
12
18
  var THREE = _interopRequireWildcard(require("three"));
19
+
13
20
  var _hooks = require("../../../hooks");
21
+
14
22
  var _ModelTVVideoPlugin = require("../../../../fivePlugins/ModelTVVideoPlugin");
23
+
15
24
  var _createTransMatrix = require("../../../../shared-utils/createTransMatrix");
25
+
16
26
  var _VreoUnit = require("../../../../typings/VreoUnit");
27
+
17
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
18
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
19
32
  function ModelVideo() {
20
33
  var controller = (0, _hooks.useController)();
21
34
  var five = (0, _hooks.useFiveInstance)();
@@ -25,7 +38,9 @@ function ModelVideo() {
25
38
  var callback = /*#__PURE__*/function () {
26
39
  var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyframe) {
27
40
  var _controller$configs, _controller$configs$v;
41
+
28
42
  var start, end, _ref2, videoSrc, videoPosterSrc, vertexs, matrixWorld, position, points;
43
+
29
44
  return _regenerator["default"].wrap(function _callee$(_context) {
30
45
  while (1) {
31
46
  switch (_context.prev = _context.next) {
@@ -33,21 +48,26 @@ function ModelVideo() {
33
48
  if (!ref.current) {
34
49
  ref.current = (0, _ModelTVVideoPlugin.ModelTVVideoPlugin)(five, {});
35
50
  }
51
+
36
52
  start = keyframe.start, end = keyframe.end;
37
53
  _ref2 = keyframe.data, videoSrc = _ref2.videoSrc, videoPosterSrc = _ref2.videoPosterSrc, vertexs = _ref2.vertexs, matrixWorld = _ref2.matrixWorld;
54
+
38
55
  position = function () {
39
56
  if (vertexs.length < 4) {
40
57
  throw new Error('ModelVideo: 顶点数据集合不够,无法组成矩形 ....');
41
58
  }
59
+
42
60
  if (vertexs.length === 4) {
43
61
  return vertexs;
44
62
  }
63
+
45
64
  var box = new THREE.Box3();
46
65
  vertexs.forEach(function (v) {
47
66
  return box.expandByPoint(new THREE.Vector3(v.x, v.y, v.z));
48
67
  });
49
68
  return [new THREE.Vector3(box.min.x, box.max.y, box.max.z), new THREE.Vector3(box.min.x, box.min.y, box.max.z), new THREE.Vector3(box.max.x, box.min.y, box.max.z), new THREE.Vector3(box.max.x, box.max.y, box.max.z)];
50
69
  }();
70
+
51
71
  points = function () {
52
72
  if (matrixWorld) {
53
73
  var transMatrix = (0, _createTransMatrix.createTransMatrix)(matrixWorld);
@@ -60,8 +80,10 @@ function ModelVideo() {
60
80
  };
61
81
  })];
62
82
  }
83
+
63
84
  return [position];
64
85
  }();
86
+
65
87
  ref.current.disable();
66
88
  _context.next = 8;
67
89
  return ref.current.load({
@@ -69,12 +91,15 @@ function ModelVideo() {
69
91
  video_poster_src: videoPosterSrc,
70
92
  points: points
71
93
  }, (_controller$configs = controller.configs) === null || _controller$configs === void 0 ? void 0 : (_controller$configs$v = _controller$configs.videos) === null || _controller$configs$v === void 0 ? void 0 : _controller$configs$v.modelTVVideo);
94
+
72
95
  case 8:
73
96
  ref.current.enable();
74
97
  timeoutRef.current = setTimeout(function () {
75
98
  var _ref$current;
99
+
76
100
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.disable();
77
101
  }, end - start);
102
+
78
103
  case 10:
79
104
  case "end":
80
105
  return _context.stop();
@@ -82,13 +107,16 @@ function ModelVideo() {
82
107
  }
83
108
  }, _callee);
84
109
  }));
110
+
85
111
  return function callback(_x) {
86
112
  return _ref.apply(this, arguments);
87
113
  };
88
114
  }();
115
+
89
116
  controller.on(_VreoUnit.VreoKeyframeEnum.ModelVideo, callback);
90
117
  return function () {
91
118
  controller.off(_VreoUnit.VreoKeyframeEnum.ModelVideo, callback);
119
+
92
120
  if (timeoutRef.current) {
93
121
  clearTimeout(timeoutRef.current);
94
122
  }
@@ -1,48 +1,67 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.PanoEffect = PanoEffect;
11
+
9
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var React = _interopRequireWildcard(require("react"));
15
+
11
16
  var _three = require("three");
17
+
12
18
  var _classnames = _interopRequireDefault(require("classnames"));
19
+
13
20
  var _lineAnime = _interopRequireDefault(require("./lineAnime"));
21
+
14
22
  var _hooks = require("../../../hooks");
23
+
15
24
  var _VreoUnit = require("../../../../typings/VreoUnit");
25
+
16
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
17
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
18
30
  function PanoEffect() {
19
31
  var _React$useState = React.useState(null),
20
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
21
- state = _React$useState2[0],
22
- setState = _React$useState2[1];
32
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
33
+ state = _React$useState2[0],
34
+ setState = _React$useState2[1];
35
+
23
36
  var five = (0, _hooks.useFiveInstance)();
24
37
  var lineRef = React.useRef(null);
38
+
25
39
  var _React$useState3 = React.useState(null),
26
- _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
27
- pos = _React$useState4[0],
28
- setPos = _React$useState4[1];
40
+ _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
41
+ pos = _React$useState4[0],
42
+ setPos = _React$useState4[1];
43
+
29
44
  var timeoutRef = React.useRef();
30
45
  var controller = (0, _hooks.useController)();
31
46
  var project2d = (0, _hooks.useFiveProject2d)();
47
+
32
48
  var delLine = function delLine() {
33
49
  if (lineRef.current) {
34
50
  lineRef.current.dispose();
35
51
  }
36
52
  };
53
+
37
54
  React.useEffect(function () {
38
55
  var callback = function callback(keyframe) {
39
56
  var start = keyframe.start,
40
- end = keyframe.end,
41
- data = keyframe.data;
57
+ end = keyframe.end,
58
+ data = keyframe.data;
42
59
  var videoEffectData = data;
60
+
43
61
  var _videoEffectData$twoV = (0, _slicedToArray2["default"])(videoEffectData.twoVertexs, 2),
44
- v1 = _videoEffectData$twoV[0],
45
- v2 = _videoEffectData$twoV[1];
62
+ v1 = _videoEffectData$twoV[0],
63
+ v2 = _videoEffectData$twoV[1];
64
+
46
65
  var p1 = new _three.Vector3(v1.x, v1.y, v1.z);
47
66
  var p2 = new _three.Vector3(v2.x, v2.y, v2.z);
48
67
  lineRef.current = (0, _lineAnime["default"])(five, p1.clone(), p2.clone());
@@ -52,7 +71,7 @@ function PanoEffect() {
52
71
  var p = project2d(center);
53
72
  if (!p) return;
54
73
  var left = p.x,
55
- top = p.y;
74
+ top = p.y;
56
75
  setState({
57
76
  center: center,
58
77
  distance: distance
@@ -67,12 +86,15 @@ function PanoEffect() {
67
86
  delLine();
68
87
  }, end - start);
69
88
  };
89
+
70
90
  controller.on(_VreoUnit.VreoKeyframeEnum.PanoEffect, callback);
71
91
  return function () {
72
92
  controller.off(_VreoUnit.VreoKeyframeEnum.PanoEffect, callback);
93
+
73
94
  if (timeoutRef.current) {
74
95
  clearTimeout(timeoutRef.current);
75
96
  }
97
+
76
98
  delLine();
77
99
  };
78
100
  }, [controller]);
@@ -80,18 +102,19 @@ function PanoEffect() {
80
102
  var callback = function callback() {
81
103
  if (!(state !== null && state !== void 0 && state.center)) return;
82
104
  var _state$center = state.center,
83
- x = _state$center.x,
84
- y = _state$center.y,
85
- z = _state$center.z;
105
+ x = _state$center.x,
106
+ y = _state$center.y,
107
+ z = _state$center.z;
86
108
  var res = project2d(new _three.Vector3(x, y, z));
87
109
  if (!res) return;
88
110
  var left = res.x,
89
- top = res.y;
111
+ top = res.y;
90
112
  setPos({
91
113
  left: left,
92
114
  top: top
93
115
  });
94
116
  };
117
+
95
118
  five.on('currentStateChange', callback);
96
119
  return function () {
97
120
  five.off('currentStateChange', callback);
@@ -1,15 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = lineAnime;
9
+
8
10
  var THREE = _interopRequireWildcard(require("three"));
11
+
9
12
  var _line = require("@realsee/five/line");
13
+
10
14
  var _BetterTween = require("../../../../shared-utils/animationFrame/BetterTween");
15
+
11
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
12
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
13
20
  function lineAnime(five, startPoint, endPoint) {
14
21
  var pointImage = 'data:image/png;base64,' + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAIVBMVEUAAAD////////////////////////////////////////PIev5AAAACnRSTlMAG/Py2baba05un7UgfgAAAHJJREFUKM9joBpgLHVSCRdA4metAoJlCJHmVWBgAeNzroKCCVCBLpjACqgJVjCBxRBT2FbBQQJYQAohsBAsUIUQWA4WiEIILAULeCEEloAFtBACizAEMLRgGIphLabDMJ2O6TlM72MGECIIMQIZIxqoBQCPvpJ/e9FaAAAAAABJRU5ErkJggg==';
15
22
  var pointTexture = new THREE.TextureLoader().load(pointImage);