@anov/3d 0.0.321 → 0.0.322

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/anov3d.js CHANGED
@@ -14,8 +14,8 @@ import { MathUtils, SceneControl, Vector3 } from '@anov/3d-core';
14
14
  import { initPostEffects } from '@anov/3d-ability';
15
15
  import EventBus from "./module/eventBus";
16
16
  import { object2Vector3 } from "./utils/index";
17
- // import registerHooks from './hooksManager'
18
-
17
+ import { initGlobalHooks } from "./hooksManager";
18
+ import { setGlobalScene, emitterLikeMitt, notify } from "./module/message/hub";
19
19
  export var defaultCameraParams = {
20
20
  fov: 60,
21
21
  near: 0.1,
@@ -39,7 +39,6 @@ var Anov3D = /*#__PURE__*/function () {
39
39
  _defineProperty(this, "opts", void 0);
40
40
  _defineProperty(this, "sceneControl", void 0);
41
41
  _defineProperty(this, "eventBus", void 0);
42
- _defineProperty(this, "cleanupHooks", void 0);
43
42
  this.opts = opts;
44
43
 
45
44
  // 获取默认和传入的相机参数
@@ -71,7 +70,10 @@ var Anov3D = /*#__PURE__*/function () {
71
70
  limit: cameraParams.limit,
72
71
  target: cameraParams.target || [0, 0, 0]
73
72
  }; // 控制器参数
73
+
74
+ initGlobalHooks();
74
75
  var scene = new SceneControl({
76
+ emitter: emitterLikeMitt,
75
77
  defCameraOps: _objectSpread(_objectSpread({}, cameraParams), {}, {
76
78
  aspect: clientWidth / clientHeight
77
79
  }),
@@ -84,18 +86,17 @@ var Anov3D = /*#__PURE__*/function () {
84
86
  css3DRenderer: true,
85
87
  ambientLight: true
86
88
  });
89
+ setGlobalScene(scene);
87
90
  scene.context.storeManagement.set('decoderPath', decoderPath);
88
91
  scene.render(opts.container);
89
92
  initPostEffects(scene.scene, scene.renderer, scene.camera, undefined, scene);
90
- scene.context.emitter.emit('scene-completed', scene);
93
+ notify('scene-completed', scene);
91
94
  // scene.controls.target!.copy(new Vector3().fromArray(cameraParams.target! || [0, 0, 0]))
92
95
  // this.logInfo(scene)
93
96
 
94
97
  this.sceneControl = scene;
95
98
  this.eventBus = new EventBus(this);
96
99
  scene.context.storeManagement.set('event-bus', this.eventBus);
97
-
98
- // this.cleanupHooks = registerHooks(scene)
99
100
  }
100
101
  _createClass(Anov3D, [{
101
102
  key: "storeManagement",
@@ -184,8 +185,7 @@ var Anov3D = /*#__PURE__*/function () {
184
185
  }, {
185
186
  key: "destroy",
186
187
  value: function destroy() {
187
- var _this$cleanupHooks, _this$sceneControl;
188
- (_this$cleanupHooks = this.cleanupHooks) === null || _this$cleanupHooks === void 0 || _this$cleanupHooks.call(this);
188
+ var _this$sceneControl;
189
189
  (_this$sceneControl = this.sceneControl) === null || _this$sceneControl === void 0 || _this$sceneControl.destroy();
190
190
  }
191
191
  }]);
@@ -1 +1 @@
1
- {"version":3,"names":["MathUtils","SceneControl","Vector3","initPostEffects","EventBus","object2Vector3","defaultCameraParams","fov","near","far","position","x","y","z","lookAt","Anov3D","opts","_camera$limit","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","_opts$decoderPath","decoderPath","defaultPosition","defaultRest","_objectWithoutProperties","_excluded","limit","pitch","min","max","Math","cameraParams","_objectSpread","fromArray","orbitControls","target","scene","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","context","storeManagement","set","render","renderer","undefined","emitter","emit","sceneControl","eventBus","_createClass","key","get","value","on","_len","arguments","length","args","Array","_key","apply","off","_len2","_key2","_len3","_key3","logInfo","TEX_SLOTS","setInterval","uuids","Set","totalMB","traverse","obj","isMesh","mesh","mats","isArray","material","forEach","mat","slot","tex","has","uuid","add","img","image","width","height","console","table","size","info","memory","textures","geometries","calls","triangles","toFixed","getOrbitControls","params","yaw","distance","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","minDistance","maxDistance","destroy","_this$cleanupHooks","_this$sceneControl","cleanupHooks","call"],"sources":["../src/anov3d.ts"],"sourcesContent":["import type { MeshStandardMaterial, Texture } from '@anov/3d-core'\nimport { MathUtils, SceneControl, Vector3 } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\n\n// import registerHooks from './hooksManager'\n\nexport const defaultCameraParams = {\n fov: 60,\n near: 0.1,\n far: 1000000,\n position: { x: 0, y: 100, z: 200 },\n lookAt: { x: 0, y: 0, z: 0 },\n}\n\nexport type Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n decoderPath?: string\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n private cleanupHooks: () => void\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight }, decoderPath = '/draco/' } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 俯仰角转换,SCC取值范围是-90-90,转换到0-180\n if (camera.limit?.pitch) {\n const { pitch } = camera.limit\n const min = 90 - pitch[0]\n const max = 90 - pitch[1]\n camera.limit.pitch = [Math.min(min, max), Math.max(min, max)]\n }\n // 初始化相机参数\n const cameraParams = {\n limit: {},\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n // const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数\n const orbitControls = { limit: cameraParams.limit, target: cameraParams.target || [0, 0, 0] } // 控制器参数\n const scene = new SceneControl({\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n orbitControls,\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n\n scene.context.storeManagement.set('decoderPath', decoderPath)\n\n scene.render(opts.container)\n\n initPostEffects(scene.scene, scene.renderer, scene.camera, undefined, scene)\n scene.context.emitter.emit('scene-completed', scene)\n // scene.controls.target!.copy(new Vector3().fromArray(cameraParams.target! || [0, 0, 0]))\n // this.logInfo(scene)\n\n this.sceneControl = scene\n this.eventBus = new EventBus(this as any)\n\n scene.context.storeManagement.set('event-bus', this.eventBus)\n\n // this.cleanupHooks = registerHooks(scene)\n }\n\n get storeManagement() {\n return this.sceneControl.context.storeManagement\n }\n\n on(...args: any[]) {\n this.sceneControl.context.emitter.on.apply(this.sceneControl.context.emitter, args)\n }\n\n off(...args: any[]) {\n this.sceneControl.context.emitter.off.apply(this.sceneControl.context.emitter, args)\n }\n\n emit(...args: any[]) {\n this.sceneControl.context.emitter.emit.apply(this.sceneControl.context.emitter, args)\n }\n\n logInfo(scene) {\n const TEX_SLOTS: string[] = [\n 'map', 'normalMap', 'roughnessMap', 'metalnessMap',\n 'aoMap', 'emissiveMap', 'alphaMap', 'lightMap',\n ]\n setInterval(() => {\n const renderer = scene.renderer\n const uuids = new Set<string>()\n let totalMB = 0\n scene.scene.traverse((obj) => {\n if (!(obj as any).isMesh)\n return\n const mesh = obj\n const mats = Array.isArray(mesh.material) ? mesh.material : [mesh.material]\n mats.forEach((mat) => {\n TEX_SLOTS.forEach((slot) => {\n const tex = (mat as MeshStandardMaterial)[slot] as Texture | null\n if (!tex)\n return\n if (!uuids.has(tex.uuid)) {\n uuids.add(tex.uuid)\n const img = tex.image as HTMLImageElement | null\n if (img)\n totalMB += (img.width * img.height * 4) / 1024 / 1024\n }\n })\n })\n })\n\n console.table({\n '场景纹理数': uuids.size,\n '渲染器纹理数': renderer.info.memory.textures,\n '几何体数量': renderer.info.memory.geometries,\n '渲染调用次数': renderer.info.render.calls,\n '三角面数': renderer.info.render.triangles,\n '估算显存(MB)': totalMB.toFixed(0),\n })\n }, 5000)\n }\n\n getOrbitControls(params: { pitch?: number[]\n yaw?: number[]\n distance?: number[] }) {\n const { pitch, yaw, distance } = params\n const orbitControls: any = {}\n if (pitch?.length > 1) {\n orbitControls.minPolarAngle = MathUtils.degToRad(pitch[0])\n orbitControls.maxPolarAngle = MathUtils.degToRad(pitch[1])\n }\n if (yaw?.length > 1) {\n orbitControls.minAzimuthAngle = MathUtils.degToRad(yaw[0])\n orbitControls.maxAzimuthAngle = MathUtils.degToRad(yaw[1])\n }\n if (distance?.length > 1) {\n orbitControls.minDistance = distance[0]\n orbitControls.maxDistance = distance[1]\n }\n return orbitControls\n }\n\n destroy() {\n this.cleanupHooks?.()\n this.sceneControl?.destroy()\n }\n}\n\nexport default Anov3D\n"],"mappings":";;;;;;;;;;;;AACA,SAASA,SAAS,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AAChE,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAOC,QAAQ;AACf,SAASC,cAAc;AAGvB;;AAEA,OAAO,IAAMC,mBAAmB,GAAG;EACjCC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,OAAO;EACZC,QAAQ,EAAE;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC;EAClCC,MAAM,EAAE;IAAEH,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE;AAC7B,CAAC;AAAA,IAQKE,MAAM;EAOV,SAAAA,OAAYC,IAAmB,EAAE;IAAA,IAAAC,aAAA;IAAAC,eAAA,OAAAH,MAAA;IAAAI,eAAA,oBANrB,CAAC;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAOX,IAAI,CAACH,IAAI,GAAGA,IAAI;;IAEhB;IACA,IAAAI,YAAA,GAA2FJ,IAAI,CAAvFK,MAAM;MAANA,MAAM,GAAAD,YAAA,cAAG,CAAC,CAAC,GAAAA,YAAA;MAAAE,eAAA,GAAwEN,IAAI,CAA1EO,SAAS;MAAIC,WAAW,GAAAF,eAAA,CAAXE,WAAW;MAAEC,YAAY,GAAAH,eAAA,CAAZG,YAAY;MAAAC,iBAAA,GAAgCV,IAAI,CAAhCW,WAAW;MAAXA,WAAW,GAAAD,iBAAA,cAAG,SAAS,GAAAA,iBAAA;IACtF,IAAkBE,eAAe,GAAqBtB,mBAAmB,CAAjEI,QAAQ;MAAsBmB,WAAW,GAAAC,wBAAA,CAAKxB,mBAAmB,EAAAyB,SAAA;;IAEzE;IACA,KAAAd,aAAA,GAAII,MAAM,CAACW,KAAK,cAAAf,aAAA,eAAZA,aAAA,CAAcgB,KAAK,EAAE;MACvB,IAAQA,KAAK,GAAKZ,MAAM,CAACW,KAAK,CAAtBC,KAAK;MACb,IAAMC,GAAG,GAAG,EAAE,GAAGD,KAAK,CAAC,CAAC,CAAC;MACzB,IAAME,GAAG,GAAG,EAAE,GAAGF,KAAK,CAAC,CAAC,CAAC;MACzBZ,MAAM,CAACW,KAAK,CAACC,KAAK,GAAG,CAACG,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEC,GAAG,CAAC,EAAEC,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC,CAAC;IAC/D;IACA;IACA,IAAME,YAAY,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA;MAChBN,KAAK,EAAE,CAAC;IAAC,GACNH,WAAW,GACXR,MAAM;MACTX,QAAQ,EAAEW,MAAM,CAACX,QAAQ,GAAG,IAAIR,OAAO,CAAC,CAAC,CAACqC,SAAS,CAAClB,MAAM,CAACX,QAAQ,CAAC,GAAGL,cAAc,CAACuB,eAAe;IAAC,EACvG;IACD;IACA,IAAMY,aAAa,GAAG;MAAER,KAAK,EAAEK,YAAY,CAACL,KAAK;MAAES,MAAM,EAAEJ,YAAY,CAACI,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAAE,CAAC,EAAC;IAC9F,IAAMC,KAAK,GAAG,IAAIzC,YAAY,CAAC;MAC7B0C,YAAY,EAAAL,aAAA,CAAAA,aAAA,KACPD,YAAY;QACfO,MAAM,EAAEpB,WAAW,GAAGC;MAAY,EACnC;MACDoB,WAAW,EAAE;QACXC,SAAS,EAAE;MACb,CAAC;MACDN,aAAa,EAAbA,aAAa;MACbO,KAAK,EAAE,IAAI;MACXC,aAAa,EAAE,IAAI;MACnBC,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE;IAChB,CAAC,CAAC;IAEFR,KAAK,CAACS,OAAO,CAACC,eAAe,CAACC,GAAG,CAAC,aAAa,EAAE1B,WAAW,CAAC;IAE7De,KAAK,CAACY,MAAM,CAACtC,IAAI,CAACO,SAAS,CAAC;IAE5BpB,eAAe,CAACuC,KAAK,CAACA,KAAK,EAAEA,KAAK,CAACa,QAAQ,EAAEb,KAAK,CAACrB,MAAM,EAAEmC,SAAS,EAAEd,KAAK,CAAC;IAC5EA,KAAK,CAACS,OAAO,CAACM,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAEhB,KAAK,CAAC;IACpD;IACA;;IAEA,IAAI,CAACiB,YAAY,GAAGjB,KAAK;IACzB,IAAI,CAACkB,QAAQ,GAAG,IAAIxD,QAAQ,CAAC,IAAW,CAAC;IAEzCsC,KAAK,CAACS,OAAO,CAACC,eAAe,CAACC,GAAG,CAAC,WAAW,EAAE,IAAI,CAACO,QAAQ,CAAC;;IAE7D;EACF;EAACC,YAAA,CAAA9C,MAAA;IAAA+C,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAsB;MACpB,OAAO,IAAI,CAACJ,YAAY,CAACR,OAAO,CAACC,eAAe;IAClD;EAAC;IAAAU,GAAA;IAAAE,KAAA,EAED,SAAAC,GAAA,EAAmB;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACR,IAAI,CAACZ,YAAY,CAACR,OAAO,CAACM,OAAO,CAACQ,EAAE,CAACO,KAAK,CAAC,IAAI,CAACb,YAAY,CAACR,OAAO,CAACM,OAAO,EAAEY,IAAI,CAAC;IACrF;EAAC;IAAAP,GAAA;IAAAE,KAAA,EAED,SAAAS,IAAA,EAAoB;MAAA,SAAAC,KAAA,GAAAP,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAI,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJN,IAAI,CAAAM,KAAA,IAAAR,SAAA,CAAAQ,KAAA;MAAA;MACT,IAAI,CAAChB,YAAY,CAACR,OAAO,CAACM,OAAO,CAACgB,GAAG,CAACD,KAAK,CAAC,IAAI,CAACb,YAAY,CAACR,OAAO,CAACM,OAAO,EAAEY,IAAI,CAAC;IACtF;EAAC;IAAAP,GAAA;IAAAE,KAAA,EAED,SAAAN,KAAA,EAAqB;MAAA,SAAAkB,KAAA,GAAAT,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAM,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAJR,IAAI,CAAAQ,KAAA,IAAAV,SAAA,CAAAU,KAAA;MAAA;MACV,IAAI,CAAClB,YAAY,CAACR,OAAO,CAACM,OAAO,CAACC,IAAI,CAACc,KAAK,CAAC,IAAI,CAACb,YAAY,CAACR,OAAO,CAACM,OAAO,EAAEY,IAAI,CAAC;IACvF;EAAC;IAAAP,GAAA;IAAAE,KAAA,EAED,SAAAc,QAAQpC,KAAK,EAAE;MACb,IAAMqC,SAAmB,GAAG,CAC1B,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAC/C;MACDC,WAAW,CAAC,YAAM;QAChB,IAAMzB,QAAQ,GAAGb,KAAK,CAACa,QAAQ;QAC/B,IAAM0B,KAAK,GAAG,IAAIC,GAAG,CAAS,CAAC;QAC/B,IAAIC,OAAO,GAAG,CAAC;QACfzC,KAAK,CAACA,KAAK,CAAC0C,QAAQ,CAAC,UAACC,GAAG,EAAK;UAC5B,IAAI,CAAEA,GAAG,CAASC,MAAM,EACtB;UACF,IAAMC,IAAI,GAAGF,GAAG;UAChB,IAAMG,IAAI,GAAGlB,KAAK,CAACmB,OAAO,CAACF,IAAI,CAACG,QAAQ,CAAC,GAAGH,IAAI,CAACG,QAAQ,GAAG,CAACH,IAAI,CAACG,QAAQ,CAAC;UAC3EF,IAAI,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;YACpBb,SAAS,CAACY,OAAO,CAAC,UAACE,IAAI,EAAK;cAC1B,IAAMC,GAAG,GAAIF,GAAG,CAA0BC,IAAI,CAAmB;cACjE,IAAI,CAACC,GAAG,EACN;cACF,IAAI,CAACb,KAAK,CAACc,GAAG,CAACD,GAAG,CAACE,IAAI,CAAC,EAAE;gBACxBf,KAAK,CAACgB,GAAG,CAACH,GAAG,CAACE,IAAI,CAAC;gBACnB,IAAME,GAAG,GAAGJ,GAAG,CAACK,KAAgC;gBAChD,IAAID,GAAG,EACLf,OAAO,IAAKe,GAAG,CAACE,KAAK,GAAGF,GAAG,CAACG,MAAM,GAAG,CAAC,GAAI,IAAI,GAAG,IAAI;cACzD;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;QAEFC,OAAO,CAACC,KAAK,CAAC;UACZ,OAAO,EAAEtB,KAAK,CAACuB,IAAI;UACnB,QAAQ,EAAEjD,QAAQ,CAACkD,IAAI,CAACC,MAAM,CAACC,QAAQ;UACvC,OAAO,EAAEpD,QAAQ,CAACkD,IAAI,CAACC,MAAM,CAACE,UAAU;UACxC,QAAQ,EAAErD,QAAQ,CAACkD,IAAI,CAACnD,MAAM,CAACuD,KAAK;UACpC,MAAM,EAAEtD,QAAQ,CAACkD,IAAI,CAACnD,MAAM,CAACwD,SAAS;UACtC,UAAU,EAAE3B,OAAO,CAAC4B,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC;MACJ,CAAC,EAAE,IAAI,CAAC;IACV;EAAC;IAAAjD,GAAA;IAAAE,KAAA,EAED,SAAAgD,iBAAiBC,MAEM,EAAE;MACvB,IAAQhF,KAAK,GAAoBgF,MAAM,CAA/BhF,KAAK;QAAEiF,GAAG,GAAeD,MAAM,CAAxBC,GAAG;QAAEC,QAAQ,GAAKF,MAAM,CAAnBE,QAAQ;MAC5B,IAAM3E,aAAkB,GAAG,CAAC,CAAC;MAC7B,IAAI,CAAAP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmC,MAAM,IAAG,CAAC,EAAE;QACrB5B,aAAa,CAAC4E,aAAa,GAAGpH,SAAS,CAACqH,QAAQ,CAACpF,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1DO,aAAa,CAAC8E,aAAa,GAAGtH,SAAS,CAACqH,QAAQ,CAACpF,KAAK,CAAC,CAAC,CAAC,CAAC;MAC5D;MACA,IAAI,CAAAiF,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE9C,MAAM,IAAG,CAAC,EAAE;QACnB5B,aAAa,CAAC+E,eAAe,GAAGvH,SAAS,CAACqH,QAAQ,CAACH,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D1E,aAAa,CAACgF,eAAe,GAAGxH,SAAS,CAACqH,QAAQ,CAACH,GAAG,CAAC,CAAC,CAAC,CAAC;MAC5D;MACA,IAAI,CAAAC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/C,MAAM,IAAG,CAAC,EAAE;QACxB5B,aAAa,CAACiF,WAAW,GAAGN,QAAQ,CAAC,CAAC,CAAC;QACvC3E,aAAa,CAACkF,WAAW,GAAGP,QAAQ,CAAC,CAAC,CAAC;MACzC;MACA,OAAO3E,aAAa;IACtB;EAAC;IAAAsB,GAAA;IAAAE,KAAA,EAED,SAAA2D,QAAA,EAAU;MAAA,IAAAC,kBAAA,EAAAC,kBAAA;MACR,CAAAD,kBAAA,OAAI,CAACE,YAAY,cAAAF,kBAAA,eAAjBA,kBAAA,CAAAG,IAAA,KAAoB,CAAC;MACrB,CAAAF,kBAAA,OAAI,CAAClE,YAAY,cAAAkE,kBAAA,eAAjBA,kBAAA,CAAmBF,OAAO,CAAC,CAAC;IAC9B;EAAC;EAAA,OAAA5G,MAAA;AAAA;AAGH,eAAeA,MAAM"}
1
+ {"version":3,"names":["MathUtils","SceneControl","Vector3","initPostEffects","EventBus","object2Vector3","initGlobalHooks","setGlobalScene","emitterLikeMitt","notify","defaultCameraParams","fov","near","far","position","x","y","z","lookAt","Anov3D","opts","_camera$limit","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","_opts$decoderPath","decoderPath","defaultPosition","defaultRest","_objectWithoutProperties","_excluded","limit","pitch","min","max","Math","cameraParams","_objectSpread","fromArray","orbitControls","target","scene","emitter","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","context","storeManagement","set","render","renderer","undefined","sceneControl","eventBus","_createClass","key","get","value","on","_len","arguments","length","args","Array","_key","apply","off","_len2","_key2","emit","_len3","_key3","logInfo","TEX_SLOTS","setInterval","uuids","Set","totalMB","traverse","obj","isMesh","mesh","mats","isArray","material","forEach","mat","slot","tex","has","uuid","add","img","image","width","height","console","table","size","info","memory","textures","geometries","calls","triangles","toFixed","getOrbitControls","params","yaw","distance","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","minDistance","maxDistance","destroy","_this$sceneControl"],"sources":["../src/anov3d.ts"],"sourcesContent":["import type { MeshStandardMaterial, Texture } from '@anov/3d-core'\nimport { MathUtils, SceneControl, Vector3 } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { initGlobalHooks } from './hooksManager'\nimport { setGlobalScene, emitterLikeMitt, notify } from './module/message/hub'\n\nexport const defaultCameraParams = {\n fov: 60,\n near: 0.1,\n far: 1000000,\n position: { x: 0, y: 100, z: 200 },\n lookAt: { x: 0, y: 0, z: 0 },\n}\n\nexport type Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n decoderPath?: string\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight }, decoderPath = '/draco/' } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 俯仰角转换,SCC取值范围是-90-90,转换到0-180\n if (camera.limit?.pitch) {\n const { pitch } = camera.limit\n const min = 90 - pitch[0]\n const max = 90 - pitch[1]\n camera.limit.pitch = [Math.min(min, max), Math.max(min, max)]\n }\n // 初始化相机参数\n const cameraParams = {\n limit: {},\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n // const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数\n const orbitControls = { limit: cameraParams.limit, target: cameraParams.target || [0, 0, 0] } // 控制器参数\n \n initGlobalHooks()\n\n const scene = new SceneControl({\n emitter: emitterLikeMitt,\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n orbitControls,\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n\n setGlobalScene(scene)\n\n scene.context.storeManagement.set('decoderPath', decoderPath)\n\n scene.render(opts.container)\n\n initPostEffects(scene.scene, scene.renderer, scene.camera, undefined, scene)\n notify('scene-completed', scene)\n // scene.controls.target!.copy(new Vector3().fromArray(cameraParams.target! || [0, 0, 0]))\n // this.logInfo(scene)\n\n this.sceneControl = scene\n this.eventBus = new EventBus(this as any)\n\n scene.context.storeManagement.set('event-bus', this.eventBus)\n\n }\n\n get storeManagement() {\n return this.sceneControl.context.storeManagement\n }\n\n on(...args: any[]) {\n this.sceneControl.context.emitter.on.apply(this.sceneControl.context.emitter, args)\n }\n\n off(...args: any[]) {\n this.sceneControl.context.emitter.off.apply(this.sceneControl.context.emitter, args)\n }\n\n emit(...args: any[]) {\n this.sceneControl.context.emitter.emit.apply(this.sceneControl.context.emitter, args)\n }\n\n logInfo(scene) {\n const TEX_SLOTS: string[] = [\n 'map', 'normalMap', 'roughnessMap', 'metalnessMap',\n 'aoMap', 'emissiveMap', 'alphaMap', 'lightMap',\n ]\n setInterval(() => {\n const renderer = scene.renderer\n const uuids = new Set<string>()\n let totalMB = 0\n scene.scene.traverse((obj) => {\n if (!(obj as any).isMesh)\n return\n const mesh = obj\n const mats = Array.isArray(mesh.material) ? mesh.material : [mesh.material]\n mats.forEach((mat) => {\n TEX_SLOTS.forEach((slot) => {\n const tex = (mat as MeshStandardMaterial)[slot] as Texture | null\n if (!tex)\n return\n if (!uuids.has(tex.uuid)) {\n uuids.add(tex.uuid)\n const img = tex.image as HTMLImageElement | null\n if (img)\n totalMB += (img.width * img.height * 4) / 1024 / 1024\n }\n })\n })\n })\n\n console.table({\n '场景纹理数': uuids.size,\n '渲染器纹理数': renderer.info.memory.textures,\n '几何体数量': renderer.info.memory.geometries,\n '渲染调用次数': renderer.info.render.calls,\n '三角面数': renderer.info.render.triangles,\n '估算显存(MB)': totalMB.toFixed(0),\n })\n }, 5000)\n }\n\n getOrbitControls(params: { pitch?: number[]\n yaw?: number[]\n distance?: number[] }) {\n const { pitch, yaw, distance } = params\n const orbitControls: any = {}\n if (pitch?.length > 1) {\n orbitControls.minPolarAngle = MathUtils.degToRad(pitch[0])\n orbitControls.maxPolarAngle = MathUtils.degToRad(pitch[1])\n }\n if (yaw?.length > 1) {\n orbitControls.minAzimuthAngle = MathUtils.degToRad(yaw[0])\n orbitControls.maxAzimuthAngle = MathUtils.degToRad(yaw[1])\n }\n if (distance?.length > 1) {\n orbitControls.minDistance = distance[0]\n orbitControls.maxDistance = distance[1]\n }\n return orbitControls\n }\n\n destroy() {\n this.sceneControl?.destroy()\n }\n}\n\nexport default Anov3D\n"],"mappings":"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"}
@@ -14,6 +14,7 @@ import { getFnByFnkey } from "./utils/index";
14
14
  import { MessageType, sendToMessage } from "./utils/messageFn";
15
15
  import { EMessageStatus } from "./messageStatus";
16
16
  import Anov3D from "./sdkEntry";
17
+ import { callbackRegistry } from "./module/message/hub";
17
18
  var Application = /*#__PURE__*/function () {
18
19
  function Application(opts) {
19
20
  _classCallCheck(this, Application);
@@ -44,20 +45,26 @@ var Application = /*#__PURE__*/function () {
44
45
  });
45
46
  this.iEngine = anov3D;
46
47
  this.iEngine.zoomRatio = (_set$zoomRatio = set === null || set === void 0 ? void 0 : set.zoomRatio) !== null && _set$zoomRatio !== void 0 ? _set$zoomRatio : 1;
47
- this.iEngine.sceneControl.context.storeManagement.set('container', this.container);
48
- sendToMessage(this.iEngine, {
48
+ var storeManagement = this.iEngine.sceneControl.context.storeManagement;
49
+ storeManagement.set('container', this.container);
50
+
51
+ // 同步 callbackRegistry 中的所有预注册事件
52
+ callbackRegistry.forEach(function (value, key) {
53
+ storeManagement.set(key, value);
54
+ });
55
+ sendToMessage({
49
56
  messageType: MessageType.Api,
50
57
  messageName: 'engineReady',
51
58
  status: EMessageStatus.Success
52
59
  });
53
- sendToMessage(this.iEngine, {
60
+ sendToMessage({
54
61
  messageType: MessageType.Api,
55
62
  messageName: 'core.init',
56
63
  status: EMessageStatus.Success,
57
64
  id: id
58
65
  });
59
66
  } catch (error) {
60
- sendToMessage(this.iEngine, {
67
+ sendToMessage({
61
68
  messageType: MessageType.Api,
62
69
  messageName: 'core.init',
63
70
  status: EMessageStatus.EventHandleFailed,
@@ -77,7 +84,7 @@ var Application = /*#__PURE__*/function () {
77
84
  key: "initScene",
78
85
  value: function () {
79
86
  var _initScene = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
80
- var _scc$nodes, scc, cameraNode, anov3D;
87
+ var _scc$nodes, scc, cameraNode, anov3D, storeManagement;
81
88
  return _regeneratorRuntime().wrap(function _callee$(_context) {
82
89
  while (1) switch (_context.prev = _context.next) {
83
90
  case 0:
@@ -98,9 +105,15 @@ var Application = /*#__PURE__*/function () {
98
105
  decoderPath: this.decoderPath
99
106
  });
100
107
  this.iEngine = anov3D;
101
- this.iEngine.sceneControl.context.storeManagement.set('container', this.container);
108
+ storeManagement = this.iEngine.sceneControl.context.storeManagement;
109
+ storeManagement.set('container', this.container);
110
+
111
+ // 同步 callbackRegistry 中的所有预注册事件
112
+ callbackRegistry.forEach(function (value, key) {
113
+ storeManagement.set(key, value);
114
+ });
102
115
  } catch (error) {
103
- sendToMessage(this.iEngine, {
116
+ sendToMessage({
104
117
  messageType: MessageType.Api,
105
118
  messageName: 'scene.init',
106
119
  status: EMessageStatus.EventHandleFailed
@@ -120,7 +133,6 @@ var Application = /*#__PURE__*/function () {
120
133
  }, {
121
134
  key: "sendMessage",
122
135
  value: function sendMessage(req) {
123
- var _this = this;
124
136
  // core.init 遗留逻辑
125
137
  if (req.name === 'Core.init' || req.name === 'core.init') {
126
138
  this.init(req.params, req.id);
@@ -138,7 +150,7 @@ var Application = /*#__PURE__*/function () {
138
150
  try {
139
151
  var res = fn(req.params);
140
152
  Promise.resolve(res).then(function (res) {
141
- sendToMessage(_this.iEngine, {
153
+ sendToMessage({
142
154
  messageType: MessageType.Api,
143
155
  messageName: req.name,
144
156
  status: EMessageStatus.Success,
@@ -146,7 +158,7 @@ var Application = /*#__PURE__*/function () {
146
158
  }, res);
147
159
  });
148
160
  } catch (error) {
149
- sendToMessage(this.iEngine, {
161
+ sendToMessage({
150
162
  messageType: MessageType.Api,
151
163
  messageName: req.name,
152
164
  status: EMessageStatus.EventHandleFailed,
@@ -159,28 +171,13 @@ var Application = /*#__PURE__*/function () {
159
171
  }, {
160
172
  key: "receiveMessage",
161
173
  value: function receiveMessage(eventName, cb) {
162
- var _this2 = this;
174
+ // 立即存入全局存储,不再依赖 iEngine 状态
175
+ callbackRegistry.set(eventName, cb);
176
+
177
+ // 如果 iEngine 已实例化,则同步一份到其内部存储
163
178
  if (this.iEngine) {
164
179
  this.iEngine.sceneControl.context.storeManagement.set(eventName, cb);
165
- return;
166
180
  }
167
-
168
- // 未初始化时,将事件和回调函数存储在队列中
169
- var queue = [];
170
- queue.push({
171
- eventName: eventName,
172
- cb: cb
173
- });
174
- var checkEngine = function checkEngine() {
175
- if (_this2.iEngine) {
176
- queue.forEach(function (item) {
177
- _this2.iEngine.sceneControl.context.storeManagement.set(item.eventName, item.cb);
178
- });
179
- } else {
180
- requestAnimationFrame(checkEngine);
181
- }
182
- };
183
- requestAnimationFrame(checkEngine);
184
181
  }
185
182
  }]);
186
183
  return Application;
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","getFnByFnkey","MessageType","sendToMessage","EMessageStatus","Anov3D","Application","opts","container","el","decoderPath","init","params","id","_set$zoomRatio","_ref","_ref$camera","camera","set","cameraParams","position","anov3D","iEngine","zoomRatio","sceneControl","context","storeManagement","messageType","Api","messageName","status","Success","EventHandleFailed","console","get","_initScene","_callee","_scc$nodes","scc","cameraNode","_callee$","_context","innerHTML","destroy","nodes","find","node","initScene","_x","sendMessage","req","_this","res","failMessage","message","receiveMessage","eventName","cb","_this2","queue","checkEngine","item","requestAnimationFrame","createInstance"],"sources":["../src/applicationApi.ts"],"sourcesContent":["import { getFnByFnkey } from './utils/index'\nimport { MessageType, sendToMessage } from './utils/messageFn'\nimport { EMessageStatus } from './messageStatus'\nimport type { InitOptions } from './applicationApiType'\nimport Anov3D from './sdkEntry'\n\ntype ApplicationOptions = {\n el: HTMLElement\n decoderPath?: string\n}\n\nclass Application {\n container: HTMLElement\n iEngine: Anov3D\n decoderPath: string\n\n constructor(opts: ApplicationOptions) {\n this.container = opts.el\n this.decoderPath = opts.decoderPath || '/draco/'\n }\n\n // fixme: 为什么要单独 init,为什么不直接在 constructor 中初始化\n private init(params: InitOptions, id: string) {\n try {\n const { camera = {}, set } = params || {}\n\n const cameraParams = {\n position: camera.position,\n }\n\n const anov3D = new Anov3D({\n container: this.container,\n camera: {\n ...cameraParams,\n },\n decoderPath: this.decoderPath,\n })\n\n this.iEngine = anov3D\n this.iEngine.zoomRatio = set?.zoomRatio ?? 1\n\n this.iEngine.sceneControl.context.storeManagement.set('container', this.container)\n\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: 'engineReady',\n status: EMessageStatus.Success,\n })\n\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: 'core.init',\n status: EMessageStatus.Success,\n id,\n })\n }\n\n catch (error) {\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: 'core.init',\n status: EMessageStatus.EventHandleFailed,\n id,\n })\n console.error(error)\n }\n }\n\n // 暴露 storeManagement\n get storeManagement() {\n return this.iEngine.storeManagement\n }\n\n private async initScene(params: any) {\n try {\n const { scc } = params\n if (this.iEngine) { // todo: 兼容场景切换操作,后续需要处理多场景切换、多场景实例等问题\n this.container.innerHTML = ''\n this.iEngine.sceneControl.destroy()\n }\n // 相机参数\n const cameraNode = scc?.nodes?.find(node => node.type === 'camera')\n const anov3D = new Anov3D({\n container: this.container,\n camera: cameraNode,\n decoderPath: this.decoderPath,\n })\n this.iEngine = anov3D\n\n this.iEngine.sceneControl.context.storeManagement.set('container', this.container)\n }\n catch (error) {\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: 'scene.init',\n status: EMessageStatus.EventHandleFailed,\n })\n }\n }\n\n sendMessage(req: { name: string; id: string; params: any }) {\n // core.init 遗留逻辑\n if (req.name === 'Core.init' || req.name === 'core.init') {\n this.init(req.params, req.id)\n return\n }\n if (req.name === 'scene.init') {\n this.initScene(req.params)\n // return // fixme: 我没有理解,为什么不返回,而是继续执行后续的任务\n }\n\n if (!this.iEngine) {\n const error = new Error('please init first!')\n throw error\n }\n\n const fn = getFnByFnkey(this.iEngine, req.name, req.id) as any\n\n try {\n const res = fn(req.params)\n Promise.resolve(res).then((res) => {\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: req.name,\n status: EMessageStatus.Success,\n id: req.id,\n }, res)\n })\n }\n catch (error: any) {\n sendToMessage(this.iEngine, {\n messageType: MessageType.Api,\n messageName: req.name,\n status: EMessageStatus.EventHandleFailed,\n id: req.id,\n }, {\n failMessage: error.message,\n })\n }\n }\n\n receiveMessage(eventName: string, cb: (params: any) => void) {\n if (this.iEngine) {\n this.iEngine.sceneControl.context.storeManagement.set(eventName, cb)\n return\n }\n\n // 未初始化时,将事件和回调函数存储在队列中\n const queue: { eventName: string; cb: (params: any) => void }[] = []\n queue.push({\n eventName,\n cb,\n })\n\n const checkEngine = () => {\n if (this.iEngine) {\n queue.forEach((item) => {\n this.iEngine.sceneControl.context.storeManagement.set(item.eventName, item.cb)\n })\n }\n else {\n requestAnimationFrame(checkEngine)\n }\n }\n requestAnimationFrame(checkEngine)\n }\n}\n\n/**\n * create an instance of Application\n * @returns\n */\nexport const createInstance = (opts: ApplicationOptions): Application => {\n return new Application(opts)\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","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","getFnByFnkey","MessageType","sendToMessage","EMessageStatus","Anov3D","callbackRegistry","Application","opts","container","el","decoderPath","init","params","id","_set$zoomRatio","_ref","_ref$camera","camera","set","cameraParams","position","anov3D","iEngine","zoomRatio","storeManagement","sceneControl","context","messageType","Api","messageName","status","Success","EventHandleFailed","console","get","_initScene","_callee","_scc$nodes","scc","cameraNode","_callee$","_context","innerHTML","destroy","nodes","find","node","initScene","_x","sendMessage","req","res","failMessage","message","receiveMessage","eventName","cb","createInstance"],"sources":["../src/applicationApi.ts"],"sourcesContent":["import { getFnByFnkey } from './utils/index'\nimport { MessageType, sendToMessage } from './utils/messageFn'\nimport { EMessageStatus } from './messageStatus'\nimport type { InitOptions } from './applicationApiType'\nimport Anov3D from './sdkEntry'\nimport { callbackRegistry } from './module/message/hub'\n\ntype ApplicationOptions = {\n el: HTMLElement\n decoderPath?: string\n}\n\nclass Application {\n container: HTMLElement\n iEngine: Anov3D\n decoderPath: string\n\n constructor(opts: ApplicationOptions) {\n this.container = opts.el\n this.decoderPath = opts.decoderPath || '/draco/'\n }\n\n // fixme: 为什么要单独 init,为什么不直接在 constructor 中初始化\n private init(params: InitOptions, id: string) {\n try {\n const { camera = {}, set } = params || {}\n\n const cameraParams = {\n position: camera.position,\n }\n\n const anov3D = new Anov3D({\n container: this.container,\n camera: {\n ...cameraParams,\n },\n decoderPath: this.decoderPath,\n })\n\n this.iEngine = anov3D\n this.iEngine.zoomRatio = set?.zoomRatio ?? 1\n\n const storeManagement = this.iEngine.sceneControl.context.storeManagement\n storeManagement.set('container', this.container)\n\n // 同步 callbackRegistry 中的所有预注册事件\n callbackRegistry.forEach((value, key) => {\n storeManagement.set(key, value)\n })\n\n sendToMessage({\n messageType: MessageType.Api,\n messageName: 'engineReady',\n status: EMessageStatus.Success,\n })\n\n sendToMessage({\n messageType: MessageType.Api,\n messageName: 'core.init',\n status: EMessageStatus.Success,\n id,\n })\n }\n\n catch (error) {\n sendToMessage({\n messageType: MessageType.Api,\n messageName: 'core.init',\n status: EMessageStatus.EventHandleFailed,\n id,\n })\n console.error(error)\n }\n }\n\n // 暴露 storeManagement\n get storeManagement() {\n return this.iEngine.storeManagement\n }\n\n private async initScene(params: any) {\n try {\n const { scc } = params\n if (this.iEngine) { // todo: 兼容场景切换操作,后续需要处理多场景切换、多场景实例等问题\n this.container.innerHTML = ''\n this.iEngine.sceneControl.destroy()\n }\n // 相机参数\n const cameraNode = scc?.nodes?.find(node => node.type === 'camera')\n const anov3D = new Anov3D({\n container: this.container,\n camera: cameraNode,\n decoderPath: this.decoderPath,\n })\n this.iEngine = anov3D\n\n const storeManagement = this.iEngine.sceneControl.context.storeManagement\n storeManagement.set('container', this.container)\n\n // 同步 callbackRegistry 中的所有预注册事件\n callbackRegistry.forEach((value, key) => {\n storeManagement.set(key, value)\n })\n }\n catch (error) {\n sendToMessage({\n messageType: MessageType.Api,\n messageName: 'scene.init',\n status: EMessageStatus.EventHandleFailed,\n })\n }\n }\n\n sendMessage(req: { name: string; id: string; params: any }) {\n // core.init 遗留逻辑\n if (req.name === 'Core.init' || req.name === 'core.init') {\n this.init(req.params, req.id)\n return\n }\n if (req.name === 'scene.init') {\n this.initScene(req.params)\n // return // fixme: 我没有理解,为什么不返回,而是继续执行后续的任务\n }\n\n if (!this.iEngine) {\n const error = new Error('please init first!')\n throw error\n }\n\n const fn = getFnByFnkey(this.iEngine, req.name, req.id) as any\n\n try {\n const res = fn(req.params)\n Promise.resolve(res).then((res) => {\n sendToMessage({\n messageType: MessageType.Api,\n messageName: req.name,\n status: EMessageStatus.Success,\n id: req.id,\n }, res)\n })\n }\n catch (error: any) {\n sendToMessage({\n messageType: MessageType.Api,\n messageName: req.name,\n status: EMessageStatus.EventHandleFailed,\n id: req.id,\n }, {\n failMessage: error.message,\n })\n }\n }\n\n receiveMessage(eventName: string, cb: (params: any) => void) {\n // 立即存入全局存储,不再依赖 iEngine 状态\n callbackRegistry.set(eventName, cb)\n\n // 如果 iEngine 已实例化,则同步一份到其内部存储\n if (this.iEngine) {\n this.iEngine.sceneControl.context.storeManagement.set(eventName, cb)\n }\n }\n}\n\n/**\n * create an instance of Application\n * @returns\n */\nexport const createInstance = (opts: ApplicationOptions): Application => {\n return new Application(opts)\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../src/applicationApiType.ts"],"sourcesContent":["export type InitOptions = {\n camera?: {\n position?: [\n number,\n number,\n number,\n ]\n limit?: {\n pitch?: [number, number]\n distance?: [number, number]\n }\n }\n set?: {\n zoomRatio?: number\n }\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../src/applicationApiType.ts"],"sourcesContent":["export type InitOptions = {\n camera?: {\n position?: [\n number,\n number,\n number,\n ]\n limit?: {\n pitch?: [number, number]\n distance?: [number, number]\n }\n target?: [\n number,\n number,\n number,\n ]\n }\n set?: {\n zoomRatio?: number\n }\n}\n"],"mappings":""}
@@ -1,50 +1,53 @@
1
- import { Observable, filter } from 'rxjs';
1
+ import { messageHub, getGlobalScene, callbackRegistry } from "./module/message/hub";
2
2
  /**
3
- * from Mitt Event , convert mitt to Observable
4
- * @param eventName
5
- * @returns
3
+ * 初始化全局业务钩子
4
+ * 在场景实例化之前就可以调用
6
5
  */
7
- export var fromMittEvent = function fromMittEvent(eventName, sceneControl) {
8
- return new Observable(function (subscriber) {
9
- var handler = function handler(data) {
10
- subscriber.next(data);
11
- };
12
- sceneControl.context.emitter.on(eventName, handler);
13
- return function () {
14
- sceneControl.context.emitter.off(eventName, handler);
15
- };
6
+ export var initGlobalHooks = function initGlobalHooks() {
7
+ // 1. 场景完成监听
8
+ messageHub.onNotification('scene-completed', function (scene) {
9
+ console.log('场景编译完成', scene);
16
10
  });
17
- };
18
- // fixme 这可能是一个多余的设计,正常来说 emit 和 on 就可以了,没必要加入 rxjs
19
- // fixme 似乎 storeManagement 也不是必要的设计
20
- var registerHooks = function registerHooks(sceneControl) {
21
- var subscriptions = [];
22
- var sceneCompletedSub = fromMittEvent('scene-completed', sceneControl).subscribe({
23
- next: function next(scene) {
24
- console.log('场景编译完成', scene);
25
- }
26
- });
27
- subscriptions.push(sceneCompletedSub);
28
- var eventFilterSub = fromMittEvent('event', sceneControl).pipe(filter(function (data) {
29
- var eventBus = sceneControl.context.storeManagement.get('event-bus');
30
- return eventBus && eventBus.eventMap.get(data.name) || !data.global;
31
- })).subscribe({
32
- next: function next(data) {
33
- sceneControl.context.emitter.emit('message', data);
11
+
12
+ // 2. 事件过滤与消息转发
13
+ messageHub.onNotification('event', function (data) {
14
+ console.log("🚀 ~ initGlobalHooks ~ event:", data);
15
+ var sceneControl = getGlobalScene();
16
+
17
+ // 如果有 event-bus,检查是否需要转发;否则对于非全局事件默认转发
18
+ var eventBus = sceneControl === null || sceneControl === void 0 ? void 0 : sceneControl.context.storeManagement.get('event-bus');
19
+ var shouldForward = eventBus && eventBus.eventMap.get(data.name) || !data.global;
20
+ if (shouldForward) {
21
+ messageHub.notify({
22
+ method: 'message',
23
+ params: data
24
+ });
34
25
  }
35
26
  });
36
- subscriptions.push(eventFilterSub);
37
- var messageRoutingSub = fromMittEvent('message', sceneControl).subscribe({
38
- next: function next(data) {
39
- var messageCallback = sceneControl.context.storeManagement.get('message');
40
- messageCallback === null || messageCallback === void 0 || messageCallback(data);
27
+
28
+ // 3. 消息路由
29
+ messageHub.onNotification('message', function (data) {
30
+ var _messageCallback;
31
+ console.log("🚀 ~ initGlobalHooks ~ message:", data);
32
+ var sceneControl = getGlobalScene();
33
+
34
+ // 优先从 callbackRegistry 获取回调,这是解耦的关键
35
+ var messageCallback = callbackRegistry.get('message');
36
+
37
+ // 兜底逻辑:尝试从旧的 storeManagement 获取 (兼容性考虑)
38
+ if (!messageCallback && sceneControl) {
39
+ messageCallback = sceneControl.context.storeManagement.get('message');
41
40
  }
41
+ (_messageCallback = messageCallback) === null || _messageCallback === void 0 || _messageCallback(data);
42
42
  });
43
- subscriptions.push(messageRoutingSub);
43
+ };
44
+
45
+ /**
46
+ * 历史兼容:如果还有地方调用 registerHooks,返回一个空函数或做最简适配
47
+ */
48
+ var registerHooks = function registerHooks(sceneControl) {
44
49
  return function () {
45
- subscriptions.forEach(function (sub) {
46
- return sub.unsubscribe();
47
- });
50
+ // 清理逻辑现在由 messageHub.destroy() 处理
48
51
  };
49
52
  };
50
53
  export default registerHooks;
@@ -1 +1 @@
1
- {"version":3,"names":["Observable","filter","fromMittEvent","eventName","sceneControl","subscriber","handler","data","next","context","emitter","on","off","registerHooks","subscriptions","sceneCompletedSub","subscribe","scene","console","log","push","eventFilterSub","pipe","eventBus","storeManagement","get","eventMap","name","global","emit","messageRoutingSub","messageCallback","forEach","sub","unsubscribe"],"sources":["../src/hooksManager.ts"],"sourcesContent":["import { type SceneControl } from '@anov/3d-core'\nimport type { Subscription } from 'rxjs'\nimport { Observable, filter } from 'rxjs'\nimport type EventBus from './module/eventBus'\n\n/**\n * from Mitt Event , convert mitt to Observable\n * @param eventName\n * @returns\n */\nexport const fromMittEvent = (eventName: string, sceneControl: SceneControl): Observable<any> => {\n return new Observable((subscriber) => {\n const handler = (data) => {\n subscriber.next(data)\n }\n\n sceneControl.context.emitter.on(eventName, handler)\n\n return () => {\n sceneControl.context.emitter.off(eventName, handler)\n }\n })\n}\n// fixme 这可能是一个多余的设计,正常来说 emit 和 on 就可以了,没必要加入 rxjs\n// fixme 似乎 storeManagement 也不是必要的设计\nconst registerHooks = (sceneControl: SceneControl): (() => void) => {\n const subscriptions: Subscription[] = []\n\n const sceneCompletedSub = fromMittEvent('scene-completed', sceneControl).subscribe({\n next: (scene) => {\n console.log('场景编译完成', scene)\n },\n })\n subscriptions.push(sceneCompletedSub)\n\n const eventFilterSub = fromMittEvent('event', sceneControl).pipe(\n filter((data) => {\n const eventBus = sceneControl.context.storeManagement.get<EventBus | undefined>('event-bus')\n return (eventBus && eventBus.eventMap.get(data.name)) || !data.global\n }),\n ).subscribe({\n next: (data: any) => {\n sceneControl.context.emitter.emit('message', data)\n },\n })\n subscriptions.push(eventFilterSub)\n\n const messageRoutingSub = fromMittEvent('message', sceneControl).subscribe({\n next: (data: any) => {\n const messageCallback = sceneControl.context.storeManagement.get<((data: any) => void) | undefined>('message')\n messageCallback?.(data)\n },\n })\n subscriptions.push(messageRoutingSub)\n\n return () => {\n subscriptions.forEach(sub => sub.unsubscribe())\n }\n}\n\nexport default registerHooks\n"],"mappings":"AAEA,SAASA,UAAU,EAAEC,MAAM,QAAQ,MAAM;AAGzC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,SAAiB,EAAEC,YAA0B,EAAsB;EAC/F,OAAO,IAAIJ,UAAU,CAAC,UAACK,UAAU,EAAK;IACpC,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAIC,IAAI,EAAK;MACxBF,UAAU,CAACG,IAAI,CAACD,IAAI,CAAC;IACvB,CAAC;IAEDH,YAAY,CAACK,OAAO,CAACC,OAAO,CAACC,EAAE,CAACR,SAAS,EAAEG,OAAO,CAAC;IAEnD,OAAO,YAAM;MACXF,YAAY,CAACK,OAAO,CAACC,OAAO,CAACE,GAAG,CAACT,SAAS,EAAEG,OAAO,CAAC;IACtD,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AACD;AACA;AACA,IAAMO,aAAa,GAAG,SAAhBA,aAAaA,CAAIT,YAA0B,EAAmB;EAClE,IAAMU,aAA6B,GAAG,EAAE;EAExC,IAAMC,iBAAiB,GAAGb,aAAa,CAAC,iBAAiB,EAAEE,YAAY,CAAC,CAACY,SAAS,CAAC;IACjFR,IAAI,EAAE,SAAAA,KAACS,KAAK,EAAK;MACfC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEF,KAAK,CAAC;IAC9B;EACF,CAAC,CAAC;EACFH,aAAa,CAACM,IAAI,CAACL,iBAAiB,CAAC;EAErC,IAAMM,cAAc,GAAGnB,aAAa,CAAC,OAAO,EAAEE,YAAY,CAAC,CAACkB,IAAI,CAC9DrB,MAAM,CAAC,UAACM,IAAI,EAAK;IACf,IAAMgB,QAAQ,GAAGnB,YAAY,CAACK,OAAO,CAACe,eAAe,CAACC,GAAG,CAAuB,WAAW,CAAC;IAC5F,OAAQF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,CAACD,GAAG,CAAClB,IAAI,CAACoB,IAAI,CAAC,IAAK,CAACpB,IAAI,CAACqB,MAAM;EACvE,CAAC,CACH,CAAC,CAACZ,SAAS,CAAC;IACVR,IAAI,EAAE,SAAAA,KAACD,IAAS,EAAK;MACnBH,YAAY,CAACK,OAAO,CAACC,OAAO,CAACmB,IAAI,CAAC,SAAS,EAAEtB,IAAI,CAAC;IACpD;EACF,CAAC,CAAC;EACFO,aAAa,CAACM,IAAI,CAACC,cAAc,CAAC;EAElC,IAAMS,iBAAiB,GAAG5B,aAAa,CAAC,SAAS,EAAEE,YAAY,CAAC,CAACY,SAAS,CAAC;IACzER,IAAI,EAAE,SAAAA,KAACD,IAAS,EAAK;MACnB,IAAMwB,eAAe,GAAG3B,YAAY,CAACK,OAAO,CAACe,eAAe,CAACC,GAAG,CAAoC,SAAS,CAAC;MAC9GM,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAGxB,IAAI,CAAC;IACzB;EACF,CAAC,CAAC;EACFO,aAAa,CAACM,IAAI,CAACU,iBAAiB,CAAC;EAErC,OAAO,YAAM;IACXhB,aAAa,CAACkB,OAAO,CAAC,UAAAC,GAAG;MAAA,OAAIA,GAAG,CAACC,WAAW,CAAC,CAAC;IAAA,EAAC;EACjD,CAAC;AACH,CAAC;AAED,eAAerB,aAAa"}
1
+ {"version":3,"names":["messageHub","getGlobalScene","callbackRegistry","initGlobalHooks","onNotification","scene","console","log","data","sceneControl","eventBus","context","storeManagement","get","shouldForward","eventMap","name","global","notify","method","params","_messageCallback","messageCallback","registerHooks"],"sources":["../src/hooksManager.ts"],"sourcesContent":["import { messageHub, getGlobalScene, callbackRegistry } from './module/message/hub'\nimport type EventBus from './module/eventBus'\n\n/**\n * 初始化全局业务钩子\n * 在场景实例化之前就可以调用\n */\nexport const initGlobalHooks = () => {\n // 1. 场景完成监听\n messageHub.onNotification('scene-completed', (scene) => {\n console.log('场景编译完成', scene)\n })\n\n // 2. 事件过滤与消息转发\n messageHub.onNotification('event', (data) => {\n console.log(\"🚀 ~ initGlobalHooks ~ event:\", data)\n const sceneControl = getGlobalScene()\n \n // 如果有 event-bus,检查是否需要转发;否则对于非全局事件默认转发\n const eventBus = sceneControl?.context.storeManagement.get<EventBus | undefined>('event-bus')\n const shouldForward = (eventBus && eventBus.eventMap.get(data.name)) || !data.global\n \n if (shouldForward) {\n messageHub.notify({\n method: 'message',\n params: data,\n })\n }\n })\n\n // 3. 消息路由\n messageHub.onNotification('message', (data) => {\n console.log(\"🚀 ~ initGlobalHooks ~ message:\", data)\n const sceneControl = getGlobalScene()\n \n // 优先从 callbackRegistry 获取回调,这是解耦的关键\n let messageCallback = callbackRegistry.get<((data: any) => void) | undefined>('message')\n \n // 兜底逻辑:尝试从旧的 storeManagement 获取 (兼容性考虑)\n if (!messageCallback && sceneControl) {\n messageCallback = sceneControl.context.storeManagement.get<((data: any) => void) | undefined>('message')\n }\n\n messageCallback?.(data)\n })\n}\n\n/**\n * 历史兼容:如果还有地方调用 registerHooks,返回一个空函数或做最简适配\n */\nconst registerHooks = (sceneControl: any): (() => void) => {\n return () => {\n // 清理逻辑现在由 messageHub.destroy() 处理\n }\n}\n\nexport default registerHooks\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,cAAc,EAAEC,gBAAgB;AAGrD;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EACnC;EACAH,UAAU,CAACI,cAAc,CAAC,iBAAiB,EAAE,UAACC,KAAK,EAAK;IACtDC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEF,KAAK,CAAC;EAC9B,CAAC,CAAC;;EAEF;EACAL,UAAU,CAACI,cAAc,CAAC,OAAO,EAAE,UAACI,IAAI,EAAK;IAC3CF,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAEC,IAAI,CAAC;IAClD,IAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC;;IAErC;IACA,IAAMS,QAAQ,GAAGD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,OAAO,CAACC,eAAe,CAACC,GAAG,CAAuB,WAAW,CAAC;IAC7F,IAAMC,aAAa,GAAIJ,QAAQ,IAAIA,QAAQ,CAACK,QAAQ,CAACF,GAAG,CAACL,IAAI,CAACQ,IAAI,CAAC,IAAK,CAACR,IAAI,CAACS,MAAM;IAEpF,IAAIH,aAAa,EAAE;MACjBd,UAAU,CAACkB,MAAM,CAAC;QAChBC,MAAM,EAAE,SAAS;QACjBC,MAAM,EAAEZ;MACV,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;;EAEF;EACAR,UAAU,CAACI,cAAc,CAAC,SAAS,EAAE,UAACI,IAAI,EAAK;IAAA,IAAAa,gBAAA;IAC7Cf,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEC,IAAI,CAAC;IACpD,IAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC;;IAErC;IACA,IAAIqB,eAAe,GAAGpB,gBAAgB,CAACW,GAAG,CAAoC,SAAS,CAAC;;IAExF;IACA,IAAI,CAACS,eAAe,IAAIb,YAAY,EAAE;MACpCa,eAAe,GAAGb,YAAY,CAACE,OAAO,CAACC,eAAe,CAACC,GAAG,CAAoC,SAAS,CAAC;IAC1G;IAEA,CAAAQ,gBAAA,GAAAC,eAAe,cAAAD,gBAAA,eAAfA,gBAAA,CAAkBb,IAAI,CAAC;EACzB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,IAAMe,aAAa,GAAG,SAAhBA,aAAaA,CAAId,YAAiB,EAAmB;EACzD,OAAO,YAAM;IACX;EAAA,CACD;AACH,CAAC;AAED,eAAec,aAAa"}
@@ -32,7 +32,7 @@ var Camera = /*#__PURE__*/function () {
32
32
  this.cameraUtils = new CameraExpand(this.camera, this.controls, app.sceneControl);
33
33
  this.cameraUtils.addEventListener('change', function () {
34
34
  if (_this.cameraUtils.isTransitionPeriod && _this.isTrigger) {
35
- sendToMessage(_this.app, {
35
+ sendToMessage({
36
36
  messageType: MessageType.Event,
37
37
  messageName: 'onCameraChanged',
38
38
  status: EMessageStatus.Success