@anov/3d-ability 0.0.109 → 0.0.111

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.
@@ -136,7 +136,6 @@ var Mark = /*#__PURE__*/function (_ObjectLayer) {
136
136
  return BubbleStrategy.dynamicCircle();
137
137
  case 7:
138
138
  BubbleClass = _context.sent;
139
- console.log('this.bubble:', this.bubble);
140
139
  this._bubbleMesh = new BubbleClass(_objectSpread({
141
140
  radius: 0.5
142
141
  }, this.bubble));
@@ -151,7 +150,7 @@ var Mark = /*#__PURE__*/function (_ObjectLayer) {
151
150
  _this2._animationController[key] = value;
152
151
  });
153
152
  return _context.abrupt("return", true);
154
- case 19:
153
+ case 18:
155
154
  case "end":
156
155
  return _context.stop();
157
156
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","obj","_toPrimitive","String","toPrimitive","Number","Box3","Color","Group","LoaderModule","MeshBasicMaterial","ShaderMaterial","utils","_","StrategyManage","BubbleStrategy","ObjectLayer","SOURCE_BASE_PATH","ELevel","EMarkAnimationType","KeyframeAnimation","TanhaoShader","DEFAULT_OPTION","uri","level","animation","Rotate","Bounce","duration","enable","bubble","visible","radius","color","COLORS","MODEL_URI","concat","load","Mark","_ObjectLayer","_super","option","_this","param","mergeWith","cloneDeep","arrayMergeCustomizer","_param$level","Low","_uri","_animation","_level","Math","max","min","_bubble","getColor","_readyPromise","init","get","set","setMeshLevel","_init","_callee","_this2","group","BubbleClass","_callee$","_context","loadModel","_markMesh","add","dynamicCircle","console","log","_bubbleMesh","_mesh","setModelPosition","_animationController","createProxy","_this$getBoxSize","getBoxSize","height","position","setY","_utils$storeManagemen","loadGLTF","url","autoBackward","isCache","draco","dracoPath","storeManagement","onLoad","gltf","scene","onError","vertexShader","fragmentShader","panelMaterial","uniforms","transparent","side","depthTest","depthWrite","borderMaterial","traverse","object","mesh","material","_update","_callee2","delta","_this$_animationContr","_callee2$","_context2","ready","update","_x","_play","_callee3","_callee3$","_context3","play","_x2","_stop","_callee4","_callee4$","_context4","_x3","_Box3$setFromObject","setFromObject","width","x","dispose","destroy"],"sources":["../../../src/business/Mark/index.ts"],"sourcesContent":["import type { Material, Mesh } from '@anov/3d-core'\nimport { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial, utils } from '@anov/3d-core'\nimport _ from 'lodash'\nimport { StrategyManage as BubbleStrategy } from '../Poi/particle/index'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type DynamicCircleMesh from '../Poi/particle/DynamicCircle'\nimport { SOURCE_BASE_PATH } from '../Utils/constant'\nimport type { Option } from './type'\nimport { ELevel } from './type'\nimport type { AnimationOption } from './KeyframeAnimation'\nimport { EMarkAnimationType, KeyframeAnimation } from './KeyframeAnimation'\nimport TanhaoShader from './shader/tanhao'\n\nconst DEFAULT_OPTION = {\n uri: '', // 统一资源标识符,既可以是code也是可以资源路径\n level: 0,\n animation: {\n type: [EMarkAnimationType.Rotate, EMarkAnimationType.Bounce], // 动画类型:\"pulse\"(脉冲)、\"flash\"(闪烁)、\"bounce\"(弹跳),默认\"pulse\"\n duration: 1,\n enable: true,\n },\n bubble: {\n uri: '',\n visible: true,\n radius: 0.5,\n color: '',\n },\n}\n\nconst COLORS = ['#538FFF', '#FFA753', '#FF6353']\nconst MODEL_URI = `${SOURCE_BASE_PATH}/models/mark.glb`\nconst load = new LoaderModule()\n\nclass Mark extends ObjectLayer {\n private _uri: string\n private _level: ELevel\n private _animation: Option['animation']\n private _bubble: Option['bubble']\n\n private _readyPromise: Promise<boolean>\n private _mesh: Group\n private _markMesh: Group\n private _bubbleMesh: DynamicCircleMesh\n // 动画相关参数\n private _animationController: KeyframeAnimation\n\n public get ready() {\n return this._readyPromise\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(value: string) {\n this._uri = value\n }\n\n public get animation(): AnimationOption {\n return this._animation\n }\n\n public get level(): ELevel {\n return this._level\n }\n\n public set level(value: ELevel) {\n if (this._level === value)\n return\n this._level = Math.max(0, Math.min(value, 3))\n this.setMeshLevel()\n this.bubble.color = this.getColor()\n }\n\n public get bubble(): Option['bubble'] {\n return this._bubble\n }\n\n public set bubble(value: Option['bubble']) {\n this._bubble = value\n }\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option, this.arrayMergeCustomizer)\n const { uri, animation, level = ELevel.Low, bubble } = param\n this._uri = uri\n this._animation = animation\n this._level = Math.max(0, Math.min(level, 3))\n this._bubble = bubble\n if (!bubble.color)\n this._bubble.color = this.getColor()\n\n this._readyPromise = this.init()\n }\n\n // 动画设置\n private async init() {\n const group = new Group()\n this._markMesh = await this.loadModel(MODEL_URI) as Group\n group.add(this._markMesh)\n\n // 气泡\n const BubbleClass = await BubbleStrategy.dynamicCircle()\n console.log('this.bubble:', this.bubble)\n this._bubbleMesh = new BubbleClass({ radius: 0.5, ...this.bubble })\n group.add(this._bubbleMesh)\n\n this._mesh = group\n this.add(this._mesh)\n\n this.setMeshLevel()\n this.setModelPosition()\n\n this._animationController = new KeyframeAnimation(this._markMesh, this._animation)\n\n this._bubble = this.createProxy(this._bubble, this._bubbleMesh)\n this._animation = this.createProxy(this._animation, null, (key, value) => {\n this._animationController[key] = value\n })\n return true\n }\n\n private setModelPosition() {\n if (this.bubble.visible !== false) {\n const { height } = this.getBoxSize(this._markMesh)\n this._markMesh.position.setY(height * 0.5)\n }\n else { this._markMesh.position.setY(0) }\n }\n\n private loadModel(uri: string) {\n return new Promise((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n autoBackward: false,\n isCache: true,\n draco: true,\n dracoPath: utils.storeManagement.get('decoderPath') ?? './draco/',\n onLoad: (gltf) => {\n resolve(gltf.scene)\n },\n onError: () => {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(null)\n },\n })\n })\n }\n\n private setMeshLevel() {\n const { vertexShader, fragmentShader } = TanhaoShader\n const panelMaterial = new ShaderMaterial({\n uniforms: {\n color: { value: new Color(this.getColor()) },\n },\n vertexShader,\n fragmentShader,\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n\n })\n const borderMaterial = new MeshBasicMaterial({ color: this.getColor() })\n\n this._markMesh.traverse((object) => {\n if (object.type === 'Mesh') {\n const mesh = object as Mesh\n if (mesh.name === 'Mesh') // TODO:等确定命名规范\n mesh.material = borderMaterial\n if (mesh.name === 'Mesh_1')\n mesh.material = panelMaterial\n // // 处理材质数组\n // if (Array.isArray(mesh.material)) {\n // // 如果是多材质对象\n // (mesh.material as Material[]).forEach((material) => {\n // (material as MeshBasicMaterial).color.set(this.getColor())\n // })\n // }\n // else {\n // // 单一材质\n // (mesh.material as MeshBasicMaterial).color.set(this.getColor())\n // }\n }\n })\n }\n\n private getColor() {\n return COLORS[this.level]\n }\n\n // 更新动画混合器\n public async update(delta: number) {\n await this.ready\n this._animationController?.update(delta)\n }\n\n // 播放动画\n public async play(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.play(type)\n }\n\n // 播放动画\n public async stop(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.stop(type)\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n // 销毁资源\n public dispose() {\n if (this._animationController) {\n this._animationController.destroy()\n this._animationController = null\n }\n }\n}\n\nexport { Mark, EMarkAnimationType }\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","obj","_toPrimitive","String","toPrimitive","Number","Box3","Color","Group","LoaderModule","MeshBasicMaterial","ShaderMaterial","utils","_","StrategyManage","BubbleStrategy","ObjectLayer","SOURCE_BASE_PATH","ELevel","EMarkAnimationType","KeyframeAnimation","TanhaoShader","DEFAULT_OPTION","uri","level","animation","Rotate","Bounce","duration","enable","bubble","visible","radius","color","COLORS","MODEL_URI","concat","load","Mark","_ObjectLayer","_super","option","_this","param","mergeWith","cloneDeep","arrayMergeCustomizer","_param$level","Low","_uri","_animation","_level","Math","max","min","_bubble","getColor","_readyPromise","init","get","set","setMeshLevel","_init","_callee","_this2","group","BubbleClass","_callee$","_context","loadModel","_markMesh","add","dynamicCircle","_bubbleMesh","_mesh","setModelPosition","_animationController","createProxy","_this$getBoxSize","getBoxSize","height","position","setY","_utils$storeManagemen","loadGLTF","url","autoBackward","isCache","draco","dracoPath","storeManagement","onLoad","gltf","scene","onError","vertexShader","fragmentShader","panelMaterial","uniforms","transparent","side","depthTest","depthWrite","borderMaterial","traverse","object","mesh","material","_update","_callee2","delta","_this$_animationContr","_callee2$","_context2","ready","update","_x","_play","_callee3","_callee3$","_context3","play","_x2","_stop","_callee4","_callee4$","_context4","_x3","_Box3$setFromObject","setFromObject","width","x","dispose","destroy"],"sources":["../../../src/business/Mark/index.ts"],"sourcesContent":["import type { Material, Mesh } from '@anov/3d-core'\nimport { Box3, Color, Group, LoaderModule, MeshBasicMaterial, ShaderMaterial, utils } from '@anov/3d-core'\nimport _ from 'lodash'\nimport { StrategyManage as BubbleStrategy } from '../Poi/particle/index'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type DynamicCircleMesh from '../Poi/particle/DynamicCircle'\nimport { SOURCE_BASE_PATH } from '../Utils/constant'\nimport type { Option } from './type'\nimport { ELevel } from './type'\nimport type { AnimationOption } from './KeyframeAnimation'\nimport { EMarkAnimationType, KeyframeAnimation } from './KeyframeAnimation'\nimport TanhaoShader from './shader/tanhao'\n\nconst DEFAULT_OPTION = {\n uri: '', // 统一资源标识符,既可以是code也是可以资源路径\n level: 0,\n animation: {\n type: [EMarkAnimationType.Rotate, EMarkAnimationType.Bounce], // 动画类型:\"pulse\"(脉冲)、\"flash\"(闪烁)、\"bounce\"(弹跳),默认\"pulse\"\n duration: 1,\n enable: true,\n },\n bubble: {\n uri: '',\n visible: true,\n radius: 0.5,\n color: '',\n },\n}\n\nconst COLORS = ['#538FFF', '#FFA753', '#FF6353']\nconst MODEL_URI = `${SOURCE_BASE_PATH}/models/mark.glb`\nconst load = new LoaderModule()\n\nclass Mark extends ObjectLayer {\n private _uri: string\n private _level: ELevel\n private _animation: Option['animation']\n private _bubble: Option['bubble']\n\n private _readyPromise: Promise<boolean>\n private _mesh: Group\n private _markMesh: Group\n private _bubbleMesh: DynamicCircleMesh\n // 动画相关参数\n private _animationController: KeyframeAnimation\n\n public get ready() {\n return this._readyPromise\n }\n\n public get uri(): string {\n return this._uri\n }\n\n public set uri(value: string) {\n this._uri = value\n }\n\n public get animation(): AnimationOption {\n return this._animation\n }\n\n public get level(): ELevel {\n return this._level\n }\n\n public set level(value: ELevel) {\n if (this._level === value)\n return\n this._level = Math.max(0, Math.min(value, 3))\n this.setMeshLevel()\n this.bubble.color = this.getColor()\n }\n\n public get bubble(): Option['bubble'] {\n return this._bubble\n }\n\n public set bubble(value: Option['bubble']) {\n this._bubble = value\n }\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option, this.arrayMergeCustomizer)\n const { uri, animation, level = ELevel.Low, bubble } = param\n this._uri = uri\n this._animation = animation\n this._level = Math.max(0, Math.min(level, 3))\n this._bubble = bubble\n if (!bubble.color)\n this._bubble.color = this.getColor()\n\n this._readyPromise = this.init()\n }\n\n // 动画设置\n private async init() {\n const group = new Group()\n this._markMesh = await this.loadModel(MODEL_URI) as Group\n group.add(this._markMesh)\n\n // 气泡\n const BubbleClass = await BubbleStrategy.dynamicCircle()\n this._bubbleMesh = new BubbleClass({ radius: 0.5, ...this.bubble })\n group.add(this._bubbleMesh)\n\n this._mesh = group\n this.add(this._mesh)\n\n this.setMeshLevel()\n this.setModelPosition()\n\n this._animationController = new KeyframeAnimation(this._markMesh, this._animation)\n\n this._bubble = this.createProxy(this._bubble, this._bubbleMesh)\n this._animation = this.createProxy(this._animation, null, (key, value) => {\n this._animationController[key] = value\n })\n return true\n }\n\n private setModelPosition() {\n if (this.bubble.visible !== false) {\n const { height } = this.getBoxSize(this._markMesh)\n this._markMesh.position.setY(height * 0.5)\n }\n else { this._markMesh.position.setY(0) }\n }\n\n private loadModel(uri: string) {\n return new Promise((resolve, reject) => {\n load.loadGLTF({\n url: uri,\n autoBackward: false,\n isCache: true,\n draco: true,\n dracoPath: utils.storeManagement.get('decoderPath') ?? './draco/',\n onLoad: (gltf) => {\n resolve(gltf.scene)\n },\n onError: () => {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject(null)\n },\n })\n })\n }\n\n private setMeshLevel() {\n const { vertexShader, fragmentShader } = TanhaoShader\n const panelMaterial = new ShaderMaterial({\n uniforms: {\n color: { value: new Color(this.getColor()) },\n },\n vertexShader,\n fragmentShader,\n transparent: true,\n // 设置材质双面渲染,确保从正反两面都能正确显示\n side: 2,\n // 关闭深度测试\n depthTest: true,\n depthWrite: false,\n\n })\n const borderMaterial = new MeshBasicMaterial({ color: this.getColor() })\n\n this._markMesh.traverse((object) => {\n if (object.type === 'Mesh') {\n const mesh = object as Mesh\n if (mesh.name === 'Mesh') // TODO:等确定命名规范\n mesh.material = borderMaterial\n if (mesh.name === 'Mesh_1')\n mesh.material = panelMaterial\n // // 处理材质数组\n // if (Array.isArray(mesh.material)) {\n // // 如果是多材质对象\n // (mesh.material as Material[]).forEach((material) => {\n // (material as MeshBasicMaterial).color.set(this.getColor())\n // })\n // }\n // else {\n // // 单一材质\n // (mesh.material as MeshBasicMaterial).color.set(this.getColor())\n // }\n }\n })\n }\n\n private getColor() {\n return COLORS[this.level]\n }\n\n // 更新动画混合器\n public async update(delta: number) {\n await this.ready\n this._animationController?.update(delta)\n }\n\n // 播放动画\n public async play(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.play(type)\n }\n\n // 播放动画\n public async stop(type?: EMarkAnimationType) {\n await this.ready\n this._animationController.stop(type)\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n // 销毁资源\n public dispose() {\n if (this._animationController) {\n this._animationController.destroy()\n this._animationController = null\n }\n }\n}\n\nexport { Mark, EMarkAnimationType }\n"],"mappings":"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"}
@@ -35,6 +35,11 @@ interface MaterialSwitchUniforms {
35
35
  value: boolean;
36
36
  };
37
37
  }
