@anov/3d-ability 0.0.114 → 0.0.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/business/HeatMap/HeatMap.js +1 -1
  2. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  3. package/dist/business/Mark/index.js +1 -1
  4. package/dist/business/Mark/index.js.map +1 -1
  5. package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +2 -1
  6. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +81 -49
  7. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  8. package/dist/business/MaterialSwitch/inject.d.ts +17 -6
  9. package/dist/business/MaterialSwitch/inject.js +160 -114
  10. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  11. package/dist/business/Poi/link/Pyramid.d.ts +1 -0
  12. package/dist/business/Poi/link/Pyramid.js +16 -18
  13. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  14. package/dist/business/Poi/particle/DoubleCircle.js +1 -1
  15. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  16. package/dist/business/Poi/particle/DynamicCircle.js +1 -1
  17. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  18. package/dist/business/Poi/particle/SingleCircle.js +1 -1
  19. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  20. package/dist/business/Poi/shader/circle.js +1 -1
  21. package/dist/business/Poi/shader/circle.js.map +1 -1
  22. package/dist/business/Poi/shader/doubleCircle.js +1 -1
  23. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  24. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +10 -1
  25. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  26. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +1 -1
  27. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  28. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.d.ts +1 -1
  29. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -1
  30. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  31. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +1 -1
  32. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  33. package/dist/core/Material/SurfaceMaterial/index.d.ts +7 -7
  34. package/dist/core/Material/SurfaceMaterial/index.js +16 -14
  35. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  36. package/dist/core/WeatherSystem/objects/rain/plane.js +7 -2
  37. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  38. package/dist/utils/index.js.map +1 -0
  39. package/package.json +3 -3
  40. package/dist/core/Utils/index.js.map +0 -1
  41. /package/dist/{core/Utils → utils}/index.d.ts +0 -0
  42. /package/dist/{core/Utils → utils}/index.js +0 -0
@@ -2,12 +2,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
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
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
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
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
- 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."); }
7
- 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); }
8
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
- 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; }
11
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
6
  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); } }
13
7
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -23,7 +17,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
23
17
  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); }
