@anov/3d 0.0.322 → 0.0.323
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anov3d.js +8 -64
- package/dist/anov3d.js.map +1 -1
- package/dist/applicationApi.js +16 -50
- package/dist/applicationApi.js.map +1 -1
- package/dist/applicationApiType.js.map +1 -1
- package/dist/hooksManager.js +35 -43
- package/dist/hooksManager.js.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/module/animation/motion/index.js +4 -2
- 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 +4 -13
- package/dist/module/entity/baseEntity.js.map +1 -1
- package/dist/module/entity/batch/index.js +10 -12
- 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 +4 -18
- package/dist/module/entity/group/index.js.map +1 -1
- package/dist/module/entity/heatmap/index.js +4 -16
- package/dist/module/entity/heatmap/index.js.map +1 -1
- package/dist/module/entity/index.js +12 -13
- 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 +14 -11
- package/dist/module/entity/mark/index.js.map +1 -1
- package/dist/module/entity/model/index.js +12 -29
- 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 +11 -6
- 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 +14 -16
- 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 +5 -17
- package/dist/module/entity/traffic/realismTraffic/index.js.map +1 -1
- package/dist/module/entity/traffic/streamerTraffic/index.js +4 -16
- 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 +4 -3
- 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 +4 -3
- package/dist/module/eventBus/index.js.map +1 -1
- package/dist/module/material/index.js +6 -5
- package/dist/module/material/index.js.map +1 -1
- package/dist/module/scene/fileParse.js +16 -21
- package/dist/module/scene/fileParse.js.map +1 -1
- package/dist/module/scene/index.js +10 -9
- package/dist/module/scene/index.js.map +1 -1
- package/dist/sdkEntry.js +32 -25
- package/dist/sdkEntry.js.map +1 -1
- package/dist/utils/messageFn.js +11 -21
- package/dist/utils/messageFn.js.map +1 -1
- package/package.json +4 -5
- package/dist/__mocks__/ability-mock.js +0 -124
- package/dist/__mocks__/ability-mock.js.map +0 -1
- package/dist/__mocks__/geo-3d-mock.js +0 -10
- package/dist/__mocks__/geo-3d-mock.js.map +0 -1
- package/dist/module/message/hub.js +0 -178
- package/dist/module/message/hub.js.map +0 -1
- package/dist/utils/debugTools.js +0 -364
- package/dist/utils/debugTools.js.map +0 -1
- package/dist/utils/messageTracer.js +0 -369
- package/dist/utils/messageTracer.js.map +0 -1
|
@@ -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","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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"}
|
|
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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"}
|
|
@@ -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 } from '@anov/3d-core';
|
|
27
|
+
import { FogExp2, Vector3, use, utils } 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
|
+
var emitter = utils.emitter;
|
|
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
|
-
|
|
77
|
+
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;
|
|
184
183
|
if (mode === WeatherMode.dynamic) {
|
|
185
184
|
// 动态天空
|
|
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,15 +214,10 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
214
214
|
break;
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
-
|
|
218
|
-
// @ts-ignore
|
|
219
|
-
environmentManage.setWeather({
|
|
220
|
-
weather: weather.weather,
|
|
221
|
-
time: hour
|
|
222
|
-
});
|
|
223
|
-
var exposure = this.scene.exposure;
|
|
217
|
+
var exposure = this.scene.exposure; // 曝光度
|
|
224
218
|
if (exposure !== undefined) {
|
|
225
|
-
var
|
|
219
|
+
var _use$useScene = use.useScene(),
|
|
220
|
+
renderer = _use$useScene.renderer;
|
|
226
221
|
renderer.toneMappingExposure = exposure;
|
|
227
222
|
}
|
|
228
223
|
}
|
|
@@ -231,12 +226,12 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
231
226
|
value: function () {
|
|
232
227
|
var _addLayers = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
233
228
|
var _this3 = this;
|
|
234
|
-
var _this$scene, layers, layerIndex,
|
|
229
|
+
var _this$scene, layers, layerIndex, _use$useScene2, scene, camera, renderer, orbitControls;
|
|
235
230
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
236
231
|
while (1) switch (_context4.prev = _context4.next) {
|
|
237
232
|
case 0:
|
|
238
233
|
_this$scene = this.scene, layers = _this$scene.layers, layerIndex = _this$scene.layerIndex;
|
|
239
|
-
|
|
234
|
+
_use$useScene2 = use.useScene(), scene = _use$useScene2.scene, camera = _use$useScene2.camera, renderer = _use$useScene2.renderer, orbitControls = _use$useScene2.orbitControls;
|
|
240
235
|
layerIndex && layerIndex.forEach( /*#__PURE__*/function () {
|
|
241
236
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(index) {
|
|
242
237
|
var type, sccData, _sccData, panelAttribute, sceneNode, offsetPosition, _Geo3D$CoordUtil$thre, lon, lat, alt, map, water, _layers$index, color, density;
|
|
@@ -283,11 +278,11 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
283
278
|
case 12:
|
|
284
279
|
map = _context3.sent;
|
|
285
280
|
map === null || map === void 0 || map.addEventListener(Geo3D.MapEventType.onProgress, function (v) {
|
|
286
|
-
|
|
281
|
+
emitter.emit('city-loaded-progress', v);
|
|
287
282
|
});
|
|
288
283
|
return _context3.abrupt("break", 22);
|
|
289
284
|
case 15:
|
|
290
|
-
water = new Water(layers[index]
|
|
285
|
+
water = new Water(layers[index]);
|
|
291
286
|
water.update();
|
|
292
287
|
scene.add(water);
|
|
293
288
|
return _context3.abrupt("break", 22);
|
|
@@ -395,10 +390,10 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
395
390
|
progress: total,
|
|
396
391
|
state: _this5.action
|
|
397
392
|
});
|
|
398
|
-
if (total >= 1)
|
|
393
|
+
if (total >= 1) emitter.emit('scene-loaded');
|
|
399
394
|
};
|
|
400
395
|
if (this.scene.modelCount > 0) {
|
|
401
|
-
|
|
396
|
+
emitter.on('model-loading-progress', function (data) {
|
|
402
397
|
var id = data.id,
|
|
403
398
|
progress = data.progress;
|
|
404
399
|
if (!_this5.modelProgress.has(id)) return;
|
|
@@ -413,13 +408,13 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
413
408
|
});
|
|
414
409
|
}
|
|
415
410
|
if (this.loadCity) {
|
|
416
|
-
|
|
411
|
+
emitter.on('city-loaded-progress', function (data) {
|
|
417
412
|
cityProgress = data.progress;
|
|
418
413
|
total < 1 && sendProgress(calcTotalProgress());
|
|
419
414
|
});
|
|
420
415
|
}
|
|
421
416
|
} else {
|
|
422
|
-
sendToMessage(
|
|
417
|
+
sendToMessage({
|
|
423
418
|
messageType: MessageType.Event,
|
|
424
419
|
messageName: 'onProgress',
|
|
425
420
|
status: EMessageStatus.Success,
|
|
@@ -428,7 +423,7 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
428
423
|
progress: 1,
|
|
429
424
|
state: this.action
|
|
430
425
|
});
|
|
431
|
-
|
|
426
|
+
emitter.emit('scene-loaded');
|
|
432
427
|
}
|
|
433
428
|
}
|
|
434
429
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","_","FogExp2","Vector3","Geo3D","Water","MessageType","sendToMessage","EMessageStatus","EObjectType","WeatherMode","StaticType","FileParse","app","modelProgress","Map","_parseScene","_callee","json","action","_ref","_ref$scene","index","scenes","nodes","layers","sceneNode","_this$parseNode","modelCount","parsedNodes","_callee$","_context","sceneControl","context","emitter","off","clear","scene","console","parseNode","nodeIndex","Boolean","addLayers","addListener","environment","setEnvironment","addNodes","parseScene","_x","_x2","indexes","_this","result","node","warn","concat","camera","set","id","childModelCount","children","childResult","_addNodes","_callee2","_this2","_callee2$","_context2","map","addSingelNode","all","_x3","params","_params$mode","mode","dynamic","source","static","time","weather","environmentManage","hour","currentTime","setTime","timeRange","timeToRange2400","setWeather","hdr","color","setMode","exposure","renderer","toneMappingExposure","_addLayers","_callee4","_this3","_this$scene","layerIndex","_this$app$sceneContro","orbitControls","_callee4$","_context4","_ref2","_callee3","sccData","_sccData","panelAttribute","offsetPosition","_Geo3D$CoordUtil$thre","lon","lat","alt","water","_layers$index","density","_callee3$","_context3","t0","loadCity","private","position","_construct","_toConsumableArray","num","isFinite","CoordUtil","threeDXYZToLonLat2","center","load","control","addEventListener","MapEventType","onProgress","emit","update","add","fog","_x4","_addSingelNode","_callee5","_this4","isDefineType","nodeObject","childPromises","childNodes","initialResult","_callee5$","_context5","isEnumValue","entity","clone","childIndex","child","asyncTask","_x5","_this5","cityProgress","total","calcTotalProgress","cityNormalized","Math","min","modelNormalized","sendProgress","messageType","Event","messageName","status","Success","global","progress","state","on","data","has","progressValue","Array","from","reduce","sum","currentProgress","setMaterialParams","_this6","materials","updatedMaterials","item","material","getMaterialNode","materialId","override","enumObj","includes","timePattern","test","_time$split$map","split","_time$split$map2","_slicedToArray","minute","dateTime","_clear","_callee7","_this$scene$nodes","_this7","_callee7$","_context7","_ref3","_callee6","_callee6$","_context6","delete","_x6"],"sources":["../../../src/module/scene/fileParse.ts"],"sourcesContent":["import _ from 'lodash'\nimport { FogExp2, Vector3 } from '@anov/3d-core'\nimport * as Geo3D from '@anov/geo-3d'\nimport { Water } from '@anov/3d-ability'\nimport type Anov3D from '../../sdkEntry'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\n\nenum EObjectType {\n 'camera' = 'camera',\n 'environment' = 'environment',\n 'scene' = 'scene',\n 'animation' = 'animation',\n 'material' = 'material',\n 'entity' = 'entity',\n}\nenum WeatherMode {\n dynamic = 'dynamic',\n static = 'static',\n}\nexport enum StaticType {\n hdr = 'hdr',\n color = 'color',\n none = 'none',\n}\n// const { emitter } = utils\n\nclass FileParse {\n app: Anov3D\n json: any\n scene: any\n modelProgress: Map<string, number>\n action: string\n loadCity = false\n constructor(app: Anov3D) {\n this.app = app\n this.modelProgress = new Map()\n }\n\n // 解析场景\n async parseScene(json, action) {\n this.json = json\n this.action = action\n this.app.sceneControl.context.emitter.off('model-loading-progress')\n this.modelProgress.clear()\n const { scene: index = 0, scenes, nodes, layers } = json || {}\n const sceneNode = scenes && scenes[index]\n if (!sceneNode) {\n console.error('Invalid scene or nodeIndex.')\n return\n }\n // 递归解析节点并计算模型节点的数量\n const { modelCount, nodes: parsedNodes } = this.parseNode(sceneNode.nodeIndex, nodes, 0)\n this.scene = {\n index,\n ...sceneNode,\n nodes: parsedNodes.filter(Boolean),\n layers,\n modelCount, // 计算模型节点数量并放到 scene 对象中\n }\n await this.addLayers()\n this.addListener()\n this.scene.environment && this.setEnvironment(this.scene.environment)\n return this.addNodes(this.scene.nodes)\n }\n\n // 递归解析节点,并计算模型节点数量\n parseNode(indexes, nodes, modelCount) {\n const result = {\n modelCount,\n nodes: [],\n }\n\n indexes.forEach((index) => {\n const node = nodes[index]\n if (!node) {\n console.warn(`Node with index ${index} not found.`)\n return\n }\n\n if (node.type === EObjectType.camera)\n return\n\n // 如果是 'model' 类型的节点,增加计数\n if (node.type === 'model') {\n this.modelProgress.set(node.id, 0)\n result.modelCount++\n }\n\n // 如果节点有子节点,递归处理\n const childModelCount = result.modelCount\n if (node.children) {\n const childResult = this.parseNode(node.children, nodes, childModelCount)\n result.modelCount = childResult.modelCount\n result.nodes.push({ ...node, children: childResult.nodes.filter(Boolean) })\n }\n else {\n result.nodes.push(node)\n }\n })\n\n return result\n }\n\n async addNodes(nodes) {\n const result = nodes.map((node) => {\n return this.addSingelNode(node)\n })\n\n return Promise.all(result)\n }\n\n // 解析环境\n setEnvironment(params) {\n const { mode = WeatherMode.dynamic, static: source, time, weather } = params\n const environmentManage = this.app[EObjectType.environment]\n let hour = 12\n if (mode === WeatherMode.dynamic) { // 动态天空\n const currentTime = time?.value || time?.time\n if (currentTime) {\n environmentManage.setTime({ time: currentTime })\n const timeRange = this.timeToRange2400(currentTime)\n if (timeRange)\n hour = timeRange.hour\n }\n if (weather?.weather)\n environmentManage.setWeather({ weather: weather.weather, time: hour })\n }\n else if (mode === WeatherMode.static && source) { // 静态天空:HDR、颜色\n const { type, hdr, color } = source\n switch (type) {\n case StaticType.hdr:\n environmentManage.setMode({ mode: StaticType.hdr, ...hdr })\n break\n case StaticType.color:\n environmentManage.setMode({ mode: StaticType.color, color: color.value })\n break\n }\n }\n if (weather?.weather)\n // @ts-ignore\n environmentManage.setWeather({ weather: weather.weather, time: hour })\n\n const { exposure } = this.scene\n if (exposure !== undefined) {\n const { renderer } = this.app.sceneControl.context\n renderer.toneMappingExposure = exposure\n }\n }\n\n async addLayers() {\n const { layers, layerIndex } = this.scene\n const { scene, camera, renderer, orbitControls } = this.app.sceneControl.context\n layerIndex && layerIndex.forEach(async (index) => {\n if (index >= layers.length)\n return\n const type = layers[index].type\n switch (type) {\n case 'city':{\n this.loadCity = true\n let sccData = layers[index]\n const { private: panelAttribute, scene: sceneNode } = sccData\n // 中心点偏移\n if (panelAttribute?.position) {\n const offsetPosition = new Vector3(...panelAttribute.position.map(num => Number.isFinite(num) ? num : 0))\n const { lon, lat, alt } = Geo3D.CoordUtil.threeDXYZToLonLat2(offsetPosition, { lon: sceneNode.center[0], lat: sceneNode.center[1], alt: sceneNode.center[2] })\n sccData = { ...sccData, scene: { ...sccData.scene, center: [lon, lat, alt] } }\n }\n const map = await Geo3D.Map.load({\n scene,\n camera,\n renderer,\n control: orbitControls,\n sccData,\n })\n map?.addEventListener(Geo3D.MapEventType.onProgress, (v) => {\n this.app.sceneControl.context.emitter.emit('city-loaded-progress', v)\n })\n break\n }\n case 'water':{\n const water = new Water(layers[index], this.app.sceneControl)\n water.update()\n scene.add(water)\n break\n }\n case 'fog':{\n const { color, density } = layers[index]\n scene.fog = new FogExp2(color, density)\n break\n }\n }\n })\n }\n\n // 解析单个节点\n async addSingelNode(node) {\n const isDefineType = this.isEnumValue(EObjectType, node.type)\n const nodeObject = isDefineType ? this.app[node.type] : this.app[EObjectType.entity]\n\n if (!nodeObject) {\n console.error(`Unknown node type: ${node.type}`)\n return\n }\n const params = _.clone(node)\n if (node.type === 'group' && node.children) {\n const childPromises = node.children.map(childIndex => this.addSingelNode(childIndex))\n const childNodes = await Promise.all(childPromises)\n params.children = childNodes.map(child => child.id)\n }\n\n // 判断逻辑:符合夸引擎调用逻辑,先通过initialResult表示调用成功,然后通过asyncTask表示执行成功\n const initialResult = await nodeObject.create(params)\n await initialResult.asyncTask\n return node\n }\n\n addListener() {\n if (this.scene.modelCount > 0 || this.loadCity) {\n let modelProgress = 0 // 模型整体进度 0~1\n let cityProgress = 0 // 城市整体进度 0~1\n let total = 0 //\n\n const calcTotalProgress = () => {\n // 城市进度:50% 映射为 100%\n const cityNormalized = this.loadCity ? Math.min(1, cityProgress * 1.25) : 1\n const modelNormalized = this.scene.modelCount > 0 ? modelProgress : 1\n\n if (this.loadCity && this.scene.modelCount > 0)\n total = (cityNormalized + modelNormalized) / 2\n else if (this.loadCity)\n total = cityNormalized\n else\n total = modelNormalized\n\n return total\n }\n\n const sendProgress = (total: number) => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: total, state: this.action },\n )\n if (total >= 1)\n this.app.sceneControl.context.emitter.emit('scene-loaded')\n }\n\n if (this.scene.modelCount > 0) {\n this.app.sceneControl.context.emitter.on('model-loading-progress', (data: any) => {\n const { id, progress } = data\n if (!this.modelProgress.has(id))\n return\n this.modelProgress.set(id, progress)\n // 更新累积进度\n const progressValue = Array.from(this.modelProgress.values()).reduce((sum, currentProgress) => sum + currentProgress, 0)\n // 计算进度\n modelProgress = progressValue / this.scene.modelCount\n sendProgress(calcTotalProgress())\n })\n }\n\n if (this.loadCity) {\n this.app.sceneControl.context.emitter.on('city-loaded-progress', (data: any) => {\n cityProgress = data.progress\n total < 1 && sendProgress(calcTotalProgress())\n })\n }\n }\n else {\n sendToMessage(\n this.app,\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: 1, state: this.action },\n )\n this.app.sceneControl.context.emitter.emit('scene-loaded')\n }\n }\n\n // 获取节点参数\n setMaterialParams(node) {\n const { materials } = node\n // 处理材质节点\n if (materials) {\n const updatedMaterials = materials.map((item) => {\n const material = this.getMaterialNode(item.material)\n if (material)\n return { ...item, materialId: material.materialId }\n }).filter(Boolean)\n node.override = { materials: updatedMaterials }\n }\n }\n\n getMaterialNode(index) {\n const materials = this.json.materials\n return (materials && materials.length > index) ? materials[index] : null\n }\n\n isEnumValue(enumObj, value) {\n return Object.values(enumObj).includes(value)\n }\n\n timeToRange2400(time) {\n // 检查输入时间格式是否正确,包括 24:00\n const timePattern = /^(?:([01]?\\d|2[0-3]):([0-5]\\d)|24:00)$/\n if (!timePattern.test(time)) {\n console.error('Invalid time format. Please use \"HH:MM\" format.')\n return null\n }\n\n // 分离小时和分钟\n const [hour, minute] = time.split(':').map(Number)\n\n // 特殊处理 24:00\n if (hour === 24 && minute === 0)\n return { hour, minute, dateTime: 2400 }\n\n // 计算转换后的值\n const dateTime = hour * 100 + (minute / 60) * 100\n\n return { hour, minute, dateTime }\n }\n\n // 清除场景所有对象\n async clear() {\n const result = this.scene.nodes?.map(async (node) => {\n const isDefineType = this.isEnumValue(EObjectType, node.type)\n const nodeObject = isDefineType ? this.app[node.type] : this.app[EObjectType.entity]\n return nodeObject.delete(node)\n })\n this.setEnvironment({\n weather: {\n type: 'Sunny',\n },\n time: {\n value: '12:00',\n },\n })\n this.modelProgress.clear()\n\n return Promise.all(result)\n }\n}\n\nexport default FileParse\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","_","FogExp2","Vector3","use","utils","Geo3D","Water","MessageType","sendToMessage","EMessageStatus","EObjectType","WeatherMode","StaticType","emitter","FileParse","app","modelProgress","Map","_parseScene","_callee","json","action","_ref","_ref$scene","index","scenes","nodes","layers","sceneNode","_this$parseNode","modelCount","parsedNodes","_callee$","_context","off","clear","scene","console","parseNode","nodeIndex","Boolean","addLayers","addListener","environment","setEnvironment","addNodes","parseScene","_x","_x2","indexes","_this","result","node","warn","concat","camera","set","id","childModelCount","children","childResult","_addNodes","_callee2","_this2","_callee2$","_context2","map","addSingelNode","all","_x3","params","_params$mode","mode","dynamic","source","static","time","weather","environmentManage","hour","currentTime","setTime","timeRange","timeToRange2400","setWeather","hdr","color","setMode","exposure","_use$useScene","useScene","renderer","toneMappingExposure","_addLayers","_callee4","_this3","_this$scene","layerIndex","_use$useScene2","orbitControls","_callee4$","_context4","_ref2","_callee3","sccData","_sccData","panelAttribute","offsetPosition","_Geo3D$CoordUtil$thre","lon","lat","alt","water","_layers$index","density","_callee3$","_context3","t0","loadCity","private","position","_construct","_toConsumableArray","num","isFinite","CoordUtil","threeDXYZToLonLat2","center","load","control","addEventListener","MapEventType","onProgress","emit","update","add","fog","_x4","_addSingelNode","_callee5","_this4","isDefineType","nodeObject","childPromises","childNodes","initialResult","_callee5$","_context5","isEnumValue","entity","clone","childIndex","child","asyncTask","_x5","_this5","cityProgress","total","calcTotalProgress","cityNormalized","Math","min","modelNormalized","sendProgress","messageType","Event","messageName","status","Success","global","progress","state","on","data","has","progressValue","Array","from","reduce","sum","currentProgress","setMaterialParams","_this6","materials","updatedMaterials","item","material","getMaterialNode","materialId","override","enumObj","includes","timePattern","test","_time$split$map","split","_time$split$map2","_slicedToArray","minute","dateTime","_clear","_callee7","_this$scene$nodes","_this7","_callee7$","_context7","_ref3","_callee6","_callee6$","_context6","delete","_x6"],"sources":["../../../src/module/scene/fileParse.ts"],"sourcesContent":["import _ from 'lodash'\nimport { FogExp2, Vector3, use, utils } from '@anov/3d-core'\nimport * as Geo3D from '@anov/geo-3d'\nimport { Water } from '@anov/3d-ability'\nimport type Anov3D from '../../sdkEntry'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\n\nenum EObjectType {\n 'camera' = 'camera',\n 'environment' = 'environment',\n 'scene' = 'scene',\n 'animation' = 'animation',\n 'material' = 'material',\n 'entity' = 'entity',\n}\nenum WeatherMode {\n dynamic = 'dynamic',\n static = 'static',\n}\nexport enum StaticType {\n hdr = 'hdr',\n color = 'color',\n none = 'none',\n}\nconst { emitter } = utils\n\nclass FileParse {\n app: Anov3D\n json: any\n scene: any\n modelProgress: Map<string, number>\n action: string\n loadCity = false\n constructor(app: Anov3D) {\n this.app = app\n this.modelProgress = new Map()\n }\n\n // 解析场景\n async parseScene(json, action) {\n this.json = json\n this.action = action\n emitter.off('model-loading-progress')\n this.modelProgress.clear()\n const { scene: index = 0, scenes, nodes, layers } = json || {}\n const sceneNode = scenes && scenes[index]\n if (!sceneNode) {\n console.error('Invalid scene or nodeIndex.')\n return\n }\n // 递归解析节点并计算模型节点的数量\n const { modelCount, nodes: parsedNodes } = this.parseNode(sceneNode.nodeIndex, nodes, 0)\n this.scene = {\n index,\n ...sceneNode,\n nodes: parsedNodes.filter(Boolean),\n layers,\n modelCount, // 计算模型节点数量并放到 scene 对象中\n }\n await this.addLayers()\n this.addListener()\n this.scene.environment && this.setEnvironment(this.scene.environment)\n return this.addNodes(this.scene.nodes)\n }\n\n // 递归解析节点,并计算模型节点数量\n parseNode(indexes, nodes, modelCount) {\n const result = {\n modelCount,\n nodes: [],\n }\n\n indexes.forEach((index) => {\n const node = nodes[index]\n if (!node) {\n console.warn(`Node with index ${index} not found.`)\n return\n }\n\n if (node.type === EObjectType.camera)\n return\n\n // 如果是 'model' 类型的节点,增加计数\n if (node.type === 'model') {\n this.modelProgress.set(node.id, 0)\n result.modelCount++\n }\n\n // 如果节点有子节点,递归处理\n const childModelCount = result.modelCount\n if (node.children) {\n const childResult = this.parseNode(node.children, nodes, childModelCount)\n result.modelCount = childResult.modelCount\n result.nodes.push({ ...node, children: childResult.nodes.filter(Boolean) })\n }\n else {\n result.nodes.push(node)\n }\n })\n\n return result\n }\n\n async addNodes(nodes) {\n const result = nodes.map((node) => {\n return this.addSingelNode(node)\n })\n\n return Promise.all(result)\n }\n\n // 解析环境\n setEnvironment(params) {\n const { mode = WeatherMode.dynamic, static: source, time, weather } = params\n const environmentManage = this.app[EObjectType.environment]\n if (mode === WeatherMode.dynamic) { // 动态天空\n let hour = 12\n const currentTime = time?.value || time?.time\n if (currentTime) {\n environmentManage.setTime({ time: currentTime })\n const timeRange = this.timeToRange2400(currentTime)\n if (timeRange)\n hour = timeRange.hour\n }\n if (weather?.weather)\n environmentManage.setWeather({ weather: weather.weather, time: hour })\n }\n else if (mode === WeatherMode.static && source) { // 静态天空:HDR、颜色\n const { type, hdr, color } = source\n switch (type) {\n case StaticType.hdr:\n environmentManage.setMode({ mode: StaticType.hdr, ...hdr })\n break\n case StaticType.color:\n environmentManage.setMode({ mode: StaticType.color, color: color.value })\n break\n }\n }\n const { exposure } = this.scene // 曝光度\n if (exposure !== undefined) {\n const { renderer } = use.useScene()\n renderer.toneMappingExposure = exposure\n }\n }\n\n async addLayers() {\n const { layers, layerIndex } = this.scene\n const { scene, camera, renderer, orbitControls } = use.useScene()\n layerIndex && layerIndex.forEach(async (index) => {\n if (index >= layers.length)\n return\n const type = layers[index].type\n switch (type) {\n case 'city':{\n this.loadCity = true\n let sccData = layers[index]\n const { private: panelAttribute, scene: sceneNode } = sccData\n // 中心点偏移\n if (panelAttribute?.position) {\n const offsetPosition = new Vector3(...panelAttribute.position.map(num => Number.isFinite(num) ? num : 0))\n const { lon, lat, alt } = Geo3D.CoordUtil.threeDXYZToLonLat2(offsetPosition, { lon: sceneNode.center[0], lat: sceneNode.center[1], alt: sceneNode.center[2] })\n sccData = { ...sccData, scene: { ...sccData.scene, center: [lon, lat, alt] } }\n }\n const map = await Geo3D.Map.load({\n scene,\n camera,\n renderer,\n control: orbitControls,\n sccData,\n })\n map?.addEventListener(Geo3D.MapEventType.onProgress, (v) => {\n emitter.emit('city-loaded-progress', v)\n })\n break\n }\n case 'water':{\n const water = new Water(layers[index])\n water.update()\n scene.add(water)\n break\n }\n case 'fog':{\n const { color, density } = layers[index]\n scene.fog = new FogExp2(color, density)\n break\n }\n }\n })\n }\n\n // 解析单个节点\n async addSingelNode(node) {\n const isDefineType = this.isEnumValue(EObjectType, node.type)\n const nodeObject = isDefineType ? this.app[node.type] : this.app[EObjectType.entity]\n\n if (!nodeObject) {\n console.error(`Unknown node type: ${node.type}`)\n return\n }\n const params = _.clone(node)\n if (node.type === 'group' && node.children) {\n const childPromises = node.children.map(childIndex => this.addSingelNode(childIndex))\n const childNodes = await Promise.all(childPromises)\n params.children = childNodes.map(child => child.id)\n }\n\n // 判断逻辑:符合夸引擎调用逻辑,先通过initialResult表示调用成功,然后通过asyncTask表示执行成功\n const initialResult = await nodeObject.create(params)\n await initialResult.asyncTask\n return node\n }\n\n addListener() {\n if (this.scene.modelCount > 0 || this.loadCity) {\n let modelProgress = 0 // 模型整体进度 0~1\n let cityProgress = 0 // 城市整体进度 0~1\n let total = 0 //\n\n const calcTotalProgress = () => {\n // 城市进度:50% 映射为 100%\n const cityNormalized = this.loadCity ? Math.min(1, cityProgress * 1.25) : 1\n const modelNormalized = this.scene.modelCount > 0 ? modelProgress : 1\n\n if (this.loadCity && this.scene.modelCount > 0)\n total = (cityNormalized + modelNormalized) / 2\n else if (this.loadCity)\n total = cityNormalized\n else\n total = modelNormalized\n\n return total\n }\n\n const sendProgress = (total: number) => {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: total, state: this.action },\n )\n if (total >= 1)\n emitter.emit('scene-loaded')\n }\n\n if (this.scene.modelCount > 0) {\n emitter.on('model-loading-progress', (data: any) => {\n const { id, progress } = data\n if (!this.modelProgress.has(id))\n return\n this.modelProgress.set(id, progress)\n // 更新累积进度\n const progressValue = Array.from(this.modelProgress.values()).reduce((sum, currentProgress) => sum + currentProgress, 0)\n // 计算进度\n modelProgress = progressValue / this.scene.modelCount\n sendProgress(calcTotalProgress())\n })\n }\n\n if (this.loadCity) {\n emitter.on('city-loaded-progress', (data: any) => {\n cityProgress = data.progress\n total < 1 && sendProgress(calcTotalProgress())\n })\n }\n }\n else {\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: 1, state: this.action },\n )\n emitter.emit('scene-loaded')\n }\n }\n\n // 获取节点参数\n setMaterialParams(node) {\n const { materials } = node\n // 处理材质节点\n if (materials) {\n const updatedMaterials = materials.map((item) => {\n const material = this.getMaterialNode(item.material)\n if (material)\n return { ...item, materialId: material.materialId }\n }).filter(Boolean)\n node.override = { materials: updatedMaterials }\n }\n }\n\n getMaterialNode(index) {\n const materials = this.json.materials\n return (materials && materials.length > index) ? materials[index] : null\n }\n\n isEnumValue(enumObj, value) {\n return Object.values(enumObj).includes(value)\n }\n\n timeToRange2400(time) {\n // 检查输入时间格式是否正确,包括 24:00\n const timePattern = /^(?:([01]?\\d|2[0-3]):([0-5]\\d)|24:00)$/\n if (!timePattern.test(time)) {\n console.error('Invalid time format. Please use \"HH:MM\" format.')\n return null\n }\n\n // 分离小时和分钟\n const [hour, minute] = time.split(':').map(Number)\n\n // 特殊处理 24:00\n if (hour === 24 && minute === 0)\n return { hour, minute, dateTime: 2400 }\n\n // 计算转换后的值\n const dateTime = hour * 100 + (minute / 60) * 100\n\n return { hour, minute, dateTime }\n }\n\n // 清除场景所有对象\n async clear() {\n const result = this.scene.nodes?.map(async (node) => {\n const isDefineType = this.isEnumValue(EObjectType, node.type)\n const nodeObject = isDefineType ? this.app[node.type] : this.app[EObjectType.entity]\n return nodeObject.delete(node)\n })\n this.setEnvironment({\n weather: {\n type: 'Sunny',\n },\n time: {\n value: '12:00',\n },\n })\n this.modelProgress.clear()\n\n return Promise.all(result)\n }\n}\n\nexport default FileParse"],"mappings":"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"}
|