@anov/3d 0.0.320 → 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.
Files changed (78) hide show
  1. package/dist/__mocks__/ability-mock.js +124 -0
  2. package/dist/__mocks__/ability-mock.js.map +1 -0
  3. package/dist/__mocks__/geo-3d-mock.js +10 -0
  4. package/dist/__mocks__/geo-3d-mock.js.map +1 -0
  5. package/dist/anov3d.js +64 -8
  6. package/dist/anov3d.js.map +1 -1
  7. package/dist/applicationApi.js +50 -16
  8. package/dist/applicationApi.js.map +1 -1
  9. package/dist/applicationApiType.js.map +1 -1
  10. package/dist/hooksManager.js +43 -35
  11. package/dist/hooksManager.js.map +1 -1
  12. package/dist/index.js +3 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/module/animation/motion/index.js +2 -4
  15. package/dist/module/animation/motion/index.js.map +1 -1
  16. package/dist/module/camera/index.js.map +1 -1
  17. package/dist/module/entity/area/index.js +3 -3
  18. package/dist/module/entity/area/index.js.map +1 -1
  19. package/dist/module/entity/baseEntity.js +13 -4
  20. package/dist/module/entity/baseEntity.js.map +1 -1
  21. package/dist/module/entity/batch/index.js +12 -10
  22. package/dist/module/entity/batch/index.js.map +1 -1
  23. package/dist/module/entity/flyline/index.js +3 -3
  24. package/dist/module/entity/flyline/index.js.map +1 -1
  25. package/dist/module/entity/group/index.js +18 -4
  26. package/dist/module/entity/group/index.js.map +1 -1
  27. package/dist/module/entity/heatmap/index.js +16 -4
  28. package/dist/module/entity/heatmap/index.js.map +1 -1
  29. package/dist/module/entity/index.js +13 -12
  30. package/dist/module/entity/index.js.map +1 -1
  31. package/dist/module/entity/infoPanel/index.js +2 -2
  32. package/dist/module/entity/infoPanel/index.js.map +1 -1
  33. package/dist/module/entity/light/pointLight/index.js +2 -2
  34. package/dist/module/entity/light/pointLight/index.js.map +1 -1
  35. package/dist/module/entity/mark/index.js +11 -14
  36. package/dist/module/entity/mark/index.js.map +1 -1
  37. package/dist/module/entity/model/index.js +29 -12
  38. package/dist/module/entity/model/index.js.map +1 -1
  39. package/dist/module/entity/model/load/loadFbx.js +1 -1
  40. package/dist/module/entity/model/load/loadFbx.js.map +1 -1
  41. package/dist/module/entity/model/load/loadGlb.js +6 -6
  42. package/dist/module/entity/model/load/loadGlb.js.map +1 -1
  43. package/dist/module/entity/poi/index.js +3 -3
  44. package/dist/module/entity/poi/index.js.map +1 -1
  45. package/dist/module/entity/shape/index.js +16 -14
  46. package/dist/module/entity/shape/index.js.map +1 -1
  47. package/dist/module/entity/spline/index.js +4 -4
  48. package/dist/module/entity/spline/index.js.map +1 -1
  49. package/dist/module/entity/strategy.js.map +1 -1
  50. package/dist/module/entity/traffic/realismTraffic/index.js +17 -5
  51. package/dist/module/entity/traffic/realismTraffic/index.js.map +1 -1
  52. package/dist/module/entity/traffic/streamerTraffic/index.js +16 -4
  53. package/dist/module/entity/traffic/streamerTraffic/index.js.map +1 -1
  54. package/dist/module/entity/videoPanel/index.js +3 -3
  55. package/dist/module/entity/videoPanel/index.js.map +1 -1
  56. package/dist/module/environment/index.js +3 -4
  57. package/dist/module/environment/index.js.map +1 -1
  58. package/dist/module/environment/season/index.js +1 -1
  59. package/dist/module/environment/season/index.js.map +1 -1
  60. package/dist/module/eventBus/index.js +3 -4
  61. package/dist/module/eventBus/index.js.map +1 -1
  62. package/dist/module/material/index.js +5 -6
  63. package/dist/module/material/index.js.map +1 -1
  64. package/dist/module/message/hub.js +178 -0
  65. package/dist/module/message/hub.js.map +1 -0
  66. package/dist/module/scene/fileParse.js +21 -16
  67. package/dist/module/scene/fileParse.js.map +1 -1
  68. package/dist/module/scene/index.js +9 -10
  69. package/dist/module/scene/index.js.map +1 -1
  70. package/dist/sdkEntry.js +25 -32
  71. package/dist/sdkEntry.js.map +1 -1
  72. package/dist/utils/debugTools.js +364 -0
  73. package/dist/utils/debugTools.js.map +1 -0
  74. package/dist/utils/messageFn.js +21 -11
  75. package/dist/utils/messageFn.js.map +1 -1
  76. package/dist/utils/messageTracer.js +369 -0
  77. package/dist/utils/messageTracer.js.map +1 -0
  78. package/package.json +5 -4