38
+ type RuleItem = {
39
+ type: string;
40
+ keys: string[];
41
+ material: string;
42
+ };
38
43
  /**
39
44
  * 材质切换系统
40
45
  */
@@ -52,6 +57,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
52
57
  private rules;
53
58
  constructor(options?: MaterialSwitchOption);
54
59
  private initializeUniforms;
60
+ private initializeBuiltInShader;
55
61
  private hideAllObjects;
56
62
  private showObjectsByType;
57
63
  switchType(type: MaterialSwitchType, option?: {
@@ -59,6 +65,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
59
65
  duration?: number;
60
66
  center?: number[];
61
67
  genPlane?: boolean;
68
+ rules?: RuleItem[];
62
69
  }): void;
63
70
  private handleApiOption;
64
71
  private cleanupAnimations;
@@ -70,6 +77,9 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
70
77
  private getObjectUuid;
71
78
  private handleGroundObject;
72
79
  private handleGroundMatching;
80
+ private getMaterialByName;
81
+ private replaceMaterial;
82
+ private resetMaterial;
73
83
  private handleNameMatching;
74
84
  private handleSizeMatching;
75
85
  private matchingStrategy;
@@ -82,7 +92,7 @@ export declare class MaterialSwitchSystem extends Object3D implements MaterialSw
82
92
  private getMaxSize;
