@anov/3d-ability 0.0.110 → 0.0.112
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/business/MaterialSwitch/MaterialSwitchSystem.d.ts +14 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +149 -29
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.d.ts +26 -6
- package/dist/business/MaterialSwitch/inject.js +102 -30
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +1 -2
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.d.ts +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.d.ts +1 -0
- package/dist/core/Material/SurfaceMaterial/index.js +54 -11
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +8 -5
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/package.json +1 -1
|
@@ -34,7 +34,15 @@ interface MaterialSwitchUniforms {
|
|
|
34
34
|
isApi: {
|
|
35
35
|
value: boolean;
|
|
36
36
|
};
|
|
37
|
+
height: {
|
|
38
|
+
value: number;
|
|
39
|
+
};
|
|
37
40
|
}
|
|
41
|
+
type RuleItem = {
|
|
42
|
+
type: string;
|
|
43
|
+
keys: string[];
|
|
44
|
+
material: string;
|
|
45
|
+
};
|
|
38
46
|
/**
|
|
39
47
|
* 材质切换系统
|
|
40
48
|
*/
|
|
@@ -52,6 +60,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
|
|
|
52
60
|
private rules;
|
|
53
61
|
constructor(options?: MaterialSwitchOption);
|
|
54
62
|
private initializeUniforms;
|
|
63
|
+
private initializeBuiltInShader;
|
|
55
64
|
private hideAllObjects;
|
|
56
65
|
private showObjectsByType;
|
|
57
66
|
switchType(type: MaterialSwitchType, option?: {
|
|
@@ -59,6 +68,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
|
|
|
59
68
|
duration?: number;
|
|
60
69
|
center?: number[];
|
|
61
70
|
genPlane?: boolean;
|
|
71
|
+
rules?: RuleItem[];
|
|
62
72
|
}): void;
|
|
63
73
|
private handleApiOption;
|
|
64
74
|
private cleanupAnimations;
|
|
@@ -70,6 +80,9 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
|
|
|
70
80
|
private getObjectUuid;
|
|
71
81
|
private handleGroundObject;
|
|
72
82
|
private handleGroundMatching;
|
|
83
|
+
private getMaterialByName;
|
|
84
|
+
private replaceMaterial;
|
|
85
|
+
private resetMaterial;
|
|
73
86
|
private handleNameMatching;
|
|
74
87
|
private handleSizeMatching;
|
|
75
88
|
private matchingStrategy;
|
|
@@ -82,7 +95,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
|
|
|
82
95
|
private getMaxSize;
|
|
83
96
|
private getBoxVertices;
|
|
84
97
|
private calculateMaxDistance;
|
|
85
|
-
private
|
|
98
|
+
private generateFresnelObject;
|
|
86
99
|
private generateRealObject;
|
|
87
100
|
private generatePureObject;
|
|
88
101
|
private generateFrameObject;
|
|
@@ -1,4 +1,13 @@
|
|
|
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; }
|
|
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
|
+
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; }
|
|
2
11
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
12
|
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); } }
|
|
4
13
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
@@ -12,8 +21,9 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
12
21
|
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; }
|
|
13
22
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
23
|
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); }
|
|
15
|
-
import { Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core';
|
|
16
|
-
import {
|
|
24
|
+
import { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core';
|
|
25
|
+
import { SurfaceMaterial } from "../../";
|
|
26
|
+
import { finirheightTransitionEffect, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from "./inject";
|
|
17
27
|
var DEFAULT_CENTER = new Vector3();
|
|
18
28
|
var GROUND_Y_OFFSET = -0.1;
|
|
19
29
|
var SIZE_SCALE_FACTOR = 1.2;
|
|
@@ -46,11 +56,11 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
46
56
|
_defineProperty(_assertThisInitialized(_this), "isGenPlane", false);
|
|
47
57
|
_defineProperty(_assertThisInitialized(_this), "rules", []);
|
|
48
58
|
_defineProperty(_assertThisInitialized(_this), "matchingStrategy", {
|
|
49
|
-
matchSize: function matchSize(rule) {
|
|
50
|
-
return _this.handleSizeMatching(rule);
|
|
59
|
+
matchSize: function matchSize(rule, type) {
|
|
60
|
+
return _this.handleSizeMatching(rule, type);
|
|
51
61
|
},
|
|
52
|
-
matchName: function matchName(rule) {
|
|
53
|
-
return _this.handleNameMatching(rule);
|
|
62
|
+
matchName: function matchName(rule, type) {
|
|
63
|
+
return _this.handleNameMatching(rule, type);
|
|
54
64
|
}
|
|
55
65
|
});
|
|
56
66
|
var _ref = options !== null && options !== void 0 ? options : {},
|
|
@@ -63,8 +73,10 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
63
73
|
_this.center = center;
|
|
64
74
|
_this.uniforms = _this.initializeUniforms();
|
|
65
75
|
_this.uniforms.isApi.value = isApi;
|
|
76
|
+
_this.initializeBuiltInShader();
|
|
66
77
|
use.useframe(function () {
|
|
67
78
|
_this.uniforms.time.value += 0.00018;
|
|
79
|
+
_this.uniforms.height.value -= 1;
|
|
68
80
|
});
|
|
69
81
|
return _this;
|
|
70
82
|
}
|
|
@@ -96,11 +108,19 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
96
108
|
time: {
|
|
97
109
|
value: 0
|
|
98
110
|
},
|
|
111
|
+
height: {
|
|
112
|
+
value: 0
|
|
113
|
+
},
|
|
99
114
|
isApi: {
|
|
100
115
|
value: false
|
|
101
116
|
}
|
|
102
117
|
};
|
|
103
118
|
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "initializeBuiltInShader",
|
|
121
|
+
value: function initializeBuiltInShader() {
|
|
122
|
+
SurfaceMaterial.getMaterialAll();
|
|
123
|
+
}
|
|
104
124
|
}, {
|
|
105
125
|
key: "hideAllObjects",
|
|
106
126
|
value: function hideAllObjects() {
|
|
@@ -120,7 +140,25 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
120
140
|
}, {
|
|
121
141
|
key: "switchType",
|
|
122
142
|
value: function switchType(type, option) {
|
|
143
|
+
var _option$rules;
|
|
123
144
|
if (this.type === type) return;
|
|
145
|
+
if (type === 'Fresnel') {
|
|
146
|
+
var light = new AmbientLight(0xFFFFFF, 1.5);
|
|
147
|
+
light.name = 'FresnelLight';
|
|
148
|
+
use.useScene().scene.add(light);
|
|
149
|
+
} else {
|
|
150
|
+
var _light = use.useScene().scene.getObjectByName('FresnelLight');
|
|
151
|
+
if (_light) _light.removeFromParent();
|
|
152
|
+
}
|
|
153
|
+
this.rules = [{
|
|
154
|
+
type: 'matchName',
|
|
155
|
+
keys: ['Tall'],
|
|
156
|
+
material: 'MfresnelGlow'
|
|
157
|
+
}, {
|
|
158
|
+
type: 'matchName',
|
|
159
|
+
keys: ['Fence'],
|
|
160
|
+
material: 'Moriginal'
|
|
161
|
+
}].concat(_toConsumableArray((_option$rules = option === null || option === void 0 ? void 0 : option.rules) !== null && _option$rules !== void 0 ? _option$rules : []));
|
|
124
162
|
this.handleApiOption(option);
|
|
125
163
|
this.handleMatch(type);
|
|
126
164
|
this.cleanupAnimations();
|
|
@@ -240,7 +278,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
240
278
|
Object.values(this.objectsMap).slice(1).forEach(function (objectMap) {
|
|
241
279
|
objectMap.forEach(function (object) {
|
|
242
280
|
if (GROUND_MATCHING.some(function (matching) {
|
|
243
|
-
return object.name.
|
|
281
|
+
return object.name.toLowerCase().startsWith(matching);
|
|
244
282
|
})) {
|
|
245
283
|
isMatch = true;
|
|
246
284
|
object.removeFromParent();
|
|
@@ -250,39 +288,121 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
250
288
|
});
|
|
251
289
|
if (isMatch && type !== 'Real') this.handleGroundObject(type);
|
|
252
290
|
}
|
|
291
|
+
}, {
|
|
292
|
+
key: "getMaterialByName",
|
|
293
|
+
value: function () {
|
|
294
|
+
var _getMaterialByName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(name) {
|
|
295
|
+
var material;
|
|
296
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
297
|
+
while (1) switch (_context.prev = _context.next) {
|
|
298
|
+
case 0:
|
|
299
|
+
_context.next = 2;
|
|
300
|
+
return SurfaceMaterial.getMaterial(name);
|
|
301
|
+
case 2:
|
|
302
|
+
material = _context.sent;
|
|
303
|
+
return _context.abrupt("return", material);
|
|
304
|
+
case 4:
|
|
305
|
+
case "end":
|
|
306
|
+
return _context.stop();
|
|
307
|
+
}
|
|
308
|
+
}, _callee);
|
|
309
|
+
}));
|
|
310
|
+
function getMaterialByName(_x) {
|
|
311
|
+
return _getMaterialByName.apply(this, arguments);
|
|
312
|
+
}
|
|
313
|
+
return getMaterialByName;
|
|
314
|
+
}()
|
|
315
|
+
}, {
|
|
316
|
+
key: "replaceMaterial",
|
|
317
|
+
value: function () {
|
|
318
|
+
var _replaceMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(object, materialName, type) {
|
|
319
|
+
var material;
|
|
320
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
321
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
322
|
+
case 0:
|
|
323
|
+
if (!object.userData.isMatched) {
|
|
324
|
+
_context2.next = 2;
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
return _context2.abrupt("return");
|
|
328
|
+
case 2:
|
|
329
|
+
if (!(materialName === 'MfresnelGlow')) {
|
|
330
|
+
_context2.next = 6;
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
object.material = finirheightTransitionEffect(object.material, this.uniforms);
|
|
334
|
+
_context2.next = 14;
|
|
335
|
+
break;
|
|
336
|
+
case 6:
|
|
337
|
+
if (!(materialName === 'Moriginal')) {
|
|
338
|
+
_context2.next = 10;
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
object.material = object.userData.originalMaterial;
|
|
342
|
+
_context2.next = 14;
|
|
343
|
+
break;
|
|
344
|
+
case 10:
|
|
345
|
+
_context2.next = 12;
|
|
346
|
+
return this.getMaterialByName(materialName);
|
|
347
|
+
case 12:
|
|
348
|
+
material = _context2.sent;
|
|
349
|
+
object.material = inject(material, type, this.uniforms);
|
|
350
|
+
case 14:
|
|
351
|
+
object.userData.isMatched = true;
|
|
352
|
+
case 15:
|
|
353
|
+
case "end":
|
|
354
|
+
return _context2.stop();
|
|
355
|
+
}
|
|
356
|
+
}, _callee2, this);
|
|
357
|
+
}));
|
|
358
|
+
function replaceMaterial(_x2, _x3, _x4) {
|
|
359
|
+
return _replaceMaterial.apply(this, arguments);
|
|
360
|
+
}
|
|
361
|
+
return replaceMaterial;
|
|
362
|
+
}()
|
|
363
|
+
}, {
|
|
364
|
+
key: "resetMaterial",
|
|
365
|
+
value: function resetMaterial(object, type) {
|
|
366
|
+
this["generate".concat(type, "Object")](object);
|
|
367
|
+
}
|
|
253
368
|
}, {
|
|
254
369
|
key: "handleNameMatching",
|
|
255
|
-
value: function handleNameMatching(rule) {
|
|
370
|
+
value: function handleNameMatching(rule, type) {
|
|
371
|
+
var _this4 = this;
|
|
256
372
|
var keys = rule.keys,
|
|
257
373
|
material = rule.material;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
object.removeFromParent();
|
|
267
|
-
objectMap.delete(object.uuid);
|
|
374
|
+
this.objectsMap[type].forEach(function (object) {
|
|
375
|
+
object.traverse(function (child) {
|
|
376
|
+
if (child.type === 'Mesh') {
|
|
377
|
+
var mesh = child;
|
|
378
|
+
if (keys.some(function (matching) {
|
|
379
|
+
var _mesh$parent;
|
|
380
|
+
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));
|
|
381
|
+
})) _this4.replaceMaterial(mesh, material, type);
|
|
268
382
|
}
|
|
269
383
|
});
|
|
270
384
|
});
|
|
271
|
-
if (isMatch) {
|
|
272
|
-
// handle object to other material
|
|
273
|
-
}
|
|
274
385
|
}
|
|
275
386
|
}, {
|
|
276
387
|
key: "handleSizeMatching",
|
|
277
|
-
value: function handleSizeMatching(rule) {}
|
|
388
|
+
value: function handleSizeMatching(rule, type) {}
|
|
278
389
|
}, {
|
|
279
390
|
key: "handleMatch",
|
|
280
391
|
value: function handleMatch(type) {
|
|
281
|
-
var
|
|
392
|
+
var _this5 = this;
|
|
282
393
|
if (this.isGenPlane) this.handleGroundMatching(type);
|
|
394
|
+
if (type === 'Real') return;
|
|
395
|
+
this.objectsMap[type].forEach(function (object) {
|
|
396
|
+
object.traverse(function (child) {
|
|
397
|
+
if (child.type === 'Mesh') {
|
|
398
|
+
if (child.userData.isMatched) _this5.resetMaterial(child, type);
|
|
399
|
+
}
|
|
400
|
+
child.userData.isMatched = false;
|
|
401
|
+
});
|
|
402
|
+
});
|
|
283
403
|
if (this.rules.length > 0) {
|
|
284
404
|
this.rules.forEach(function (rule) {
|
|
285
|
-
|
|
405
|
+
_this5.matchingStrategy[rule.type](rule, type);
|
|
286
406
|
});
|
|
287
407
|
}
|
|
288
408
|
}
|
|
@@ -294,7 +414,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
294
414
|
this.objectsMap.Real.set(uuid, realObject);
|
|
295
415
|
this.add(realObject);
|
|
296
416
|
var fresnelObject = object.clone();
|
|
297
|
-
this.
|
|
417
|
+
this.generateFresnelObject(fresnelObject);
|
|
298
418
|
this.objectsMap.Fresnel.set(uuid, fresnelObject);
|
|
299
419
|
this.add(fresnelObject);
|
|
300
420
|
var pureObject = object.clone();
|
|
@@ -372,15 +492,15 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
|
|
|
372
492
|
}, {
|
|
373
493
|
key: "calculateMaxDistance",
|
|
374
494
|
value: function calculateMaxDistance(vertices) {
|
|
375
|
-
var
|
|
495
|
+
var _this6 = this;
|
|
376
496
|
return vertices.reduce(function (max, vertex) {
|
|
377
|
-
var distance =
|
|
497
|
+
var distance = _this6.center.distanceTo(vertex);
|
|
378
498
|
return Math.max(max, distance);
|
|
379
499
|
}, 0);
|
|
380
500
|
}
|
|
381
501
|
}, {
|
|
382
|
-
key: "
|
|
383
|
-
value: function
|
|
502
|
+
key: "generateFresnelObject",
|
|
503
|
+
value: function generateFresnelObject(object) {
|
|
384
504
|
injectToFinirMaterial(object, this.uniforms);
|
|
385
505
|
}
|
|
386
506
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","Color","Mesh","MeshBasicMaterial","Object3D","PlaneGeometry","Vector3","gsap","use","injectToBaseWrite","injectToFinirMaterial","injectToFrameFade","injectToGround","injectToRealFade","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_Object3D","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","Map","Real","Frame","Pure","Fresnel","matchSize","rule","handleSizeMatching","matchName","handleNameMatching","_ref","duration","_ref$center","center","_ref$isApi","isApi","uniforms","initializeUniforms","value","useframe","time","_createClass","key","progress","isFresnelFadeIn","isRealFadeIn","isPureFadeIn","isFrameFadeIn","maxSize","hideAllObjects","Object","values","objectsMap","forEach","objectMap","object","visible","showObjectsByType","type","switchType","option","handleApiOption","handleMatch","cleanupAnimations","prepareForSwitch","startSwitchAnimation","_ref2","_ref2$mode","mode","_ref2$duration","_ref2$center","_ref2$genPlane","genPlane","undefined","fromArray","isGenPlane","_this$frame","_this$gsap","frame","kill","newType","concat","_this2","lastType","size","getMaxSize","totalTime","Math","pow","onComplete","dispatchEvent","style","requestAnimationFrame","animateWithGSAP","animateWithFrame","to","ease","_this3","delta","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","add","handleGroundMatching","isMatch","slice","some","matching","name","includes","removeFromParent","delete","keys","material","_this4","rules","length","matchingStrategy","realObject","generateRealObject","fresnelObject","clone","generateFinalObject","pureObject","generatePureObject","frameObject","generateFrameObject","removeObject","obj","get","box","box3","getSize","getCenter","plane","x","z","color","mesh","rotation","PI","position","geometry","dispose","expandByObject","vertices","getBoxVertices","maxDistance","calculateMaxDistance","min","y","max","_this5","reduce","vertex","distance","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import { Box3, Color, Mesh, MeshBasicMaterial, MeshStandardMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { frameMaterialCache, fresnelMaterialCache, groundMaterialCache, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade, pureMaterialCache, realMaterialCache } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\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}\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 = '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\n use.useframe(() => {\n this.uniforms.time.value += 0.00018\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 isApi: { value: false },\n }\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 }): void {\n if (this.type === type)\n return\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 animateWithFrame(totalTime: number, onComplete: () => void): void {\n let duration = 0\n this.frame = use.useframe((delta) => {\n duration += delta\n const progress = (duration / totalTime) ** 3\n this.uniforms.progress.value += progress\n\n if (this.uniforms.progress.value > 1.0) {\n this.frame()\n onComplete()\n }\n })\n }\n\n public addObject(object: Object3D): void {\n this.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.some(matching => object.name.includes(matching))) {\n isMatch = true\n object.removeFromParent()\n objectMap.delete(object.uuid)\n }\n })\n })\n\n if (isMatch && type !== 'Real')\n this.handleGroundObject(type)\n }\n\n private handleNameMatching(rule: RuleItem) {\n const { keys, material } = rule\n const objects = []\n let isMatch = false\n\n Object.values(this.objectsMap).slice(1).forEach((objectMap) => {\n objectMap.forEach((object) => {\n if (GROUND_MATCHING.some(matching => object.name.includes(matching))) {\n isMatch = true\n object.removeFromParent()\n objectMap.delete(object.uuid)\n }\n })\n })\n\n if (isMatch) {\n // handle object to other material\n }\n }\n\n private handleSizeMatching(rule: RuleItem) {}\n\n private matchingStrategy = {\n matchSize: (rule: RuleItem) => this.handleSizeMatching(rule),\n matchName: (rule: RuleItem) => this.handleNameMatching(rule),\n }\n\n private handleMatch(type: MaterialSwitchType) {\n if (this.isGenPlane)\n this.handleGroundMatching(type)\n\n if (this.rules.length > 0) {\n this.rules.forEach((rule) => {\n this.matchingStrategy[rule.type](rule)\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.generateFinalObject(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 generateFinalObject(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('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","_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","DEFAULT_CENTER","GROUND_Y_OFFSET","SIZE_SCALE_FACTOR","GROUND_MATCHING","MaterialSwitchSystem","_Object3D","_super","options","_this","Map","Real","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","add","getObjectByName","removeFromParent","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","_this3","delta","addObject","uuid","getObjectUuid","objects","set","handleNormalObject","updateVisibility","tag","entityId","handleGroundObject","has","updateGroundMesh","groundMesh","createGroundMesh","handleGroundMatching","isMatch","some","matching","toLowerCase","startsWith","delete","_getMaterialByName","_callee","_callee$","_context","getMaterial","getMaterialByName","_x","_replaceMaterial","_callee2","materialName","_callee2$","_context2","userData","isMatched","originalMaterial","replaceMaterial","_x2","_x3","_x4","resetMaterial","_this4","traverse","child","mesh","_mesh$parent","includes","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","min","max","_this6","reduce","vertex","distance","distanceTo"],"sources":["../../../src/business/MaterialSwitch/MaterialSwitchSystem.ts"],"sourcesContent":["import type { Material, MeshPhysicalMaterial, ShaderMaterial } from '@anov/3d-core'\nimport { AmbientLight, Box3, Color, Mesh, MeshBasicMaterial, MeshStandardMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core'\nimport { SurfaceMaterial } from '../../'\nimport { finirheightTransitionEffect, frameMaterialCache, fresnelMaterialCache, groundMaterialCache, inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade, pureMaterialCache, realMaterialCache } from './inject'\nimport type { MaterialSwitchSystemInterface } from '.'\n\ntype MaterialSwitchType = 'Real' | 'Fresnel' | 'Frame' | 'Pure'\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 = '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 if (type === 'Fresnel') {\n const light = new AmbientLight(0xFFFFFF, 1.5)\n light.name = 'FresnelLight'\n use.useScene().scene.add(light)\n }\n else {\n const light = use.useScene().scene.getObjectByName('FresnelLight')\n if (light)\n light.removeFromParent()\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 animateWithFrame(totalTime: number, onComplete: () => void): void {\n let duration = 0\n this.frame = use.useframe((delta) => {\n duration += delta\n const progress = (duration / totalTime) ** 3\n this.uniforms.progress.value += progress\n\n if (this.uniforms.progress.value > 1.0) {\n this.frame()\n onComplete()\n }\n })\n }\n\n public addObject(object: Object3D): void {\n this.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.some(matching => object.name.toLowerCase().startsWith(matching))) {\n isMatch = true\n object.removeFromParent()\n objectMap.delete(object.uuid)\n }\n })\n })\n\n if (isMatch && type !== '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 === '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('Real')\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Mesh, Object3D, Vector3 } from '@anov/3d-core';
|
|
1
|
+
import type { Material, Mesh, Object3D, Vector3 } from '@anov/3d-core';
|
|
2
2
|
export declare const frameMaterialCache: any[];
|
|
3
3
|
export declare const realMaterialCache: any[];
|
|
4
4
|
export declare const pureMaterialCache: any[];
|
|
@@ -82,7 +82,7 @@ export declare const injectToFinirMaterial: (object: Object3D, uniforms: {
|
|
|
82
82
|
value: boolean;
|
|
83
83
|
};
|
|
84
84
|
}) => void;
|
|
85
|
-
export declare const
|
|
85
|
+
export declare const injectToGround: (object: Mesh, type: 'Real' | 'Fresnel' | 'Frame' | 'Pure', uniforms: {
|
|
86
86
|
maxSize: {
|
|
87
87
|
value: number;
|
|
88
88
|
};
|
|
@@ -92,8 +92,14 @@ export declare const inject: (object: Object3D, type: 'Real' | 'Fresnel' | 'Fram
|
|
|
92
92
|
progress: {
|
|
93
93
|
value: number;
|
|
94
94
|
};
|
|
95
|
+
time: {
|
|
96
|
+
value: number;
|
|
97
|
+
};
|
|
98
|
+
isApi: {
|
|
99
|
+
value: boolean;
|
|
100
|
+
};
|
|
95
101
|
}) => void;
|
|
96
|
-
export declare const
|
|
102
|
+
export declare const inject: (material: Material, type: 'Fresnel' | 'Frame' | 'Pure', uniforms: {
|
|
97
103
|
maxSize: {
|
|
98
104
|
value: number;
|
|
99
105
|
};
|
|
@@ -103,10 +109,24 @@ export declare const injectToGround: (object: Mesh, type: 'Real' | 'Fresnel' | '
|
|
|
103
109
|
progress: {
|
|
104
110
|
value: number;
|
|
105
111
|
};
|
|
106
|
-
|
|
112
|
+
height: {
|
|
107
113
|
value: number;
|
|
108
114
|
};
|
|
109
|
-
|
|
115
|
+
}, isSweepAway?: boolean) => Material;
|
|
116
|
+
export declare const finirheightTransitionEffect: (material: Material, uniforms: {
|
|
117
|
+
height: {
|
|
118
|
+
value: number;
|
|
119
|
+
};
|
|
120
|
+
maxSize: {
|
|
121
|
+
value: number;
|
|
122
|
+
};
|
|
123
|
+
center: {
|
|
124
|
+
value: Vector3;
|
|
125
|
+
};
|
|
126
|
+
progress: {
|
|
127
|
+
value: number;
|
|
128
|
+
};
|
|
129
|
+
isFresnelFadeIn: {
|
|
110
130
|
value: boolean;
|
|
111
131
|
};
|
|
112
|
-
}) =>
|
|
132
|
+
}) => Material;
|