@anov/3d 0.0.188 → 0.0.190

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/anov3d.js CHANGED
@@ -11,6 +11,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
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
13
  import { SceneControl, Vector3, utils } from '@anov/3d-core';
14
+ import { initPostEffects } from '@anov/3d-ability';
14
15
  import EventBus from "./module/eventBus";
15
16
  import { object2Vector3 } from "./utils/index";
16
17
  import { defaultCameraParams } from "./index";
@@ -52,6 +53,7 @@ var Anov3D = /*#__PURE__*/_createClass(function Anov3D(opts) {
52
53
  });
53
54
  scene.render(opts.container);
54
55
  scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt));
56
+ initPostEffects(scene.scene, scene.renderer, scene.camera);
55
57
  utils.emitter.emit('scene-completed', scene);
56
58
 
57
59
  // 不考虑 tree-shaking
@@ -1 +1 @@
1
- {"version":3,"names":["SceneControl","Vector3","utils","EventBus","object2Vector3","defaultCameraParams","Anov3D","_createClass","opts","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","cameraParams","_objectSpread","fromArray","scene","orbitControls","use","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","render","controls","target","copy","lookAt","emitter","emit","sceneControl","eventBus","storeManagement","set"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { SceneControl, Vector3, utils } from '@anov/3d-core'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight } } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 初始化相机参数\n const cameraParams = {\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n\n const scene = new SceneControl({\n orbitControls: { use: true },\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n this.eventBus = new EventBus(this)\n\n utils.storeManagement.set('event-bus', this.eventBus)\n utils.emitter.emit('instantiation-completed', this)\n }\n}\n\nexport default Anov3D"],"mappings":";;;;;;;;;;;;AAAA,SAASA,YAAY,EAAEC,OAAO,EAAEC,KAAK,QAAQ,eAAe;AAC5D,OAAOC,QAAQ;AACf,SAASC,cAAc;AAEvB,SAASC,mBAAmB;AAAiB,IAOvCC,MAAM,gBAAAC,YAAA,CAMV,SAAAD,OAAYE,IAAmB,EAAE;EAAAC,eAAA,OAAAH,MAAA;EAAAI,eAAA,oBALrB,CAAC;EAAAA,eAAA;EAAAA,eAAA;EAAAA,eAAA;EAMX,IAAI,CAACF,IAAI,GAAGA,IAAI;;EAEhB;EACA,IAAAG,YAAA,GAAkEH,IAAI,CAA9DI,MAAM;IAANA,MAAM,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;IAAAE,eAAA,GAA+CL,IAAI,CAAjDM,SAAS;IAAIC,WAAW,GAAAF,eAAA,CAAXE,WAAW;IAAEC,YAAY,GAAAH,eAAA,CAAZG,YAAY;EAC3D,IAAkBC,eAAe,GAAqBZ,mBAAmB,CAAjEa,QAAQ;IAAsBC,WAAW,GAAAC,wBAAA,CAAKf,mBAAmB,EAAAgB,SAAA;;EAEzE;EACA,IAAMC,YAAY,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACbJ,WAAW,GACXP,MAAM;IACTM,QAAQ,EAAEN,MAAM,CAACM,QAAQ,GAAG,IAAIjB,OAAO,CAAC,CAAC,CAACuB,SAAS,CAACZ,MAAM,CAACM,QAAQ,CAAC,GAAGd,cAAc,CAACa,eAAe;EAAC,EACvG;EAED,IAAMQ,KAAK,GAAG,IAAIzB,YAAY,CAAC;IAC7B0B,aAAa,EAAE;MAAEC,GAAG,EAAE;IAAK,CAAC;IAC5BC,YAAY,EAAAL,aAAA,CAAAA,aAAA,KACPD,YAAY;MACfO,MAAM,EAAEd,WAAW,GAAGC;IAAY,EACnC;IACDc,WAAW,EAAE;MACXC,SAAS,EAAE;IACb,CAAC;IACDC,KAAK,EAAE,IAAI;IACXC,aAAa,EAAE,IAAI;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE;EAChB,CAAC,CAAC;EAEFV,KAAK,CAACW,MAAM,CAAC5B,IAAI,CAACM,SAAS,CAAC;EAC5BW,KAAK,CAACY,QAAQ,CAACC,MAAM,CAACC,IAAI,CAACnC,cAAc,CAACC,mBAAmB,CAACmC,MAAM,CAAC,CAAC;EAEtEtC,KAAK,CAACuC,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAEjB,KAAK,CAAC;;EAE5C;EACA,IAAI,CAACkB,YAAY,GAAGlB,KAAK;EACzB,IAAI,CAACmB,QAAQ,GAAG,IAAIzC,QAAQ,CAAC,IAAI,CAAC;EAElCD,KAAK,CAAC2C,eAAe,CAACC,GAAG,CAAC,WAAW,EAAE,IAAI,CAACF,QAAQ,CAAC;EACrD1C,KAAK,CAACuC,OAAO,CAACC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC;AACrD,CAAC;AAGH,eAAepC,MAAM"}
1
+ {"version":3,"names":["SceneControl","Vector3","utils","initPostEffects","EventBus","object2Vector3","defaultCameraParams","Anov3D","_createClass","opts","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","cameraParams","_objectSpread","fromArray","scene","orbitControls","use","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","render","controls","target","copy","lookAt","renderer","emitter","emit","sceneControl","eventBus","storeManagement","set"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { SceneControl, Vector3, utils } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight } } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 初始化相机参数\n const cameraParams = {\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n\n const scene = new SceneControl({\n orbitControls: { use: true },\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))\n\n initPostEffects(scene.scene, scene.renderer, scene.camera)\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n this.eventBus = new EventBus(this)\n\n utils.storeManagement.set('event-bus', this.eventBus)\n utils.emitter.emit('instantiation-completed', this)\n }\n}\n\nexport default Anov3D"],"mappings":";;;;;;;;;;;;AAAA,SAASA,YAAY,EAAEC,OAAO,EAAEC,KAAK,QAAQ,eAAe;AAC5D,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAOC,QAAQ;AACf,SAASC,cAAc;AAEvB,SAASC,mBAAmB;AAAiB,IAOvCC,MAAM,gBAAAC,YAAA,CAMV,SAAAD,OAAYE,IAAmB,EAAE;EAAAC,eAAA,OAAAH,MAAA;EAAAI,eAAA,oBALrB,CAAC;EAAAA,eAAA;EAAAA,eAAA;EAAAA,eAAA;EAMX,IAAI,CAACF,IAAI,GAAGA,IAAI;;EAEhB;EACA,IAAAG,YAAA,GAAkEH,IAAI,CAA9DI,MAAM;IAANA,MAAM,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;IAAAE,eAAA,GAA+CL,IAAI,CAAjDM,SAAS;IAAIC,WAAW,GAAAF,eAAA,CAAXE,WAAW;IAAEC,YAAY,GAAAH,eAAA,CAAZG,YAAY;EAC3D,IAAkBC,eAAe,GAAqBZ,mBAAmB,CAAjEa,QAAQ;IAAsBC,WAAW,GAAAC,wBAAA,CAAKf,mBAAmB,EAAAgB,SAAA;;EAEzE;EACA,IAAMC,YAAY,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACbJ,WAAW,GACXP,MAAM;IACTM,QAAQ,EAAEN,MAAM,CAACM,QAAQ,GAAG,IAAIlB,OAAO,CAAC,CAAC,CAACwB,SAAS,CAACZ,MAAM,CAACM,QAAQ,CAAC,GAAGd,cAAc,CAACa,eAAe;EAAC,EACvG;EAED,IAAMQ,KAAK,GAAG,IAAI1B,YAAY,CAAC;IAC7B2B,aAAa,EAAE;MAAEC,GAAG,EAAE;IAAK,CAAC;IAC5BC,YAAY,EAAAL,aAAA,CAAAA,aAAA,KACPD,YAAY;MACfO,MAAM,EAAEd,WAAW,GAAGC;IAAY,EACnC;IACDc,WAAW,EAAE;MACXC,SAAS,EAAE;IACb,CAAC;IACDC,KAAK,EAAE,IAAI;IACXC,aAAa,EAAE,IAAI;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE;EAChB,CAAC,CAAC;EAEFV,KAAK,CAACW,MAAM,CAAC5B,IAAI,CAACM,SAAS,CAAC;EAC5BW,KAAK,CAACY,QAAQ,CAACC,MAAM,CAACC,IAAI,CAACnC,cAAc,CAACC,mBAAmB,CAACmC,MAAM,CAAC,CAAC;EAEtEtC,eAAe,CAACuB,KAAK,CAACA,KAAK,EAAEA,KAAK,CAACgB,QAAQ,EAAEhB,KAAK,CAACb,MAAM,CAAC;EAE1DX,KAAK,CAACyC,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAElB,KAAK,CAAC;;EAE5C;EACA,IAAI,CAACmB,YAAY,GAAGnB,KAAK;EACzB,IAAI,CAACoB,QAAQ,GAAG,IAAI1C,QAAQ,CAAC,IAAI,CAAC;EAElCF,KAAK,CAAC6C,eAAe,CAACC,GAAG,CAAC,WAAW,EAAE,IAAI,CAACF,QAAQ,CAAC;EACrD5C,KAAK,CAACyC,OAAO,CAACC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC;AACrD,CAAC;AAGH,eAAerC,MAAM"}
@@ -0,0 +1,167 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ 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; }
6
+ 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); } }
7
+ 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); }); }; }
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
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
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
16
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
17
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
19
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
20
+ import { CurvePath, LineCurve3, Vector3, use } from '@anov/3d-core';
21
+ import { Batch as BatchManage } from '@anov/3d-ability';
22
+ import _ from 'lodash';
23
+ import BaseEntity from "../baseEntity";
24
+ import { entityStrategy } from "../strategy";
25
+ var Batch = /*#__PURE__*/function (_BaseEntity) {
26
+ _inherits(Batch, _BaseEntity);
27
+ var _super = _createSuper(Batch);
28
+ function Batch() {
29
+ _classCallCheck(this, Batch);
30
+ return _super.apply(this, arguments);
31
+ }
32
+ _createClass(Batch, [{
33
+ key: "registerStrategy",
34
+ value: function () {
35
+ var _registerStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(entityType) {
36
+ var strategyMap, strategyClass;
37
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ strategyMap = _objectSpread({}, entityStrategy);
41
+ if (entityType in strategyMap) {
42
+ _context.next = 3;
43
+ break;
44
+ }
45
+ throw new Error("entityType ".concat(entityType, " is not supported"));
46
+ case 3:
47
+ _context.next = 5;
48
+ return strategyMap[entityType]();
49
+ case 5:
50
+ strategyClass = _context.sent;
51
+ return _context.abrupt("return", new strategyClass());
52
+ case 7:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee);
57
+ }));
58
+ function registerStrategy(_x) {
59
+ return _registerStrategy.apply(this, arguments);
60
+ }
61
+ return registerStrategy;
62
+ }()
63
+ }, {
64
+ key: "create",
65
+ value: function () {
66
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(json) {
67
+ var mesh, _use$useScene, scene;
68
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
69
+ while (1) switch (_context2.prev = _context2.next) {
70
+ case 0:
71
+ _context2.next = 2;
72
+ return this._createMesh(json);
73
+ case 2:
74
+ mesh = _context2.sent;
75
+ mesh.userData.option = json;
76
+ _use$useScene = use.useScene(), scene = _use$useScene.scene;
77
+ scene.add(mesh);
78
+ return _context2.abrupt("return", mesh);
79
+ case 7:
80
+ case "end":
81
+ return _context2.stop();
82
+ }
83
+ }, _callee2, this);
84
+ }));
85
+ function create(_x2) {
86
+ return _create.apply(this, arguments);
87
+ }
88
+ return create;
89
+ }()
90
+ }, {
91
+ key: "update",
92
+ value: function () {
93
+ var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(json, mesh) {
94
+ var option, mergedOption;
95
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
96
+ while (1) switch (_context3.prev = _context3.next) {
97
+ case 0:
98
+ option = mesh.userData.option || {};
99
+ mergedOption = _.mergeWith({}, option, json, this.customizer);
100
+ mesh.parent && mesh.removeFromParent();
101
+ return _context3.abrupt("return", this.create(mergedOption));
102
+ case 4:
103
+ case "end":
104
+ return _context3.stop();
105
+ }
106
+ }, _callee3, this);
107
+ }));
108
+ function update(_x3, _x4) {
109
+ return _update.apply(this, arguments);
110
+ }
111
+ return update;
112
+ }()
113
+ }, {
114
+ key: "_createMesh",
115
+ value: function () {
116
+ var _createMesh2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(option) {
117
+ var path, number, span, objectData, curvePath, strategy, entity, mesh;
118
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
119
+ while (1) switch (_context4.prev = _context4.next) {
120
+ case 0:
121
+ path = option.path, number = option.number, span = option.span, objectData = option.objectData;
122
+ curvePath = this._getCurvePath(path);
123
+ _context4.next = 4;
124
+ return this.registerStrategy(objectData.type);
125
+ case 4:
126
+ strategy = _context4.sent;
127
+ _context4.next = 7;
128
+ return strategy.create(_objectSpread(_objectSpread({}, objectData), {}, {
129
+ visible: false
130
+ }));
131
+ case 7:
132
+ entity = _context4.sent;
133
+ mesh = new BatchManage({
134
+ path: curvePath,
135
+ number: number,
136
+ span: span,
137
+ entity: entity
138
+ });
139
+ mesh.userData.option = option;
140
+ return _context4.abrupt("return", mesh);
141
+ case 11:
142
+ case "end":
143
+ return _context4.stop();
144
+ }
145
+ }, _callee4, this);
146
+ }));
147
+ function _createMesh(_x5) {
148
+ return _createMesh2.apply(this, arguments);
149
+ }
150
+ return _createMesh;
151
+ }()
152
+ }, {
153
+ key: "_getCurvePath",
154
+ value: function _getCurvePath(path) {
155
+ var points = path.points;
156
+ var linePosition = points.map(function (v) {
157
+ return new Vector3().fromArray(v.position);
158
+ });
159
+ var curvePath = new CurvePath();
160
+ for (var i = 0; i < linePosition.length - 1; i++) curvePath.add(new LineCurve3(linePosition[i], linePosition[i + 1]));
161
+ return curvePath;
162
+ }
163
+ }]);
164
+ return Batch;
165
+ }(BaseEntity);
166
+ export default Batch;
167
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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","obj","key","_toPropertyKey","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_toPrimitive","String","toPrimitive","Number","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","CurvePath","LineCurve3","Vector3","use","Batch","BatchManage","_","BaseEntity","entityStrategy","_BaseEntity","_super","_registerStrategy","_callee","entityType","strategyMap","strategyClass","_callee$","_context","concat","registerStrategy","_x","_create","_callee2","json","mesh","_use$useScene","scene","_callee2$","_context2","_createMesh","userData","option","useScene","add","_x2","_update","_callee3","mergedOption","_callee3$","_context3","mergeWith","customizer","parent","removeFromParent","update","_x3","_x4","_createMesh2","_callee4","path","number","span","objectData","curvePath","strategy","entity","_callee4$","_context4","_getCurvePath","visible","_x5","points","linePosition","map","fromArray","position"],"sources":["../../../../src/module/entity/batch/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { CurvePath, LineCurve3, Vector3, use } from '@anov/3d-core'\nimport { Batch as BatchManage } from '@anov/3d-ability'\nimport _ from 'lodash'\nimport BaseEntity from '../baseEntity'\nimport { entityStrategy } from '../strategy'\n\nclass Batch extends BaseEntity {\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 create(json): Promise<Object3D> {\n const mesh = await this._createMesh(json)\n mesh.userData.option = json\n const { scene } = use.useScene()\n scene.add(mesh)\n return mesh\n }\n\n async update(json, mesh: Object3D): Promise<Object3D> {\n const option = mesh.userData.option || {}\n const mergedOption = _.mergeWith({}, option, json, this.customizer)\n mesh.parent && mesh.removeFromParent()\n return this.create(mergedOption)\n }\n\n private async _createMesh(option) {\n const { path, number, span, objectData } = option\n const curvePath = this._getCurvePath(path)\n\n const strategy = await this.registerStrategy(objectData.type)\n const entity = await strategy.create({ ...objectData, visible: false })\n\n const mesh = new BatchManage({ path: curvePath, number, span, entity })\n mesh.userData.option = option\n return mesh\n }\n\n private _getCurvePath(path) {\n const { points } = path\n const linePosition = points.map(v => new Vector3().fromArray(v.position))\n const curvePath = new CurvePath() as CurvePath<Vector3>\n for (let i = 0; i < linePosition.length - 1; i++)\n curvePath.add(new LineCurve3(linePosition[i], linePosition[i + 1]))\n\n return curvePath\n }\n}\n\nexport default Batch\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["ListNode","_createClass","value","key","_classCallCheck","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","has","add","Error","concat","newNode","set","_delete","delete","clear"],"sources":["../../../src/module/entity/hybridList.ts"],"sourcesContent":["class ListNode<T> {\n value: T\n key: string | number\n next: ListNode<T> | null\n prev: ListNode<T> | null\n\n constructor(value: T, key: string | number) {\n this.value = value\n this.key = key\n this.next = null\n this.prev = null\n }\n}\n\nclass HybridList<T> {\n private map: Map<string | number, ListNode<T>>\n private head: ListNode<T> | null\n private tail: ListNode<T> | null\n\n constructor() {\n this.map = new Map<string | number, ListNode<T>>()\n this.head = null\n this.tail = null\n }\n\n get(key: string | number): T | null {\n const node = this.map.get(key)\n return node ? node.value : null\n }\n\n update(key: string | number, value: T): void {\n const node = this.map.get(key)\n if (node)\n node.value = value\n }\n\n has(key: string | number) {\n return this.map.has(key)\n }\n\n add(key: string | number, value: T): void {\n if (this.map.has(key))\n throw new Error(`${key} already exists`)\n\n const newNode = new ListNode(value, key)\n this.map.set(key, newNode)\n\n if (this.tail) {\n this.tail.next = newNode\n newNode.prev = this.tail\n this.tail = newNode\n }\n else {\n this.head = this.tail = newNode\n }\n }\n\n delete(key: string | number): void {\n const node = this.map.get(key)\n\n if (!node)\n return\n\n if (node.prev)\n node.prev.next = node.next\n else\n this.head = node.next\n\n if (node.next)\n node.next.prev = node.prev\n else\n this.tail = node.prev\n\n this.map.delete(key)\n }\n\n clear() {\n this.map.clear()\n }\n}\n\nexport default HybridList\n"],"mappings":"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"}
1
+ {"version":3,"names":["ListNode","_createClass","value","key","_classCallCheck","_defineProperty","next","prev","HybridList","map","Map","head","tail","get","node","update","has","add","Error","concat","newNode","set","_delete","delete","clear"],"sources":["../../../src/module/entity/hybridList.ts"],"sourcesContent":["class ListNode<T> {\n value: T\n key: string | number\n next: ListNode<T> | null\n prev: ListNode<T> | null\n\n constructor(value: T, key: string | number) {\n this.value = value\n this.key = key\n this.next = null\n this.prev = null\n }\n}\n\nclass HybridList<T> {\n public map: Map<string | number, ListNode<T>>\n private head: ListNode<T> | null\n private tail: ListNode<T> | null\n\n constructor() {\n this.map = new Map<string | number, ListNode<T>>()\n this.head = null\n this.tail = null\n }\n\n get(key: string | number): T | null {\n const node = this.map.get(key)\n return node ? node.value : null\n }\n\n update(key: string | number, value: T): void {\n const node = this.map.get(key)\n if (node)\n node.value = value\n }\n\n has(key: string | number) {\n return this.map.has(key)\n }\n\n add(key: string | number, value: T): void {\n if (this.map.has(key))\n throw new Error(`${key} already exists`)\n\n const newNode = new ListNode(value, key)\n this.map.set(key, newNode)\n\n if (this.tail) {\n this.tail.next = newNode\n newNode.prev = this.tail\n this.tail = newNode\n }\n else {\n this.head = this.tail = newNode\n }\n }\n\n delete(key: string | number): void {\n const node = this.map.get(key)\n\n if (!node)\n return\n\n if (node.prev)\n node.prev.next = node.next\n else\n this.head = node.next\n\n if (node.next)\n node.next.prev = node.prev\n else\n this.tail = node.prev\n\n this.map.delete(key)\n }\n\n clear() {\n this.map.clear()\n }\n}\n\nexport default HybridList\n"],"mappings":"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"}
@@ -11,8 +11,10 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
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
13
  import { Group, use } from '@anov/3d-core';
