@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
|
@@ -1,10 +1,10 @@
|
|
|
1
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
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 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); } }
|
|
4
|
-
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); }); }; }
|
|
5
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; }
|
|
6
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; }
|
|
7
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
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
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
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; }
|
|
@@ -50,12 +50,13 @@ var ModelManage = /*#__PURE__*/function () {
|
|
|
50
50
|
}, {
|
|
51
51
|
key: "applyMaterialOverride",
|
|
52
52
|
value: function applyMaterialOverride(option, target) {
|
|
53
|
-
var
|
|
54
|
-
if (
|
|
53
|
+
var materials = option.materials;
|
|
54
|
+
if (materials) {
|
|
55
55
|
try {
|
|
56
|
-
materialManage.changeByObject(target,
|
|
57
|
-
target: option.id
|
|
58
|
-
|
|
56
|
+
materialManage.changeByObject(target, {
|
|
57
|
+
target: option.id,
|
|
58
|
+
materials: materials
|
|
59
|
+
});
|
|
59
60
|
} catch (e) {
|
|
60
61
|
console.error(e);
|
|
61
62
|
}
|
|
@@ -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","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_toPrimitive","String","toPrimitive","Number","Euler","MathUtils","Vector3","use","createDisposeFn","MaterialManage","LoadStrategy","defaultOption","visible","position","rotation","scale","collision","materialManage","ModelManage","setOption","option","url","copy","fromArray","degToRad","userData","applyMaterialOverride","override","materials","changeByObject","id","console","_create","_callee","json","events","modelType","loadAPi","model","object3d","_callee$","_context","split","scene","useScene","add","_x","_update","_callee2","entityDispose","_callee2$","_context2","removeFromParent","dispose","update","_x2","_x3"],"sources":["../../../../src/module/entity/model/index.ts"],"sourcesContent":["import type { Group } from '@anov/3d-core'\nimport { Euler, MathUtils, Vector3, use } from '@anov/3d-core'\nimport type { EMaterialType } from '@anov/3d-ability'\nimport createDisposeFn from '../dispose'\nimport MaterialManage from '../../material'\nimport { LoadStrategy } from './load'\n\ntype ModelOption = {\n url: string\n id: string\n\n} & PartialModelOption\n\ntype MaterialOption = Partial<{\n meshIndex: number\n primitiveIndex: number\n materialId: EMaterialType\n properties: {\n color: string\n uvScale: number\n }\n}>\n\ntype PartialModelOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n collision: boolean\n override: {\n materials: Array<MaterialOption>\n }\n}>\n\nconst defaultOption: PartialModelOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n collision: true,\n}\n\nconst materialManage = new MaterialManage(null)\n\nclass ModelManage {\n private setOption(option: ModelOption, target: Group) {\n const { name, visible, position, rotation, collision, url } = option\n\n target.name = name\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(option.scale))\n target.userData.collision = collision\n target.userData.url = url\n\n // 材质处理\n this.applyMaterialOverride(option, target)\n }\n\n private applyMaterialOverride(option: ModelOption, target: Group) {\n const { override } = option\n if (override?.materials) {\n try {\n materialManage.changeByObject(target, { target: option.id, ...override })\n }\n catch (e) {\n console.error(e)\n }\n }\n }\n\n async create(json) {\n const { url, id, events } = json\n const modelType = url.split('.').pop()\n const loadAPi = await LoadStrategy[modelType]()\n const model = await loadAPi(url, id, events)\n const object3d = modelType === 'fbx' ? model : model.scene\n\n this.setOption({\n ...defaultOption,\n ...json,\n }, object3d,\n )\n\n // object3d.traverse((child) => {\n // if (child.material)\n // child.material.metalness = 0\n // })\n\n use.useScene().scene.add(object3d)\n\n return object3d\n }\n\n async update(target: Group, option: ModelOption) {\n const { url } = option\n\n if (target.userData.url !== url) {\n target.removeFromParent()\n\n // todo: 抽离\n const entityDispose = createDisposeFn()\n entityDispose.call(target)\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n return this.create(option)\n }\n\n else {\n this.setOption(option, target)\n return target\n }\n }\n}\n\nexport default ModelManage\n"],"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","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","Euler","MathUtils","Vector3","use","createDisposeFn","MaterialManage","LoadStrategy","defaultOption","visible","position","rotation","scale","collision","materialManage","ModelManage","setOption","option","url","copy","fromArray","degToRad","userData","applyMaterialOverride","materials","changeByObject","id","console","_create","_callee","json","events","modelType","loadAPi","model","object3d","_callee$","_context","split","scene","useScene","add","_x","_update","_callee2","entityDispose","_callee2$","_context2","removeFromParent","dispose","update","_x2","_x3"],"sources":["../../../../src/module/entity/model/index.ts"],"sourcesContent":["import type { Group } from '@anov/3d-core'\nimport { Euler, MathUtils, Vector3, use } from '@anov/3d-core'\nimport type { EMaterialType } from '@anov/3d-ability'\nimport createDisposeFn from '../dispose'\nimport MaterialManage from '../../material'\nimport { LoadStrategy } from './load'\n\ntype ModelOption = {\n url: string\n id: string\n\n} & PartialModelOption\n\ntype MaterialOption = Partial<{\n meshIndex: number\n primitiveIndex: number\n materialId: EMaterialType\n properties: {\n color: string\n uvScale: number\n }\n}>\n\ntype PartialModelOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n collision: boolean\n materials: Array<MaterialOption>\n\n}>\n\nconst defaultOption: PartialModelOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n collision: true,\n}\n\nconst materialManage = new MaterialManage(null)\n\nclass ModelManage {\n private setOption(option: ModelOption, target: Group) {\n const { name, visible, position, rotation, collision, url } = option\n\n target.name = name\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(option.scale))\n target.userData.collision = collision\n target.userData.url = url\n\n // 材质处理\n this.applyMaterialOverride(option, target)\n }\n\n private applyMaterialOverride(option: ModelOption, target: Group) {\n const { materials } = option\n\n if (materials) {\n try {\n materialManage.changeByObject(target, { target: option.id, materials })\n }\n catch (e) {\n console.error(e)\n }\n }\n }\n\n async create(json) {\n const { url, id, events } = json\n const modelType = url.split('.').pop()\n const loadAPi = await LoadStrategy[modelType]()\n const model = await loadAPi(url, id, events)\n const object3d = modelType === 'fbx' ? model : model.scene\n\n this.setOption({\n ...defaultOption,\n ...json,\n }, object3d,\n )\n\n // object3d.traverse((child) => {\n // if (child.material)\n // child.material.metalness = 0\n // })\n\n use.useScene().scene.add(object3d)\n\n return object3d\n }\n\n async update(target: Group, option: ModelOption) {\n const { url } = option\n\n if (target.userData.url !== url) {\n target.removeFromParent()\n\n // todo: 抽离\n const entityDispose = createDisposeFn()\n entityDispose.call(target)\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n return this.create(option)\n }\n\n else {\n this.setOption(option, target)\n return target\n }\n }\n}\n\nexport default ModelManage\n"],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
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; }
|
|
2
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; }
|
|
3
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 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); } }
|
|
6
|
+
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); }); }; }
|
|
4
7
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
8
|
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); } }
|
|
6
9
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
@@ -8,7 +11,9 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
8
11
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
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); }
|
|
10
13
|
import { SurfaceMaterial } from '@anov/3d-ability';
|
|
14
|
+
import { Color, RepeatWrapping, utils } from '@anov/3d-core';
|
|
11
15
|
import { hybridList } from "../entity";
|
|
16
|
+
var emitter = utils.emitter;
|
|
12
17
|
var MaterialManager = /*#__PURE__*/function () {
|
|
13
18
|
// 记录初始材质信息
|
|
14
19
|
|
|
@@ -86,39 +91,93 @@ var MaterialManager = /*#__PURE__*/function () {
|
|
|
86
91
|
value: function applyMaterials(target, materials, rootProperties, materialMap) {
|
|
87
92
|
var _this3 = this;
|
|
88
93
|
var material;
|
|
89
|
-
materials.forEach(function (
|
|
90
|
-
var
|
|
91
|
-
primitiveIndex
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
materials.forEach( /*#__PURE__*/function () {
|
|
95
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
96
|
+
var meshIndex, primitiveIndex, materialId, _ref$properties, properties;
|
|
97
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
98
|
+
while (1) switch (_context.prev = _context.next) {
|
|
99
|
+
case 0:
|
|
100
|
+
meshIndex = _ref.meshIndex, primitiveIndex = _ref.primitiveIndex, materialId = _ref.materialId, _ref$properties = _ref.properties, properties = _ref$properties === void 0 ? {} : _ref$properties;
|
|
101
|
+
_context.next = 3;
|
|
102
|
+
return SurfaceMaterial.getMaterial(materialId);
|
|
103
|
+
case 3:
|
|
104
|
+
material = _context.sent;
|
|
105
|
+
_this3.applyMaterialOptions(material, _objectSpread(_objectSpread({}, rootProperties), properties));
|
|
106
|
+
_this3.traverseMeshes(target, meshIndex, primitiveIndex, function (mesh) {
|
|
107
|
+
if (!materialMap.has(mesh.uuid)) materialMap.set(mesh.uuid, mesh.material);
|
|
108
|
+
mesh.material = material;
|
|
109
|
+
});
|
|
110
|
+
case 6:
|
|
111
|
+
case "end":
|
|
112
|
+
return _context.stop();
|
|
113
|
+
}
|
|
114
|
+
}, _callee);
|
|
115
|
+
}));
|
|
116
|
+
return function (_x) {
|
|
117
|
+
return _ref2.apply(this, arguments);
|
|
118
|
+
};
|
|
119
|
+
}());
|
|
120
|
+
emitter.emit('onMaterialChanged', {
|
|
121
|
+
target: target
|
|
102
122
|
});
|
|
103
123
|
}
|
|
104
124
|
}, {
|
|
105
125
|
key: "applySingleMaterial",
|
|
106
|
-
value: function
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
126
|
+
value: function () {
|
|
127
|
+
var _applySingleMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(target, materialId) {
|
|
128
|
+
var properties,
|
|
129
|
+
materialMap,
|
|
130
|
+
material,
|
|
131
|
+
_args2 = arguments;
|
|
132
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
133
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
134
|
+
case 0:
|
|
135
|
+
properties = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};
|
|
136
|
+
materialMap = _args2.length > 3 ? _args2[3] : undefined;
|
|
137
|
+
_context2.next = 4;
|
|
138
|
+
return SurfaceMaterial.getMaterial(materialId);
|
|
139
|
+
case 4:
|
|
140
|
+
material = _context2.sent;
|
|
141
|
+
this.applyMaterialOptions(material, properties);
|
|
142
|
+
this.traverseMeshes(target, undefined, undefined, function (mesh) {
|
|
143
|
+
if (!materialMap.has(mesh.uuid)) materialMap.set(mesh.uuid, mesh.material);
|
|
144
|
+
mesh.material = material;
|
|
145
|
+
});
|
|
146
|
+
emitter.emit('onMaterialChanged', {
|
|
147
|
+
target: target
|
|
148
|
+
});
|
|
149
|
+
case 8:
|
|
150
|
+
case "end":
|
|
151
|
+
return _context2.stop();
|
|
152
|
+
}
|
|
153
|
+
}, _callee2, this);
|
|
154
|
+
}));
|
|
155
|
+
function applySingleMaterial(_x2, _x3) {
|
|
156
|
+
return _applySingleMaterial.apply(this, arguments);
|
|
157
|
+
}
|
|
158
|
+
return applySingleMaterial;
|
|
159
|
+
}()
|
|
160
|
+
}, {
|
|
161
|
+
key: "applyMaterialOptions",
|
|
162
|
+
value: function applyMaterialOptions(material, option) {
|
|
163
|
+
var color = option.color,
|
|
164
|
+
uvScale = option.uvScale;
|
|
165
|
+
if (material.map) {
|
|
166
|
+
if (uvScale) {
|
|
167
|
+
material.map.wrapS = material.map.wrapT = RepeatWrapping;
|
|
168
|
+
material.map.repeat.set(uvScale, uvScale);
|
|
169
|
+
}
|
|
170
|
+
if (color) material.color = new Color(color);
|
|
171
|
+
material.map.needsUpdate = true;
|
|
172
|
+
}
|
|
114
173
|
}
|
|
115
174
|
}, {
|
|
116
175
|
key: "restoreMaterials",
|
|
117
176
|
value: function restoreMaterials(target, materials, materialMap) {
|
|
118
177
|
var _this4 = this;
|
|
119
|
-
materials.forEach(function (
|
|
120
|
-
var meshIndex =
|
|
121
|
-
primitiveIndex =
|
|
178
|
+
materials.forEach(function (_ref3) {
|
|
179
|
+
var meshIndex = _ref3.meshIndex,
|
|
180
|
+
primitiveIndex = _ref3.primitiveIndex;
|
|
122
181
|
_this4.traverseMeshes(target, meshIndex, primitiveIndex, function (mesh) {
|
|
123
182
|
if (materialMap.has(mesh.uuid)) mesh.material = materialMap.get(mesh.uuid);
|
|
124
183
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SurfaceMaterial","hybridList","MaterialManager","app","_classCallCheck","_defineProperty","Map","_createClass","key","value","change","json","_this","processChange","data","id","target","object","get","console","error","concat","changeByObject","Array","isArray","batch","forEach","materials","_json$properties","properties","materialMap","originalMaterial","set","applyMaterials","applySingleMaterial","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","rootProperties","_this3","material","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","_objectSpread","traverseMeshes","mesh","has","uuid","undefined","_this4","_ref2","callback","traverse","type","_object$userData","userData","currentMeshIndex","currentPrimitiveIndex"],"sources":["../../../src/module/material/index.ts"],"sourcesContent":["import { SurfaceMaterial } from '@anov/3d-ability'\nimport type { Mesh } from '@anov/3d-core'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\nimport { hybridList } from '../entity'\n\nclass MaterialManager implements BaseModule {\n app: Anov3D\n originalMaterial = new Map() // 记录初始材质信息\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n /**\n * Change material for target objects\n * @param json Material change configuration\n */\n change(json: any) {\n const processChange = (data: any) => {\n const { target: id } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n this.changeByObject(object, data)\n }\n\n if (Array.isArray(json.batch)) // 支持多对象批量替换\n json.batch.forEach(processChange)\n else\n processChange(json)\n }\n\n changeByObject(object: THREE.Object3D, json: any) {\n const { target: id, materials, properties = {} } = json\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n let materialMap = this.originalMaterial.get(id)\n if (!materialMap) {\n materialMap = new Map()\n this.originalMaterial.set(id, materialMap)\n }\n\n if (Array.isArray(materials))\n this.applyMaterials(object, materials, properties, materialMap)\n else\n this.applySingleMaterial(object, materials, properties, materialMap)\n }\n\n /**\n * Restore material for target objects\n * @param json Material restoration configuration\n */\n restore(json: any) {\n const processRestore = (data: any) => {\n const { target: id, materials } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n const materialMap = this.originalMaterial.get(id)\n if (!materialMap)\n return\n\n if (materials)\n this.restoreMaterials(object, materials, materialMap)\n else\n this.restoreAllMaterials(object, materialMap)\n }\n\n if (Array.isArray(json.batch))\n json.batch.forEach(processRestore)\n else\n processRestore(json)\n }\n\n private applyMaterials(\n target: THREE.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n let material\n materials.forEach(({ meshIndex, primitiveIndex, materialId, properties = {} }) => {\n material = new SurfaceMaterial({ materialId, ...rootProperties, ...properties })\n\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, mesh.material)\n\n mesh.material = material\n })\n })\n }\n\n private applySingleMaterial(\n target: THREE.Object3D,\n materialId,\n properties: Record<string, any>,\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n const material = new SurfaceMaterial({ materialId, ...properties })\n\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, mesh.material)\n\n mesh.material = material\n })\n }\n\n private restoreMaterials(\n target: THREE.Object3D,\n materials: any[],\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n materials.forEach(({ meshIndex, primitiveIndex }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as THREE.Material\n })\n })\n }\n\n private restoreAllMaterials(\n target: THREE.Object3D,\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as THREE.Material\n })\n }\n\n private traverseMeshes(\n target: THREE.Object3D,\n meshIndex?: number,\n primitiveIndex?: number,\n callback?: (mesh: Mesh) => void,\n ) {\n target.traverse((object) => {\n if (object.type === 'Mesh') {\n const { meshIndex: currentMeshIndex, primitiveIndex: currentPrimitiveIndex } = object.userData\n if (\n (meshIndex === undefined || meshIndex === currentMeshIndex)\n && (primitiveIndex === undefined || primitiveIndex === currentPrimitiveIndex)\n )\n callback?.(object as Mesh)\n }\n })\n }\n}\n\nexport default MaterialManager\n"],"mappings":";;;;;;;;;AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAIlD,SAASC,UAAU;AAAmB,IAEhCC,eAAe;EAEU;;EAE7B,SAAAA,gBAAYC,GAAW,EAAE;IAAAC,eAAA,OAAAF,eAAA;IAAAG,eAAA;IAAAA,eAAA,2BAFN,IAAIC,GAAG,CAAC,CAAC;IAG1B,IAAI,CAACH,GAAG,GAAGA,GAAG;EAChB;;EAEA;AACF;AACA;AACA;EAHEI,YAAA,CAAAL,eAAA;IAAAM,GAAA;IAAAC,KAAA,EAIA,SAAAC,OAAOC,IAAS,EAAE;MAAA,IAAAC,KAAA;MAChB,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAS,EAAK;QACnC,IAAgBC,EAAE,GAAKD,IAAI,CAAnBE,MAAM;QACd,IAAMC,MAAM,GAAGhB,UAAU,CAACiB,GAAG,CAACH,EAAE,CAAC;QAEjC,IAAI,CAACE,MAAM,EAAE;UACXE,OAAO,CAACC,KAAK,mBAAAC,MAAA,CAAmBN,EAAE,eAAY,CAAC;UAC/C;QACF;QACAH,KAAI,CAACU,cAAc,CAACL,MAAM,EAAEH,IAAI,CAAC;MACnC,CAAC;MAED,IAAIS,KAAK,CAACC,OAAO,CAACb,IAAI,CAACc,KAAK,CAAC;QAAE;QAC7Bd,IAAI,CAACc,KAAK,CAACC,OAAO,CAACb,aAAa,CAAC,MAEjCA,aAAa,CAACF,IAAI,CAAC;IACvB;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAa,eAAeL,MAAsB,EAAEN,IAAS,EAAE;MAChD,IAAgBI,EAAE,GAAiCJ,IAAI,CAA/CK,MAAM;QAAMW,SAAS,GAAsBhB,IAAI,CAAnCgB,SAAS;QAAAC,gBAAA,GAAsBjB,IAAI,CAAxBkB,UAAU;QAAVA,UAAU,GAAAD,gBAAA,cAAG,CAAC,CAAC,GAAAA,gBAAA;MAE9C,IAAI,CAACX,MAAM,EAAE;QACXE,OAAO,CAACC,KAAK,mBAAAC,MAAA,CAAmBN,EAAE,eAAY,CAAC;QAC/C;MACF;MAEA,IAAIe,WAAW,GAAG,IAAI,CAACC,gBAAgB,CAACb,GAAG,CAACH,EAAE,CAAC;MAC/C,IAAI,CAACe,WAAW,EAAE;QAChBA,WAAW,GAAG,IAAIxB,GAAG,CAAC,CAAC;QACvB,IAAI,CAACyB,gBAAgB,CAACC,GAAG,CAACjB,EAAE,EAAEe,WAAW,CAAC;MAC5C;MAEA,IAAIP,KAAK,CAACC,OAAO,CAACG,SAAS,CAAC,EAC1B,IAAI,CAACM,cAAc,CAAChB,MAAM,EAAEU,SAAS,EAAEE,UAAU,EAAEC,WAAW,CAAC,MAE/D,IAAI,CAACI,mBAAmB,CAACjB,MAAM,EAAEU,SAAS,EAAEE,UAAU,EAAEC,WAAW,CAAC;IACxE;;IAEA;AACF;AACA;AACA;EAHE;IAAAtB,GAAA;IAAAC,KAAA,EAIA,SAAA0B,QAAQxB,IAAS,EAAE;MAAA,IAAAyB,MAAA;MACjB,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIvB,IAAS,EAAK;QACpC,IAAgBC,EAAE,GAAgBD,IAAI,CAA9BE,MAAM;UAAMW,SAAS,GAAKb,IAAI,CAAlBa,SAAS;QAC7B,IAAMV,MAAM,GAAGhB,UAAU,CAACiB,GAAG,CAACH,EAAE,CAAC;QAEjC,IAAI,CAACE,MAAM,EAAE;UACXE,OAAO,CAACC,KAAK,mBAAAC,MAAA,CAAmBN,EAAE,eAAY,CAAC;UAC/C;QACF;QAEA,IAAMe,WAAW,GAAGM,MAAI,CAACL,gBAAgB,CAACb,GAAG,CAACH,EAAE,CAAC;QACjD,IAAI,CAACe,WAAW,EACd;QAEF,IAAIH,SAAS,EACXS,MAAI,CAACE,gBAAgB,CAACrB,MAAM,EAAEU,SAAS,EAAEG,WAAW,CAAC,MAErDM,MAAI,CAACG,mBAAmB,CAACtB,MAAM,EAAEa,WAAW,CAAC;MACjD,CAAC;MAED,IAAIP,KAAK,CAACC,OAAO,CAACb,IAAI,CAACc,KAAK,CAAC,EAC3Bd,IAAI,CAACc,KAAK,CAACC,OAAO,CAACW,cAAc,CAAC,MAElCA,cAAc,CAAC1B,IAAI,CAAC;IACxB;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAwB,eACEjB,MAAsB,EACtBW,SAAgB,EAChBa,cAAmC,EACnCV,WAA2D,EAC3D;MAAA,IAAAW,MAAA;MACA,IAAIC,QAAQ;MACZf,SAAS,CAACD,OAAO,CAAC,UAAAiB,IAAA,EAAgE;QAAA,IAA7DC,SAAS,GAAAD,IAAA,CAATC,SAAS;UAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;UAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU;UAAAC,eAAA,GAAAJ,IAAA,CAAEd,UAAU;UAAVA,UAAU,GAAAkB,eAAA,cAAG,CAAC,CAAC,GAAAA,eAAA;QACzEL,QAAQ,GAAG,IAAI1C,eAAe,CAAAgD,aAAA,CAAAA,aAAA;UAAGF,UAAU,EAAVA;QAAU,GAAKN,cAAc,GAAKX,UAAU,CAAE,CAAC;QAEhFY,MAAI,CAACQ,cAAc,CAACjC,MAAM,EAAE4B,SAAS,EAAEC,cAAc,EAAE,UAACK,IAAI,EAAK;UAC/D,IAAI,CAACpB,WAAW,CAACqB,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC7BtB,WAAW,CAACE,GAAG,CAACkB,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACR,QAAQ,CAAC;UAE3CQ,IAAI,CAACR,QAAQ,GAAGA,QAAQ;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EAED,SAAAyB,oBACElB,MAAsB,EACtB8B,UAAU,EACVjB,UAA+B,EAC/BC,WAA2D,EAC3D;MACA,IAAMY,QAAQ,GAAG,IAAI1C,eAAe,CAAAgD,aAAA;QAAGF,UAAU,EAAVA;MAAU,GAAKjB,UAAU,CAAE,CAAC;MAEnE,IAAI,CAACoB,cAAc,CAACjC,MAAM,EAAEqC,SAAS,EAAEA,SAAS,EAAE,UAACH,IAAI,EAAK;QAC1D,IAAI,CAACpB,WAAW,CAACqB,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC7BtB,WAAW,CAACE,GAAG,CAACkB,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACR,QAAQ,CAAC;QAE3CQ,IAAI,CAACR,QAAQ,GAAGA,QAAQ;MAC1B,CAAC,CAAC;IACJ;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EAED,SAAA6B,iBACEtB,MAAsB,EACtBW,SAAgB,EAChBG,WAA2D,EAC3D;MAAA,IAAAwB,MAAA;MACA3B,SAAS,CAACD,OAAO,CAAC,UAAA6B,KAAA,EAAmC;QAAA,IAAhCX,SAAS,GAAAW,KAAA,CAATX,SAAS;UAAEC,cAAc,GAAAU,KAAA,CAAdV,cAAc;QAC5CS,MAAI,CAACL,cAAc,CAACjC,MAAM,EAAE4B,SAAS,EAAEC,cAAc,EAAE,UAACK,IAAI,EAAK;UAC/D,IAAIpB,WAAW,CAACqB,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC5BF,IAAI,CAACR,QAAQ,GAAGZ,WAAW,CAACZ,GAAG,CAACgC,IAAI,CAACE,IAAI,CAAmB;QAChE,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA5C,GAAA;IAAAC,KAAA,EAED,SAAA8B,oBACEvB,MAAsB,EACtBc,WAA2D,EAC3D;MACA,IAAI,CAACmB,cAAc,CAACjC,MAAM,EAAEqC,SAAS,EAAEA,SAAS,EAAE,UAACH,IAAI,EAAK;QAC1D,IAAIpB,WAAW,CAACqB,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC5BF,IAAI,CAACR,QAAQ,GAAGZ,WAAW,CAACZ,GAAG,CAACgC,IAAI,CAACE,IAAI,CAAmB;MAChE,CAAC,CAAC;IACJ;EAAC;IAAA5C,GAAA;IAAAC,KAAA,EAED,SAAAwC,eACEjC,MAAsB,EACtB4B,SAAkB,EAClBC,cAAuB,EACvBW,QAA+B,EAC/B;MACAxC,MAAM,CAACyC,QAAQ,CAAC,UAACxC,MAAM,EAAK;QAC1B,IAAIA,MAAM,CAACyC,IAAI,KAAK,MAAM,EAAE;UAC1B,IAAAC,gBAAA,GAA+E1C,MAAM,CAAC2C,QAAQ;YAA3EC,gBAAgB,GAAAF,gBAAA,CAA3Bf,SAAS;YAAoCkB,qBAAqB,GAAAH,gBAAA,CAArCd,cAAc;UACnD,IACE,CAACD,SAAS,KAAKS,SAAS,IAAIT,SAAS,KAAKiB,gBAAgB,MACtDhB,cAAc,KAAKQ,SAAS,IAAIR,cAAc,KAAKiB,qBAAqB,CAAC,EAE7EN,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGvC,MAAc,CAAC;QAC9B;MACF,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAf,eAAA;AAAA;AAGH,eAAeA,eAAe"}
|
|
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","SurfaceMaterial","Color","RepeatWrapping","utils","hybridList","emitter","MaterialManager","app","Map","change","json","_this","processChange","data","id","object","get","console","concat","changeByObject","Array","isArray","batch","materials","_json$properties","properties","materialMap","originalMaterial","set","applyMaterials","applySingleMaterial","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","rootProperties","_this3","material","_ref2","_callee","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","_callee$","_context","getMaterial","applyMaterialOptions","traverseMeshes","mesh","has","uuid","_x","emit","_applySingleMaterial","_callee2","_args2","_callee2$","_context2","_x2","_x3","option","color","uvScale","map","wrapS","wrapT","repeat","needsUpdate","_this4","_ref3","callback","traverse","_object$userData","userData","currentMeshIndex","currentPrimitiveIndex"],"sources":["../../../src/module/material/index.ts"],"sourcesContent":["import { SurfaceMaterial } from '@anov/3d-ability'\nimport type { Mesh } from '@anov/3d-core'\nimport { Color, RepeatWrapping, utils } from '@anov/3d-core'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\nimport { hybridList } from '../entity'\n\nconst { emitter } = utils\n\nclass MaterialManager implements BaseModule {\n app: Anov3D\n originalMaterial = new Map() // 记录初始材质信息\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n /**\n * Change material for target objects\n * @param json Material change configuration\n */\n change(json: any) {\n const processChange = (data: any) => {\n const { target: id } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n this.changeByObject(object, data)\n }\n if (Array.isArray(json.batch)) // 支持多对象批量替换\n json.batch.forEach(processChange)\n else\n processChange(json)\n }\n\n changeByObject(object: THREE.Object3D, json: any) {\n const { target: id, materials, properties = {} } = json\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n let materialMap = this.originalMaterial.get(id)\n if (!materialMap) {\n materialMap = new Map()\n this.originalMaterial.set(id, materialMap)\n }\n\n if (Array.isArray(materials))\n this.applyMaterials(object, materials, properties, materialMap)\n else\n this.applySingleMaterial(object, materials, properties, materialMap)\n }\n\n /**\n * Restore material for target objects\n * @param json Material restoration configuration\n */\n restore(json: any) {\n const processRestore = (data: any) => {\n const { target: id, materials } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n const materialMap = this.originalMaterial.get(id)\n if (!materialMap)\n return\n\n if (materials)\n this.restoreMaterials(object, materials, materialMap)\n else\n this.restoreAllMaterials(object, materialMap)\n }\n\n if (Array.isArray(json.batch))\n json.batch.forEach(processRestore)\n else\n processRestore(json)\n }\n\n private applyMaterials(\n target: THREE.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n let material\n materials.forEach(async ({ meshIndex, primitiveIndex, materialId, properties = {} }) => {\n material = await SurfaceMaterial.getMaterial(materialId)\n this.applyMaterialOptions(material, { ...rootProperties, ...properties })\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, mesh.material)\n mesh.material = material\n })\n })\n\n emitter.emit('onMaterialChanged', { target })\n }\n\n private async applySingleMaterial(\n target: THREE.Object3D,\n materialId,\n properties: Record<string, any> = {},\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n const material = await SurfaceMaterial.getMaterial(materialId)\n this.applyMaterialOptions(material, properties)\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, mesh.material)\n\n mesh.material = material\n })\n\n emitter.emit('onMaterialChanged', { target })\n }\n\n private applyMaterialOptions(material, option) {\n const { color, uvScale } = option\n if (material.map) {\n if (uvScale) {\n material.map.wrapS = material.map.wrapT = RepeatWrapping\n material.map.repeat.set(uvScale, uvScale)\n }\n if (color)\n material.color = new Color(color)\n\n material.map.needsUpdate = true\n }\n }\n\n private restoreMaterials(\n target: THREE.Object3D,\n materials: any[],\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n materials.forEach(({ meshIndex, primitiveIndex }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as THREE.Material\n })\n })\n }\n\n private restoreAllMaterials(\n target: THREE.Object3D,\n materialMap: Map<string, THREE.Material | THREE.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as THREE.Material\n })\n }\n\n private traverseMeshes(\n target: THREE.Object3D,\n meshIndex?: number,\n primitiveIndex?: number,\n callback?: (mesh: Mesh) => void,\n ) {\n target.traverse((object) => {\n if (object.type === 'Mesh') {\n const { meshIndex: currentMeshIndex, primitiveIndex: currentPrimitiveIndex } = object.userData\n if (\n (meshIndex === undefined || meshIndex === currentMeshIndex)\n && (primitiveIndex === undefined || primitiveIndex === currentPrimitiveIndex)\n )\n callback?.(object as Mesh)\n }\n })\n }\n}\n\nexport default MaterialManager\n"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,CAAAkD,MAAA,KAAA7D,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,uCAAA3D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAiE,UAAA,IAAArD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAAgE,IAAA,GAAAlE,CAAA,CAAAmE,OAAA,eAAAjE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,sCAAA9D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAiC,aAAAnE,CAAA,QAAAD,CAAA,KAAAqE,MAAA,EAAApE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAsE,QAAA,GAAArE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAuE,UAAA,GAAAtE,CAAA,KAAAD,CAAA,CAAAwE,QAAA,GAAAvE,CAAA,WAAAwE,UAAA,CAAAC,IAAA,CAAA1E,CAAA,cAAA2E,cAAA1E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA2E,UAAA,QAAA5E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA2E,UAAA,GAAA5E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAwE,UAAA,MAAAJ,MAAA,aAAApE,CAAA,CAAA4C,OAAA,CAAAuB,YAAA,cAAAS,KAAA,iBAAAnC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAkE,IAAA,SAAAlE,CAAA,OAAA8E,KAAA,CAAA9E,CAAA,CAAA+E,MAAA,SAAAxE,CAAA,OAAAG,CAAA,YAAAwD,KAAA,aAAA3D,CAAA,GAAAP,CAAA,CAAA+E,MAAA,OAAA1E,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA2D,IAAA,CAAAzD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA2D,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAxD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,gBAAAsD,SAAA,CAAAf,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA4C,WAAA,GAAA9D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAiF,mBAAA,aAAAhF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAiF,WAAA,WAAAlF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAAgF,WAAA,IAAAhF,CAAA,CAAAmF,IAAA,OAAAnF,CAAA,CAAAoF,IAAA,aAAAnF,CAAA,WAAAE,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAApF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAqF,SAAA,GAAAjD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAwF,KAAA,aAAAvF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA+E,OAAA,OAAA7E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAiF,mBAAA,CAAA/E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAsD,IAAA,GAAAd,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAsD,IAAA,WAAAtB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAA0F,IAAA,aAAAzF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAwE,IAAA,CAAArE,CAAA,UAAAH,CAAA,CAAAyF,OAAA,aAAAzB,KAAA,WAAAhE,CAAA,CAAA6E,MAAA,SAAA9E,CAAA,GAAAC,CAAA,CAAA0F,GAAA,QAAA3F,CAAA,IAAAD,CAAA,SAAAkE,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAlE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA8E,WAAA,EAAAzD,OAAA,EAAAoD,KAAA,WAAAA,MAAA7E,CAAA,aAAA6F,IAAA,WAAA3B,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAwE,UAAA,CAAA5B,OAAA,CAAA8B,aAAA,IAAA3E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA4F,MAAA,OAAAzF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA4E,KAAA,EAAA5E,CAAA,CAAA6F,KAAA,cAAA7F,CAAA,IAAAD,CAAA,MAAA+F,IAAA,WAAAA,KAAA,SAAAzC,IAAA,WAAAtD,CAAA,QAAAwE,UAAA,IAAAG,UAAA,kBAAA3E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAoE,IAAA,KAAApC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAAgG,OAAA7F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAAgE,IAAA,GAAA7D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAkE,UAAA,CAAAM,MAAA,MAAAxE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA+D,UAAA,CAAAlE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAkE,UAAA,iBAAAlE,CAAA,CAAA2D,MAAA,SAAA6B,MAAA,aAAAxF,CAAA,CAAA2D,MAAA,SAAAwB,IAAA,QAAA/E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA6E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,gBAAAuB,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,cAAAzD,CAAA,aAAA+E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,qBAAAtD,CAAA,YAAAsC,KAAA,qDAAAuC,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,YAAAT,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAuE,UAAA,CAAAM,MAAA,MAAA7E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAkE,UAAA,CAAAvE,CAAA,OAAAK,CAAA,CAAA8D,MAAA,SAAAwB,IAAA,IAAAxF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAsF,IAAA,GAAAtF,CAAA,CAAAgE,UAAA,QAAA7D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA2D,MAAA,IAAArE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA6D,UAAA,KAAA7D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAkE,UAAA,cAAAhE,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAU,IAAA,GAAAxD,CAAA,CAAA6D,UAAA,EAAApC,CAAA,SAAAgE,QAAA,CAAAvF,CAAA,MAAAuF,QAAA,WAAAA,SAAAlG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAsC,IAAA,GAAAjE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAqE,IAAA,QAAApE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAU,IAAA,yBAAAjE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAkE,IAAA,GAAAlE,CAAA,GAAAmC,CAAA,KAAAiE,MAAA,WAAAA,OAAAnG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAqE,UAAA,KAAAtE,CAAA,cAAAkG,QAAA,CAAAjG,CAAA,CAAA0E,UAAA,EAAA1E,CAAA,CAAAsE,QAAA,GAAAG,aAAA,CAAAzE,CAAA,GAAAiC,CAAA,OAAAkE,KAAA,WAAAC,OAAArG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAmE,MAAA,KAAApE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAA0E,UAAA,kBAAAvE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA8C,aAAA,CAAAzE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAAiD,aAAA,WAAAA,cAAAvG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAiE,UAAA,EAAA/D,CAAA,EAAAiE,OAAA,EAAA9D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAwG,QAAAxG,CAAA,EAAAE,CAAA,QAAAD,CAAA,GAAAE,MAAA,CAAAuF,IAAA,CAAA1F,CAAA,OAAAG,MAAA,CAAAsG,qBAAA,QAAAlG,CAAA,GAAAJ,MAAA,CAAAsG,qBAAA,CAAAzG,CAAA,GAAAE,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAmG,MAAA,WAAAxG,CAAA,WAAAC,MAAA,CAAAwG,wBAAA,CAAA3G,CAAA,EAAAE,CAAA,EAAAiB,UAAA,OAAAlB,CAAA,CAAAyE,IAAA,CAAAkC,KAAA,CAAA3G,CAAA,EAAAM,CAAA,YAAAN,CAAA;AAAA,SAAA4G,cAAA7G,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA4G,SAAA,CAAA/B,MAAA,EAAA7E,CAAA,UAAAD,CAAA,WAAA6G,SAAA,CAAA5G,CAAA,IAAA4G,SAAA,CAAA5G,CAAA,QAAAA,CAAA,OAAAsG,OAAA,CAAArG,MAAA,CAAAF,CAAA,OAAA4C,OAAA,WAAA3C,CAAA,IAAA6G,eAAA,CAAA/G,CAAA,EAAAE,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAC,MAAA,CAAA6G,yBAAA,GAAA7G,MAAA,CAAA8G,gBAAA,CAAAjH,CAAA,EAAAG,MAAA,CAAA6G,yBAAA,CAAA/G,CAAA,KAAAuG,OAAA,CAAArG,MAAA,CAAAF,CAAA,GAAA4C,OAAA,WAAA3C,CAAA,IAAAC,MAAA,CAAAK,cAAA,CAAAR,CAAA,EAAAE,CAAA,EAAAC,MAAA,CAAAwG,wBAAA,CAAA1G,CAAA,EAAAC,CAAA,iBAAAF,CAAA;AAAA,SAAAkH,mBAAAC,GAAA,EAAAjE,OAAA,EAAAkE,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAA1F,GAAA,cAAA2F,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAA1F,GAAA,OAAApB,KAAA,GAAA+G,IAAA,CAAA/G,KAAA,WAAAgH,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAAjE,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAAgF,OAAA,CAAAvC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAiE,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAf,SAAA,aAAArB,OAAA,WAAAvC,OAAA,EAAAkE,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAf,KAAA,CAAAgB,IAAA,EAAAC,IAAA,YAAAR,MAAA5G,KAAA,IAAAyG,kBAAA,CAAAC,GAAA,EAAAjE,OAAA,EAAAkE,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAA7G,KAAA,cAAA6G,OAAAQ,GAAA,IAAAZ,kBAAA,CAAAC,GAAA,EAAAjE,OAAA,EAAAkE,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAQ,GAAA,KAAAT,KAAA,CAAAU,SAAA;AAAA,SAAAC,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAAlE,SAAA;AAAA,SAAAmE,kBAAAC,MAAA,EAAAC,KAAA,aAAA3H,CAAA,MAAAA,CAAA,GAAA2H,KAAA,CAAAtD,MAAA,EAAArE,CAAA,UAAA4H,UAAA,GAAAD,KAAA,CAAA3H,CAAA,GAAA4H,UAAA,CAAAnH,UAAA,GAAAmH,UAAA,CAAAnH,UAAA,WAAAmH,UAAA,CAAAlH,YAAA,wBAAAkH,UAAA,EAAAA,UAAA,CAAAjH,QAAA,SAAAlB,MAAA,CAAAK,cAAA,CAAA4H,MAAA,EAAAG,cAAA,CAAAD,UAAA,CAAAf,GAAA,GAAAe,UAAA;AAAA,SAAAE,aAAAN,WAAA,EAAAO,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAN,iBAAA,CAAAD,WAAA,CAAA9H,SAAA,EAAAqI,UAAA,OAAAC,WAAA,EAAAP,iBAAA,CAAAD,WAAA,EAAAQ,WAAA,GAAAvI,MAAA,CAAAK,cAAA,CAAA0H,WAAA,iBAAA7G,QAAA,mBAAA6G,WAAA;AAAA,SAAAnB,gBAAA4B,GAAA,EAAApB,GAAA,EAAA9G,KAAA,IAAA8G,GAAA,GAAAgB,cAAA,CAAAhB,GAAA,OAAAA,GAAA,IAAAoB,GAAA,IAAAxI,MAAA,CAAAK,cAAA,CAAAmI,GAAA,EAAApB,GAAA,IAAA9G,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAsH,GAAA,CAAApB,GAAA,IAAA9G,KAAA,WAAAkI,GAAA;AAAA,SAAAJ,eAAAtI,CAAA,QAAAS,CAAA,GAAAkI,YAAA,CAAA3I,CAAA,gCAAAgD,OAAA,CAAAvC,CAAA,IAAAA,CAAA,GAAAmI,MAAA,CAAAnI,CAAA;AAAA,SAAAkI,aAAA3I,CAAA,EAAAC,CAAA,oBAAA+C,OAAA,CAAAhD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAU,MAAA,CAAAmI,WAAA,kBAAA9I,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAA8B,IAAA,CAAA7B,CAAA,EAAAC,CAAA,gCAAA+C,OAAA,CAAAvC,CAAA,UAAAA,CAAA,YAAAsD,SAAA,yEAAA9D,CAAA,GAAA2I,MAAA,GAAAE,MAAA,EAAA9I,CAAA;AADA,SAAS+I,eAAe,QAAQ,kBAAkB;AAElD,SAASC,KAAK,EAAEC,cAAc,EAAEC,KAAK,QAAQ,eAAe;AAG5D,SAASC,UAAU;AAEnB,IAAQC,OAAO,GAAKF,KAAK,CAAjBE,OAAO;AAAU,IAEnBC,eAAe;EAEU;;EAE7B,SAAAA,gBAAYC,GAAW,EAAE;IAAAvB,eAAA,OAAAsB,eAAA;IAAAvC,eAAA;IAAAA,eAAA,2BAFN,IAAIyC,GAAG,CAAC,CAAC;IAG1B,IAAI,CAACD,GAAG,GAAGA,GAAG;EAChB;;EAEA;AACF;AACA;AACA;EAHEf,YAAA,CAAAc,eAAA;IAAA/B,GAAA;IAAA9G,KAAA,EAIA,SAAAgJ,OAAOC,IAAS,EAAE;MAAA,IAAAC,KAAA;MAChB,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAS,EAAK;QACnC,IAAgBC,EAAE,GAAKD,IAAI,CAAnBzB,MAAM;QACd,IAAM2B,MAAM,GAAGX,UAAU,CAACY,GAAG,CAACF,EAAE,CAAC;QAEjC,IAAI,CAACC,MAAM,EAAE;UACXE,OAAO,CAACxC,KAAK,mBAAAyC,MAAA,CAAmBJ,EAAE,eAAY,CAAC;UAC/C;QACF;QACAH,KAAI,CAACQ,cAAc,CAACJ,MAAM,EAAEF,IAAI,CAAC;MACnC,CAAC;MACD,IAAIO,KAAK,CAACC,OAAO,CAACX,IAAI,CAACY,KAAK,CAAC;QAAE;QAC7BZ,IAAI,CAACY,KAAK,CAACzH,OAAO,CAAC+G,aAAa,CAAC,MAEjCA,aAAa,CAACF,IAAI,CAAC;IACvB;EAAC;IAAAnC,GAAA;IAAA9G,KAAA,EAED,SAAA0J,eAAeJ,MAAsB,EAAEL,IAAS,EAAE;MAChD,IAAgBI,EAAE,GAAiCJ,IAAI,CAA/CtB,MAAM;QAAMmC,SAAS,GAAsBb,IAAI,CAAnCa,SAAS;QAAAC,gBAAA,GAAsBd,IAAI,CAAxBe,UAAU;QAAVA,UAAU,GAAAD,gBAAA,cAAG,CAAC,CAAC,GAAAA,gBAAA;MAE9C,IAAI,CAACT,MAAM,EAAE;QACXE,OAAO,CAACxC,KAAK,mBAAAyC,MAAA,CAAmBJ,EAAE,eAAY,CAAC;QAC/C;MACF;MAEA,IAAIY,WAAW,GAAG,IAAI,CAACC,gBAAgB,CAACX,GAAG,CAACF,EAAE,CAAC;MAC/C,IAAI,CAACY,WAAW,EAAE;QAChBA,WAAW,GAAG,IAAIlB,GAAG,CAAC,CAAC;QACvB,IAAI,CAACmB,gBAAgB,CAACC,GAAG,CAACd,EAAE,EAAEY,WAAW,CAAC;MAC5C;MAEA,IAAIN,KAAK,CAACC,OAAO,CAACE,SAAS,CAAC,EAC1B,IAAI,CAACM,cAAc,CAACd,MAAM,EAAEQ,SAAS,EAAEE,UAAU,EAAEC,WAAW,CAAC,MAE/D,IAAI,CAACI,mBAAmB,CAACf,MAAM,EAAEQ,SAAS,EAAEE,UAAU,EAAEC,WAAW,CAAC;IACxE;;IAEA;AACF;AACA;AACA;EAHE;IAAAnD,GAAA;IAAA9G,KAAA,EAIA,SAAAsK,QAAQrB,IAAS,EAAE;MAAA,IAAAsB,MAAA;MACjB,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIpB,IAAS,EAAK;QACpC,IAAgBC,EAAE,GAAgBD,IAAI,CAA9BzB,MAAM;UAAMmC,SAAS,GAAKV,IAAI,CAAlBU,SAAS;QAC7B,IAAMR,MAAM,GAAGX,UAAU,CAACY,GAAG,CAACF,EAAE,CAAC;QAEjC,IAAI,CAACC,MAAM,EAAE;UACXE,OAAO,CAACxC,KAAK,mBAAAyC,MAAA,CAAmBJ,EAAE,eAAY,CAAC;UAC/C;QACF;QAEA,IAAMY,WAAW,GAAGM,MAAI,CAACL,gBAAgB,CAACX,GAAG,CAACF,EAAE,CAAC;QACjD,IAAI,CAACY,WAAW,EACd;QAEF,IAAIH,SAAS,EACXS,MAAI,CAACE,gBAAgB,CAACnB,MAAM,EAAEQ,SAAS,EAAEG,WAAW,CAAC,MAErDM,MAAI,CAACG,mBAAmB,CAACpB,MAAM,EAAEW,WAAW,CAAC;MACjD,CAAC;MAED,IAAIN,KAAK,CAACC,OAAO,CAACX,IAAI,CAACY,KAAK,CAAC,EAC3BZ,IAAI,CAACY,KAAK,CAACzH,OAAO,CAACoI,cAAc,CAAC,MAElCA,cAAc,CAACvB,IAAI,CAAC;IACxB;EAAC;IAAAnC,GAAA;IAAA9G,KAAA,EAED,SAAAoK,eACEzC,MAAsB,EACtBmC,SAAgB,EAChBa,cAAmC,EACnCV,WAA2D,EAC3D;MAAA,IAAAW,MAAA;MACA,IAAIC,QAAQ;MACZf,SAAS,CAAC1H,OAAO;QAAA,IAAA0I,KAAA,GAAA7D,iBAAA,eAAA3H,mBAAA,GAAAqF,IAAA,CAAC,SAAAoG,QAAAC,IAAA;UAAA,IAAAC,SAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAC,eAAA,EAAApB,UAAA;UAAA,OAAA1K,mBAAA,GAAAuB,IAAA,UAAAwK,SAAAC,QAAA;YAAA,kBAAAA,QAAA,CAAAlG,IAAA,GAAAkG,QAAA,CAAA7H,IAAA;cAAA;gBAASwH,SAAS,GAAAD,IAAA,CAATC,SAAS,EAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc,EAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU,EAAAC,eAAA,GAAAJ,IAAA,CAAEhB,UAAU,EAAVA,UAAU,GAAAoB,eAAA,cAAG,CAAC,CAAC,GAAAA,eAAA;gBAAAE,QAAA,CAAA7H,IAAA;gBAAA,OAC9D8E,eAAe,CAACgD,WAAW,CAACJ,UAAU,CAAC;cAAA;gBAAxDN,QAAQ,GAAAS,QAAA,CAAApI,IAAA;gBACR0H,MAAI,CAACY,oBAAoB,CAACX,QAAQ,EAAAzE,aAAA,CAAAA,aAAA,KAAOuE,cAAc,GAAKX,UAAU,CAAE,CAAC;gBACzEY,MAAI,CAACa,cAAc,CAAC9D,MAAM,EAAEsD,SAAS,EAAEC,cAAc,EAAE,UAACQ,IAAI,EAAK;kBAC/D,IAAI,CAACzB,WAAW,CAAC0B,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC7B3B,WAAW,CAACE,GAAG,CAACuB,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACb,QAAQ,CAAC;kBAC3Ca,IAAI,CAACb,QAAQ,GAAGA,QAAQ;gBAC1B,CAAC,CAAC;cAAA;cAAA;gBAAA,OAAAS,QAAA,CAAA/F,IAAA;YAAA;UAAA,GAAAwF,OAAA;QAAA,CACH;QAAA,iBAAAc,EAAA;UAAA,OAAAf,KAAA,CAAA3E,KAAA,OAAAE,SAAA;QAAA;MAAA,IAAC;MAEFuC,OAAO,CAACkD,IAAI,CAAC,mBAAmB,EAAE;QAAEnE,MAAM,EAANA;MAAO,CAAC,CAAC;IAC/C;EAAC;IAAAb,GAAA;IAAA9G,KAAA;MAAA,IAAA+L,oBAAA,GAAA9E,iBAAA,eAAA3H,mBAAA,GAAAqF,IAAA,CAED,SAAAqH,SACErE,MAAsB,EACtBwD,UAAU;QAAA,IAAAnB,UAAA;UAAAC,WAAA;UAAAY,QAAA;UAAAoB,MAAA,GAAA5F,SAAA;QAAA,OAAA/G,mBAAA,GAAAuB,IAAA,UAAAqL,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/G,IAAA,GAAA+G,SAAA,CAAA1I,IAAA;YAAA;cACVuG,UAA+B,GAAAiC,MAAA,CAAA3H,MAAA,QAAA2H,MAAA,QAAA3E,SAAA,GAAA2E,MAAA,MAAG,CAAC,CAAC;cACpChC,WAA2D,GAAAgC,MAAA,CAAA3H,MAAA,OAAA2H,MAAA,MAAA3E,SAAA;cAAA6E,SAAA,CAAA1I,IAAA;cAAA,OAEpC8E,eAAe,CAACgD,WAAW,CAACJ,UAAU,CAAC;YAAA;cAAxDN,QAAQ,GAAAsB,SAAA,CAAAjJ,IAAA;cACd,IAAI,CAACsI,oBAAoB,CAACX,QAAQ,EAAEb,UAAU,CAAC;cAC/C,IAAI,CAACyB,cAAc,CAAC9D,MAAM,EAAEL,SAAS,EAAEA,SAAS,EAAE,UAACoE,IAAI,EAAK;gBAC1D,IAAI,CAACzB,WAAW,CAAC0B,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC7B3B,WAAW,CAACE,GAAG,CAACuB,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACb,QAAQ,CAAC;gBAE3Ca,IAAI,CAACb,QAAQ,GAAGA,QAAQ;cAC1B,CAAC,CAAC;cAEFjC,OAAO,CAACkD,IAAI,CAAC,mBAAmB,EAAE;gBAAEnE,MAAM,EAANA;cAAO,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAwE,SAAA,CAAA5G,IAAA;UAAA;QAAA,GAAAyG,QAAA;MAAA,CAC9C;MAAA,SAAA3B,oBAAA+B,GAAA,EAAAC,GAAA;QAAA,OAAAN,oBAAA,CAAA5F,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAgE,mBAAA;IAAA;EAAA;IAAAvD,GAAA;IAAA9G,KAAA,EAED,SAAAwL,qBAA6BX,QAAQ,EAAEyB,MAAM,EAAE;MAC7C,IAAQC,KAAK,GAAcD,MAAM,CAAzBC,KAAK;QAAEC,OAAO,GAAKF,MAAM,CAAlBE,OAAO;MACtB,IAAI3B,QAAQ,CAAC4B,GAAG,EAAE;QAChB,IAAID,OAAO,EAAE;UACX3B,QAAQ,CAAC4B,GAAG,CAACC,KAAK,GAAG7B,QAAQ,CAAC4B,GAAG,CAACE,KAAK,GAAGlE,cAAc;UACxDoC,QAAQ,CAAC4B,GAAG,CAACG,MAAM,CAACzC,GAAG,CAACqC,OAAO,EAAEA,OAAO,CAAC;QAC3C;QACA,IAAID,KAAK,EACP1B,QAAQ,CAAC0B,KAAK,GAAG,IAAI/D,KAAK,CAAC+D,KAAK,CAAC;QAEnC1B,QAAQ,CAAC4B,GAAG,CAACI,WAAW,GAAG,IAAI;MACjC;IACF;EAAC;IAAA/F,GAAA;IAAA9G,KAAA,EAED,SAAAyK,iBACE9C,MAAsB,EACtBmC,SAAgB,EAChBG,WAA2D,EAC3D;MAAA,IAAA6C,MAAA;MACAhD,SAAS,CAAC1H,OAAO,CAAC,UAAA2K,KAAA,EAAmC;QAAA,IAAhC9B,SAAS,GAAA8B,KAAA,CAAT9B,SAAS;UAAEC,cAAc,GAAA6B,KAAA,CAAd7B,cAAc;QAC5C4B,MAAI,CAACrB,cAAc,CAAC9D,MAAM,EAAEsD,SAAS,EAAEC,cAAc,EAAE,UAACQ,IAAI,EAAK;UAC/D,IAAIzB,WAAW,CAAC0B,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC5BF,IAAI,CAACb,QAAQ,GAAGZ,WAAW,CAACV,GAAG,CAACmC,IAAI,CAACE,IAAI,CAAmB;QAChE,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA9E,GAAA;IAAA9G,KAAA,EAED,SAAA0K,oBACE/C,MAAsB,EACtBsC,WAA2D,EAC3D;MACA,IAAI,CAACwB,cAAc,CAAC9D,MAAM,EAAEL,SAAS,EAAEA,SAAS,EAAE,UAACoE,IAAI,EAAK;QAC1D,IAAIzB,WAAW,CAAC0B,GAAG,CAACD,IAAI,CAACE,IAAI,CAAC,EAC5BF,IAAI,CAACb,QAAQ,GAAGZ,WAAW,CAACV,GAAG,CAACmC,IAAI,CAACE,IAAI,CAAmB;MAChE,CAAC,CAAC;IACJ;EAAC;IAAA9E,GAAA;IAAA9G,KAAA,EAED,SAAAyL,eACE9D,MAAsB,EACtBsD,SAAkB,EAClBC,cAAuB,EACvB8B,QAA+B,EAC/B;MACArF,MAAM,CAACsF,QAAQ,CAAC,UAAC3D,MAAM,EAAK;QAC1B,IAAIA,MAAM,CAACnI,IAAI,KAAK,MAAM,EAAE;UAC1B,IAAA+L,gBAAA,GAA+E5D,MAAM,CAAC6D,QAAQ;YAA3EC,gBAAgB,GAAAF,gBAAA,CAA3BjC,SAAS;YAAoCoC,qBAAqB,GAAAH,gBAAA,CAArChC,cAAc;UACnD,IACE,CAACD,SAAS,KAAK3D,SAAS,IAAI2D,SAAS,KAAKmC,gBAAgB,MACtDlC,cAAc,KAAK5D,SAAS,IAAI4D,cAAc,KAAKmC,qBAAqB,CAAC,EAE7EL,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAG1D,MAAc,CAAC;QAC9B;MACF,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAT,eAAA;AAAA;AAGH,eAAeA,eAAe"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
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; }
|
|
9
3
|
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); } }
|
|
10
4
|
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); }); }; }
|
|
@@ -15,7 +9,6 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
15
9
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
10
|
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); }
|
|
17
11
|
import { use, utils } from '@anov/3d-core';
|
|
18
|
-
import { MaterialSwitchSystem } from '@anov/3d-ability';
|
|
19
12
|
import { MessageType, sendToMessage } from "../../utils/messageFn";
|
|
20
13
|
import { EMessageStatus } from "../../messageStatus";
|
|
21
14
|
import { hybridList } from "../entity/index";
|
|
@@ -26,7 +19,6 @@ export var Scene = /*#__PURE__*/function () {
|
|
|
26
19
|
_classCallCheck(this, Scene);
|
|
27
20
|
_defineProperty(this, "app", void 0);
|
|
28
21
|
_defineProperty(this, "sccParse", void 0);
|
|
29
|
-
_defineProperty(this, "materialSwitchSystem", void 0);
|
|
30
22
|
this.app = app;
|
|
31
23
|
this.sccParse = new FileParse(this.app);
|
|
32
24
|
}
|
|
@@ -152,17 +144,9 @@ export var Scene = /*#__PURE__*/function () {
|
|
|
152
144
|
key: "changeStyle",
|
|
153
145
|
value: function changeStyle(params) {
|
|
154
146
|
var style = params.style;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return item.value;
|
|
159
|
-
});
|
|
160
|
-
if (!this.materialSwitchSystem) {
|
|
161
|
-
this.materialSwitchSystem = new MaterialSwitchSystem(models);
|
|
162
|
-
this.materialSwitchSystem.generate();
|
|
163
|
-
use.useScene().scene.add(this.materialSwitchSystem);
|
|
164
|
-
}
|
|
165
|
-
this.materialSwitchSystem.switchType(style);
|
|
147
|
+
|
|
148
|
+
// @ts-ignore
|
|
149
|
+
this.app.entity.materialSwitchSystem.switchType(style);
|
|
166
150
|
if (style === 'Real')
|
|
167
151
|
// @ts-ignore
|
|
168
152
|
this.app.environment.open();else
|