@anov/3d 0.0.194 → 0.0.196
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/entity/area/index.js +3 -4
- package/dist/module/entity/area/index.js.map +1 -1
- package/dist/module/entity/baseEntity.js +4 -7
- package/dist/module/entity/baseEntity.js.map +1 -1
- package/dist/module/entity/batch/index.js +19 -5
- package/dist/module/entity/batch/index.js.map +1 -1
- package/dist/module/entity/index.js +64 -40
- package/dist/module/entity/index.js.map +1 -1
- package/dist/module/entity/light/pointLight/index.js +3 -1
- package/dist/module/entity/light/pointLight/index.js.map +1 -1
- package/dist/module/entity/model/index.js +8 -7
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/material/index.js +83 -24
- package/dist/module/material/index.js.map +1 -1
- package/dist/module/scene/index.js +3 -19
- package/dist/module/scene/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,8 +10,8 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
10
10
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
11
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
12
12
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
-
import { Group, use } from '@anov/3d-core';
|
|
14
|
-
import { createHighSelectedTool } from '@anov/3d-ability';
|
|
13
|
+
import { Group, use, utils } from '@anov/3d-core';
|
|
14
|
+
import { MaterialSwitchSystem, createHighSelectedTool } from '@anov/3d-ability';
|
|
15
15
|
import { MessageType, sendToMessage } from "../../utils/messageFn";
|
|
16
16
|
import { EMessageStatus } from "../../messageStatus";
|
|
17
17
|
import { entityEvents } from "../eventBus/entityEvents";
|
|
@@ -19,15 +19,35 @@ import HybridList from "./hybridList";
|
|
|
19
19
|
import { entityStrategy, eventPenetrateType } from "./strategy";
|
|
20
20
|
import createDisposeFn from "./dispose";
|
|
21
21
|
import { getMinimumEntity } from "./utils";
|
|
22
|
+
var emitter = utils.emitter;
|
|
22
23
|
export var hybridList = new HybridList();
|
|
23
24
|
var Entity = /*#__PURE__*/function () {
|
|
24
25
|
function Entity(app) {
|
|
26
|
+
var _this = this;
|
|
25
27
|
_classCallCheck(this, Entity);
|
|
26
28
|
_defineProperty(this, "app", void 0);
|
|
27
29
|
_defineProperty(this, "catchStrategy", new Map());
|
|
28
30
|
_defineProperty(this, "select", void 0);
|
|
31
|
+
_defineProperty(this, "materialSwitchSystem", void 0);
|
|
29
32
|
this.select = createHighSelectedTool();
|
|
30
33
|
this.app = app;
|
|
34
|
+
this.materialSwitchSystem = new MaterialSwitchSystem([]);
|
|
35
|
+
use.useScene().scene.add(this.materialSwitchSystem);
|
|
36
|
+
this.materialSwitchSystem.addEventListener('onStyleChanged', function (_ref) {
|
|
37
|
+
var style = _ref.style;
|
|
38
|
+
sendToMessage({
|
|
39
|
+
messageType: MessageType.Event,
|
|
40
|
+
messageName: 'onStyleChanged',
|
|
41
|
+
status: EMessageStatus.Success
|
|
42
|
+
}, {
|
|
43
|
+
style: style
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
emitter.on('onMaterialChanged', function (_ref2) {
|
|
47
|
+
var target = _ref2.target;
|
|
48
|
+
_this.materialSwitchSystem.removeObject(target);
|
|
49
|
+
_this.materialSwitchSystem.addObject(target);
|
|
50
|
+
});
|
|
31
51
|
}
|
|
32
52
|
|
|
33
53
|
/**
|
|
@@ -70,7 +90,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
70
90
|
key: "singleCreate",
|
|
71
91
|
value: function () {
|
|
72
92
|
var _singleCreate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(id, strategy, option, group, layerId) {
|
|
73
|
-
var
|
|
93
|
+
var _this2 = this;
|
|
74
94
|
var entityInfoArray, targetEntityInfo, _option$interactable, interactable, _option$interactiveEf, interactiveEffect, entity;
|
|
75
95
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
76
96
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -96,14 +116,15 @@ var Entity = /*#__PURE__*/function () {
|
|
|
96
116
|
layerId: layerId,
|
|
97
117
|
interactable: interactable
|
|
98
118
|
};
|
|
119
|
+
if (entity.userData.entityParams.type === 'model') this.materialSwitchSystem.addObject(entity);
|
|
99
120
|
hybridList.add(id, entity);
|
|
100
121
|
group === null || group === void 0 || group.add(entity);
|
|
101
122
|
if (interactiveEffect && entity.userData.entityParams.type === 'model') {
|
|
102
123
|
entity.addEventListener('mouseover', function () {
|
|
103
|
-
|
|
124
|
+
_this2.select([entity]);
|
|
104
125
|
});
|
|
105
126
|
entity.addEventListener('mouseout', function () {
|
|
106
|
-
|
|
127
|
+
_this2.select([]);
|
|
107
128
|
});
|
|
108
129
|
}
|
|
109
130
|
return _context2.abrupt("return", _objectSpread(_objectSpread({}, option), {}, {
|
|
@@ -113,11 +134,11 @@ var Entity = /*#__PURE__*/function () {
|
|
|
113
134
|
scale: entity.scale.toArray(),
|
|
114
135
|
visible: entity.visible
|
|
115
136
|
}));
|
|
116
|
-
case
|
|
137
|
+
case 16:
|
|
117
138
|
case "end":
|
|
118
139
|
return _context2.stop();
|
|
119
140
|
}
|
|
120
|
-
}, _callee2);
|
|
141
|
+
}, _callee2, this);
|
|
121
142
|
}));
|
|
122
143
|
function singleCreate(_x2, _x3, _x4, _x5, _x6) {
|
|
123
144
|
return _singleCreate.apply(this, arguments);
|
|
@@ -127,7 +148,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
127
148
|
}, {
|
|
128
149
|
key: "multiCreate",
|
|
129
150
|
value: function multiCreate(id, strategy, json) {
|
|
130
|
-
var
|
|
151
|
+
var _this3 = this;
|
|
131
152
|
var itemType = json.itemType,
|
|
132
153
|
_json$items = json.items,
|
|
133
154
|
items = _json$items === void 0 ? [] : _json$items,
|
|
@@ -139,7 +160,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
139
160
|
|
|
140
161
|
// TODO 优化,定制化非实体逻辑
|
|
141
162
|
items.forEach( /*#__PURE__*/function () {
|
|
142
|
-
var
|
|
163
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(item) {
|
|
143
164
|
var currentData;
|
|
144
165
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
145
166
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -152,7 +173,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
152
173
|
}
|
|
153
174
|
currentData.type = itemType;
|
|
154
175
|
_context3.next = 5;
|
|
155
|
-
return
|
|
176
|
+
return _this3.singleCreate(item.id, strategy, currentData, group, id);
|
|
156
177
|
case 5:
|
|
157
178
|
case "end":
|
|
158
179
|
return _context3.stop();
|
|
@@ -160,7 +181,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
160
181
|
}, _callee3);
|
|
161
182
|
}));
|
|
162
183
|
return function (_x7) {
|
|
163
|
-
return
|
|
184
|
+
return _ref3.apply(this, arguments);
|
|
164
185
|
};
|
|
165
186
|
}());
|
|
166
187
|
group.userData.entityParams = {
|
|
@@ -189,7 +210,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
189
210
|
key: "create",
|
|
190
211
|
value: (function () {
|
|
191
212
|
var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(json) {
|
|
192
|
-
var
|
|
213
|
+
var _this4 = this;
|
|
193
214
|
var id, type, itemType, _json$interactable2, interactable, asyncTask;
|
|
194
215
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
195
216
|
while (1) switch (_context5.prev = _context5.next) {
|
|
@@ -201,11 +222,11 @@ var Entity = /*#__PURE__*/function () {
|
|
|
201
222
|
while (1) switch (_context4.prev = _context4.next) {
|
|
202
223
|
case 0:
|
|
203
224
|
_context4.next = 2;
|
|
204
|
-
return
|
|
225
|
+
return _this4.registerStrategy(itemType || type);
|
|
205
226
|
case 2:
|
|
206
227
|
strategy = _context4.sent;
|
|
207
|
-
if (itemType && type === 'layer') res =
|
|
208
|
-
return _context4.abrupt("return",
|
|
228
|
+
if (itemType && type === 'layer') res = _this4.multiCreate(id, strategy, json);else res = _this4.singleCreate(id, strategy, json);
|
|
229
|
+
return _context4.abrupt("return", _this4.handleResult(id, res, interactable));
|
|
209
230
|
case 5:
|
|
210
231
|
case "end":
|
|
211
232
|
return _context4.stop();
|
|
@@ -235,17 +256,18 @@ var Entity = /*#__PURE__*/function () {
|
|
|
235
256
|
while (1) switch (_context6.prev = _context6.next) {
|
|
236
257
|
case 0:
|
|
237
258
|
target = hybridList.get(id);
|
|
238
|
-
|
|
259
|
+
if (target.userData.entityParams.type === 'model') this.materialSwitchSystem.removeObject(target);
|
|
260
|
+
_context6.next = 4;
|
|
239
261
|
return Promise.allSettled([strategy.update(target, option)]);
|
|
240
|
-
case
|
|
262
|
+
case 4:
|
|
241
263
|
entityInfoArray = _context6.sent;
|
|
242
264
|
targetEntityInfo = entityInfoArray[0];
|
|
243
265
|
if (!(targetEntityInfo.status === 'rejected')) {
|
|
244
|
-
_context6.next =
|
|
266
|
+
_context6.next = 8;
|
|
245
267
|
break;
|
|
246
268
|
}
|
|
247
269
|
throw new Error(targetEntityInfo.reason);
|
|
248
|
-
case
|
|
270
|
+
case 8:
|
|
249
271
|
_target$userData$enti = target.userData.entityParams, entityParams = _target$userData$enti === void 0 ? {} : _target$userData$enti;
|
|
250
272
|
entity = targetEntityInfo.value;
|
|
251
273
|
entity.tag = 'entity'; // use used for event penetration identification
|
|
@@ -259,6 +281,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
259
281
|
group.add(entity);
|
|
260
282
|
}
|
|
261
283
|
hybridList.update(id, entity);
|
|
284
|
+
if (entity.userData.entityParams.type === 'model') this.materialSwitchSystem.addObject(entity);
|
|
262
285
|
return _context6.abrupt("return", _objectSpread(_objectSpread({}, option), {}, {
|
|
263
286
|
id: id,
|
|
264
287
|
position: entity.position.toArray(),
|
|
@@ -266,11 +289,11 @@ var Entity = /*#__PURE__*/function () {
|
|
|
266
289
|
scale: entity.scale.toArray(),
|
|
267
290
|
visible: entity.visible
|
|
268
291
|
}));
|
|
269
|
-
case
|
|
292
|
+
case 18:
|
|
270
293
|
case "end":
|
|
271
294
|
return _context6.stop();
|
|
272
295
|
}
|
|
273
|
-
}, _callee6);
|
|
296
|
+
}, _callee6, this);
|
|
274
297
|
}));
|
|
275
298
|
function singleUpdate(_x9, _x10, _x11, _x12) {
|
|
276
299
|
return _singleUpdate.apply(this, arguments);
|
|
@@ -280,13 +303,13 @@ var Entity = /*#__PURE__*/function () {
|
|
|
280
303
|
}, {
|
|
281
304
|
key: "multiUpdate",
|
|
282
305
|
value: function multiUpdate(id, strategy, option) {
|
|
283
|
-
var
|
|
306
|
+
var _this5 = this;
|
|
284
307
|
var group = hybridList.get(id);
|
|
285
308
|
var items = option.items,
|
|
286
309
|
legends = option.legends,
|
|
287
310
|
itemType = option.itemType;
|
|
288
311
|
items.forEach( /*#__PURE__*/function () {
|
|
289
|
-
var
|
|
312
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(item) {
|
|
290
313
|
var legendItem, currentItem;
|
|
291
314
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
292
315
|
while (1) switch (_context7.prev = _context7.next) {
|
|
@@ -300,14 +323,14 @@ var Entity = /*#__PURE__*/function () {
|
|
|
300
323
|
break;
|
|
301
324
|
}
|
|
302
325
|
_context7.next = 5;
|
|
303
|
-
return
|
|
326
|
+
return _this5.singleUpdate(item.id, strategy, currentItem, group);
|
|
304
327
|
case 5:
|
|
305
328
|
_context7.next = 10;
|
|
306
329
|
break;
|
|
307
330
|
case 7:
|
|
308
331
|
currentItem.type = itemType;
|
|
309
332
|
_context7.next = 10;
|
|
310
|
-
return
|
|
333
|
+
return _this5.singleCreate(item.id, strategy, currentItem, group);
|
|
311
334
|
case 10:
|
|
312
335
|
case "end":
|
|
313
336
|
return _context7.stop();
|
|
@@ -315,7 +338,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
315
338
|
}, _callee7);
|
|
316
339
|
}));
|
|
317
340
|
return function (_x13) {
|
|
318
|
-
return
|
|
341
|
+
return _ref5.apply(this, arguments);
|
|
319
342
|
};
|
|
320
343
|
}());
|
|
321
344
|
return _objectSpread(_objectSpread({}, option), {}, {
|
|
@@ -336,7 +359,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
336
359
|
key: "update",
|
|
337
360
|
value: (function () {
|
|
338
361
|
var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(json) {
|
|
339
|
-
var
|
|
362
|
+
var _this6 = this;
|
|
340
363
|
var id, _json$interactable3, interactable;
|
|
341
364
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
342
365
|
while (1) switch (_context9.prev = _context9.next) {
|
|
@@ -350,13 +373,13 @@ var Entity = /*#__PURE__*/function () {
|
|
|
350
373
|
target = hybridList.get(id);
|
|
351
374
|
_target$userData$enti2 = target.userData.entityParams, type = _target$userData$enti2.type, itemType = _target$userData$enti2.itemType;
|
|
352
375
|
_context8.next = 4;
|
|
353
|
-
return
|
|
376
|
+
return _this6.registerStrategy(itemType || type);
|
|
354
377
|
case 4:
|
|
355
378
|
strategy = _context8.sent;
|
|
356
|
-
if (itemType && type === 'layer') res = Promise.all(
|
|
379
|
+
if (itemType && type === 'layer') res = Promise.all(_this6.multiUpdate(id, strategy, _objectSpread({
|
|
357
380
|
itemType: itemType
|
|
358
|
-
}, json)));else res =
|
|
359
|
-
|
|
381
|
+
}, json)));else res = _this6.singleUpdate(id, strategy, json);
|
|
382
|
+
_this6.handleResult(id, res, interactable);
|
|
360
383
|
case 7:
|
|
361
384
|
case "end":
|
|
362
385
|
return _context8.stop();
|
|
@@ -379,7 +402,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
379
402
|
key: "execute",
|
|
380
403
|
value: function () {
|
|
381
404
|
var _execute = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(json) {
|
|
382
|
-
var
|
|
405
|
+
var _this7 = this;
|
|
383
406
|
var id, method, args, _json$interactable4, interactable;
|
|
384
407
|
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
385
408
|
while (1) switch (_context11.prev = _context11.next) {
|
|
@@ -394,7 +417,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
394
417
|
target = hybridList.get(id);
|
|
395
418
|
type = target.userData.entityParams.type;
|
|
396
419
|
_context10.next = 4;
|
|
397
|
-
return
|
|
420
|
+
return _this7.registerStrategy(type);
|
|
398
421
|
case 4:
|
|
399
422
|
strategy = _context10.sent;
|
|
400
423
|
_context10.next = 7;
|
|
@@ -410,7 +433,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
410
433
|
case 11:
|
|
411
434
|
entity = targetEntityInfo.value;
|
|
412
435
|
hybridList.update(id, entity);
|
|
413
|
-
|
|
436
|
+
_this7.handleResult(id, _objectSpread(_objectSpread({}, json), {}, {
|
|
414
437
|
id: id,
|
|
415
438
|
position: entity.position.toArray(),
|
|
416
439
|
rotation: entity.rotation.toArray(),
|
|
@@ -445,7 +468,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
445
468
|
key: "handleResult",
|
|
446
469
|
value: (function () {
|
|
447
470
|
var _handleResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(id, res, interactable) {
|
|
448
|
-
var
|
|
471
|
+
var _this8 = this;
|
|
449
472
|
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
450
473
|
while (1) switch (_context12.prev = _context12.next) {
|
|
451
474
|
case 0:
|
|
@@ -470,9 +493,9 @@ var Entity = /*#__PURE__*/function () {
|
|
|
470
493
|
success: false
|
|
471
494
|
});
|
|
472
495
|
}).finally(function () {
|
|
473
|
-
|
|
496
|
+
_this8.app.eventBus.eventMap.forEach(function (_, key) {
|
|
474
497
|
if (entityEvents.includes(key) && interactable) {
|
|
475
|
-
|
|
498
|
+
_this8.registerEvents({
|
|
476
499
|
eventName: key,
|
|
477
500
|
entityId: id
|
|
478
501
|
});
|
|
@@ -506,13 +529,14 @@ var Entity = /*#__PURE__*/function () {
|
|
|
506
529
|
var id = json.id;
|
|
507
530
|
var target = hybridList.get(id);
|
|
508
531
|
if (!target) throw new Error("entity ".concat(id, " is not exist"));
|
|
532
|
+
if (target.userData.entityParams.type === 'model') this.materialSwitchSystem.removeObject(target);
|
|
509
533
|
var deleteChildren = function deleteChildren(entityId) {
|
|
510
534
|
var entity = hybridList.get(entityId);
|
|
511
535
|
if (!entity) return;
|
|
512
536
|
if (entity.children) {
|
|
513
537
|
entity.children.forEach(function (child) {
|
|
514
|
-
var
|
|
515
|
-
id =
|
|
538
|
+
var _ref8 = child.userData.entityParams || {},
|
|
539
|
+
id = _ref8.id;
|
|
516
540
|
id && deleteChildren(id);
|
|
517
541
|
});
|
|
518
542
|
}
|
|
@@ -578,7 +602,7 @@ var Entity = /*#__PURE__*/function () {
|
|
|
578
602
|
eventName: realEventName,
|
|
579
603
|
entityId: id
|
|
580
604
|
});
|
|
581
|
-
|
|
605
|
+
|
|
582
606
|
// @ts-ignore
|
|
583
607
|
if (eventPenetrateType.includes(target.entityType)) {
|
|
584
608
|
target.userData[realEventName] = function (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","Group","use","createHighSelectedTool","MessageType","sendToMessage","EMessageStatus","entityEvents","HybridList","entityStrategy","eventPenetrateType","createDisposeFn","getMinimumEntity","hybridList","Entity","app","Map","select","_registerStrategy","_callee","entityType","strategyMap","strategyClass","_callee$","_context","concat","registerStrategy","_x","_singleCreate","_callee2","id","strategy","option","group","layerId","_this","entityInfoArray","targetEntityInfo","_option$interactable","interactable","_option$interactiveEf","interactiveEffect","entity","_callee2$","_context2","allSettled","status","reason","tag","entityId","userData","entityParams","add","addEventListener","position","toArray","rotation","scale","visible","singleCreate","_x2","_x3","_x4","_x5","_x6","multiCreate","json","_this2","itemType","_json$items","items","_json$legends","legends","_json$interactable","_ref","_callee3","item","currentData","_callee3$","_context3","legend","find","_x7","useScene","scene","_create","_callee5","_this3","_json$interactable2","asyncTask","_callee5$","_context5","_callee4","res","_callee4$","_context4","handleResult","_x8","_singleUpdate","_callee6","_target$userData$enti","_callee6$","_context6","get","update","remove","singleUpdate","_x9","_x10","_x11","_x12","multiUpdate","_this4","_ref3","_callee7","legendItem","currentItem","_callee7$","_context7","_x13","_update","_callee9","_this5","_json$interactable3","_callee9$","_context9","_callee8","_target$userData$enti2","_callee8$","_context8","all","_x14","_execute","_callee11","_this6","_json$interactable4","_callee11$","_context11","_callee10","_callee10$","_context10","execute","_x15","_handleResult","_callee12","_this7","_callee12$","_context12","messageType","Event","messageName","Success","global","success","finally","eventBus","eventMap","_","includes","registerEvents","eventName","_x16","_x17","_x18","customizer","objValue","srcValue","Array","isArray","_delete","deleteChildren","children","child","_ref6","has","delete","removeFromParent","entityDispose","dispose","params","getEntityOption","opts","realEventName","toLowerCase","unregisterEvents","closestMesh","newClosestMesh","minimumEntity","targetId","removeEventListener"],"sources":["../../../src/module/entity/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Group, use } from '@anov/3d-core'\nimport { createHighSelectedTool } from '@anov/3d-ability'\nimport type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { entityEvents } from '../eventBus/entityEvents'\nimport HybridList from './hybridList'\nimport { entityStrategy, eventPenetrateType } from './strategy'\nimport createDisposeFn from './dispose'\nimport type { Option, Opts, RegisterEvents } from './type'\nimport { getMinimumEntity } from './utils'\n\nexport const hybridList = new HybridList<Object3D>()\n\nclass Entity implements BaseModule {\n app: Anov3D\n catchStrategy: Map<string, any> = new Map()\n select: any\n\n constructor(app: Anov3D) {\n this.select = createHighSelectedTool()\n this.app = app\n }\n\n /**\n * register strategy\n * @param entityType\n * @returns\n */\n async registerStrategy(entityType) {\n const strategyMap = {\n ...entityStrategy,\n }\n\n if (!(entityType in strategyMap))\n throw new Error(`entityType ${entityType} is not supported`)\n\n const strategyClass = await strategyMap[entityType]()\n\n // eslint-disable-next-line new-cap\n return new strategyClass()\n }\n\n async singleCreate(id, strategy, option: Option, group?: Group, layerId?: string) {\n const entityInfoArray = await Promise.allSettled([strategy.create(option)])\n const targetEntityInfo = entityInfoArray[0]\n const { interactable = true, interactiveEffect = false } = option\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const entity = targetEntityInfo.value\n entity.tag = 'entity' // used for event penetration identification\n entity.entityId = id\n entity.userData.entityParams = { id, type: option.type, layerId, interactable }\n\n hybridList.add(id, entity)\n group?.add(entity)\n\n if (interactiveEffect && entity.userData.entityParams.type === 'model') {\n entity.addEventListener('mouseover', () => {\n this.select([entity])\n })\n\n entity.addEventListener('mouseout', () => {\n this.select([])\n })\n }\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }\n }\n\n multiCreate(id: string, strategy, json: Option) {\n const { itemType, items = [], legends = [], interactable = true } = json\n\n const group = new Group()\n\n // TODO 优化,定制化非实体逻辑\n items.forEach(async (item) => {\n let currentData = item\n\n if (currentData.legend) {\n currentData = {\n ...legends.find(legend => legend.name === item.legend),\n ...item,\n }\n }\n currentData.type = itemType\n\n await this.singleCreate(\n item.id,\n strategy,\n currentData,\n group,\n id,\n )\n })\n\n group.userData.entityParams = { id, type: 'layer', itemType, interactable }\n hybridList.add(id, group)\n use.useScene().scene.add(group)\n\n return {\n ...json,\n id,\n position: group.position.toArray(),\n rotation: group.rotation.toArray(),\n scale: group.scale.toArray(),\n visible: group.visible,\n\n }\n }\n\n /**\n * create entity\n * @param json\n * @returns\n */\n async create(json: Option) {\n const { id, type, itemType, interactable = true } = json\n\n const asyncTask = Promise.resolve().then(async () => {\n const strategy = await this.registerStrategy(itemType || type)\n\n let res\n if (itemType && type === 'layer')\n res = this.multiCreate(id, strategy, json)\n else\n res = this.singleCreate(id, strategy, json)\n\n return this.handleResult(id, res, interactable)\n })\n\n return { ...json, asyncTask }\n }\n\n async singleUpdate(id, strategy, option: Option, group?: Group) {\n const target = hybridList.get(id) as any\n const entityInfoArray = await Promise.allSettled([strategy.update(target, option)])\n const targetEntityInfo = entityInfoArray[0]\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const { entityParams = {} } = target.userData\n const entity = targetEntityInfo.value\n entity.tag = 'entity' // use used for event penetration identification\n entity.entityId = id\n entity.userData.entityParams = entityParams\n\n // 兼容修改图层下的单个实体\n if (!group && entityParams.layerId)\n group = hybridList.get(entityParams.layerId) as Group\n\n if (group) {\n group.remove(hybridList.get(id))\n group.add(entity)\n }\n\n hybridList.update(id, entity)\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }\n }\n\n multiUpdate(id, strategy, option) {\n const group = hybridList.get(id) as Group\n const { items, legends, itemType } = option\n\n items.forEach(async (item) => {\n const legendItem = legends?.find(legend => legend.name === item.legend)\n const currentItem = legendItem ? { ...legendItem, ...item } : item\n\n if (hybridList.get(item.id)) {\n await this.singleUpdate(item.id, strategy, currentItem, group)\n }\n else {\n currentItem.type = itemType\n await this.singleCreate(item.id, strategy, currentItem, group)\n }\n })\n\n return {\n ...option,\n id,\n position: group.position.toArray(),\n rotation: group.rotation.toArray(),\n scale: group.scale.toArray(),\n visible: group.visible,\n }\n }\n\n /**\n * update entity\n * @param json\n * @returns\n */\n async update(json: Option) {\n const { id, interactable = true } = json\n\n Promise.resolve().then(async () => {\n const target = hybridList.get(id) as any\n const { entityParams: { type, itemType } } = target.userData\n const strategy = await this.registerStrategy(itemType || type)\n\n let res\n if (itemType && type === 'layer')\n res = Promise.all(this.multiUpdate(id, strategy, { itemType, ...json }))\n else\n res = this.singleUpdate(id, strategy, json)\n\n this.handleResult(id, res, interactable)\n })\n\n return json\n }\n\n async execute(json: Option) {\n const { id, method, args, interactable = true } = json\n if (id && method) {\n Promise.resolve().then(async () => {\n const target = hybridList.get(id) as any\n const { entityParams: { type } } = target.userData\n const strategy = await this.registerStrategy(type)\n\n const entityInfoArray = await Promise.allSettled([strategy[method](args, target)])\n const targetEntityInfo = entityInfoArray[0]\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const entity = targetEntityInfo.value\n hybridList.update(id, entity)\n\n this.handleResult(id, {\n ...json,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }, interactable)\n })\n }\n\n return json\n }\n\n /**\n * handle create or update loadded result\n * @param id\n * @param res\n */\n private async handleResult(id: string, res: any, interactable: boolean) {\n return Promise.resolve(res)\n .then(() => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onLoaded',\n status: EMessageStatus.Success,\n global: false,\n },\n {\n id,\n success: true,\n })\n })\n .catch(() => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onLoaded',\n status: EMessageStatus.Success,\n global: false,\n },\n {\n id,\n success: false,\n })\n })\n .finally(() => {\n this.app.eventBus.eventMap.forEach((_, key) => {\n if (entityEvents.includes(key) && interactable) {\n this.registerEvents({\n eventName: key,\n entityId: id,\n })\n }\n })\n })\n }\n\n customizer(objValue, srcValue) {\n if (Array.isArray(objValue) && srcValue)\n return srcValue\n }\n\n /**\n * delete entity\n * @param json\n */\n delete(json: Opts) {\n const { id } = json\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n const deleteChildren = (entityId): void => {\n const entity = hybridList.get(entityId)\n if (!entity)\n return\n\n if (entity.children) {\n entity.children.forEach((child) => {\n const { id } = child.userData.entityParams || {}\n id && deleteChildren(id)\n })\n }\n hybridList.has(entityId) && hybridList.delete(entityId)\n }\n deleteChildren(id)\n\n target.removeFromParent()\n\n const entityDispose = createDisposeFn()\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n\n hybridList.delete(id)\n }\n\n /**\n * get entity\n * @param params\n * @returns\n */\n get(params: { id: string }) {\n const { id } = params\n\n const entity = hybridList.get(id)\n const option = this.getEntityOption(entity)\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n type: entity.userData.entityParams.type,\n }\n }\n\n /**\n * get entity option\n * @param target\n * @returns\n */\n getEntityOption(target: Object3D) {\n return target && (target.userData.option || {})\n }\n\n /**\n * register entity events\n * @param opts\n */\n registerEvents(opts: RegisterEvents) {\n const { eventName, entityId: id } = opts\n const realEventName = eventName.slice(2).toLowerCase()\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n this.unregisterEvents({\n eventName: realEventName,\n entityId: id,\n })\n debugger\n // @ts-ignore\n if (eventPenetrateType.includes(target.entityType)) {\n target.userData[realEventName] = (e) => {\n const closestMesh = e.newClosestMesh\n const minimumEntity = getMinimumEntity(closestMesh, target as any)\n\n minimumEntity\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: eventName,\n status: EMessageStatus.Success,\n global: false,\n },\n {\n targetId: minimumEntity.entityId,\n id,\n })\n }\n\n target.addEventListener('click', target.userData[realEventName])\n }\n else {\n target.userData[realEventName] = (e) => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: eventName,\n status: EMessageStatus.Success,\n global: false,\n },\n {\n targetId: id,\n id,\n },\n )\n }\n target.addEventListener(realEventName, target.userData[realEventName])\n }\n }\n\n /**\n * unregister entity events\n * @param opts\n */\n unregisterEvents(opts: RegisterEvents) {\n const { eventName, entityId: id } = opts\n const realEventName = eventName.slice(2).toLowerCase()\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n target.removeEventListener(realEventName, target.userData[realEventName])\n }\n}\n\nexport default Entity"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","Group","use","utils","MaterialSwitchSystem","createHighSelectedTool","MessageType","sendToMessage","EMessageStatus","entityEvents","HybridList","entityStrategy","eventPenetrateType","createDisposeFn","getMinimumEntity","emitter","hybridList","Entity","app","_this","Map","select","materialSwitchSystem","useScene","scene","add","addEventListener","_ref","style","messageType","Event","messageName","status","Success","on","_ref2","removeObject","addObject","_registerStrategy","_callee","entityType","strategyMap","strategyClass","_callee$","_context","concat","registerStrategy","_x","_singleCreate","_callee2","id","strategy","option","group","layerId","_this2","entityInfoArray","targetEntityInfo","_option$interactable","interactable","_option$interactiveEf","interactiveEffect","entity","_callee2$","_context2","allSettled","reason","tag","entityId","userData","entityParams","position","toArray","rotation","scale","visible","singleCreate","_x2","_x3","_x4","_x5","_x6","multiCreate","json","_this3","itemType","_json$items","items","_json$legends","legends","_json$interactable","_ref3","_callee3","item","currentData","_callee3$","_context3","legend","find","_x7","_create","_callee5","_this4","_json$interactable2","asyncTask","_callee5$","_context5","_callee4","res","_callee4$","_context4","handleResult","_x8","_singleUpdate","_callee6","_target$userData$enti","_callee6$","_context6","get","update","remove","singleUpdate","_x9","_x10","_x11","_x12","multiUpdate","_this5","_ref5","_callee7","legendItem","currentItem","_callee7$","_context7","_x13","_update","_callee9","_this6","_json$interactable3","_callee9$","_context9","_callee8","_target$userData$enti2","_callee8$","_context8","all","_x14","_execute","_callee11","_this7","_json$interactable4","_callee11$","_context11","_callee10","_callee10$","_context10","execute","_x15","_handleResult","_callee12","_this8","_callee12$","_context12","global","success","finally","eventBus","eventMap","_","includes","registerEvents","eventName","_x16","_x17","_x18","customizer","objValue","srcValue","Array","isArray","_delete","deleteChildren","children","child","_ref8","has","delete","removeFromParent","entityDispose","dispose","params","getEntityOption","opts","realEventName","toLowerCase","unregisterEvents","closestMesh","newClosestMesh","minimumEntity","targetId","removeEventListener"],"sources":["../../../src/module/entity/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Group, use, utils } from '@anov/3d-core'\nimport { MaterialSwitchSystem, createHighSelectedTool } from '@anov/3d-ability'\nimport type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { entityEvents } from '../eventBus/entityEvents'\nimport HybridList from './hybridList'\nimport { entityStrategy, eventPenetrateType } from './strategy'\nimport createDisposeFn from './dispose'\nimport type { Option, Opts, RegisterEvents } from './type'\nimport { getMinimumEntity } from './utils'\n\nconst { emitter } = utils\nexport const hybridList = new HybridList<Object3D>()\n\nclass Entity implements BaseModule {\n app: Anov3D\n catchStrategy: Map<string, any> = new Map()\n select: any\n materialSwitchSystem: MaterialSwitchSystem\n\n constructor(app: Anov3D) {\n this.select = createHighSelectedTool()\n this.app = app\n this.materialSwitchSystem = new MaterialSwitchSystem([])\n use.useScene().scene.add(this.materialSwitchSystem)\n\n this.materialSwitchSystem.addEventListener(\n 'onStyleChanged',\n ({ style }) => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onStyleChanged',\n status: EMessageStatus.Success,\n },\n {\n style,\n })\n },\n )\n\n emitter.on('onMaterialChanged', ({ target }) => {\n this.materialSwitchSystem.removeObject(target)\n this.materialSwitchSystem.addObject(target)\n })\n }\n\n /**\n * register strategy\n * @param entityType\n * @returns\n */\n async registerStrategy(entityType) {\n const strategyMap = {\n ...entityStrategy,\n }\n\n if (!(entityType in strategyMap))\n throw new Error(`entityType ${entityType} is not supported`)\n\n const strategyClass = await strategyMap[entityType]()\n\n // eslint-disable-next-line new-cap\n return new strategyClass()\n }\n\n async singleCreate(id, strategy, option: Option, group?: Group, layerId?: string) {\n const entityInfoArray = await Promise.allSettled([strategy.create(option)])\n const targetEntityInfo = entityInfoArray[0]\n const { interactable = true, interactiveEffect = false } = option\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const entity = targetEntityInfo.value\n entity.tag = 'entity' // used for event penetration identification\n entity.entityId = id\n entity.userData.entityParams = { id, type: option.type, layerId, interactable }\n\n if (entity.userData.entityParams.type === 'model')\n this.materialSwitchSystem.addObject(entity)\n\n hybridList.add(id, entity)\n group?.add(entity)\n\n if (interactiveEffect && entity.userData.entityParams.type === 'model') {\n entity.addEventListener('mouseover', () => {\n this.select([entity])\n })\n\n entity.addEventListener('mouseout', () => {\n this.select([])\n })\n }\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }\n }\n\n multiCreate(id: string, strategy, json: Option) {\n const { itemType, items = [], legends = [], interactable = true } = json\n\n const group = new Group()\n\n // TODO 优化,定制化非实体逻辑\n items.forEach(async (item) => {\n let currentData = item\n\n if (currentData.legend) {\n currentData = {\n ...legends.find(legend => legend.name === item.legend),\n ...item,\n }\n }\n currentData.type = itemType\n\n await this.singleCreate(\n item.id,\n strategy,\n currentData,\n group,\n id,\n )\n })\n\n group.userData.entityParams = { id, type: 'layer', itemType, interactable }\n hybridList.add(id, group)\n use.useScene().scene.add(group)\n\n return {\n ...json,\n id,\n position: group.position.toArray(),\n rotation: group.rotation.toArray(),\n scale: group.scale.toArray(),\n visible: group.visible,\n\n }\n }\n\n /**\n * create entity\n * @param json\n * @returns\n */\n async create(json: Option) {\n const { id, type, itemType, interactable = true } = json\n\n const asyncTask = Promise.resolve().then(async () => {\n const strategy = await this.registerStrategy(itemType || type)\n\n let res\n if (itemType && type === 'layer')\n res = this.multiCreate(id, strategy, json)\n else\n res = this.singleCreate(id, strategy, json)\n\n return this.handleResult(id, res, interactable)\n })\n\n return { ...json, asyncTask }\n }\n\n async singleUpdate(id, strategy, option: Option, group?: Group) {\n const target = hybridList.get(id) as any\n\n if (target.userData.entityParams.type === 'model')\n this.materialSwitchSystem.removeObject(target)\n\n const entityInfoArray = await Promise.allSettled([strategy.update(target, option)])\n const targetEntityInfo = entityInfoArray[0]\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const { entityParams = {} } = target.userData\n const entity = targetEntityInfo.value\n entity.tag = 'entity' // use used for event penetration identification\n entity.entityId = id\n entity.userData.entityParams = entityParams\n\n // 兼容修改图层下的单个实体\n if (!group && entityParams.layerId)\n group = hybridList.get(entityParams.layerId) as Group\n\n if (group) {\n group.remove(hybridList.get(id))\n group.add(entity)\n }\n\n hybridList.update(id, entity)\n\n if (entity.userData.entityParams.type === 'model')\n this.materialSwitchSystem.addObject(entity)\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }\n }\n\n multiUpdate(id, strategy, option) {\n const group = hybridList.get(id) as Group\n const { items, legends, itemType } = option\n\n items.forEach(async (item) => {\n const legendItem = legends?.find(legend => legend.name === item.legend)\n const currentItem = legendItem ? { ...legendItem, ...item } : item\n\n if (hybridList.get(item.id)) {\n await this.singleUpdate(item.id, strategy, currentItem, group)\n }\n else {\n currentItem.type = itemType\n await this.singleCreate(item.id, strategy, currentItem, group)\n }\n })\n\n return {\n ...option,\n id,\n position: group.position.toArray(),\n rotation: group.rotation.toArray(),\n scale: group.scale.toArray(),\n visible: group.visible,\n }\n }\n\n /**\n * update entity\n * @param json\n * @returns\n */\n async update(json: Option) {\n const { id, interactable = true } = json\n\n Promise.resolve().then(async () => {\n const target = hybridList.get(id) as any\n const { entityParams: { type, itemType } } = target.userData\n const strategy = await this.registerStrategy(itemType || type)\n\n let res\n if (itemType && type === 'layer')\n res = Promise.all(this.multiUpdate(id, strategy, { itemType, ...json }))\n else\n res = this.singleUpdate(id, strategy, json)\n\n this.handleResult(id, res, interactable)\n })\n\n return json\n }\n\n async execute(json: Option) {\n const { id, method, args, interactable = true } = json\n if (id && method) {\n Promise.resolve().then(async () => {\n const target = hybridList.get(id) as any\n const { entityParams: { type } } = target.userData\n const strategy = await this.registerStrategy(type)\n\n const entityInfoArray = await Promise.allSettled([strategy[method](args, target)])\n const targetEntityInfo = entityInfoArray[0]\n\n if (targetEntityInfo.status === 'rejected')\n throw new Error(targetEntityInfo.reason)\n\n const entity = targetEntityInfo.value\n hybridList.update(id, entity)\n\n this.handleResult(id, {\n ...json,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n }, interactable)\n })\n }\n\n return json\n }\n\n /**\n * handle create or update loadded result\n * @param id\n * @param res\n */\n private async handleResult(id: string, res: any, interactable: boolean) {\n return Promise.resolve(res)\n .then(() => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onLoaded',\n status: EMessageStatus.Success,\n global: false,\n },\n {\n id,\n success: true,\n })\n })\n .catch(() => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onLoaded',\n status: EMessageStatus.Success,\n global: false,\n },\n {\n id,\n success: false,\n })\n })\n .finally(() => {\n this.app.eventBus.eventMap.forEach((_, key) => {\n if (entityEvents.includes(key) && interactable) {\n this.registerEvents({\n eventName: key,\n entityId: id,\n })\n }\n })\n })\n }\n\n customizer(objValue, srcValue) {\n if (Array.isArray(objValue) && srcValue)\n return srcValue\n }\n\n /**\n * delete entity\n * @param json\n */\n delete(json: Opts) {\n const { id } = json\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n if (target.userData.entityParams.type === 'model')\n this.materialSwitchSystem.removeObject(target)\n\n const deleteChildren = (entityId): void => {\n const entity = hybridList.get(entityId)\n if (!entity)\n return\n\n if (entity.children) {\n entity.children.forEach((child) => {\n const { id } = child.userData.entityParams || {}\n id && deleteChildren(id)\n })\n }\n hybridList.has(entityId) && hybridList.delete(entityId)\n }\n deleteChildren(id)\n\n target.removeFromParent()\n\n const entityDispose = createDisposeFn()\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n\n hybridList.delete(id)\n }\n\n /**\n * get entity\n * @param params\n * @returns\n */\n get(params: { id: string }) {\n const { id } = params\n\n const entity = hybridList.get(id)\n const option = this.getEntityOption(entity)\n\n return {\n ...option,\n id,\n position: entity.position.toArray(),\n rotation: entity.rotation.toArray(),\n scale: entity.scale.toArray(),\n visible: entity.visible,\n type: entity.userData.entityParams.type,\n }\n }\n\n /**\n * get entity option\n * @param target\n * @returns\n */\n getEntityOption(target: Object3D) {\n return target && (target.userData.option || {})\n }\n\n /**\n * register entity events\n * @param opts\n */\n registerEvents(opts: RegisterEvents) {\n const { eventName, entityId: id } = opts\n const realEventName = eventName.slice(2).toLowerCase()\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n this.unregisterEvents({\n eventName: realEventName,\n entityId: id,\n })\n\n // @ts-ignore\n if (eventPenetrateType.includes(target.entityType)) {\n target.userData[realEventName] = (e) => {\n const closestMesh = e.newClosestMesh\n const minimumEntity = getMinimumEntity(closestMesh, target as any)\n\n minimumEntity\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: eventName,\n status: EMessageStatus.Success,\n global: false,\n },\n {\n targetId: minimumEntity.entityId,\n id,\n })\n }\n\n target.addEventListener('click', target.userData[realEventName])\n }\n else {\n target.userData[realEventName] = (e) => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: eventName,\n status: EMessageStatus.Success,\n global: false,\n },\n {\n targetId: id,\n id,\n },\n )\n }\n target.addEventListener(realEventName, target.userData[realEventName])\n }\n }\n\n /**\n * unregister entity events\n * @param opts\n */\n unregisterEvents(opts: RegisterEvents) {\n const { eventName, entityId: id } = opts\n const realEventName = eventName.slice(2).toLowerCase()\n const target = hybridList.get(id)\n\n if (!target)\n throw new Error(`entity ${id} is not exist`)\n\n target.removeEventListener(realEventName, target.userData[realEventName])\n }\n}\n\nexport default Entity"],"mappings":"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"}
|
|
@@ -36,7 +36,9 @@ var PointLightManager = /*#__PURE__*/function (_BaseEntity) {
|
|
|
36
36
|
|
|
37
37
|
// 初始化带类型转换的核心属性
|
|
38
38
|
var light = new PointLight(new Color(color !== null && color !== void 0 ? color : 0xFFFFFF), intensity !== null && intensity !== void 0 ? intensity : 1, radius !== null && radius !== void 0 ? radius : 0, 2);
|
|
39
|
-
|
|
39
|
+
light.castShadow = false;
|
|
40
|
+
// if (castShadows !== undefined)
|
|
41
|
+
// light.castShadow = castShadows
|
|
40
42
|
this.addToScene(light, option);
|
|
41
43
|
return light;
|
|
42
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","PointLight","BaseEntity","PointLightManager","_BaseEntity","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","create","option","intensity","color","radius","castShadows","light","
|
|
1
|
+
{"version":3,"names":["Color","PointLight","BaseEntity","PointLightManager","_BaseEntity","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","create","option","intensity","color","radius","castShadows","light","castShadow","addToScene","update","target","PROPERTY_MAP","validator","Number","isFinite","v","undefined","newColor","equals","copy","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","optionKey","config","console","warn","concat"],"sources":["../../../../../src/module/entity/light/pointLight/index.ts"],"sourcesContent":["import { Color, PointLight, use } from '@anov/3d-core'\nimport type { Option } from '../type'\nimport BaseEntity from '../../baseEntity'\n\nclass PointLightManager extends BaseEntity {\n create(option: Option) {\n const { intensity, color, radius, castShadows } = option\n\n // 初始化带类型转换的核心属性\n const light = new PointLight(\n new Color(color ?? 0xFFFFFF),\n intensity ?? 1,\n radius ?? 0,\n 2,\n )\n light.castShadow = false\n // if (castShadows !== undefined)\n // light.castShadow = castShadows\n this.addToScene(light, option)\n return light\n }\n\n update(target, option) {\n const PROPERTY_MAP = {\n intensity: { key: 'intensity', validator: Number.isFinite },\n radius: {\n key: 'distance',\n validator: v => v >= 0,\n },\n castShadows: { key: 'castShadow', validator: v => typeof v === 'boolean' },\n }\n\n // 处理颜色更新(单独优化)\n if (option.color !== undefined) {\n const newColor = new Color(option.color)\n if (!target.color.equals(newColor))\n target.color.copy(newColor)\n }\n\n // 遍历属性映射\n for (const [optionKey, config] of Object.entries(PROPERTY_MAP)) {\n const value = option[optionKey]\n if (value === undefined)\n continue\n\n // 执行数据验证\n if (config.validator && !config.validator(value)) {\n console.warn(`Invalid value for ${optionKey}: ${value}`)\n continue\n }\n // 更新目标属性\n target[config.key] = value\n }\n\n this.addToScene(target, option, false)\n return target\n }\n}\n\nexport default PointLightManager"],"mappings":"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"}
|