83
93
  private getBoxVertices;
84
94
  private calculateMaxDistance;
85
- private generateFinalObject;
95
+ private generateFresnelObject;
86
96
  private generateRealObject;
87
97
  private generatePureObject;
88
98
  private generateFrameObject;
@@ -1,4 +1,7 @@
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); }); }; }
2
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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); } }
4
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; }
@@ -13,7 +16,8 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
13
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
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); }
15
18
  import { Box3, Color, Mesh, MeshBasicMaterial, Object3D, PlaneGeometry, Vector3, gsap, use } from '@anov/3d-core';
16
- import { injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from "./inject";
19
+ import { SurfaceMaterial } from "../../";
20
+ import { inject, injectToBaseWrite, injectToFinirMaterial, injectToFrameFade, injectToGround, injectToRealFade } from "./inject";
17
21
  var DEFAULT_CENTER = new Vector3();
18
22
  var GROUND_Y_OFFSET = -0.1;
19
23
  var SIZE_SCALE_FACTOR = 1.2;
@@ -46,11 +50,11 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
46
50
  _defineProperty(_assertThisInitialized(_this), "isGenPlane", false);
47
51
  _defineProperty(_assertThisInitialized(_this), "rules", []);
48
52
  _defineProperty(_assertThisInitialized(_this), "matchingStrategy", {
49
- matchSize: function matchSize(rule) {
50
- return _this.handleSizeMatching(rule);
53
+ matchSize: function matchSize(rule, type) {
54
+ return _this.handleSizeMatching(rule, type);
51
55
  },
52
- matchName: function matchName(rule) {
53
- return _this.handleNameMatching(rule);
56
+ matchName: function matchName(rule, type) {
57
+ return _this.handleNameMatching(rule, type);
54
58
  }
55
59
  });
56
60
  var _ref = options !== null && options !== void 0 ? options : {},
@@ -63,6 +67,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
63
67
  _this.center = center;
64
68
  _this.uniforms = _this.initializeUniforms();
65
69
  _this.uniforms.isApi.value = isApi;
70
+ _this.initializeBuiltInShader();
66
71
  use.useframe(function () {
67
72
  _this.uniforms.time.value += 0.00018;
68
73
  });
@@ -101,6 +106,11 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
101
106
  }
102
107
  };
103
108
  }