14
+ import { createHighSelectedTool } from '@anov/3d-ability';
14
15
  import { MessageType, sendToMessage } from "../../utils/messageFn";
15
16
  import { EMessageStatus } from "../../messageStatus";
17
+ import { entityEvents } from "../eventBus/entityEvents";
16
18
  import HybridList from "./hybridList";
17
19
  import { entityStrategy, eventPenetrateType } from "./strategy";
18
20
  import createDisposeFn from "./dispose";
@@ -23,6 +25,8 @@ var Entity = /*#__PURE__*/function () {
23
25
  _classCallCheck(this, Entity);
24
26
  _defineProperty(this, "app", void 0);
25
27
  _defineProperty(this, "catchStrategy", new Map());
28
+ _defineProperty(this, "select", void 0);
29
+ this.select = createHighSelectedTool();
26
30
  this.app = app;
27
31
  }
28
32
 
@@ -66,7 +70,8 @@ var Entity = /*#__PURE__*/function () {
66
70
  key: "singleCreate",
67
71
  value: function () {
68
72
  var _singleCreate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(id, strategy, option, group, layerId) {
69
- var entityInfoArray, targetEntityInfo, entity;
73
+ var _this = this;
74
+ var entityInfoArray, targetEntityInfo, _option$interactable, interactable, _option$interactiveEf, interactiveEffect, entity;
70
75
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
71
76
  while (1) switch (_context2.prev = _context2.next) {
72
77
  case 0:
@@ -75,22 +80,32 @@ var Entity = /*#__PURE__*/function () {
75
80
  case 2:
76
81
  entityInfoArray = _context2.sent;
77
82
  targetEntityInfo = entityInfoArray[0];
83
+ _option$interactable = option.interactable, interactable = _option$interactable === void 0 ? false : _option$interactable, _option$interactiveEf = option.interactiveEffect, interactiveEffect = _option$interactiveEf === void 0 ? true : _option$interactiveEf;
78
84
  if (!(targetEntityInfo.status === 'rejected')) {
79
- _context2.next = 6;
85
+ _context2.next = 7;
80
86
  break;
81
87
  }
82
88
  throw new Error(targetEntityInfo.reason);
83
- case 6:
89
+ case 7:
84
90
  entity = targetEntityInfo.value;
85
91
  entity.tag = 'entity'; // used for event penetration identification
86
92
  entity.entityId = id;
87
93
  entity.userData.entityParams = {
88
94
  id: id,
89
95
  type: option.type,
90
- layerId: layerId
96
+ layerId: layerId,
97
+ interactable: interactable
91
98
  };
92
99
  hybridList.add(id, entity);
93
100
  group === null || group === void 0 || group.add(entity);
101
+ if (interactiveEffect) {
102
+ entity.addEventListener('mouseover', function () {
103
+ _this.select([entity]);
104
+ });
105
+ entity.addEventListener('mouseout', function () {
106
+ _this.select([]);
107
+ });
108
+ }
94
109
  return _context2.abrupt("return", _objectSpread(_objectSpread({}, option), {}, {
95
110
  id: id,
96
111
  position: entity.position.toArray(),
@@ -98,7 +113,7 @@ var Entity = /*#__PURE__*/function () {
98
113
  scale: entity.scale.toArray(),
99
114
  visible: entity.visible
100
115
  }));
101
- case 13:
116
+ case 15:
102
117
  case "end":
103
118
  return _context2.stop();
104
119
  }
@@ -112,12 +127,14 @@ var Entity = /*#__PURE__*/function () {
112
127
  }, {
113
128
  key: "multiCreate",
114
129
  value: function multiCreate(id, strategy, json) {
115
- var _this = this;
130
+ var _this2 = this;
116
131
  var itemType = json.itemType,
117
132
  _json$items = json.items,
118
133
  items = _json$items === void 0 ? [] : _json$items,
119
134
  _json$legends = json.legends,
120
- legends = _json$legends === void 0 ? [] : _json$legends;
135
+ legends = _json$legends === void 0 ? [] : _json$legends,
136
+ _json$interactable = json.interactable,
137
+ interactable = _json$interactable === void 0 ? false : _json$interactable;
121
138
  var group = new Group();
122
139
 
123
140
  // TODO 优化,定制化非实体逻辑
@@ -135,7 +152,7 @@ var Entity = /*#__PURE__*/function () {
135
152
  }
136
153
  currentData.type = itemType;
137
154
  _context3.next = 5;
138
- return _this.singleCreate(item.id, strategy, currentData, group, id);
155
+ return _this2.singleCreate(item.id, strategy, currentData, group, id);
139
156
  case 5:
140
157
  case "end":
141
158
  return _context3.stop();
@@ -149,7 +166,8 @@ var Entity = /*#__PURE__*/function () {
149
166
  group.userData.entityParams = {
150
167
  id: id,
151
168
  type: 'layer',
152
- itemType: itemType
169
+ itemType: itemType,
170
+ interactable: interactable
153
171
  };
154
172
  hybridList.add(id, group);
155
173
  use.useScene().scene.add(group);
@@ -171,23 +189,23 @@ var Entity = /*#__PURE__*/function () {
171
189
  key: "create",
172
190
  value: (function () {
173
191
  var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(json) {
174
- var _this2 = this;
175
- var id, type, itemType, asyncTask;
192
+ var _this3 = this;
193
+ var id, type, itemType, _json$interactable2, interactable, asyncTask;
176
194
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
177
195
  while (1) switch (_context5.prev = _context5.next) {
178
196
  case 0:
179
- id = json.id, type = json.type, itemType = json.itemType;
197
+ id = json.id, type = json.type, itemType = json.itemType, _json$interactable2 = json.interactable, interactable = _json$interactable2 === void 0 ? false : _json$interactable2;
180
198
  asyncTask = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
181
199
  var strategy, res;
182
200
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
183
201
  while (1) switch (_context4.prev = _context4.next) {
184
202
  case 0:
185
203
  _context4.next = 2;
186
- return _this2.registerStrategy(itemType || type);
204
+ return _this3.registerStrategy(itemType || type);
187
205
  case 2:
188
206
  strategy = _context4.sent;
189
- if (itemType && type === 'layer') res = _this2.multiCreate(id, strategy, json);else res = _this2.singleCreate(id, strategy, json);
190
- return _context4.abrupt("return", _this2.handleResult(id, res));
207
+ if (itemType && type === 'layer') res = _this3.multiCreate(id, strategy, json);else res = _this3.singleCreate(id, strategy, json);
208
+ return _context4.abrupt("return", _this3.handleResult(id, res, interactable));
191
209
  case 5:
192
210
  case "end":
193
211
  return _context4.stop();
@@ -262,7 +280,7 @@ var Entity = /*#__PURE__*/function () {
262
280
  }, {
263
281
  key: "multiUpdate",
264
282
  value: function multiUpdate(id, strategy, option) {
265
- var _this3 = this;
283
+ var _this4 = this;
266
284
  var group = hybridList.get(id);
267
285
  var items = option.items,
268
286
  legends = option.legends,
@@ -282,14 +300,14 @@ var Entity = /*#__PURE__*/function () {
282
300
  break;
283
301
  }
284
302
  _context7.next = 5;
285
- return _this3.singleUpdate(item.id, strategy, currentItem, group);
303
+ return _this4.singleUpdate(item.id, strategy, currentItem, group);
286
304
  case 5:
287
305
  _context7.next = 10;
288
306
  break;
289
307
  case 7:
290
308
  currentItem.type = itemType;
291
309
  _context7.next = 10;
292
- return _this3.singleCreate(item.id, strategy, currentItem, group);
310
+ return _this4.singleCreate(item.id, strategy, currentItem, group);
293
311
  case 10:
294
312
  case "end":
295
313
  return _context7.stop();
@@ -318,12 +336,12 @@ var Entity = /*#__PURE__*/function () {
318
336
  key: "update",
319
337
  value: (function () {
320
338
  var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(json) {
321
- var _this4 = this;
322
- var id;
339
+ var _this5 = this;
340
+ var id, _json$interactable3, interactable;
323
341
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
324
342
  while (1) switch (_context9.prev = _context9.next) {
325
343
  case 0:
326
- id = json.id;
344
+ id = json.id, _json$interactable3 = json.interactable, interactable = _json$interactable3 === void 0 ? false : _json$interactable3;
327
345
  Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
328
346
  var target, _target$userData$enti2, type, itemType, strategy, res;
329
347
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
@@ -332,13 +350,13 @@ var Entity = /*#__PURE__*/function () {
332
350
  target = hybridList.get(id);
333
351
  _target$userData$enti2 = target.userData.entityParams, type = _target$userData$enti2.type, itemType = _target$userData$enti2.itemType;
334
352
  _context8.next = 4;
335
- return _this4.registerStrategy(itemType || type);
353
+ return _this5.registerStrategy(itemType || type);
336
354
  case 4:
337
355
  strategy = _context8.sent;
338
- if (itemType && type === 'layer') res = Promise.all(_this4.multiUpdate(id, strategy, _objectSpread({
356
+ if (itemType && type === 'layer') res = Promise.all(_this5.multiUpdate(id, strategy, _objectSpread({
339
357
  itemType: itemType
340
- }, json)));else res = _this4.singleUpdate(id, strategy, json);
341
- _this4.handleResult(id, res);
358
+ }, json)));else res = _this5.singleUpdate(id, strategy, json);
359
+ _this5.handleResult(id, res, interactable);
342
360
  case 7:
343
361
  case "end":
344
362
  return _context8.stop();
@@ -361,12 +379,12 @@ var Entity = /*#__PURE__*/function () {
361
379
  key: "execute",
362
380
  value: function () {
363
381
  var _execute = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(json) {
364
- var _this5 = this;
365
- var id, method, args;
382
+ var _this6 = this;
383
+ var id, method, args, _json$interactable4, interactable;
366
384
  return _regeneratorRuntime().wrap(function _callee11$(_context11) {
367
385
  while (1) switch (_context11.prev = _context11.next) {
368
386
  case 0:
369
- id = json.id, method = json.method, args = json.args;
387
+ id = json.id, method = json.method, args = json.args, _json$interactable4 = json.interactable, interactable = _json$interactable4 === void 0 ? false : _json$interactable4;
370
388
  if (id && method) {
371
389
  Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
372
390
  var target, type, strategy, entityInfoArray, targetEntityInfo, entity;
@@ -376,7 +394,7 @@ var Entity = /*#__PURE__*/function () {
376
394
  target = hybridList.get(id);
377
395
  type = target.userData.entityParams.type;
378
396
  _context10.next = 4;
379
- return _this5.registerStrategy(type);
397
+ return _this6.registerStrategy(type);
380
398
  case 4:
381
399
  strategy = _context10.sent;
382
400
  _context10.next = 7;
@@ -392,13 +410,13 @@ var Entity = /*#__PURE__*/function () {
392
410
  case 11:
393
411
  entity = targetEntityInfo.value;
394
412
  hybridList.update(id, entity);
395
- _this5.handleResult(id, _objectSpread(_objectSpread({}, json), {}, {
413
+ _this6.handleResult(id, _objectSpread(_objectSpread({}, json), {}, {
396
414
  id: id,
397
415
  position: entity.position.toArray(),
398
416
  rotation: entity.rotation.toArray(),
399
417
  scale: entity.scale.toArray(),
400
418
  visible: entity.visible
401
- }));
419
+ }), interactable);
402
420
  case 14:
403
421
  case "end":
404
422
  return _context10.stop();
@@ -426,7 +444,8 @@ var Entity = /*#__PURE__*/function () {
426
444
  }, {
427
445
  key: "handleResult",
428
446
  value: (function () {
429
- var _handleResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(id, res) {
447
+ var _handleResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(id, res, interactable) {
448
+ var _this7 = this;
430
449
  return _regeneratorRuntime().wrap(function _callee12$(_context12) {
431
450
  while (1) switch (_context12.prev = _context12.next) {
432
451
  case 0:
@@ -450,6 +469,15 @@ var Entity = /*#__PURE__*/function () {
450
469
  id: id,
451
470
  success: false
452
471
  });
472
+ }).finally(function () {
473
+ _this7.app.eventBus.eventMap.forEach(function (_, key) {
474
+ if (entityEvents.includes(key) && interactable) {
475
+ _this7.registerEvents({
476
+ eventName: key,
477
+ entityId: id
478
+ });
479
+ }
480
+ });
453
481
  }));
454
482
  case 1:
455
483
  case "end":
@@ -457,7 +485,7 @@ var Entity = /*#__PURE__*/function () {
457
485
  }
458
486
  }, _callee12);
459
487
  }));
460
- function handleResult(_x16, _x17) {
488
+ function handleResult(_x16, _x17, _x18) {
461
489
  return _handleResult.apply(this, arguments);
462
490
  }
463
491
  return handleResult;
@@ -545,6 +573,10 @@ var Entity = /*#__PURE__*/function () {
545
573
  var realEventName = eventName.slice(2).toLowerCase();
546
574
  var target = hybridList.get(id);
547
575
  if (!target) throw new Error("entity ".concat(id, " is not exist"));
576
+ this.unregisterEvents({
577
+ eventName: realEventName,
578
+ entityId: id
579
+ });
548
580
 
549
581
  // @ts-ignore
550
582
  if (eventPenetrateType.includes(target.entityType)) {