@realsee/dnalogel 0.1.0 → 0.1.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/data/PrXel3aqGbp34JQn.js +10 -2
- package/package.json +1 -1
- package/plugins/TreasurePlugin/Controller.d.ts +42 -9
- package/plugins/TreasurePlugin/Controller.js +88 -52
- package/plugins/TreasurePlugin/TreasureFaceAnime.d.ts +8 -6
- package/plugins/TreasurePlugin/TreasureFaceAnime.js +4 -4
- package/plugins/TreasurePlugin/TreasureObject.d.ts +19 -11
- package/plugins/TreasurePlugin/TreasureObject.js +145 -51
- package/plugins/TreasurePlugin/TreasureOpenAnime.d.ts +4 -2
- package/plugins/TreasurePlugin/TreasureOpenAnime.js +10 -5
- package/plugins/TreasurePlugin/constants.d.ts +32 -11
- package/plugins/TreasurePlugin/constants.js +52 -17
- package/plugins/TreasurePlugin/index.d.ts +5 -5
- package/plugins/TreasurePlugin/index.js +8 -0
- package/plugins/floorplan/typings/floorplanData.d.ts +5 -1
- package/plugins/floorplan/utils/formatData.js +1 -22
- package/shared-utils/isNil.d.ts +10 -0
- package/shared-utils/isNil.js +24 -0
- package/shared-utils/three/getExtraModelLoader.d.ts +6 -0
- package/shared-utils/three/getExtraModelLoader.js +31 -0
- package/shared-utils/three/getTextureLoader.d.ts +6 -0
- package/shared-utils/three/getTextureLoader.js +34 -0
- package/shared-utils/three/loadFbxObj.d.ts +1 -2
- package/shared-utils/three/loadFbxObj.js +6 -2
- package/shared-utils/to.d.ts +0 -1
- package/shared-utils/to.js +45 -7
- package/typedoc/plugins.d.ts +1 -1
- package/typedoc/plugins.js +24 -12
- package/plugins/TreasurePlugin/treasureDataMap.d.ts +0 -7
- package/plugins/TreasurePlugin/treasureDataMap.js +0 -20
- package/plugins/TreasurePlugin/utils/loadTreasureTextures.d.ts +0 -7
- package/plugins/TreasurePlugin/utils/loadTreasureTextures.js +0 -115
|
@@ -15,10 +15,30 @@ var _TreasureOpenAnime = require("./TreasureOpenAnime");
|
|
|
15
15
|
|
|
16
16
|
var _BetterTween = require("../../shared-utils/animationFrame/BetterTween");
|
|
17
17
|
|
|
18
|
+
var _to = _interopRequireDefault(require("../../shared-utils/to"));
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
+
|
|
18
22
|
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); }
|
|
19
23
|
|
|
20
24
|
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; }
|
|
21
25
|
|
|
26
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
27
|
+
|
|
28
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
29
|
+
|
|
30
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
31
|
+
|
|
32
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
33
|
+
|
|
34
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
35
|
+
|
|
36
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
37
|
+
|
|
38
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
39
|
+
|
|
40
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
41
|
+
|
|
22
42
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
23
43
|
|
|
24
44
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
@@ -49,13 +69,6 @@ function copyMaterial(orginMatrial) {
|
|
|
49
69
|
});
|
|
50
70
|
return material;
|
|
51
71
|
}
|
|
52
|
-
/** 宝箱实例
|
|
53
|
-
* @description
|
|
54
|
-
* 点击宝箱可以打开宝箱
|
|
55
|
-
* @description
|
|
56
|
-
* 在宝箱未打开时,靠近宝箱或点击宝箱,宝箱会转动到朝向用户的方向
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
72
|
|
|
60
73
|
var TreasureObject = /*#__PURE__*/function (_THREE$Object3D) {
|
|
61
74
|
_inherits(TreasureObject, _THREE$Object3D);
|
|
@@ -74,12 +87,12 @@ var TreasureObject = /*#__PURE__*/function (_THREE$Object3D) {
|
|
|
74
87
|
_defineProperty(_assertThisInitialized(_this), "opened", false);
|
|
75
88
|
|
|
76
89
|
_defineProperty(_assertThisInitialized(_this), "onFiveWantsTapGesture", function (raycaster) {
|
|
77
|
-
var _this$
|
|
90
|
+
var _this$params$clickCal, _this$params;
|
|
78
91
|
|
|
79
|
-
var intersects = raycaster.intersectObject(_this
|
|
92
|
+
var intersects = raycaster.intersectObject(_assertThisInitialized(_this), true);
|
|
80
93
|
var isClickTreasure = !!intersects && intersects.length > 0;
|
|
81
94
|
if (!isClickTreasure) return;
|
|
82
|
-
(_this$
|
|
95
|
+
(_this$params$clickCal = (_this$params = _this.params).clickCallback) === null || _this$params$clickCal === void 0 ? void 0 : _this$params$clickCal.call(_this$params, _this.treasureID);
|
|
83
96
|
|
|
84
97
|
_this.rotateToCamera();
|
|
85
98
|
|
|
@@ -92,48 +105,37 @@ var TreasureObject = /*#__PURE__*/function (_THREE$Object3D) {
|
|
|
92
105
|
if (_this.position.distanceTo(_this.five.camera.position) < 3) _this.rotateToCamera();
|
|
93
106
|
});
|
|
94
107
|
|
|
108
|
+
_this.params = params;
|
|
95
109
|
_this.five = params.five;
|
|
96
110
|
_this.treasureID = params.id;
|
|
97
111
|
|
|
98
112
|
_this.position.copy(params.position);
|
|
99
113
|
|
|
100
|
-
|
|
101
|
-
_this.modelGroup = params.fbxGroup.clone();
|
|
102
|
-
_this.clickCallback = params.clickCallback;
|
|
103
|
-
_this.faceAnime = new _TreasureFaceAnime.TreasureFaceAnime({
|
|
104
|
-
five: params.five,
|
|
105
|
-
faceTexturesPromise: params.faceTexturesPromise,
|
|
106
|
-
treasureGroup: _this.modelGroup
|
|
107
|
-
});
|
|
108
|
-
_this.openAnime = new _TreasureOpenAnime.TreasurePluginOpenAnime({
|
|
109
|
-
five: params.five,
|
|
110
|
-
treasureGroup: _this.modelGroup,
|
|
111
|
-
animationClip: params.fbxGroup.animations[0]
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
_this.init();
|
|
115
|
-
|
|
116
|
-
_this.faceAnime.play();
|
|
114
|
+
var scale = 0.008 * params.config.scale;
|
|
117
115
|
|
|
118
|
-
_this.
|
|
119
|
-
|
|
120
|
-
_this.five.on('wantsTapGesture', _this.onFiveWantsTapGesture);
|
|
116
|
+
_this.scale.fromArray([scale, scale, scale]);
|
|
121
117
|
|
|
122
118
|
return _this;
|
|
123
119
|
}
|
|
120
|
+
/** 销毁当前宝箱实例
|
|
121
|
+
* @description 注意 dispose 并不会销毁所使用的贴图,因为贴图会有共用关系,需要在最外层销毁
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
124
|
|
|
125
125
|
_createClass(TreasureObject, [{
|
|
126
126
|
key: "dispose",
|
|
127
127
|
value: function dispose() {
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
var _this$faceAnime, _this$openAnime;
|
|
129
|
+
|
|
130
|
+
(_this$faceAnime = this.faceAnime) === null || _this$faceAnime === void 0 ? void 0 : _this$faceAnime.dispose();
|
|
131
|
+
(_this$openAnime = this.openAnime) === null || _this$openAnime === void 0 ? void 0 : _this$openAnime.dispose();
|
|
130
132
|
this.five.off('panoArrived', this.onFivePanoArrived);
|
|
131
133
|
this.five.off('wantsTapGesture', this.onFiveWantsTapGesture);
|
|
132
134
|
}
|
|
133
135
|
}, {
|
|
134
136
|
key: "rotateToCamera",
|
|
135
137
|
value: function rotateToCamera() {
|
|
136
|
-
var
|
|
138
|
+
var _this2 = this;
|
|
137
139
|
|
|
138
140
|
if (this.opened) return; // 宝箱朝向
|
|
139
141
|
|
|
@@ -150,34 +152,126 @@ var TreasureObject = /*#__PURE__*/function (_THREE$Object3D) {
|
|
|
150
152
|
var rotationStartY = this.rotation.y;
|
|
151
153
|
(0, _BetterTween.tweenProgress)(duration).onUpdate(function (_ref) {
|
|
152
154
|
var progress = _ref.progress;
|
|
153
|
-
|
|
155
|
+
_this2.rotation.y = rotationStartY + progress * deltaRadY * rotateDirection;
|
|
154
156
|
}).play();
|
|
155
157
|
}
|
|
156
158
|
}, {
|
|
157
159
|
key: "open",
|
|
158
160
|
value: function open() {
|
|
161
|
+
var _this$faceAnime2, _this$faceAnime3, _this$openAnime2;
|
|
162
|
+
|
|
163
|
+
if (!this.openAnime) return false;
|
|
159
164
|
if (this.opened) return false;
|
|
160
165
|
this.opened = true;
|
|
161
|
-
this.faceAnime.pause();
|
|
162
|
-
this.faceAnime.setToInitialState();
|
|
163
|
-
this.openAnime.play();
|
|
166
|
+
(_this$faceAnime2 = this.faceAnime) === null || _this$faceAnime2 === void 0 ? void 0 : _this$faceAnime2.pause();
|
|
167
|
+
(_this$faceAnime3 = this.faceAnime) === null || _this$faceAnime3 === void 0 ? void 0 : _this$faceAnime3.setToInitialState();
|
|
168
|
+
(_this$openAnime2 = this.openAnime) === null || _this$openAnime2 === void 0 ? void 0 : _this$openAnime2.play();
|
|
164
169
|
return true;
|
|
165
170
|
}
|
|
166
171
|
}, {
|
|
167
|
-
key: "
|
|
168
|
-
value: function
|
|
169
|
-
var
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
172
|
+
key: "load",
|
|
173
|
+
value: function () {
|
|
174
|
+
var _load = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
175
|
+
var _this3 = this;
|
|
176
|
+
|
|
177
|
+
var _yield$to, _yield$to2, loadError, orginModelGroup, group, _yield$to3, _yield$to4, boxTextureError, boxTexture;
|
|
178
|
+
|
|
179
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
180
|
+
while (1) {
|
|
181
|
+
switch (_context.prev = _context.next) {
|
|
182
|
+
case 0:
|
|
183
|
+
_context.next = 2;
|
|
184
|
+
return (0, _to["default"])(this.params.loadModelGroup(this.params.config.objectUrl));
|
|
185
|
+
|
|
186
|
+
case 2:
|
|
187
|
+
_yield$to = _context.sent;
|
|
188
|
+
_yield$to2 = _slicedToArray(_yield$to, 2);
|
|
189
|
+
loadError = _yield$to2[0];
|
|
190
|
+
orginModelGroup = _yield$to2[1];
|
|
191
|
+
|
|
192
|
+
if (!(loadError || !orginModelGroup)) {
|
|
193
|
+
_context.next = 8;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
throw loadError;
|
|
198
|
+
|
|
199
|
+
case 8:
|
|
200
|
+
group = orginModelGroup.clone();
|
|
201
|
+
group.traverse(function (obj) {
|
|
202
|
+
if (!(obj instanceof THREE.Mesh)) return;
|
|
203
|
+
obj.material = copyMaterial(obj.material);
|
|
204
|
+
if (obj.material.map) obj.material.map.encoding = THREE.sRGBEncoding;
|
|
205
|
+
obj.renderOrder = 2;
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
if (!this.params.config.boxTextureUrl) {
|
|
209
|
+
_context.next = 22;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
_context.next = 13;
|
|
214
|
+
return (0, _to["default"])(this.params.loadTexture(this.params.config.boxTextureUrl));
|
|
215
|
+
|
|
216
|
+
case 13:
|
|
217
|
+
_yield$to3 = _context.sent;
|
|
218
|
+
_yield$to4 = _slicedToArray(_yield$to3, 2);
|
|
219
|
+
boxTextureError = _yield$to4[0];
|
|
220
|
+
boxTexture = _yield$to4[1];
|
|
221
|
+
|
|
222
|
+
if (!(boxTextureError || !boxTexture)) {
|
|
223
|
+
_context.next = 19;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
throw new Error('加载盒子贴图失败');
|
|
228
|
+
|
|
229
|
+
case 19:
|
|
230
|
+
boxTexture.encoding = THREE.sRGBEncoding;
|
|
231
|
+
group.getObjectByName('box').material.map = boxTexture;
|
|
232
|
+
group.getObjectByName('box2').material.map = boxTexture;
|
|
233
|
+
|
|
234
|
+
case 22:
|
|
235
|
+
this.add(group); // ========== openAnime ==========
|
|
236
|
+
|
|
237
|
+
this.openAnime = new _TreasureOpenAnime.TreasurePluginOpenAnime({
|
|
238
|
+
five: this.five,
|
|
239
|
+
treasureGroup: group,
|
|
240
|
+
onComplete: function onComplete() {
|
|
241
|
+
var _this3$params$onOpenA, _this3$params;
|
|
242
|
+
|
|
243
|
+
return (_this3$params$onOpenA = (_this3$params = _this3.params).onOpenAnimationEnded) === null || _this3$params$onOpenA === void 0 ? void 0 : _this3$params$onOpenA.call(_this3$params, _this3.treasureID);
|
|
244
|
+
},
|
|
245
|
+
animationClip: orginModelGroup.animations[0]
|
|
246
|
+
}); // ========== faceAnime ==========
|
|
247
|
+
|
|
248
|
+
this.faceAnime = new _TreasureFaceAnime.TreasureFaceAnime({
|
|
249
|
+
five: this.five,
|
|
250
|
+
treasureGroup: group,
|
|
251
|
+
loadTexture: this.params.loadTexture,
|
|
252
|
+
textureUrls: this.params.config.faceAnimeTextureUrls
|
|
253
|
+
});
|
|
254
|
+
this.faceAnime.play(); // ========== addEventListener ==========
|
|
255
|
+
|
|
256
|
+
this.five.on('panoArrived', this.onFivePanoArrived);
|
|
257
|
+
this.five.on('wantsTapGesture', this.onFiveWantsTapGesture);
|
|
258
|
+
this.five.needsRender = true;
|
|
259
|
+
return _context.abrupt("return", this);
|
|
260
|
+
|
|
261
|
+
case 30:
|
|
262
|
+
case "end":
|
|
263
|
+
return _context.stop();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}, _callee, this);
|
|
267
|
+
}));
|
|
268
|
+
|
|
269
|
+
function load() {
|
|
270
|
+
return _load.apply(this, arguments);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return load;
|
|
274
|
+
}()
|
|
181
275
|
}]);
|
|
182
276
|
|
|
183
277
|
return TreasureObject;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { Five } from '@realsee/five';
|
|
3
|
-
export interface
|
|
3
|
+
export interface TreasureOpenAnimeParams {
|
|
4
4
|
five: Five;
|
|
5
|
+
onComplete?: () => unknown;
|
|
5
6
|
treasureGroup: THREE.Group;
|
|
6
7
|
animationClip: THREE.AnimationClip;
|
|
7
8
|
}
|
|
@@ -14,9 +15,10 @@ export declare class TreasurePluginOpenAnime {
|
|
|
14
15
|
private hasPlayed;
|
|
15
16
|
private clock;
|
|
16
17
|
private treasureGroup;
|
|
18
|
+
private params;
|
|
17
19
|
private animationDispose?;
|
|
18
20
|
private action;
|
|
19
|
-
constructor(
|
|
21
|
+
constructor(params: TreasureOpenAnimeParams);
|
|
20
22
|
dispose(): void;
|
|
21
23
|
play(): boolean;
|
|
22
24
|
private onPlayFinished;
|
|
@@ -30,7 +30,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
30
30
|
* 因为宝箱没有关闭的场景,对于一个宝箱来讲,打开后,要么销毁,要么保留当时的状态。所以不做关闭方面的兼容处理
|
|
31
31
|
*/
|
|
32
32
|
var TreasurePluginOpenAnime = /*#__PURE__*/function () {
|
|
33
|
-
function TreasurePluginOpenAnime(
|
|
33
|
+
function TreasurePluginOpenAnime(params) {
|
|
34
34
|
var _this = this;
|
|
35
35
|
|
|
36
36
|
_classCallCheck(this, TreasurePluginOpenAnime);
|
|
@@ -57,13 +57,18 @@ var TreasurePluginOpenAnime = /*#__PURE__*/function () {
|
|
|
57
57
|
obj.material.opacity = opacity;
|
|
58
58
|
});
|
|
59
59
|
_this.five.needsRender = true;
|
|
60
|
-
}).play()
|
|
60
|
+
}).play().onComplete(function () {
|
|
61
|
+
var _this$params$onComple, _this$params;
|
|
62
|
+
|
|
63
|
+
return (_this$params$onComple = (_this$params = _this.params).onComplete) === null || _this$params$onComple === void 0 ? void 0 : _this$params$onComple.call(_this$params);
|
|
64
|
+
});
|
|
61
65
|
});
|
|
62
66
|
|
|
63
|
-
this.five =
|
|
64
|
-
this.
|
|
67
|
+
this.five = params.five;
|
|
68
|
+
this.params = params;
|
|
69
|
+
this.treasureGroup = params.treasureGroup;
|
|
65
70
|
var mixer = new THREE.AnimationMixer(this.treasureGroup);
|
|
66
|
-
this.action = mixer.clipAction(
|
|
71
|
+
this.action = mixer.clipAction(params.animationClip);
|
|
67
72
|
this.action.setLoop(THREE.LoopOnce, 1);
|
|
68
73
|
this.action.clampWhenFinished = true;
|
|
69
74
|
}
|
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { TreasureObjectConfig } from './TreasureObject';
|
|
2
|
+
/** 默认的宝箱对象类型:FBX */
|
|
3
|
+
export declare const DEFAULT_TREASURE_OBJECT_TYPE = "FBX";
|
|
4
|
+
/** 默认的宝箱对象地址 */
|
|
5
|
+
export declare const DEFAULT_TREASURE_OBJECT_URL: string;
|
|
6
|
+
/** 默认的宝箱对象 */
|
|
7
|
+
export declare const DEFAULT_TREASURE_OBJECT: {
|
|
8
|
+
url: string;
|
|
9
|
+
type: string;
|
|
10
|
+
};
|
|
11
|
+
/** 默认宝箱脸部动画贴图资源 */
|
|
12
|
+
export declare const DEFAULT_TREASURE_FACE_ANIMATION_URLS: string[];
|
|
13
|
+
/** 黄色宝箱盒子贴图地址 */
|
|
14
|
+
export declare const TREASURE_BOX_TEXTURE_YELLOW_URL: string;
|
|
15
|
+
/** 红色宝箱盒子贴图地址 */
|
|
16
|
+
export declare const TREASURE_BOX_TEXTURE_RED_URL: string;
|
|
17
|
+
export declare enum TREASURE_TYPE {
|
|
18
|
+
YELLOW = 0,
|
|
19
|
+
RED = 1
|
|
11
20
|
}
|
|
12
|
-
export declare const
|
|
21
|
+
export declare const DEFAULT_TREASURE_CONFIG: TreasureObjectConfig;
|
|
22
|
+
/** 内置宝箱类型于宝箱资源的映射关系 */
|
|
23
|
+
export declare const DEFAULT_TREASURE_CONFIGS: ({
|
|
24
|
+
type: TREASURE_TYPE;
|
|
25
|
+
config: TreasureObjectConfig;
|
|
26
|
+
} | {
|
|
27
|
+
type: TREASURE_TYPE;
|
|
28
|
+
config: {
|
|
29
|
+
objectUrl: string;
|
|
30
|
+
boxTextureUrl: string;
|
|
31
|
+
faceAnimeTextureUrls: string[];
|
|
32
|
+
};
|
|
33
|
+
})[];
|
|
@@ -3,28 +3,63 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.TREASURE_TYPE = exports.TREASURE_BOX_TEXTURE_YELLOW_URL = exports.TREASURE_BOX_TEXTURE_RED_URL = exports.DEFAULT_TREASURE_OBJECT_URL = exports.DEFAULT_TREASURE_OBJECT_TYPE = exports.DEFAULT_TREASURE_OBJECT = exports.DEFAULT_TREASURE_FACE_ANIMATION_URLS = exports.DEFAULT_TREASURE_CONFIGS = exports.DEFAULT_TREASURE_CONFIG = void 0;
|
|
7
7
|
|
|
8
8
|
/** CDN 资源 Base URL */
|
|
9
9
|
var TREASURE_BASE_URL = '//vrlab-public.ljcdn.com/release/static/image/release/baoxiang_xiaobei/1/';
|
|
10
|
-
/** FBX
|
|
10
|
+
/** 默认的宝箱对象类型:FBX */
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/** 宝箱脸部的动画贴图 */
|
|
12
|
+
var DEFAULT_TREASURE_OBJECT_TYPE = 'FBX';
|
|
13
|
+
/** 默认的宝箱对象地址 */
|
|
15
14
|
|
|
16
|
-
exports.
|
|
17
|
-
var
|
|
18
|
-
/**
|
|
15
|
+
exports.DEFAULT_TREASURE_OBJECT_TYPE = DEFAULT_TREASURE_OBJECT_TYPE;
|
|
16
|
+
var DEFAULT_TREASURE_OBJECT_URL = TREASURE_BASE_URL + 'baoxiang_xiaobei.fbx';
|
|
17
|
+
/** 默认的宝箱对象 */
|
|
19
18
|
|
|
20
|
-
exports.
|
|
21
|
-
var
|
|
22
|
-
|
|
19
|
+
exports.DEFAULT_TREASURE_OBJECT_URL = DEFAULT_TREASURE_OBJECT_URL;
|
|
20
|
+
var DEFAULT_TREASURE_OBJECT = {
|
|
21
|
+
url: DEFAULT_TREASURE_OBJECT_URL,
|
|
22
|
+
type: DEFAULT_TREASURE_OBJECT_TYPE
|
|
23
|
+
};
|
|
24
|
+
/** 默认宝箱脸部动画贴图资源 */
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
})(TreasureType || (exports.TreasureType = TreasureType = {}));
|
|
26
|
+
exports.DEFAULT_TREASURE_OBJECT = DEFAULT_TREASURE_OBJECT;
|
|
27
|
+
var DEFAULT_TREASURE_FACE_ANIMATION_URLS = [TREASURE_BASE_URL + 'faces/1.png', TREASURE_BASE_URL + 'faces/2.png', TREASURE_BASE_URL + 'faces/3.png', TREASURE_BASE_URL + 'faces/4.png', TREASURE_BASE_URL + 'faces/5.png'];
|
|
28
|
+
/** 黄色宝箱盒子贴图地址 */
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
exports.DEFAULT_TREASURE_FACE_ANIMATION_URLS = DEFAULT_TREASURE_FACE_ANIMATION_URLS;
|
|
31
|
+
var TREASURE_BOX_TEXTURE_YELLOW_URL = TREASURE_BASE_URL + 'box_Base_Color.png';
|
|
32
|
+
/** 红色宝箱盒子贴图地址 */
|
|
33
|
+
|
|
34
|
+
exports.TREASURE_BOX_TEXTURE_YELLOW_URL = TREASURE_BOX_TEXTURE_YELLOW_URL;
|
|
35
|
+
var TREASURE_BOX_TEXTURE_RED_URL = TREASURE_BASE_URL + 'box_Base_Color_red.png';
|
|
36
|
+
exports.TREASURE_BOX_TEXTURE_RED_URL = TREASURE_BOX_TEXTURE_RED_URL;
|
|
37
|
+
var TREASURE_TYPE;
|
|
38
|
+
exports.TREASURE_TYPE = TREASURE_TYPE;
|
|
39
|
+
|
|
40
|
+
(function (TREASURE_TYPE) {
|
|
41
|
+
TREASURE_TYPE[TREASURE_TYPE["YELLOW"] = 0] = "YELLOW";
|
|
42
|
+
TREASURE_TYPE[TREASURE_TYPE["RED"] = 1] = "RED";
|
|
43
|
+
})(TREASURE_TYPE || (exports.TREASURE_TYPE = TREASURE_TYPE = {}));
|
|
44
|
+
|
|
45
|
+
var DEFAULT_TREASURE_CONFIG = {
|
|
46
|
+
scale: 1,
|
|
47
|
+
boxTextureUrl: undefined,
|
|
48
|
+
objectUrl: DEFAULT_TREASURE_OBJECT_URL,
|
|
49
|
+
faceAnimeTextureUrls: DEFAULT_TREASURE_FACE_ANIMATION_URLS
|
|
50
|
+
};
|
|
51
|
+
/** 内置宝箱类型于宝箱资源的映射关系 */
|
|
52
|
+
|
|
53
|
+
exports.DEFAULT_TREASURE_CONFIG = DEFAULT_TREASURE_CONFIG;
|
|
54
|
+
var DEFAULT_TREASURE_CONFIGS = [{
|
|
55
|
+
type: TREASURE_TYPE.YELLOW,
|
|
56
|
+
config: DEFAULT_TREASURE_CONFIG
|
|
57
|
+
}, {
|
|
58
|
+
type: TREASURE_TYPE.RED,
|
|
59
|
+
config: {
|
|
60
|
+
objectUrl: DEFAULT_TREASURE_OBJECT_URL,
|
|
61
|
+
boxTextureUrl: TREASURE_BOX_TEXTURE_RED_URL,
|
|
62
|
+
faceAnimeTextureUrls: DEFAULT_TREASURE_FACE_ANIMATION_URLS
|
|
63
|
+
}
|
|
64
|
+
}];
|
|
65
|
+
exports.DEFAULT_TREASURE_CONFIGS = DEFAULT_TREASURE_CONFIGS;
|
|
@@ -2,10 +2,10 @@ import { FivePlugin } from '@realsee/five';
|
|
|
2
2
|
import { TreasurePluginController, TreasurePluginParameterType } from './Controller';
|
|
3
3
|
export declare const TreasurePlugin: FivePlugin<TreasurePluginParameterType, TreasurePluginReturnType>;
|
|
4
4
|
export default TreasurePlugin;
|
|
5
|
+
export { TREASURE_TYPE } from './constants';
|
|
5
6
|
export declare type TreasurePluginReturnType = TreasurePluginController;
|
|
6
|
-
export type {
|
|
7
|
-
export type { TreasurePluginItemData, TreasurePluginData } from './Controller';
|
|
7
|
+
export type { TreasurePluginItemData, TreasurePluginData, TreasurePluginItemConfigData } from './Controller';
|
|
8
8
|
export type { TreasurePluginController, TreasurePluginParameterType, TreasurePluginEvents } from './Controller';
|
|
9
|
-
export type { TreasureObject,
|
|
10
|
-
export type { TreasureFaceAnime,
|
|
11
|
-
export type { TreasurePluginOpenAnime,
|
|
9
|
+
export type { TreasureObject, TreasureObjectConfig, TreasureObjectParams } from './TreasureObject';
|
|
10
|
+
export type { TreasureFaceAnime, TreasureFaceAnimeParams } from './TreasureFaceAnime';
|
|
11
|
+
export type { TreasurePluginOpenAnime, TreasureOpenAnimeParams } from './TreasureOpenAnime';
|
|
@@ -3,10 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "TREASURE_TYPE", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _constants.TREASURE_TYPE;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
exports["default"] = exports.TreasurePlugin = void 0;
|
|
7
13
|
|
|
8
14
|
var _Controller = require("./Controller");
|
|
9
15
|
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
|
|
10
18
|
var TreasurePlugin = function TreasurePlugin(five) {
|
|
11
19
|
return new _Controller.TreasurePluginController(five);
|
|
12
20
|
};
|
|
@@ -104,7 +104,11 @@ export interface FloorplanData {
|
|
|
104
104
|
/** 能够映射到雷达图上的三维物体 */
|
|
105
105
|
export interface FloorplanExtraObject3D {
|
|
106
106
|
id: string;
|
|
107
|
-
position:
|
|
107
|
+
position: {
|
|
108
|
+
x: number;
|
|
109
|
+
y: number;
|
|
110
|
+
z: number;
|
|
111
|
+
};
|
|
108
112
|
icon?: {
|
|
109
113
|
url: string;
|
|
110
114
|
width: number;
|
|
@@ -10,18 +10,6 @@ var _floorplanExtraObject = require("../Assets/floorplanExtraObject");
|
|
|
10
10
|
|
|
11
11
|
var _formatPosition = require("./formatPosition");
|
|
12
12
|
|
|
13
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
|
-
|
|
15
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
-
|
|
17
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
-
|
|
19
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
20
|
-
|
|
21
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
22
|
-
|
|
23
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
24
|
-
|
|
25
13
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
26
14
|
|
|
27
15
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
@@ -190,16 +178,7 @@ function _formatData() {
|
|
|
190
178
|
|
|
191
179
|
function formatExtraObjects(data, five, floorplanData) {
|
|
192
180
|
var extraObjects = data.map(function (object) {
|
|
193
|
-
var
|
|
194
|
-
x = _object$position[0],
|
|
195
|
-
y = _object$position[1],
|
|
196
|
-
z = _object$position[2];
|
|
197
|
-
|
|
198
|
-
var position = {
|
|
199
|
-
x: x,
|
|
200
|
-
y: y,
|
|
201
|
-
z: z
|
|
202
|
-
};
|
|
181
|
+
var position = object.position;
|
|
203
182
|
var icon = object.icon ? object.icon : {
|
|
204
183
|
url: _floorplanExtraObject.FLOORPLANE_EXTRA_OBJECT_IMAGE,
|
|
205
184
|
width: 45,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 判断对象是否为`null`或`undefined`。
|
|
3
|
+
* @param
|
|
4
|
+
* @return
|
|
5
|
+
*/
|
|
6
|
+
export declare function isNil<T>(value: T): value is Extract<T, undefined | null>;
|
|
7
|
+
/**
|
|
8
|
+
* 判断对象不为`null`或`undefined`。
|
|
9
|
+
*/
|
|
10
|
+
export declare function notNil<T>(value: T | null | undefined): value is T;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isNil = isNil;
|
|
7
|
+
exports.notNil = notNil;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 判断对象是否为`null`或`undefined`。
|
|
11
|
+
* @param
|
|
12
|
+
* @return
|
|
13
|
+
*/
|
|
14
|
+
function isNil(value) {
|
|
15
|
+
return !notNil(value);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 判断对象不为`null`或`undefined`。
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
function notNil(value) {
|
|
23
|
+
return value !== null && value !== undefined;
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getExtraModelLoader = getExtraModelLoader;
|
|
7
|
+
|
|
8
|
+
var _loadFbxObj = require("./loadFbxObj");
|
|
9
|
+
|
|
10
|
+
/** 模型资源加载器,用于满足资源共用 */
|
|
11
|
+
function getExtraModelLoader() {
|
|
12
|
+
var cache = new Map();
|
|
13
|
+
|
|
14
|
+
var load = function load(url) {
|
|
15
|
+
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'FBX';
|
|
16
|
+
if (type !== 'FBX') return Promise.reject(new Error('不支持的类型'));
|
|
17
|
+
if (cache.has(url)) return cache.get(url);
|
|
18
|
+
var groupPromise = (0, _loadFbxObj.loadFbxObj)(url);
|
|
19
|
+
cache.set(url, groupPromise);
|
|
20
|
+
return groupPromise;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var dispose = function dispose() {
|
|
24
|
+
cache.clear();
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
load: load,
|
|
29
|
+
dispose: dispose
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getTextureLoader = getTextureLoader;
|
|
7
|
+
|
|
8
|
+
var _loadTexture = require("./loadTexture");
|
|
9
|
+
|
|
10
|
+
/** 贴图加载器,用于满足资源共用 */
|
|
11
|
+
function getTextureLoader() {
|
|
12
|
+
var cache = new Map();
|
|
13
|
+
|
|
14
|
+
var load = function load(url) {
|
|
15
|
+
if (cache.has(url)) return cache.get(url);
|
|
16
|
+
var texturePromise = (0, _loadTexture.loadTexture)(url);
|
|
17
|
+
cache.set(url, texturePromise);
|
|
18
|
+
return texturePromise;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var dispose = function dispose() {
|
|
22
|
+
cache.forEach(function (texturePromise) {
|
|
23
|
+
return texturePromise.then(function (texture) {
|
|
24
|
+
return texture.dispose();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
cache.clear();
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
load: load,
|
|
32
|
+
dispose: dispose
|
|
33
|
+
};
|
|
34
|
+
}
|