@anov/3d 0.0.323 → 0.0.324
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/__mocks__/ability-mock.js +124 -0
- package/dist/__mocks__/ability-mock.js.map +1 -0
- package/dist/__mocks__/geo-3d-mock.js +10 -0
- package/dist/__mocks__/geo-3d-mock.js.map +1 -0
- package/dist/anov3d.js +64 -8
- package/dist/anov3d.js.map +1 -1
- package/dist/applicationApi.js +50 -16
- package/dist/applicationApi.js.map +1 -1
- package/dist/applicationApiType.js.map +1 -1
- package/dist/hooksManager.js +43 -35
- package/dist/hooksManager.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/module/animation/motion/index.js +2 -4
- package/dist/module/animation/motion/index.js.map +1 -1
- package/dist/module/camera/index.js.map +1 -1
- package/dist/module/entity/area/index.js +3 -3
- package/dist/module/entity/area/index.js.map +1 -1
- package/dist/module/entity/baseEntity.js +13 -4
- package/dist/module/entity/baseEntity.js.map +1 -1
- package/dist/module/entity/batch/index.js +12 -10
- package/dist/module/entity/batch/index.js.map +1 -1
- package/dist/module/entity/flyline/index.js +3 -3
- package/dist/module/entity/flyline/index.js.map +1 -1
- package/dist/module/entity/group/index.js +18 -4
- package/dist/module/entity/group/index.js.map +1 -1
- package/dist/module/entity/heatmap/index.js +16 -4
- package/dist/module/entity/heatmap/index.js.map +1 -1
- package/dist/module/entity/index.js +13 -12
- package/dist/module/entity/index.js.map +1 -1
- package/dist/module/entity/infoPanel/index.js +2 -2
- package/dist/module/entity/infoPanel/index.js.map +1 -1
- package/dist/module/entity/light/pointLight/index.js +2 -2
- package/dist/module/entity/light/pointLight/index.js.map +1 -1
- package/dist/module/entity/mark/index.js +11 -14
- package/dist/module/entity/mark/index.js.map +1 -1
- package/dist/module/entity/model/index.js +29 -12
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/entity/model/load/loadFbx.js +1 -1
- package/dist/module/entity/model/load/loadFbx.js.map +1 -1
- package/dist/module/entity/model/load/loadGlb.js +7 -7
- package/dist/module/entity/model/load/loadGlb.js.map +1 -1
- package/dist/module/entity/poi/index.js +3 -3
- package/dist/module/entity/poi/index.js.map +1 -1
- package/dist/module/entity/shape/index.js +16 -14
- package/dist/module/entity/shape/index.js.map +1 -1
- package/dist/module/entity/spline/index.js +4 -4
- package/dist/module/entity/spline/index.js.map +1 -1
- package/dist/module/entity/strategy.js.map +1 -1
- package/dist/module/entity/traffic/realismTraffic/index.js +17 -5
- package/dist/module/entity/traffic/realismTraffic/index.js.map +1 -1
- package/dist/module/entity/traffic/streamerTraffic/index.js +16 -4
- package/dist/module/entity/traffic/streamerTraffic/index.js.map +1 -1
- package/dist/module/entity/videoPanel/index.js +3 -3
- package/dist/module/entity/videoPanel/index.js.map +1 -1
- package/dist/module/environment/index.js +3 -4
- package/dist/module/environment/index.js.map +1 -1
- package/dist/module/environment/season/index.js +1 -1
- package/dist/module/environment/season/index.js.map +1 -1
- package/dist/module/eventBus/index.js +3 -4
- package/dist/module/eventBus/index.js.map +1 -1
- package/dist/module/material/index.js +5 -6
- package/dist/module/material/index.js.map +1 -1
- package/dist/module/message/hub.js +178 -0
- package/dist/module/message/hub.js.map +1 -0
- package/dist/module/scene/fileParse.js +21 -16
- package/dist/module/scene/fileParse.js.map +1 -1
- package/dist/module/scene/index.js +9 -10
- package/dist/module/scene/index.js.map +1 -1
- package/dist/sdkEntry.js +25 -32
- package/dist/sdkEntry.js.map +1 -1
- package/dist/utils/debugTools.js +364 -0
- package/dist/utils/debugTools.js.map +1 -0
- package/dist/utils/messageFn.js +21 -11
- package/dist/utils/messageFn.js.map +1 -1
- package/dist/utils/messageTracer.js +369 -0
- package/dist/utils/messageTracer.js.map +1 -0
- 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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|