109
+ }, {
110
+ key: "initializeBuiltInShader",
111
+ value: function initializeBuiltInShader() {
112
+ SurfaceMaterial.getMaterialAll();
113
+ }
104
114
  }, {
105
115
  key: "hideAllObjects",
106
116
  value: function hideAllObjects() {
@@ -120,7 +130,9 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
120
130
  }, {
121
131
  key: "switchType",
122
132
  value: function switchType(type, option) {
133
+ var _option$rules;
123
134
  if (this.type === type) return;
135
+ this.rules = (_option$rules = option === null || option === void 0 ? void 0 : option.rules) !== null && _option$rules !== void 0 ? _option$rules : [];
124
136
  this.handleApiOption(option);
125
137
  this.handleMatch(type);
126
138
  this.cleanupAnimations();
@@ -240,7 +252,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
240
252
  Object.values(this.objectsMap).slice(1).forEach(function (objectMap) {
241
253
  objectMap.forEach(function (object) {
242
254
  if (GROUND_MATCHING.some(function (matching) {
243
- return object.name.includes(matching);
255
+ return object.name.toLowerCase().startsWith(matching);
244
256
  })) {
245
257
  isMatch = true;
246
258
  object.removeFromParent();
@@ -250,39 +262,103 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
250
262
  });
251
263
  if (isMatch && type !== 'Real') this.handleGroundObject(type);
252
264
  }
265
+ }, {
266
+ key: "getMaterialByName",
267
+ value: function () {
268
+ var _getMaterialByName = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(name) {
269
+ var material;
270
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
271
+ while (1) switch (_context.prev = _context.next) {
272
+ case 0:
273
+ _context.next = 2;
274
+ return SurfaceMaterial.getMaterial(name);
275
+ case 2:
276
+ material = _context.sent;
277
+ return _context.abrupt("return", material);
278
+ case 4:
279
+ case "end":
280
+ return _context.stop();
281
+ }
282
+ }, _callee);
283
+ }));
284
+ function getMaterialByName(_x) {
285
+ return _getMaterialByName.apply(this, arguments);
286
+ }
287
+ return getMaterialByName;
288
+ }()
289
+ }, {
290
+ key: "replaceMaterial",
291
+ value: function () {
292
+ var _replaceMaterial = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(object, materialName, type) {
293
+ var material;
294
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
295
+ while (1) switch (_context2.prev = _context2.next) {
296
+ case 0:
297
+ if (!object.userData.isMatched) {
298
+ _context2.next = 2;
299
+ break;
300
+ }
301
+ return _context2.abrupt("return");
302
+ case 2:
303
+ _context2.next = 4;
304
+ return this.getMaterialByName(materialName);
305
+ case 4:
306
+ material = _context2.sent;
307
+ object.material = inject(material, type, this.uniforms);
308
+ object.userData.isMatched = true;
309
+ case 7:
310
+ case "end":
311
+ return _context2.stop();
312
+ }
313
+ }, _callee2, this);
314
+ }));
315
+ function replaceMaterial(_x2, _x3, _x4) {
316
+ return _replaceMaterial.apply(this, arguments);
317
+ }
318
+ return replaceMaterial;
319
+ }()
320
+ }, {
321
+ key: "resetMaterial",
322
+ value: function resetMaterial(object, type) {
323
+ this["generate".concat(type, "Object")](object);
324
+ }
253
325
  }, {
254
326
  key: "handleNameMatching",
255
- value: function handleNameMatching(rule) {
327
+ value: function handleNameMatching(rule, type) {
328
+ var _this4 = this;
256
329
  var keys = rule.keys,
257
330
  material = rule.material;
258
- var objects = [];
259
- var isMatch = false;
260
- Object.values(this.objectsMap).slice(1).forEach(function (objectMap) {
261
- objectMap.forEach(function (object) {
262
- if (GROUND_MATCHING.some(function (matching) {
263
- return object.name.includes(matching);
264
- })) {
265
- isMatch = true;
266
- object.removeFromParent();
267
- objectMap.delete(object.uuid);
331
+ this.objectsMap[type].forEach(function (object) {
332
+ object.traverse(function (child) {
333
+ if (child.type === 'Mesh') {
334
+ var mesh = child;
335
+ if (keys.some(function (matching) {
336
+ return mesh.name.includes(matching);
337
+ })) _this4.replaceMaterial(mesh, material, type);
268
338
  }
269
339
  });
270
340
  });
271
- if (isMatch) {
272
- // handle object to other material
273
- }
274
341
  }
275
342
  }, {
276
343
  key: "handleSizeMatching",
277
- value: function handleSizeMatching(rule) {}
344
+ value: function handleSizeMatching(rule, type) {}
278
345
  }, {
279
346
  key: "handleMatch",
280
347
  value: function handleMatch(type) {
281
- var _this4 = this;
348
+ var _this5 = this;
282
349
  if (this.isGenPlane) this.handleGroundMatching(type);
350
+ if (type === 'Real') return;
351
+ this.objectsMap[type].forEach(function (object) {
352
+ object.traverse(function (child) {
353
+ if (child.type === 'Mesh') {
354
+ if (child.userData.isMatched) _this5.resetMaterial(child, type);
355
+ }
356
+ child.userData.isMatched = false;
357
+ });
358
+ });
283
359
  if (this.rules.length > 0) {
284
360
  this.rules.forEach(function (rule) {
285
- _this4.matchingStrategy[rule.type](rule);
361
+ _this5.matchingStrategy[rule.type](rule, type);
286
362
  });
287
363
  }
288
364
  }
@@ -294,7 +370,7 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
294
370
  this.objectsMap.Real.set(uuid, realObject);
295
371
  this.add(realObject);
296
372
  var fresnelObject = object.clone();
297
- this.generateFinalObject(fresnelObject);
373
+ this.generateFresnelObject(fresnelObject);
298
374
  this.objectsMap.Fresnel.set(uuid, fresnelObject);
299
375
  this.add(fresnelObject);
300
376
  var pureObject = object.clone();
@@ -372,15 +448,15 @@ export var MaterialSwitchSystem = /*#__PURE__*/function (_Object3D) {
372
448
  }, {
373
449
  key: "calculateMaxDistance",
374
450
  value: function calculateMaxDistance(vertices) {
375
- var _this5 = this;
451
+ var _this6 = this;
376
452
  return vertices.reduce(function (max, vertex) {
377
- var distance = _this5.center.distanceTo(vertex);
453
+ var distance = _this6.center.distanceTo(vertex);
378
454
  return Math.max(max, distance);
379
455
  }, 0);
380
456
  }
381
457
  }, {
382
- key: "generateFinalObject",
383
- value: function generateFinalObject(object) {
458
+ key: "generateFresnelObject",
459
+ value: function generateFresnelObject(object) {
384
460
  injectToFinirMaterial(object, this.uniforms);
385
461
  }
386
462
  }, {