@@ -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","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","SurfaceMaterial","ANOV","DoubleSide","utils","hybridList","emitter","MaterialManager","app","Map","change","json","_this","processChange","data","id","object","get","console","concat","changeByObject","Array","isArray","batch","_changeByObject","_callee","materials","_json$properties","properties","materialMap","_callee$","_context","originalMaterial","set","applyMaterials","applySingleMaterial","_x","_x2","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","emit","_applyMaterials","_callee3","rootProperties","_this3","results","_iterator","_step","_loop","_callee3$","_context4","all","map","_ref2","_callee2","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","template","meshes","_callee2$","_context2","traverseMeshes","mesh","has","uuid","material","clone","getMaterial","opacity","depthWrite","applyMaterialOptions","_objectSpread","_x7","_createForOfIteratorHelper","result","_loop$","_context3","t0","t1","_x3","_x4","_x5","_x6","_applySingleMaterial","_callee4","_args5","_callee4$","_context5","side","_x8","_x9","loadTexture","loader","url","option","_this4","load","texture","applyTextureTransform","_applyMaterialOptions","_callee5","color","roughness","metalness","diffuseMap","normalMap","glossinessMap","reflectionMap","metalnessMap","roughnessMap","offset","repeat","rotation","textureLoader","_callee5$","_context6","Color","TextureLoader","needsUpdate","_x10","_x11","_ref3","x","Math","PI","wrapS","RepeatWrapping","wrapT","_this5","_ref4","callback","traverse","_object$userData","userData","_object$userData$mesh","currentMeshIndex","_object$userData$prim","currentPrimitiveIndex"],"sources":["../../../src/module/material/index.ts"],"sourcesContent":["import { SurfaceMaterial } from '@anov/3d-ability'\nimport * as ANOV from '@anov/3d-core'\nimport type { Mesh, Object3D } from '@anov/3d-core'\nimport { Color, DoubleSide, RepeatWrapping, utils } from '@anov/3d-core'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\nimport { hybridList } from '../entity'\n\nconst { emitter } = utils\n\nclass MaterialManager implements BaseModule {\n app: Anov3D\n originalMaterial = new Map() // 记录初始材质信息\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n /**\n * Change material for target objects\n * @param json Material change configuration\n */\n change(json: any) {\n const processChange = (data: any) => {\n const { target: id } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n this.changeByObject(object, data)\n }\n if (Array.isArray(json.batch)) // 支持多对象批量替换\n json.batch.forEach(processChange)\n else\n processChange(json)\n }\n\n async changeByObject(object: Object3D, json: any) {\n const { target: id, materials, properties = {} } = json\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n let materialMap = this.originalMaterial.get(id)\n if (!materialMap) {\n materialMap = new Map()\n this.originalMaterial.set(id, materialMap)\n }\n\n if (Array.isArray(materials))\n return this.applyMaterials(object, materials, properties, materialMap)\n else\n return this.applySingleMaterial(object, materials, properties, materialMap)\n }\n\n /**\n * Restore material for target objects\n * @param json Material restoration configuration\n */\n restore(json: any) {\n const processRestore = (data: any) => {\n const { target: id, materials } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n const materialMap = this.originalMaterial.get(id)\n if (!materialMap)\n return\n\n if (materials)\n this.restoreMaterials(object, materials, materialMap)\n else\n this.restoreAllMaterials(object, materialMap)\n\n emitter.emit('onMaterialChanged', { target: object })\n }\n\n if (Array.isArray(json.batch))\n json.batch.forEach(processRestore)\n else\n processRestore(json)\n }\n\n private async applyMaterials(\n target: ANOV.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n // 阶段一:并行加载所有材质和纹理,但不替换\n const results = await Promise.all(\n materials.map(async ({ meshIndex, primitiveIndex, materialId, properties = {} }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, (mesh.material as ANOV.Material).clone())\n })\n\n if (materialId) {\n const template = await SurfaceMaterial.getMaterial(materialId)\n if (!template)\n return null\n if (materialId === 'Glass')\n template.opacity = 0.8\n template.depthWrite = true\n await this.applyMaterialOptions(template, { ...rootProperties, ...properties })\n return { meshIndex, primitiveIndex, template }\n }\n else {\n const meshes: Mesh[] = []\n this.traverseMeshes(target, meshIndex, primitiveIndex, mesh => meshes.push(mesh))\n await Promise.all(\n meshes.map(mesh => this.applyMaterialOptions(mesh.material, { ...rootProperties, ...properties })),\n )\n return null\n }\n }),\n )\n // 阶段二:所有加载完毕,统一同步替换,一帧内完成\n for (const result of results) {\n if (!result)\n continue\n const { meshIndex, primitiveIndex, template } = result\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n mesh.material = template\n })\n }\n\n emitter.emit('onMaterialChanged', { target })\n return target\n }\n\n private async applySingleMaterial(\n target: ANOV.Object3D,\n materialId,\n properties: Record<string, any> = {},\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, (mesh.material as ANOV.Material).clone())\n })\n\n const material = await SurfaceMaterial.getMaterial(materialId)\n material.depthWrite = true\n material.side = DoubleSide\n await this.applyMaterialOptions(material, properties)\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n mesh.material = material\n })\n\n emitter.emit('onMaterialChanged', { target })\n }\n\n private loadTexture(loader: ANOV.TextureLoader, url: string, option: any): Promise<ANOV.Texture> {\n return new Promise((resolve) => {\n loader.load(url, (texture) => {\n this.applyTextureTransform(texture, option)\n resolve(texture)\n })\n })\n }\n\n private async applyMaterialOptions(material, option) {\n const {\n color,\n roughness,\n metalness,\n diffuseMap,\n normalMap,\n glossinessMap,\n reflectionMap,\n metalnessMap,\n roughnessMap,\n offset,\n repeat,\n rotation,\n } = option\n\n // 设置颜色\n if (color)\n material.color = new ANOV.Color(color)\n\n // 设置粗糙度\n if (roughness !== undefined)\n material.roughness = roughness\n\n // 设置金属度\n if (metalness !== undefined)\n material.metalness = metalness\n\n // 纹理加载器\n const textureLoader = new ANOV.TextureLoader()\n\n // 应用漫反射贴图 (diffuse/albedo map)\n if (diffuseMap)\n material.map = await this.loadTexture(textureLoader, diffuseMap, option)\n\n // 应用法线贴图\n if (normalMap)\n material.normalMap = await this.loadTexture(textureLoader, normalMap, option)\n\n // 应用粗糙度贴图\n if (roughnessMap)\n material.roughnessMap = await this.loadTexture(textureLoader, roughnessMap, option)\n\n // 应用金属度贴图\n if (metalnessMap)\n material.metalnessMap = await this.loadTexture(textureLoader, metalnessMap, option)\n\n else if (reflectionMap)\n material.metalnessMap = await this.loadTexture(textureLoader, reflectionMap, option)\n\n material.needsUpdate = true\n\n // 应用位移贴图 (displacement map)\n // if (displaceMap) {\n // material.displacementMap = textureLoader.load(displaceMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.displacementScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n\n // 应用光泽度贴图 (通常对应 roughnessMap 的反向)\n // if (glossinessMap && !roughnessMap) {\n // // 只有在没有专门的 roughnessMap 时才使用 glossinessMap\n // material.roughnessMap = textureLoader.load(glossinessMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.needsUpdate = true\n // })\n // }\n\n // 应用高度贴图 (displacement map 或 bump map)\n // if (heightMap) {\n // // 优先使用 displacementMap,如果不支持则使用 bumpMap\n // if (material.displacementMap !== undefined) {\n // material.displacementMap = textureLoader.load(heightMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.displacementScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // else if (material.bumpMap !== undefined) {\n // material.bumpMap = textureLoader.load(heightMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.bumpScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // }\n\n // 应用反射贴图 (environment map)\n // if (reflectionMap) {\n // // 如果是环境贴图\n // if (material.envMap !== undefined) {\n // // 这里假设是立方体贴图,实际使用时可能需要 CubeTextureLoader\n // material.envMap = textureLoader.load(reflectionMap, (texture) => {\n // material.envMapIntensity = 1.0 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // // 或者作为金属度贴图\n // else if (material.metalnessMap !== undefined) {\n // material.metalnessMap = textureLoader.load(reflectionMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.needsUpdate = true\n // })\n // }\n // }\n }\n\n // 辅助方法:应用纹理变换\n private applyTextureTransform(texture, { offset, repeat, rotation }) {\n if (!texture)\n return\n\n // 设置纹理偏移\n if (offset) {\n texture.offset.set(\n offset.x !== undefined ? offset.x : 0, // 假设传入的是百分比\n offset.y !== undefined ? offset.y : 0,\n )\n }\n\n // 设置纹理重复\n if (repeat) {\n texture.repeat.set(\n repeat.x !== undefined ? repeat.x : 1,\n repeat.y !== undefined ? repeat.y : 1,\n )\n }\n\n // 设置纹理旋转\n if (rotation !== undefined)\n texture.rotation = rotation * Math.PI / 180 // 转换为弧度\n\n // 设置纹理包裹模式\n texture.wrapS = ANOV.RepeatWrapping\n texture.wrapT = ANOV.RepeatWrapping\n }\n\n private restoreMaterials(\n target: ANOV.Object3D,\n materials: any[],\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n materials.forEach(({ meshIndex, primitiveIndex }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as ANOV.Material\n })\n })\n }\n\n private restoreAllMaterials(\n target: ANOV.Object3D,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as ANOV.Material\n })\n }\n\n private traverseMeshes(\n target: ANOV.Object3D,\n meshIndex?: number,\n primitiveIndex?: number,\n callback?: (mesh: Mesh) => void,\n ) {\n target.traverse((object) => {\n if (object.type === 'Mesh') {\n const { meshIndex: currentMeshIndex = 0, primitiveIndex: currentPrimitiveIndex = 0 } = object.userData\n if (\n (meshIndex === undefined || meshIndex === currentMeshIndex)\n && (primitiveIndex === undefined || primitiveIndex === currentPrimitiveIndex)\n )\n callback?.(object as Mesh)\n }\n })\n }\n}\n\nexport default MaterialManager\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","SurfaceMaterial","ANOV","DoubleSide","hybridList","MaterialManager","app","Map","change","json","_this","processChange","data","id","object","get","console","concat","changeByObject","Array","isArray","batch","_changeByObject","_callee","materials","_json$properties","properties","materialMap","_callee$","_context","originalMaterial","set","applyMaterials","applySingleMaterial","_x","_x2","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","sceneControl","context","emitter","emit","_applyMaterials","_callee3","rootProperties","_this3","results","_iterator","_step","_loop","_callee3$","_context4","all","map","_ref2","_callee2","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","template","meshes","_callee2$","_context2","traverseMeshes","mesh","has","uuid","material","clone","getMaterial","opacity","depthWrite","applyMaterialOptions","_objectSpread","_x7","_createForOfIteratorHelper","result","_loop$","_context3","t0","t1","_x3","_x4","_x5","_x6","_applySingleMaterial","_callee4","_args5","_callee4$","_context5","side","_x8","_x9","loadTexture","loader","url","option","_this4","load","texture","applyTextureTransform","_applyMaterialOptions","_callee5","color","roughness","metalness","diffuseMap","normalMap","glossinessMap","reflectionMap","metalnessMap","roughnessMap","offset","repeat","rotation","textureLoader","_callee5$","_context6","Color","TextureLoader","needsUpdate","_x10","_x11","_ref3","x","Math","PI","wrapS","RepeatWrapping","wrapT","_this5","_ref4","callback","traverse","_object$userData","userData","_object$userData$mesh","currentMeshIndex","_object$userData$prim","currentPrimitiveIndex"],"sources":["../../../src/module/material/index.ts"],"sourcesContent":["import { SurfaceMaterial } from '@anov/3d-ability'\nimport * as ANOV from '@anov/3d-core'\nimport type { Mesh, Object3D } from '@anov/3d-core'\nimport { DoubleSide } from '@anov/3d-core'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\nimport { hybridList } from '../entity'\n\nclass MaterialManager implements BaseModule {\n app: Anov3D\n originalMaterial = new Map() // 记录初始材质信息\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n /**\n * Change material for target objects\n * @param json Material change configuration\n */\n change(json: any) {\n const processChange = (data: any) => {\n const { target: id } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n this.changeByObject(object, data)\n }\n if (Array.isArray(json.batch)) // 支持多对象批量替换\n json.batch.forEach(processChange)\n else\n processChange(json)\n }\n\n async changeByObject(object: Object3D, json: any) {\n const { target: id, materials, properties = {} } = json\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n let materialMap = this.originalMaterial.get(id)\n if (!materialMap) {\n materialMap = new Map()\n this.originalMaterial.set(id, materialMap)\n }\n\n if (Array.isArray(materials))\n return this.applyMaterials(object, materials, properties, materialMap)\n else\n return this.applySingleMaterial(object, materials, properties, materialMap)\n }\n\n /**\n * Restore material for target objects\n * @param json Material restoration configuration\n */\n restore(json: any) {\n const processRestore = (data: any) => {\n const { target: id, materials } = data\n const object = hybridList.get(id)\n\n if (!object) {\n console.error(`Target with id ${id} not found`)\n return\n }\n\n const materialMap = this.originalMaterial.get(id)\n if (!materialMap)\n return\n\n if (materials)\n this.restoreMaterials(object, materials, materialMap)\n else\n this.restoreAllMaterials(object, materialMap)\n\n this.app.sceneControl.context.emitter.emit('onMaterialChanged', { target: object })\n }\n\n if (Array.isArray(json.batch))\n json.batch.forEach(processRestore)\n else\n processRestore(json)\n }\n\n private async applyMaterials(\n target: ANOV.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n // 阶段一:并行加载所有材质和纹理,但不替换\n const results = await Promise.all(\n materials.map(async ({ meshIndex, primitiveIndex, materialId, properties = {} }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, (mesh.material as ANOV.Material).clone())\n })\n\n if (materialId) {\n const template = await SurfaceMaterial.getMaterial(materialId)\n if (!template)\n return null\n if (materialId === 'Glass')\n template.opacity = 0.8\n template.depthWrite = true\n await this.applyMaterialOptions(template, { ...rootProperties, ...properties })\n return { meshIndex, primitiveIndex, template }\n }\n else {\n const meshes: Mesh[] = []\n this.traverseMeshes(target, meshIndex, primitiveIndex, mesh => meshes.push(mesh))\n await Promise.all(\n meshes.map(mesh => this.applyMaterialOptions(mesh.material, { ...rootProperties, ...properties })),\n )\n return null\n }\n }),\n )\n // 阶段二:所有加载完毕,统一同步替换,一帧内完成\n for (const result of results) {\n if (!result)\n continue\n const { meshIndex, primitiveIndex, template } = result\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n mesh.material = template\n })\n }\n\n this.app.sceneControl.context.emitter.emit('onMaterialChanged', { target })\n return target\n }\n\n private async applySingleMaterial(\n target: ANOV.Object3D,\n materialId,\n properties: Record<string, any> = {},\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (!materialMap.has(mesh.uuid))\n materialMap.set(mesh.uuid, (mesh.material as ANOV.Material).clone())\n })\n\n const material = await SurfaceMaterial.getMaterial(materialId)\n material.depthWrite = true\n material.side = DoubleSide\n await this.applyMaterialOptions(material, properties)\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n mesh.material = material\n })\n\n this.app.sceneControl.context.emitter.emit('onMaterialChanged', { target })\n }\n\n private loadTexture(loader: ANOV.TextureLoader, url: string, option: any): Promise<ANOV.Texture> {\n return new Promise((resolve) => {\n loader.load(url, (texture) => {\n this.applyTextureTransform(texture, option)\n resolve(texture)\n })\n })\n }\n\n private async applyMaterialOptions(material, option) {\n const {\n color,\n roughness,\n metalness,\n diffuseMap,\n normalMap,\n glossinessMap,\n reflectionMap,\n metalnessMap,\n roughnessMap,\n offset,\n repeat,\n rotation,\n } = option\n\n // 设置颜色\n if (color)\n material.color = new ANOV.Color(color)\n\n // 设置粗糙度\n if (roughness !== undefined)\n material.roughness = roughness\n\n // 设置金属度\n if (metalness !== undefined)\n material.metalness = metalness\n\n // 纹理加载器\n const textureLoader = new ANOV.TextureLoader()\n\n // 应用漫反射贴图 (diffuse/albedo map)\n if (diffuseMap)\n material.map = await this.loadTexture(textureLoader, diffuseMap, option)\n\n // 应用法线贴图\n if (normalMap)\n material.normalMap = await this.loadTexture(textureLoader, normalMap, option)\n\n // 应用粗糙度贴图\n if (roughnessMap)\n material.roughnessMap = await this.loadTexture(textureLoader, roughnessMap, option)\n\n // 应用金属度贴图\n if (metalnessMap)\n material.metalnessMap = await this.loadTexture(textureLoader, metalnessMap, option)\n\n else if (reflectionMap)\n material.metalnessMap = await this.loadTexture(textureLoader, reflectionMap, option)\n\n material.needsUpdate = true\n\n // 应用位移贴图 (displacement map)\n // if (displaceMap) {\n // material.displacementMap = textureLoader.load(displaceMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.displacementScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n\n // 应用光泽度贴图 (通常对应 roughnessMap 的反向)\n // if (glossinessMap && !roughnessMap) {\n // // 只有在没有专门的 roughnessMap 时才使用 glossinessMap\n // material.roughnessMap = textureLoader.load(glossinessMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.needsUpdate = true\n // })\n // }\n\n // 应用高度贴图 (displacement map 或 bump map)\n // if (heightMap) {\n // // 优先使用 displacementMap,如果不支持则使用 bumpMap\n // if (material.displacementMap !== undefined) {\n // material.displacementMap = textureLoader.load(heightMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.displacementScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // else if (material.bumpMap !== undefined) {\n // material.bumpMap = textureLoader.load(heightMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.bumpScale = 0.1 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // }\n\n // 应用反射贴图 (environment map)\n // if (reflectionMap) {\n // // 如果是环境贴图\n // if (material.envMap !== undefined) {\n // // 这里假设是立方体贴图,实际使用时可能需要 CubeTextureLoader\n // material.envMap = textureLoader.load(reflectionMap, (texture) => {\n // material.envMapIntensity = 1.0 // 可以根据需要调整\n // material.needsUpdate = true\n // })\n // }\n // // 或者作为金属度贴图\n // else if (material.metalnessMap !== undefined) {\n // material.metalnessMap = textureLoader.load(reflectionMap, (texture) => {\n // this.applyTextureTransform(texture, { offset, repeat, rotation })\n // material.needsUpdate = true\n // })\n // }\n // }\n }\n\n // 辅助方法:应用纹理变换\n private applyTextureTransform(texture, { offset, repeat, rotation }) {\n if (!texture)\n return\n\n // 设置纹理偏移\n if (offset) {\n texture.offset.set(\n offset.x !== undefined ? offset.x : 0, // 假设传入的是百分比\n offset.y !== undefined ? offset.y : 0,\n )\n }\n\n // 设置纹理重复\n if (repeat) {\n texture.repeat.set(\n repeat.x !== undefined ? repeat.x : 1,\n repeat.y !== undefined ? repeat.y : 1,\n )\n }\n\n // 设置纹理旋转\n if (rotation !== undefined)\n texture.rotation = rotation * Math.PI / 180 // 转换为弧度\n\n // 设置纹理包裹模式\n texture.wrapS = ANOV.RepeatWrapping\n texture.wrapT = ANOV.RepeatWrapping\n }\n\n private restoreMaterials(\n target: ANOV.Object3D,\n materials: any[],\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n materials.forEach(({ meshIndex, primitiveIndex }) => {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as ANOV.Material\n })\n })\n }\n\n private restoreAllMaterials(\n target: ANOV.Object3D,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n this.traverseMeshes(target, undefined, undefined, (mesh) => {\n if (materialMap.has(mesh.uuid))\n mesh.material = materialMap.get(mesh.uuid) as ANOV.Material\n })\n }\n\n private traverseMeshes(\n target: ANOV.Object3D,\n meshIndex?: number,\n primitiveIndex?: number,\n callback?: (mesh: Mesh) => void,\n ) {\n target.traverse((object) => {\n if (object.type === 'Mesh') {\n const { meshIndex: currentMeshIndex = 0, primitiveIndex: currentPrimitiveIndex = 0 } = object.userData\n if (\n (meshIndex === undefined || meshIndex === currentMeshIndex)\n && (primitiveIndex === undefined || primitiveIndex === currentPrimitiveIndex)\n )\n callback?.(object as Mesh)\n }\n })\n }\n}\n\nexport default MaterialManager\n"],"mappings":"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"}
@@ -0,0 +1,178 @@
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
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); } }
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; }
8
+ 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; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ import MessageNexus, { MittDriver, createEmitter, LogLevel } from 'message-nexus';
12
+ /**
13
+ * 共享的底层事件总线
14
+ * 它是兼容 mitt 接口的,将作为 SceneControl 的心脏注入
15
+ */
16
+ var emitter = createEmitter();
17
+
18
+ /**
19
+ * 全局消息中枢
20
+ * 接管所有业务逻辑和协议转换
21
+ */
22
+ export var messageHub = new MessageNexus(new MittDriver(emitter), {
23
+ instanceId: 'anov-3d-message-hub',
24
+ loggerEnabled: true,
25
+ logLevel: LogLevel.DEBUG // 需要开启日志级别:DevTools → Console → 选择:Verbose
26
+ });
27
+
28
+ /**
29
+ * 全局场景实例持有者
30
+ */
31
+ var _currentScene = null;
32
+
33
+ /**
34
+ * 全局回调注册表,用于存储不依赖于特定场景实例的事件回调函数
35
+ */
36
+ var _callbackRegistry = new Map();
37
+ export var callbackRegistry = {
38
+ set: function set(key, value) {
39
+ return _callbackRegistry.set(key, value);
40
+ },
41
+ get: function get(key) {
42
+ return _callbackRegistry.get(key);
43
+ },
44
+ has: function has(key) {
45
+ return _callbackRegistry.has(key);
46
+ },
47
+ delete: function _delete(key) {
48
+ return _callbackRegistry.delete(key);
49
+ },
50
+ forEach: function forEach(cb) {
51
+ return _callbackRegistry.forEach(cb);
52
+ }
53
+ };
54
+ export var setGlobalScene = function setGlobalScene(scene) {
55
+ _currentScene = scene;
56
+ };
57
+ export var getGlobalScene = function getGlobalScene() {
58
+ return _currentScene;
59
+ };
60
+
61
+ /**
62
+ * 快捷通知方法
63
+ */
64
+ export var notify = function notify(method, params) {
65
+ return messageHub.notify({
66
+ method: method,
67
+ params: params
68
+ });
69
+ };
70
+
71
+ /**
72
+ * 快捷请求方法
73
+ */
74
+ export var invoke = function invoke(method, params) {
75
+ return messageHub.invoke({
76
+ method: method,
77
+ params: params
78
+ });
79
+ };
80
+
81
+ /**
82
+ * 将 MessageNexus 封装为符合 Emitter 习惯的适配器
83
+ * 兼容 mitt 接口,避免修改太多代码
84
+ */
85
+ var NexusEmitterAdapter = /*#__PURE__*/function () {
86
+ function NexusEmitterAdapter(nexus) {
87
+ _classCallCheck(this, NexusEmitterAdapter);
88
+ _defineProperty(this, "nexus", void 0);
89
+ _defineProperty(this, "handlerMap", new Map());
90
+ this.nexus = nexus;
91
+ }
92
+
93
+ /**
94
+ * 发送消息 (映射到 MessageNexus.notify)
95
+ * @param type 事件名称 (method)
96
+ * @param event 消息数据 (params)
97
+ */
98
+ _createClass(NexusEmitterAdapter, [{
99
+ key: "emit",
100
+ value: function emit(type, event) {
101
+ console;
102
+ this.nexus.notify({
103
+ method: type,
104
+ params: event
105
+ });
106
+ }
107
+
108
+ /**
109
+ * 监听消息 (映射到 MessageNexus.onNotification)
110
+ * @param type 事件名称 (method)
111
+ * @param handler 回调函数
112
+ */
113
+ }, {
114
+ key: "on",
115
+ value: function on(type, handler) {
116
+ var unbind = this.nexus.onNotification(type, handler);
117
+
118
+ // 存储解绑函数以便后续使用 off 移除
119
+ if (!this.handlerMap.has(type)) {
120
+ this.handlerMap.set(type, new Map());
121
+ }
122
+ this.handlerMap.get(type).set(handler, unbind);
123
+ }
124
+
125
+ /**
126
+ * 移除监听 (映射到清理函数)
127
+ * @param type 事件名称
128
+ * @param handler 要移除的回调函数
129
+ */
130
+ }, {
131
+ key: "off",
132
+ value: function off(type, handler) {
133
+ var typeHandlers = this.handlerMap.get(type);
134
+ if (typeHandlers && typeHandlers.has(handler)) {
135
+ var unbind = typeHandlers.get(handler);
136
+ unbind();
137
+ typeHandlers.delete(handler);
138
+ }
139
+ }
140
+
141
+ /**
142
+ * 支持 Promise 风格的远程调用 (扩展功能)
143
+ */
144
+ }, {
145
+ key: "invoke",
146
+ value: (function () {
147
+ var _invoke = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(type, event) {
148
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
149
+ while (1) switch (_context.prev = _context.next) {
150
+ case 0:
151
+ return _context.abrupt("return", this.nexus.invoke({
152
+ method: type,
153
+ params: event
154
+ }));
155
+ case 1:
156
+ case "end":
157
+ return _context.stop();
158
+ }
159
+ }, _callee, this);
160
+ }));
161
+ function invoke(_x, _x2) {
162
+ return _invoke.apply(this, arguments);
163
+ }
164
+ return invoke;
165
+ }())
166
+ }]);
167
+ return NexusEmitterAdapter;
168
+ }();
169
+ /**
170
+ * 工厂函数
171
+ */
172
+ function createNexusEmitter(nexus) {
173
+ return new NexusEmitterAdapter(nexus);
174
+ }
175
+
176
+ // mitt 的替代品, 兼容 mitt 接口但是统一使用 message-nexus
177
+ export var emitterLikeMitt = createNexusEmitter(messageHub);
178
+ //# sourceMappingURL=hub.js.map
@@ -0,0 +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","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","MessageNexus","MittDriver","createEmitter","LogLevel","emitter","messageHub","instanceId","loggerEnabled","logLevel","DEBUG","_currentScene","_callbackRegistry","Map","callbackRegistry","set","get","has","delete","_delete","cb","setGlobalScene","scene","getGlobalScene","notify","params","NexusEmitterAdapter","nexus","emit","event","console","on","handler","unbind","onNotification","handlerMap","off","typeHandlers","_callee","_callee$","_context","_x","_x2","createNexusEmitter","emitterLikeMitt"],"sources":["../../../src/module/message/hub.ts"],"sourcesContent":["import MessageNexus, { MittDriver, createEmitter, NotificationHandler, LogLevel } from 'message-nexus'\nimport type { SceneControl } from '@anov/3d-core'\n\n/**\n * 共享的底层事件总线\n * 它是兼容 mitt 接口的,将作为 SceneControl 的心脏注入\n */\nconst emitter = createEmitter()\n\n/**\n * 全局消息中枢\n * 接管所有业务逻辑和协议转换\n */\nexport const messageHub = new MessageNexus(new MittDriver(emitter), {\n instanceId: 'anov-3d-message-hub',\n loggerEnabled: true,\n logLevel: LogLevel.DEBUG, // 需要开启日志级别:DevTools → Console → 选择:Verbose\n})\n\n/**\n * 全局场景实例持有者\n */\nlet _currentScene: SceneControl | null = null\n\n/**\n * 全局回调注册表,用于存储不依赖于特定场景实例的事件回调函数\n */\nconst _callbackRegistry = new Map<string, any>()\n\nexport const callbackRegistry = {\n set: (key: string, value: any) => _callbackRegistry.set(key, value),\n get: <T = any>(key: string): T | undefined => _callbackRegistry.get(key),\n has: (key: string) => _callbackRegistry.has(key),\n delete: (key: string) => _callbackRegistry.delete(key),\n forEach: (cb: (value: any, key: string) => void) => _callbackRegistry.forEach(cb),\n}\n\nexport const setGlobalScene = (scene: SceneControl) => {\n _currentScene = scene\n}\n\nexport const getGlobalScene = () => _currentScene\n\n/**\n * 快捷通知方法\n */\nexport const notify = (method: string, params?: any) => messageHub.notify({ method, params })\n\n/**\n * 快捷请求方法\n */\nexport const invoke = (method: string, params?: any) => messageHub.invoke({ method, params })\n\n \n \n/**\n* 将 MessageNexus 封装为符合 Emitter 习惯的适配器\n* 兼容 mitt 接口,避免修改太多代码\n*/\nclass NexusEmitterAdapter<T extends Record<string, any> = Record<string, any>> {\n private nexus: MessageNexus\n private handlerMap: Map<keyof T, Map<NotificationHandler, () => void>> = new Map()\n\n constructor(nexus: MessageNexus) {\n this.nexus = nexus\n }\n\n /**\n * 发送消息 (映射到 MessageNexus.notify)\n * @param type 事件名称 (method)\n * @param event 消息数据 (params)\n */\n emit<K extends keyof T>(type: K, event: T[K]): void {\n console\n this.nexus.notify({\n method: type as string,\n params: event\n })\n }\n\n /**\n * 监听消息 (映射到 MessageNexus.onNotification)\n * @param type 事件名称 (method)\n * @param handler 回调函数\n */\n on<K extends keyof T>(type: K, handler: NotificationHandler<T[K]>): void {\n const unbind = this.nexus.onNotification(type as string, handler)\n\n // 存储解绑函数以便后续使用 off 移除\n if (!this.handlerMap.has(type)) {\n this.handlerMap.set(type, new Map())\n }\n this.handlerMap.get(type)!.set(handler as NotificationHandler, unbind)\n }\n\n /**\n * 移除监听 (映射到清理函数)\n * @param type 事件名称\n * @param handler 要移除的回调函数\n */\n off<K extends keyof T>(type: K, handler: NotificationHandler<T[K]>): void {\n const typeHandlers = this.handlerMap.get(type)\n if (typeHandlers && typeHandlers.has(handler as NotificationHandler)) {\n const unbind = typeHandlers.get(handler as NotificationHandler)!\n unbind()\n typeHandlers.delete(handler as NotificationHandler)\n }\n }\n\n /**\n * 支持 Promise 风格的远程调用 (扩展功能)\n */\n async invoke<K extends keyof T, R = any>(type: K, event: T[K]): Promise<R> {\n return this.nexus.invoke({\n method: type as string,\n params: event\n })\n }\n}\n\n/**\n * 工厂函数\n */\nfunction createNexusEmitter<T extends Record<string, any>>(nexus: MessageNexus) {\n return new NexusEmitterAdapter<T>(nexus)\n}\n\n// mitt 的替代品, 兼容 mitt 接口但是统一使用 message-nexus\nexport const emitterLikeMitt = createNexusEmitter(messageHub)"],"mappings":"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"}
@@ -24,7 +24,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
24
24
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
25
25
  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); }