24
18
  import { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core';
25
19
  import { SurfaceMaterial } from "../../";
26
- import { finirheightTransitionEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from "./inject";
20
+ import { finirheightTransitionEffect, finirlowEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from "./inject";
27
21
  export var SwitchType = /*#__PURE__*/function (SwitchType) {
28
22
  SwitchType["Real"] = "Real";
29
23
  SwitchType["Fresnel"] = "Fresnel";
@@ -34,7 +28,7 @@ export var SwitchType = /*#__PURE__*/function (SwitchType) {
34
28
  var DEFAULT_CENTER = new Vector3();
35
29
  var GROUND_Y_OFFSET = -0.1;
36
30
  var SIZE_SCALE_FACTOR = 1.2;
37
- var GROUND_MATCHING = ['ground', 'floor'];
31
+ var GROUND_MATCHING = ['Ground', 'Road', 'Yard'];
38
32
 
39
33
  /**
40
34
  * 材质切换系统
@@ -152,19 +146,33 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
152
146
  var light = use.useScene().scene.getObjectByName('FresnelLight');
153
147
  if (light) light.removeFromParent();
154
148
  if (type !== SwitchType.Real) {
155
- var _light = new AmbientLight(0xFFFFFF, 0.5);
149
+ var _light = new AmbientLight(0xFFFFFF, 1.5);
156
150
  _light.name = 'FresnelLight';
157
151
  use.useScene().scene.add(_light);
152
+ if (type === SwitchType.Pure) _light.intensity = 0.5;
153
+ }
154
+ if ((option === null || option === void 0 || (_option$rules = option.rules) === null || _option$rules === void 0 ? void 0 : _option$rules.length) > 0) {
155
+ this.rules = option.rules;
156
+ } else {
157
+ this.rules = [{
158
+ type: 'matchName',
159
+ keys: ['Tall'],
160
+ material: 'MfresnelGlow'
161
+ }, {
162
+ type: 'matchName',
163
+ keys: ['Fence'],
164
+ material: 'Moriginal'
165
+ }, {
166
+ type: 'matchName',
167
+ keys: ['Low'],
168
+ material: 'MlowFinir'
169
+ }, {
170
+ type: 'matchName',
171
+ keys: ['Window'],
172
+ material: 'Fresnel_Transparent',
173
+ limit: SwitchType.Fresnel
174
+ }];
158
175
  }
159
- this.rules = [{
160
- type: 'matchName',
161
- keys: ['Tall'],
162
- material: 'MfresnelGlow'
163
- }, {
164
- type: 'matchName',
165
- keys: ['Fence'],
166
- material: 'Moriginal'
167
- }].concat(_toConsumableArray((_option$rules = option === null || option === void 0 ? void 0 : option.rules) !== null && _option$rules !== void 0 ? _option$rules : []));
168
176
  this.handleApiOption(option);
169
177
  this.handleMatch(type);
170
178
  this.cleanupAnimations();
@@ -201,6 +209,10 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
201
209
  this.hideAllObjects();
202
210
  this.showObjectsByType(newType);
203
211
  this.showObjectsByType(this.type);
212
+ var groundObject = this.objectsMap[newType].get('ground');
213
+ var lastGroundObject = this.objectsMap[this.type].get('ground');
214
+ if (groundObject) groundObject.visible = this.isGenPlane;
215
+ if (lastGroundObject) lastGroundObject.visible = lastGroundObject.userData.isVisible;
204
216
  this.uniforms.progress.value = 0.0;
205
217
  this.uniforms["is".concat(this.type, "FadeIn")].value = false;
206
218
  this.uniforms["is".concat(newType, "FadeIn")].value = true;
@@ -210,8 +222,6 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
210
222
  value: function startSwitchAnimation(newType) {
211
223
  var _this2 = this;
212
224
  var lastType = this.type;
213
- var size = this.getMaxSize();
214
- var totalTime = Math.pow(6 * size / size, 1 / 3);
215
225
  var onComplete = function onComplete() {
216
226
  _this2.objectsMap[lastType].forEach(function (object) {
217
227
  object.visible = false;
@@ -222,7 +232,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
222
232
  });
223
233
  };
224
234
  requestAnimationFrame(function () {
225
- if (_this2.duration) _this2.animateWithGSAP(onComplete);else _this2.animateWithFrame(totalTime, onComplete);
235
+ if (_this2.duration) _this2.animateWithGSAP(onComplete);else _this2.animateWithFrame(onComplete);
226
236
  });
227
237
  }
228
238
  }, {
@@ -272,8 +282,8 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
272
282
  }()
273
283
  }, {
274
284
  key: "animateWithFrame",
275
- value: function animateWithFrame(totalTime, onComplete) {
276
- this.beginBySpeed(totalTime, onComplete);
285
+ value: function animateWithFrame(onComplete) {
286
+ this.beginBySpeed(this.getMaxSize(), onComplete);
277
287
  }
278
288
  }, {
279
289
  key: "addObject",
@@ -301,21 +311,26 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
301
311
  this.objectsMap[type].set('ground', groundMesh);
302
312
  this.add(groundMesh);
303
313
  }
314
+ var groundObject = this.objectsMap[type].get('ground');
315
+ if (groundObject) this.isGenPlane ? groundObject.userData.isVisible = true : groundObject.userData.isVisible = false;
304
316
  }
305
317
  }, {
306
318
  key: "handleGroundMatching",
307
319
  value: function handleGroundMatching(type) {
320
+ var _this4 = this;
321
+ if (type === SwitchType.Real) return;
308
322
  var isMatch = false;
309
- Object.values(this.objectsMap).slice(1).forEach(function (objectMap) {
310
- objectMap.forEach(function (object) {
311
- if (GROUND_MATCHING.includes(object.name)) {
323
+ this.objectsMap[type].forEach(function (object) {
324
+ object.traverse(function (child) {
325
+ if (GROUND_MATCHING.some(function (matching) {
326
+ return child.name.includes(matching);
327
+ })) {
328
+ if (_this4.isGenPlane) child.visible = false;else child.visible = true;
312
329
  isMatch = true;
313
- object.removeFromParent();
314
- objectMap.delete(object.uuid);
315
330
  }
316
331
  });
317
332
  });
318
- if (isMatch && type !== SwitchType.Real) this.handleGroundObject(type);
333
+ if (isMatch) this.handleGroundObject(type);
319
334
  }
320
335
  }, {
321
336
  key: "getMaterialByName",
@@ -344,7 +359,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
344
359
  }, {
345
360
  key: "replaceMaterial",
346
361
  value: function () {
347
- var _replaceMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(object, materialName, type) {
362
+ var _replaceMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(object, materialName, type, limit) {
348
363
  var material;
349
364
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
350
365
  while (1) switch (_context3.prev = _context3.next) {
@@ -359,32 +374,46 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
359
374
  _context3.next = 6;
360
375
  break;
361
376
  }
362
- object.material = finirheightTransitionEffect(object.material, this.uniforms);
363
- _context3.next = 14;
377
+ if (type === SwitchType.Fresnel) object.material = finirheightTransitionEffect(object.material, this.uniforms);
378
+ _context3.next = 20;
364
379
  break;
365
380
  case 6:
366
- if (!(materialName === 'Moriginal')) {
381
+ if (!(materialName === 'Moriginal' || !materialName)) {
367
382
  _context3.next = 10;
368
383
  break;
369
384
  }
370
385
  object.material = object.userData.originalMaterial;
371
- _context3.next = 14;
386
+ _context3.next = 20;
372
387
  break;
373
388
  case 10:
374
- _context3.next = 12;
389
+ if (!(materialName === 'MlowFinir')) {
390
+ _context3.next = 14;
391
+ break;
392
+ }
393
+ if (type === SwitchType.Fresnel) object.material = finirlowEffect(object.material, this.uniforms);
394
+ _context3.next = 20;
395
+ break;
396
+ case 14:
397
+ if (!(limit && limit !== type)) {
398
+ _context3.next = 16;
399
+ break;
400
+ }
401
+ return _context3.abrupt("return");
402
+ case 16:
403
+ _context3.next = 18;
375
404
  return this.getMaterialByName(materialName);
376
- case 12:
405
+ case 18:
377
406
  material = _context3.sent;
378
407
  object.material = inject(material, type, this.uniforms);
379
- case 14:
408
+ case 20:
380
409
  object.userData.isMatched = true;
381
- case 15:
410
+ case 21:
382
411
  case "end":
383
412
  return _context3.stop();
384
413
  }
385
414
  }, _callee3, this);
386
415
  }));
387
- function replaceMaterial(_x4, _x5, _x6) {
416
+ function replaceMaterial(_x4, _x5, _x6, _x7) {
388
417
  return _replaceMaterial.apply(this, arguments);
389
418
  }
390
419
  return replaceMaterial;
@@ -397,17 +426,20 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
397
426
  }, {
398
427
  key: "handleNameMatching",
399
428
  value: function handleNameMatching(rule, type) {
400
- var _this4 = this;
429
+ var _this5 = this;
401
430
  var keys = rule.keys,
402
- material = rule.material;
431
+ _rule$material = rule.material,
432
+ material = _rule$material === void 0 ? 'Moriginal' : _rule$material;
433
+ var keysArray = [];
434
+ if (typeof keys === 'string') keysArray = [keys];else keysArray = keys;
403
435
  this.objectsMap[type].forEach(function (object) {
404
436
  object.traverse(function (child) {
405
437
  if (child.type === 'Mesh') {
406
438
  var mesh = child;
407
- if (keys.some(function (matching) {
439
+ if (keysArray.some(function (matching) {
408
440
  var _mesh$parent;
409
441
  return mesh.name.includes(matching) || (mesh === null || mesh === void 0 || (_mesh$parent = mesh.parent) === null || _mesh$parent === void 0 ? void 0 : _mesh$parent.name.includes(matching));
410
- })) _this4.replaceMaterial(mesh, material, type);
442
+ })) _this5.replaceMaterial(mesh, material, type, rule.limit);
411
443
  }
412
444
  });
413
445
  });
@@ -418,20 +450,20 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
418
450
  }, {
419
451
  key: "handleMatch",
420
452
  value: function handleMatch(type) {
421
- var _this5 = this;
422
- if (this.isGenPlane) this.handleGroundMatching(type);
453
+ var _this6 = this;
454
+ this.handleGroundMatching(type);
423
455
  if (type === SwitchType.Real) return;
424
456
  this.objectsMap[type].forEach(function (object) {
425
457
  object.traverse(function (child) {
426
458
  if (child.type === 'Mesh') {
427
- if (child.userData.isMatched) _this5.resetMaterial(child, type);
459
+ if (child.userData.isMatched) _this6.resetMaterial(child, type);
428
460
  }
429
461
  child.userData.isMatched = false;
430
462
  });
431
463
  });
432
464
  if (this.rules.length > 0) {
433
465
  this.rules.forEach(function (rule) {
434
- _this5.matchingStrategy[rule.type](rule, type);
466
+ _this6.matchingStrategy[rule.type](rule, type);
435
467
  });
436
468
  }
437
469
  }
@@ -521,9 +553,9 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
521
553
  }, {
522
554
  key: "calculateMaxDistance",
523
555
  value: function calculateMaxDistance(vertices) {
524
- var _this6 = this;
556
+ var _this7 = this;
525
557
  return vertices.reduce(function (max, vertex) {
526
- var distance = _this6.center.distanceTo(vertex);
558
+ var distance = _this7.center.distanceTo(vertex);
527
559
  return Math.max(max, distance);
528
560
  }, 0);
529
561
  }
@@ -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","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","toString","Array","from","test","iter","isArray","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","AmbientLight","Box3","Color","Mesh","MeshBasicMaterial","Object3D","PlaneGeometry","Vector3","gsap","use","SurfaceMaterial","finirheightTransitionEffect","inject","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToGround","injectToRealFade","SwitchType","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_Object3D","_super","options","_this","Real","Map","Frame","Pure","Fresnel","matchSize","rule","handleSizeMatching","matchName","handleNameMatching","_ref","duration","_ref$center","center","_ref$isApi","isApi","uniforms","initializeUniforms","initializeBuiltInShader","useframe","time","height","progress","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","getMaterialAll","hideAllObjects","objectsMap","objectMap","object","visible","showObjectsByType","switchType","option","_option$rules","light","useScene","scene","getObjectByName","removeFromParent","add","rules","material","concat","handleApiOption","handleMatch","cleanupAnimations","prepareForSwitch","startSwitchAnimation","_ref2","_ref2$mode","mode","_ref2$duration","_ref2$center","_ref2$genPlane","genPlane","fromArray","isGenPlane","_this$frame","_this$gsap","frame","kill","newType","_this2","lastType","size","getMaxSize","totalTime","Math","pow","onComplete","dispatchEvent","style","requestAnimationFrame","animateWithGSAP","animateWithFrame","to","ease","_beginBySpeed","_callee","distance","onFinish","_this3","currDistance","speed","acc","_callee$","_context","deltaTime","min","_this3$frame","beginBySpeed","_x","_x2","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","handleGroundMatching","isMatch","includes","delete","_getMaterialByName","_callee2","_callee2$","_context2","getMaterial","getMaterialByName","_x3","_replaceMaterial","_callee3","materialName","_callee3$","_context3","userData","isMatched","originalMaterial","replaceMaterial","_x4","_x5","_x6","resetMaterial","_this4","traverse","child","mesh","some","matching","_mesh$parent","parent","_this5","matchingStrategy","realObject","generateRealObject","fresnelObject","clone","generateFresnelObject","pureObject","generatePureObject","frameObject","generateFrameObject","removeObject","get","box","box3","getSize","getCenter","plane","x","z","color","rotation","PI","position","geometry","dispose","expandByObject","vertices","getBoxVertices","maxDistance","calculateMaxDistance","max","_this6","reduce","vertex","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import type { Material, MeshPhysicalMaterial } from '@anov/3d-core'\nimport { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { SurfaceMaterial } from '../../'\nimport { finirheightTransitionEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\nexport enum SwitchType {\n Real = 'Real',\n Fresnel = 'Fresnel',\n Frame = 'Frame',\n Pure = 'Pure',\n}\n\ninterface MaterialSwitchOption {\n duration?: number\n center?: Vector3\n isApi?: boolean\n}\n\ninterface MaterialSwitchUniforms {\n progress: { value: number }\n isFresnelFadeIn: { value: boolean }\n isRealFadeIn: { value: boolean }\n isPureFadeIn: { value: boolean }\n isFrameFadeIn: { value: boolean }\n maxSize: { value: number }\n center: { value: Vector3 }\n time: { value: number }\n isApi: { value: boolean }\n height: { value: number }\n}\n\ntype RuleItem = {\n type: string\n keys: string[]\n material: string\n}\n\nconst DEFAULT_CENTER = new Vector3()\nconst GROUND_Y_OFFSET = -0.1\nconst SIZE_SCALE_FACTOR = 1.2\nconst GROUND_MATCHING = ['ground', 'floor']\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = SwitchType.Real\n public originalMaterial = new Map()\n public uniforms: MaterialSwitchUniforms\n\n private objects = new Map<string, Object3D>()\n private objectsMap: Record<MaterialSwitchType, Map<string, Object3D>> = {\n Real: new Map(),\n Frame: new Map(),\n Pure: new Map(),\n Fresnel: new Map(),\n }\n\n private frame: ReturnType<typeof use.useframe> | null = null\n private gsap: gsap.core.Tween | null = null\n private duration: number | undefined\n private center: Vector3\n private isGenPlane = false\n private rules: RuleItem[] = []\n\n constructor(options?: MaterialSwitchOption) {\n super()\n const { duration, center = DEFAULT_CENTER, isApi = false } = options ?? {}\n\n this.duration = duration\n this.center = center\n\n this.uniforms = this.initializeUniforms()\n this.uniforms.isApi.value = isApi\n this.initializeBuiltInShader()\n\n use.useframe(() => {\n this.uniforms.time.value += 0.00018\n this.uniforms.height.value -= 1\n })\n }\n\n private initializeUniforms(): MaterialSwitchUniforms {\n return {\n progress: { value: 1.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: true },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n center: { value: this.center },\n time: { value: 0 },\n height: { value: 0 },\n isApi: { value: false },\n }\n }\n\n private initializeBuiltInShader() {\n SurfaceMaterial.getMaterialAll()\n }\n\n private hideAllObjects(): void {\n Object.values(this.objectsMap).forEach((objectMap) => {\n objectMap.forEach((object) => {\n object.visible = false\n })\n })\n }\n\n private showObjectsByType(type: MaterialSwitchType): void {\n this.objectsMap[type].forEach((object) => {\n object.visible = true\n })\n }\n\n public switchType(type: MaterialSwitchType,\n option?:\n {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n rules?: RuleItem[]\n }): void {\n if (this.type === type)\n return\n\n const light = use.useScene().scene.getObjectByName('FresnelLight')\n\n if (light)\n light.removeFromParent()\n\n if (type !== SwitchType.Real) {\n const light = new AmbientLight(0xFFFFFF, 0.5)\n light.name = 'FresnelLight'\n use.useScene().scene.add(light)\n }\n\n this.rules = [{\n type: 'matchName',\n keys: [\n 'Tall',\n ],\n material: 'MfresnelGlow',\n },\n {\n type: 'matchName',\n keys: [\n 'Fence',\n ],\n material: 'Moriginal',\n }, ...option?.rules ?? []]\n\n this.handleApiOption(option)\n this.handleMatch(type)\n this.cleanupAnimations()\n this.prepareForSwitch(type)\n this.startSwitchAnimation(type)\n\n this.type = type\n }\n\n private handleApiOption(option: {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n }): void {\n const { mode = 'auto', duration = 2, center = [0, 0, 0], genPlane = true } = option ?? {}\n if (mode === 'auto')\n this.duration = undefined\n else\n this.duration = duration\n\n this.uniforms.center.value = new Vector3().fromArray(center)\n this.isGenPlane = genPlane\n }\n\n private cleanupAnimations(): void {\n this.frame?.()\n this.gsap?.kill()\n }\n\n private prepareForSwitch(newType: MaterialSwitchType): void {\n this.hideAllObjects()\n this.showObjectsByType(newType)\n this.showObjectsByType(this.type)\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${newType}FadeIn`].value = true\n }\n\n private startSwitchAnimation(newType: MaterialSwitchType): void {\n const lastType = this.type\n const size = this.getMaxSize()\n const totalTime = ((6 * size) / size) ** (1 / 3)\n\n const onComplete = () => {\n this.objectsMap[lastType].forEach((object) => {\n object.visible = false\n })\n this.dispatchEvent({ type: 'onStyleChanged', style: newType })\n }\n\n requestAnimationFrame(() => {\n if (this.duration)\n this.animateWithGSAP(onComplete)\n else\n this.animateWithFrame(totalTime, onComplete)\n })\n }\n\n private animateWithGSAP(onComplete: () => void): void {\n this.gsap = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: this.duration,\n ease: 'linear',\n onComplete,\n })\n }\n\n private async beginBySpeed(distance: number, onFinish?: () => void): Promise<void> {\n if (distance === 0)\n distance = 0.01\n\n let currDistance = 0\n let speed = 0\n let acc = 0\n\n this.frame = use.useframe((deltaTime) => {\n acc += distance * deltaTime\n speed += acc * deltaTime\n currDistance += speed * deltaTime\n\n this.uniforms.progress.value = Math.min(1, currDistance / distance)\n\n if (currDistance >= distance) {\n this.frame?.()\n onFinish?.()\n }\n })\n }\n\n private animateWithFrame(totalTime: number, onComplete: () => void): void {\n this.beginBySpeed(totalTime, onComplete)\n }\n\n public addObject(object: Object3D): void {\n this.switchType(SwitchType.Real)\n const uuid = this.getObjectUuid(object)\n this.objects.set(uuid, object)\n\n this.handleNormalObject(object, uuid)\n this.updateVisibility()\n }\n\n private getObjectUuid(object: Object3D): string {\n // @ts-ignore\n return object.tag === 'entity' ? object.entityId : object.uuid\n }\n\n private handleGroundObject(type: MaterialSwitchType): void {\n if (this.objectsMap[type].has('ground')) {\n this.updateGroundMesh(type)\n }\n else {\n const groundMesh = this.createGroundMesh()\n injectToGround(groundMesh, type, this.uniforms)\n this.objectsMap[type].set('ground', groundMesh)\n this.add(groundMesh)\n }\n }\n\n private handleGroundMatching(type: MaterialSwitchType) {\n let isMatch = false\n\n Object.values(this.objectsMap).slice(1).forEach((objectMap) => {\n objectMap.forEach((object) => {\n if (GROUND_MATCHING.includes(object.name)) {\n isMatch = true\n object.removeFromParent()\n objectMap.delete(object.uuid)\n }\n })\n })\n\n if (isMatch && type !== SwitchType.Real)\n this.handleGroundObject(type)\n }\n\n private async getMaterialByName(name: string) {\n const material = await SurfaceMaterial.getMaterial(name)\n\n return material\n }\n\n private async replaceMaterial(object: Mesh, materialName: string, type: string) {\n if (object.userData.isMatched)\n return\n\n if (materialName === 'MfresnelGlow') {\n object.material = finirheightTransitionEffect(object.material as Material, this.uniforms)\n }\n else if (materialName === 'Moriginal') {\n object.material = object.userData.originalMaterial\n }\n else {\n const material = await this.getMaterialByName(materialName)\n object.material = inject(material, type as 'Fresnel' | 'Frame' | 'Pure', this.uniforms) as MeshPhysicalMaterial\n }\n\n object.userData.isMatched = true\n }\n\n private resetMaterial(object: Mesh, type: MaterialSwitchType) {\n this[`generate${type}Object`](object)\n }\n\n private handleNameMatching(rule: RuleItem, type: MaterialSwitchType) {\n const { keys, material } = rule\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n const mesh = child as Mesh\n\n if (keys.some(matching => mesh.name.includes(matching) || mesh?.parent?.name.includes(matching)))\n this.replaceMaterial(mesh, material, type)\n }\n })\n })\n }\n\n private handleSizeMatching(rule: RuleItem, type: MaterialSwitchType) {}\n\n private matchingStrategy = {\n matchSize: (rule: RuleItem, type: MaterialSwitchType) => this.handleSizeMatching(rule, type),\n matchName: (rule: RuleItem, type: MaterialSwitchType) => this.handleNameMatching(rule, type),\n }\n\n private handleMatch(type: MaterialSwitchType) {\n if (this.isGenPlane)\n this.handleGroundMatching(type)\n\n if (type === SwitchType.Real)\n return\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.userData.isMatched)\n this.resetMaterial(child as Mesh, type)\n }\n\n child.userData.isMatched = false\n })\n })\n\n if (this.rules.length > 0) {\n this.rules.forEach((rule) => {\n this.matchingStrategy[rule.type](rule, type)\n })\n }\n }\n\n private handleNormalObject(object: Object3D, uuid: string): void {\n const realObject = object\n this.generateRealObject(realObject)\n this.objectsMap.Real.set(uuid, realObject)\n this.add(realObject)\n\n const fresnelObject = object.clone()\n this.generateFresnelObject(fresnelObject)\n this.objectsMap.Fresnel.set(uuid, fresnelObject)\n this.add(fresnelObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.objectsMap.Pure.set(uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.objectsMap.Frame.set(uuid, frameObject)\n this.add(frameObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n public removeObject(object: Object3D): void {\n const uuid = this.getObjectUuid(object)\n this.objects.delete(uuid)\n\n Object.values(this.objectsMap).forEach((objectMap) => {\n const obj = objectMap.get(uuid)\n if (obj) {\n obj.removeFromParent()\n objectMap.delete(uuid)\n }\n })\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n private createGroundMesh(): Mesh {\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3())\n\n const plane = new PlaneGeometry(size.x, size.z)\n const material = new MeshBasicMaterial({ color: new Color('#fff') })\n const mesh = new Mesh(plane, material)\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(center.x, GROUND_Y_OFFSET, center.z)\n\n return mesh\n }\n\n private updateGroundMesh(type: MaterialSwitchType): void {\n if (!this.objectsMap[type].has('ground'))\n return\n\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3());\n\n (this.objectsMap[type].get('ground') as Mesh).geometry.dispose();\n (this.objectsMap[type].get('ground') as Mesh).geometry = new PlaneGeometry(size.x, size.z);\n (this.objectsMap[type].get('ground') as Mesh).position.set(center.x, GROUND_Y_OFFSET, center.z)\n }\n\n private get box3(): Box3 {\n const box3 = new Box3()\n this.objectsMap.Real.forEach((object) => {\n box3.expandByObject(object)\n })\n return box3\n }\n\n private getMaxSize(): number {\n const box3 = this.box3\n const vertices = this.getBoxVertices(box3)\n const maxDistance = this.calculateMaxDistance(vertices)\n return maxDistance * SIZE_SCALE_FACTOR\n }\n\n private getBoxVertices(box3: Box3): Vector3[] {\n return [\n new Vector3(box3.min.x, box3.min.y, box3.min.z),\n new Vector3(box3.min.x, box3.min.y, box3.max.z),\n new Vector3(box3.min.x, box3.max.y, box3.min.z),\n new Vector3(box3.min.x, box3.max.y, box3.max.z),\n new Vector3(box3.max.x, box3.min.y, box3.min.z),\n new Vector3(box3.max.x, box3.min.y, box3.max.z),\n new Vector3(box3.max.x, box3.max.y, box3.min.z),\n new Vector3(box3.max.x, box3.max.y, box3.max.z),\n ]\n }\n\n private calculateMaxDistance(vertices: Vector3[]): number {\n return vertices.reduce((max, vertex) => {\n const distance = this.center.distanceTo(vertex)\n return Math.max(max, distance)\n }, 0)\n }\n\n private generateFresnelObject(object: Object3D): void {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n private generateRealObject(object: Object3D): void {\n injectToRealFade(object, this.uniforms)\n }\n\n private generatePureObject(object: Object3D): void {\n injectToBaseWrite(object, this.uniforms)\n }\n\n private generateFrameObject(object: Object3D): void {\n injectToFrameFade(object, this.uniforms)\n }\n\n private updateVisibility(): void {\n this.hideAllObjects()\n this.showObjectsByType(SwitchType.Real)\n }\n}\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","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","AmbientLight","Box3","Color","Mesh","MeshBasicMaterial","Object3D","PlaneGeometry","Vector3","gsap","use","SurfaceMaterial","finirheightTransitionEffect","finirlowEffect","inject","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToGround","injectToRealFade","SwitchType","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_Object3D","_super","options","_this","Real","Map","Frame","Pure","Fresnel","matchSize","rule","handleSizeMatching","matchName","handleNameMatching","_ref","duration","_ref$center","center","_ref$isApi","isApi","uniforms","initializeUniforms","initializeBuiltInShader","useframe","time","height","progress","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","getMaterialAll","hideAllObjects","objectsMap","objectMap","object","visible","showObjectsByType","switchType","option","_option$rules","light","useScene","scene","getObjectByName","removeFromParent","add","intensity","rules","material","limit","handleApiOption","handleMatch","cleanupAnimations","prepareForSwitch","startSwitchAnimation","_ref2","_ref2$mode","mode","_ref2$duration","_ref2$center","_ref2$genPlane","genPlane","fromArray","isGenPlane","_this$frame","_this$gsap","frame","kill","newType","groundObject","get","lastGroundObject","userData","isVisible","concat","_this2","lastType","onComplete","dispatchEvent","style","requestAnimationFrame","animateWithGSAP","animateWithFrame","to","ease","_beginBySpeed","_callee","distance","onFinish","_this3","currDistance","speed","acc","_callee$","_context","deltaTime","Math","min","_this3$frame","beginBySpeed","_x","_x2","getMaxSize","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","handleGroundMatching","_this4","isMatch","traverse","child","some","matching","includes","_getMaterialByName","_callee2","_callee2$","_context2","getMaterial","getMaterialByName","_x3","_replaceMaterial","_callee3","materialName","_callee3$","_context3","isMatched","originalMaterial","replaceMaterial","_x4","_x5","_x6","_x7","resetMaterial","_this5","_rule$material","keysArray","mesh","_mesh$parent","parent","_this6","matchingStrategy","realObject","generateRealObject","fresnelObject","clone","generateFresnelObject","pureObject","generatePureObject","frameObject","generateFrameObject","removeObject","delete","box","box3","size","getSize","getCenter","plane","x","z","color","rotation","PI","position","geometry","dispose","expandByObject","vertices","getBoxVertices","maxDistance","calculateMaxDistance","max","_this7","reduce","vertex","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import type { Material, MeshPhysicalMaterial } from '@anov/3d-core'\nimport { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { SurfaceMaterial } from '../../'\nimport { finirheightTransitionEffect, finirlowEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\n\nexport enum SwitchType {\n Real = 'Real',\n Fresnel = 'Fresnel',\n Frame = 'Frame',\n Pure = 'Pure',\n}\n\ninterface MaterialSwitchOption {\n duration?: number\n center?: Vector3\n isApi?: boolean\n}\n\ninterface MaterialSwitchUniforms {\n progress: { value: number }\n isFresnelFadeIn: { value: boolean }\n isRealFadeIn: { value: boolean }\n isPureFadeIn: { value: boolean }\n isFrameFadeIn: { value: boolean }\n maxSize: { value: number }\n center: { value: Vector3 }\n time: { value: number }\n isApi: { value: boolean }\n height: { value: number }\n}\n\ntype RuleItem = {\n type: string\n keys: string[] | string\n material: string\n limit?: SwitchType\n}\n\nconst DEFAULT_CENTER = new Vector3()\nconst GROUND_Y_OFFSET = -0.1\nconst SIZE_SCALE_FACTOR = 1.2\nconst GROUND_MATCHING = ['Ground', 'Road', 'Yard']\n\n/**\n * 材质切换系统\n */\nexport class MaterialSwitchSystem extends Object3D implements MaterialSwitchSystemInterface {\n public type: MaterialSwitchType = SwitchType.Real\n public originalMaterial = new Map()\n public uniforms: MaterialSwitchUniforms\n\n private objects = new Map<string, Object3D>()\n private objectsMap: Record<MaterialSwitchType, Map<string, Object3D>> = {\n Real: new Map(),\n Frame: new Map(),\n Pure: new Map(),\n Fresnel: new Map(),\n }\n\n private frame: ReturnType<typeof use.useframe> | null = null\n private gsap: gsap.core.Tween | null = null\n private duration: number | undefined\n private center: Vector3\n private isGenPlane = false\n private rules: RuleItem[] = []\n\n constructor(options?: MaterialSwitchOption) {\n super()\n const { duration, center = DEFAULT_CENTER, isApi = false } = options ?? {}\n\n this.duration = duration\n this.center = center\n\n this.uniforms = this.initializeUniforms()\n this.uniforms.isApi.value = isApi\n this.initializeBuiltInShader()\n\n use.useframe(() => {\n this.uniforms.time.value += 0.00018\n this.uniforms.height.value -= 1\n })\n }\n\n private initializeUniforms(): MaterialSwitchUniforms {\n return {\n progress: { value: 1.0 },\n isFresnelFadeIn: { value: false },\n isRealFadeIn: { value: true },\n isPureFadeIn: { value: false },\n isFrameFadeIn: { value: false },\n maxSize: { value: 0 },\n center: { value: this.center },\n time: { value: 0 },\n height: { value: 0 },\n isApi: { value: false },\n }\n }\n\n private initializeBuiltInShader() {\n SurfaceMaterial.getMaterialAll()\n }\n\n private hideAllObjects(): void {\n Object.values(this.objectsMap).forEach((objectMap) => {\n objectMap.forEach((object) => {\n object.visible = false\n })\n })\n }\n\n private showObjectsByType(type: MaterialSwitchType): void {\n this.objectsMap[type].forEach((object) => {\n object.visible = true\n })\n }\n\n public switchType(type: MaterialSwitchType,\n option?:\n {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n rules?: RuleItem[]\n }): void {\n if (this.type === type)\n return\n\n const light = use.useScene().scene.getObjectByName('FresnelLight')\n\n if (light)\n light.removeFromParent()\n\n if (type !== SwitchType.Real) {\n const light = new AmbientLight(0xFFFFFF, 1.5)\n light.name = 'FresnelLight'\n use.useScene().scene.add(light)\n\n if (type === SwitchType.Pure)\n light.intensity = 0.5\n }\n\n if (option?.rules?.length > 0) {\n this.rules = option.rules\n }\n else {\n this.rules = [{\n type: 'matchName',\n keys: [\n 'Tall',\n ],\n material: 'MfresnelGlow',\n },\n {\n type: 'matchName',\n keys: [\n 'Fence',\n ],\n material: 'Moriginal',\n },\n {\n type: 'matchName',\n keys: [\n 'Low',\n ],\n material: 'MlowFinir',\n },\n {\n type: 'matchName',\n keys: [\n 'Window',\n ],\n material: 'Fresnel_Transparent',\n limit: SwitchType.Fresnel,\n }]\n }\n\n this.handleApiOption(option)\n this.handleMatch(type)\n this.cleanupAnimations()\n this.prepareForSwitch(type)\n this.startSwitchAnimation(type)\n\n this.type = type\n }\n\n private handleApiOption(option: {\n mode: 'auto' | 'time'\n duration?: number\n center?: number[]\n genPlane?: boolean\n }): void {\n const { mode = 'auto', duration = 2, center = [0, 0, 0], genPlane = true } = option ?? {}\n if (mode === 'auto')\n this.duration = undefined\n else\n this.duration = duration\n\n this.uniforms.center.value = new Vector3().fromArray(center)\n this.isGenPlane = genPlane\n }\n\n private cleanupAnimations(): void {\n this.frame?.()\n this.gsap?.kill()\n }\n\n private prepareForSwitch(newType: MaterialSwitchType): void {\n this.hideAllObjects()\n this.showObjectsByType(newType)\n this.showObjectsByType(this.type)\n\n const groundObject = this.objectsMap[newType].get('ground')\n const lastGroundObject = this.objectsMap[this.type].get('ground')\n\n if (groundObject)\n groundObject.visible = this.isGenPlane\n if (lastGroundObject)\n lastGroundObject.visible = lastGroundObject.userData.isVisible\n\n this.uniforms.progress.value = 0.0\n this.uniforms[`is${this.type}FadeIn`].value = false\n this.uniforms[`is${newType}FadeIn`].value = true\n }\n\n private startSwitchAnimation(newType: MaterialSwitchType): void {\n const lastType = this.type\n\n const onComplete = () => {\n this.objectsMap[lastType].forEach((object) => {\n object.visible = false\n })\n this.dispatchEvent({ type: 'onStyleChanged', style: newType })\n }\n\n requestAnimationFrame(() => {\n if (this.duration)\n this.animateWithGSAP(onComplete)\n else\n this.animateWithFrame(onComplete)\n })\n }\n\n private animateWithGSAP(onComplete: () => void): void {\n this.gsap = gsap.to(this.uniforms.progress, {\n value: 1.0,\n duration: this.duration,\n ease: 'linear',\n onComplete,\n })\n }\n\n private async beginBySpeed(distance: number, onFinish?: () => void): Promise<void> {\n if (distance === 0)\n distance = 0.01\n\n let currDistance = 0\n let speed = 0\n let acc = 0\n\n this.frame = use.useframe((deltaTime) => {\n acc += distance * deltaTime\n speed += acc * deltaTime\n currDistance += speed * deltaTime\n\n this.uniforms.progress.value = Math.min(1, currDistance / distance)\n\n if (currDistance >= distance) {\n this.frame?.()\n onFinish?.()\n }\n })\n }\n\n private animateWithFrame(onComplete: () => void): void {\n this.beginBySpeed(this.getMaxSize(), onComplete)\n }\n\n public addObject(object: Object3D): void {\n this.switchType(SwitchType.Real)\n const uuid = this.getObjectUuid(object)\n this.objects.set(uuid, object)\n\n this.handleNormalObject(object, uuid)\n this.updateVisibility()\n }\n\n private getObjectUuid(object: Object3D): string {\n // @ts-ignore\n return object.tag === 'entity' ? object.entityId : object.uuid\n }\n\n private handleGroundObject(type: MaterialSwitchType): void {\n if (this.objectsMap[type].has('ground')) {\n this.updateGroundMesh(type)\n }\n else {\n const groundMesh = this.createGroundMesh()\n injectToGround(groundMesh, type, this.uniforms)\n this.objectsMap[type].set('ground', groundMesh)\n this.add(groundMesh)\n }\n\n const groundObject = this.objectsMap[type].get('ground')\n\n if (groundObject)\n this.isGenPlane ? groundObject.userData.isVisible = true : groundObject.userData.isVisible = false\n }\n\n private handleGroundMatching(type: MaterialSwitchType) {\n if (type === SwitchType.Real)\n return\n\n let isMatch = false\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (GROUND_MATCHING.some(matching => child.name.includes(matching))) {\n if (this.isGenPlane)\n child.visible = false\n else\n child.visible = true\n\n isMatch = true\n }\n })\n })\n\n if (isMatch)\n this.handleGroundObject(type)\n }\n\n private async getMaterialByName(name: string) {\n const material = await SurfaceMaterial.getMaterial(name)\n\n return material\n }\n\n private async replaceMaterial(object: Mesh, materialName: string, type: string, limit?: SwitchType) {\n if (object.userData.isMatched)\n return\n\n if (materialName === 'MfresnelGlow') {\n if (type === SwitchType.Fresnel)\n object.material = finirheightTransitionEffect(object.material as Material, this.uniforms)\n }\n else if (materialName === 'Moriginal' || !materialName) {\n object.material = object.userData.originalMaterial\n }\n else if (materialName === 'MlowFinir') {\n if (type === SwitchType.Fresnel)\n object.material = finirlowEffect(object.material as Material, this.uniforms)\n }\n else {\n if (limit && limit !== type)\n return\n\n const material = await this.getMaterialByName(materialName)\n object.material = inject(material, type as 'Fresnel' | 'Frame' | 'Pure', this.uniforms) as MeshPhysicalMaterial\n }\n\n object.userData.isMatched = true\n }\n\n private resetMaterial(object: Mesh, type: MaterialSwitchType) {\n this[`generate${type}Object`](object)\n }\n\n private handleNameMatching(rule: RuleItem, type: MaterialSwitchType) {\n const { keys, material = 'Moriginal' } = rule\n let keysArray = []\n\n if (typeof keys === 'string')\n keysArray = [keys]\n else\n keysArray = keys\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n const mesh = child as Mesh\n\n if (keysArray.some(matching => mesh.name.includes(matching) || mesh?.parent?.name.includes(matching)))\n this.replaceMaterial(mesh, material, type, rule.limit)\n }\n })\n })\n }\n\n private handleSizeMatching(rule: RuleItem, type: MaterialSwitchType) {}\n\n private matchingStrategy = {\n matchSize: (rule: RuleItem, type: MaterialSwitchType) => this.handleSizeMatching(rule, type),\n matchName: (rule: RuleItem, type: MaterialSwitchType) => this.handleNameMatching(rule, type),\n }\n\n private handleMatch(type: MaterialSwitchType) {\n this.handleGroundMatching(type)\n\n if (type === SwitchType.Real)\n return\n\n this.objectsMap[type].forEach((object) => {\n object.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.userData.isMatched)\n this.resetMaterial(child as Mesh, type)\n }\n\n child.userData.isMatched = false\n })\n })\n\n if (this.rules.length > 0) {\n this.rules.forEach((rule) => {\n this.matchingStrategy[rule.type](rule, type)\n })\n }\n }\n\n private handleNormalObject(object: Object3D, uuid: string): void {\n const realObject = object\n this.generateRealObject(realObject)\n this.objectsMap.Real.set(uuid, realObject)\n this.add(realObject)\n\n const fresnelObject = object.clone()\n this.generateFresnelObject(fresnelObject)\n this.objectsMap.Fresnel.set(uuid, fresnelObject)\n this.add(fresnelObject)\n\n const pureObject = object.clone()\n this.generatePureObject(pureObject)\n this.objectsMap.Pure.set(uuid, pureObject)\n this.add(pureObject)\n\n const frameObject = object.clone()\n this.generateFrameObject(frameObject)\n this.objectsMap.Frame.set(uuid, frameObject)\n this.add(frameObject)\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n public removeObject(object: Object3D): void {\n const uuid = this.getObjectUuid(object)\n this.objects.delete(uuid)\n\n Object.values(this.objectsMap).forEach((objectMap) => {\n const obj = objectMap.get(uuid)\n if (obj) {\n obj.removeFromParent()\n objectMap.delete(uuid)\n }\n })\n\n this.uniforms.maxSize.value = this.getMaxSize()\n }\n\n private createGroundMesh(): Mesh {\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3())\n\n const plane = new PlaneGeometry(size.x, size.z)\n const material = new MeshBasicMaterial({ color: new Color('#fff') })\n const mesh = new Mesh(plane, material)\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(center.x, GROUND_Y_OFFSET, center.z)\n\n return mesh\n }\n\n private updateGroundMesh(type: MaterialSwitchType): void {\n if (!this.objectsMap[type].has('ground'))\n return\n\n const box = this.box3\n const size = box.getSize(new Vector3())\n const center = box.getCenter(new Vector3());\n\n (this.objectsMap[type].get('ground') as Mesh).geometry.dispose();\n (this.objectsMap[type].get('ground') as Mesh).geometry = new PlaneGeometry(size.x, size.z);\n (this.objectsMap[type].get('ground') as Mesh).position.set(center.x, GROUND_Y_OFFSET, center.z)\n }\n\n private get box3(): Box3 {\n const box3 = new Box3()\n this.objectsMap.Real.forEach((object) => {\n box3.expandByObject(object)\n })\n return box3\n }\n\n private getMaxSize(): number {\n const box3 = this.box3\n const vertices = this.getBoxVertices(box3)\n const maxDistance = this.calculateMaxDistance(vertices)\n return maxDistance * SIZE_SCALE_FACTOR\n }\n\n private getBoxVertices(box3: Box3): Vector3[] {\n return [\n new Vector3(box3.min.x, box3.min.y, box3.min.z),\n new Vector3(box3.min.x, box3.min.y, box3.max.z),\n new Vector3(box3.min.x, box3.max.y, box3.min.z),\n new Vector3(box3.min.x, box3.max.y, box3.max.z),\n new Vector3(box3.max.x, box3.min.y, box3.min.z),\n new Vector3(box3.max.x, box3.min.y, box3.max.z),\n new Vector3(box3.max.x, box3.max.y, box3.min.z),\n new Vector3(box3.max.x, box3.max.y, box3.max.z),\n ]\n }\n\n private calculateMaxDistance(vertices: Vector3[]): number {\n return vertices.reduce((max, vertex) => {\n const distance = this.center.distanceTo(vertex)\n return Math.max(max, distance)\n }, 0)\n }\n\n private generateFresnelObject(object: Object3D): void {\n injectToFinirMaterial(object, this.uniforms)\n }\n\n private generateRealObject(object: Object3D): void {\n injectToRealFade(object, this.uniforms)\n }\n\n private generatePureObject(object: Object3D): void {\n injectToBaseWrite(object, this.uniforms)\n }\n\n private generateFrameObject(object: Object3D): void {\n injectToFrameFade(object, this.uniforms)\n }\n\n private updateVisibility(): void {\n this.hideAllObjects()\n this.showObjectsByType(SwitchType.Real)\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,4 @@
1
1
  import type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core';
2
- export declare const frameMaterialCache: any[];
3
- export declare const realMaterialCache: any[];
4
- export declare const pureMaterialCache: any[];
5
- export declare const fresnelMaterialCache: any[];
6
- export declare const groundMaterialCache: any[];
7
- export declare const disposeMaterial: (material: any) => void;
8
2
  /**
9
3
  * inject to final fade
10
4
  * @param object
@@ -130,3 +124,20 @@ export declare const finirheightTransitionEffect: (material: Material, uniforms:
130
124
  value: boolean;
131
125
  };
132
126
  }) => Material;
127
+ export declare const finirlowEffect: (material: Material, uniforms: {
128
+ height: {
129
+ value: number;
130
+ };
131
+ maxSize: {
132
+ value: number;
133
+ };
134
+ center: {
135
+ value: Vector3;
136
+ };
137
+ progress: {
138
+ value: number;
139
+ };
140
+ isFresnelFadeIn: {
141
+ value: boolean;
142
+ };
143
+ }) => Material;