26
26
  import _ from 'lodash';
27
- import { FogExp2, Vector3, use, utils } from '@anov/3d-core';
27
+ import { FogExp2, Vector3 } from '@anov/3d-core';
28
28
  import * as Geo3D from '@anov/geo-3d';
29
29
  import { Water } from '@anov/3d-ability';
30
30
  import { MessageType, sendToMessage } from "../../utils/messageFn";
@@ -49,7 +49,7 @@ export var StaticType = /*#__PURE__*/function (StaticType) {
49
49
  StaticType["none"] = "none";
50
50
  return StaticType;
51
51
  }({});
52
- var emitter = utils.emitter;
52
+ // const { emitter } = utils
53
53
  var FileParse = /*#__PURE__*/function () {
54
54
  function FileParse(app) {
55
55
  _classCallCheck(this, FileParse);
@@ -74,7 +74,7 @@ var FileParse = /*#__PURE__*/function () {
74
74
  case 0:
75
75
  this.json = json;
76
76
  this.action = action;
77
- emitter.off('model-loading-progress');
77
+ this.app.sceneControl.context.emitter.off('model-loading-progress');
78
78
  this.modelProgress.clear();
79
79
  _ref = json || {}, _ref$scene = _ref.scene, index = _ref$scene === void 0 ? 0 : _ref$scene, scenes = _ref.scenes, nodes = _ref.nodes, layers = _ref.layers;
80
80
  sceneNode = scenes && scenes[index];
@@ -180,9 +180,9 @@ var FileParse = /*#__PURE__*/function () {
180
180
  time = params.time,
181
181
  weather = params.weather;
182
182
  var environmentManage = this.app[EObjectType.environment];
183
+ var hour = 12;
183
184
  if (mode === WeatherMode.dynamic) {
184
185
  // 动态天空
185
- var hour = 12;
186
186
  var currentTime = (time === null || time === void 0 ? void 0 : time.value) || (time === null || time === void 0 ? void 0 : time.time);
187
187
  if (currentTime) {
188
188
  environmentManage.setTime({
@@ -214,10 +214,15 @@ var FileParse = /*#__PURE__*/function () {
214
214
  break;
215
215
  }
216
216
  }
217
- var exposure = this.scene.exposure; // 曝光度
217
+ if (weather !== null && weather !== void 0 && weather.weather)
218
+ // @ts-ignore
219
+ environmentManage.setWeather({
220
+ weather: weather.weather,
221
+ time: hour
222
+ });
223
+ var exposure = this.scene.exposure;
218
224
  if (exposure !== undefined) {
219
- var _use$useScene = use.useScene(),
220
- renderer = _use$useScene.renderer;
225
+ var renderer = this.app.sceneControl.context.renderer;
221
226
  renderer.toneMappingExposure = exposure;
222
227
  }
223
228
  }
@@ -226,12 +231,12 @@ var FileParse = /*#__PURE__*/function () {
226
231
  value: function () {
227
232
  var _addLayers = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
228
233
  var _this3 = this;
229
- var _this$scene, layers, layerIndex, _use$useScene2, scene, camera, renderer, orbitControls;
234
+ var _this$scene, layers, layerIndex, _this$app$sceneContro, scene, camera, renderer, orbitControls;
230
235
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
231
236
  while (1) switch (_context4.prev = _context4.next) {
232
237
  case 0:
233
238
  _this$scene = this.scene, layers = _this$scene.layers, layerIndex = _this$scene.layerIndex;
234
- _use$useScene2 = use.useScene(), scene = _use$useScene2.scene, camera = _use$useScene2.camera, renderer = _use$useScene2.renderer, orbitControls = _use$useScene2.orbitControls;
239
+ _this$app$sceneContro = this.app.sceneControl.context, scene = _this$app$sceneContro.scene, camera = _this$app$sceneContro.camera, renderer = _this$app$sceneContro.renderer, orbitControls = _this$app$sceneContro.orbitControls;
235
240
  layerIndex && layerIndex.forEach( /*#__PURE__*/function () {
236
241
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(index) {
237
242
  var type, sccData, _sccData, panelAttribute, sceneNode, offsetPosition, _Geo3D$CoordUtil$thre, lon, lat, alt, map, water, _layers$index, color, density;
@@ -278,11 +283,11 @@ var FileParse = /*#__PURE__*/function () {
278
283
  case 12:
279
284
  map = _context3.sent;
280
285
  map === null || map === void 0 || map.addEventListener(Geo3D.MapEventType.onProgress, function (v) {
281
- emitter.emit('city-loaded-progress', v);
286
+ _this3.app.sceneControl.context.emitter.emit('city-loaded-progress', v);
282
287
  });
283
288
  return _context3.abrupt("break", 22);
284
289
  case 15:
285
- water = new Water(layers[index]);
290
+ water = new Water(layers[index], _this3.app.sceneControl);
286
291
  water.update();
287
292
  scene.add(water);
288
293
  return _context3.abrupt("break", 22);
@@ -390,10 +395,10 @@ var FileParse = /*#__PURE__*/function () {
390
395
  progress: total,
391
396
  state: _this5.action
392
397
  });
393
- if (total >= 1) emitter.emit('scene-loaded');
398
+ if (total >= 1) _this5.app.sceneControl.context.emitter.emit('scene-loaded');
394
399
  };
395
400
  if (this.scene.modelCount > 0) {
396
- emitter.on('model-loading-progress', function (data) {
401
+ this.app.sceneControl.context.emitter.on('model-loading-progress', function (data) {
397
402
  var id = data.id,
398
403
  progress = data.progress;
399
404
  if (!_this5.modelProgress.has(id)) return;
@@ -408,13 +413,13 @@ var FileParse = /*#__PURE__*/function () {
408
413
  });
409
414
  }
410
415
  if (this.loadCity) {
411
- emitter.on('city-loaded-progress', function (data) {
416
+ this.app.sceneControl.context.emitter.on('city-loaded-progress', function (data) {
412
417
  cityProgress = data.progress;
413
418
  total < 1 && sendProgress(calcTotalProgress());
414
419
  });
415
420
  }
416
421
  } else {
417
- sendToMessage({
422
+ sendToMessage(this.app, {
418
423
  messageType: MessageType.Event,
419
424
  messageName: 'onProgress',
420
425
  status: EMessageStatus.Success,
@@ -423,7 +428,7 @@ var FileParse = /*#__PURE__*/function () {
423
428
  progress: 1,
424
429
  state: this.action
425
430
  });
426
- emitter.emit('scene-loaded');
431
+ this.app.sceneControl.context.emitter.emit('scene-loaded');
427
432
  }
428
433
  }
429
434