@anov/3d 0.0.281 → 0.0.283
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 +4 -1
- package/dist/anov3d.js.map +1 -1
- package/dist/module/entity/model/index.js +1 -2
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/material/index.js +7 -11
- package/dist/module/material/index.js.map +1 -1
- package/dist/module/scene/fileParse.js +56 -2
- package/dist/module/scene/fileParse.js.map +1 -1
- package/package.json +3 -3
package/dist/anov3d.js
CHANGED
|
@@ -39,7 +39,10 @@ var Anov3D = /*#__PURE__*/function () {
|
|
|
39
39
|
}, defaultRest), camera), {}, {
|
|
40
40
|
position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition)
|
|
41
41
|
});
|
|
42
|
-
|
|
42
|
+
// const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数
|
|
43
|
+
var orbitControls = {
|
|
44
|
+
limit: cameraParams.limit
|
|
45
|
+
}; // 控制器参数
|
|
43
46
|
var scene = new SceneControl({
|
|
44
47
|
defCameraOps: _objectSpread(_objectSpread({}, cameraParams), {}, {
|
|
45
48
|
aspect: clientWidth / clientHeight
|
package/dist/anov3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MathUtils","SceneControl","Vector3","utils","initPostEffects","EventBus","object2Vector3","defaultCameraParams","Anov3D","opts","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","cameraParams","_objectSpread","limit","fromArray","orbitControls","
|
|
1
|
+
{"version":3,"names":["MathUtils","SceneControl","Vector3","utils","initPostEffects","EventBus","object2Vector3","defaultCameraParams","Anov3D","opts","_classCallCheck","_defineProperty","_opts$camera","camera","_opts$container","container","clientWidth","clientHeight","defaultPosition","position","defaultRest","_objectWithoutProperties","_excluded","cameraParams","_objectSpread","limit","fromArray","orbitControls","scene","defCameraOps","aspect","rendererOps","shadowMap","reset","css2DRenderer","css3DRenderer","ambientLight","render","controls","target","copy","lookAt","renderer","emitter","emit","sceneControl","eventBus","storeManagement","set","_createClass","key","value","getOrbitControls","params","pitch","yaw","distance","length","minPolarAngle","degToRad","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","minDistance","maxDistance"],"sources":["../src/anov3d.ts"],"sourcesContent":["import { MathUtils, SceneControl, Vector3, utils } from '@anov/3d-core'\nimport { initPostEffects } from '@anov/3d-ability'\nimport EventBus from './module/eventBus'\nimport { object2Vector3 } from './utils/index'\nimport type { InitOptions } from './applicationApiType'\nimport { defaultCameraParams } from './index'\n\ntype Anov3DOptions = {\n container: HTMLElement\n camera?: InitOptions['camera']\n}\n\nclass Anov3D {\n zoomRatio = 1\n opts: Anov3DOptions\n sceneControl: SceneControl\n eventBus: EventBus\n\n constructor(opts: Anov3DOptions) {\n this.opts = opts\n\n // 获取默认和传入的相机参数\n const { camera = {}, container: { clientWidth, clientHeight } } = opts\n const { position: defaultPosition, ...defaultRest } = defaultCameraParams\n\n // 初始化相机参数\n const cameraParams = {\n limit: {},\n ...defaultRest,\n ...camera,\n position: camera.position ? new Vector3().fromArray(camera.position) : object2Vector3(defaultPosition),\n }\n // const orbitControls = this.getOrbitControls(cameraParams.limit) // 控制器参数\n const orbitControls = { limit: cameraParams.limit } // 控制器参数\n const scene = new SceneControl({\n defCameraOps: {\n ...cameraParams,\n aspect: clientWidth / clientHeight,\n },\n rendererOps: {\n shadowMap: true,\n },\n orbitControls,\n reset: true,\n css2DRenderer: true,\n css3DRenderer: true,\n ambientLight: true,\n })\n\n scene.render(opts.container)\n scene.controls.target.copy(object2Vector3(defaultCameraParams.lookAt))\n\n initPostEffects(scene.scene, scene.renderer, scene.camera)\n\n utils.emitter.emit('scene-completed', scene)\n\n // 不考虑 tree-shaking\n this.sceneControl = scene\n this.eventBus = new EventBus(this as any)\n\n utils.storeManagement.set('event-bus', this.eventBus)\n utils.emitter.emit('instantiation-completed', this)\n }\n\n getOrbitControls(params: { pitch?: number[]\n yaw?: number[]\n distance?: number[] }) {\n const { pitch, yaw, distance } = params\n const orbitControls: any = {}\n if (pitch?.length > 1) {\n orbitControls.minPolarAngle = MathUtils.degToRad(pitch[0])\n orbitControls.maxPolarAngle = MathUtils.degToRad(pitch[1])\n }\n if (yaw?.length > 1) {\n orbitControls.minAzimuthAngle = MathUtils.degToRad(yaw[0])\n orbitControls.maxAzimuthAngle = MathUtils.degToRad(yaw[1])\n }\n if (distance?.length > 1) {\n orbitControls.minDistance = distance[0]\n orbitControls.maxDistance = distance[1]\n }\n return orbitControls\n }\n}\n\nexport default Anov3D"],"mappings":"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"}
|
|
@@ -122,9 +122,8 @@ var ModelManage = /*#__PURE__*/function () {
|
|
|
122
122
|
});
|
|
123
123
|
use.useScene().scene.add(object3d);
|
|
124
124
|
object3d.userData.option = option;
|
|
125
|
-
console.log('object3D:', object3d);
|
|
126
125
|
return _context.abrupt("return", object3d);
|
|
127
|
-
case
|
|
126
|
+
case 15:
|
|
128
127
|
case "end":
|
|
129
128
|
return _context.stop();
|
|
130
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_toPrimitive","String","toPrimitive","Number","BufferGeometry","Euler","MathUtils","Vector3","use","computeBoundsTree","disposeBoundsTree","createDisposeFn","MaterialManage","LoadStrategy","defaultOption","visible","position","rotation","scale","collision","materialManage","ModelManage","setOption","option","_defaultOption$option","url","_defaultOption$option2","castShadow","_defaultOption$option3","receiveShadow","copy","fromArray","degToRad","traverse","node","userData","applyMaterialOverride","materials","properties","changeByObject","id","console","_create","_callee","json","events","modelType","loadAPi","model","object3d","_callee$","_context","split","scene","child","geometry","boundsTree","metalness","material","useScene","add","log","_x","_update","_callee2","entityDispose","_callee2$","_context2","removeFromParent","dispose","update","_x2","_x3"],"sources":["../../../../src/module/entity/model/index.ts"],"sourcesContent":["import type { Group, Object3D } from '@anov/3d-core'\nimport { BufferGeometry, Euler, MathUtils, Vector3, use } from '@anov/3d-core'\nimport type { EMaterialType } from '@anov/3d-ability'\n\nimport { computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh'\nimport createDisposeFn from '../dispose'\nimport MaterialManage from '../../material'\nimport { LoadStrategy } from './load'\n\nBufferGeometry.prototype.computeBoundsTree = computeBoundsTree\nBufferGeometry.prototype.disposeBoundsTree = disposeBoundsTree\n\ntype ModelOption = {\n url: string\n id: string\n\n} & PartialModelOption\n\ntype MaterialOption = Partial<{\n meshIndex: number\n primitiveIndex: number\n materialId: EMaterialType\n properties: {\n color: string\n uvScale: number\n }\n}>\n\ntype PartialModelOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n collision: boolean\n materials: Array<MaterialOption>\n properties: {\n color: string\n uvScale: number\n }\n}>\n\nconst defaultOption: PartialModelOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n collision: true,\n}\n\nconst materialManage = new MaterialManage(null)\n\nclass ModelManage {\n private setOption(option: ModelOption, target: Group) {\n const { visible, position, rotation, collision, url, scale, castShadow = false, receiveShadow = false } = { ...defaultOption, ...option }\n\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(scale))\n\n // TODO:统一在实体类中管理,标识为castShadow、receiveShadow实体添加阴影图层,后期统一管理\n if (castShadow || receiveShadow) {\n target.castShadow = castShadow\n target.receiveShadow = receiveShadow\n target.traverse((node: Object3D) => {\n if (node.type === 'Mesh') {\n node.castShadow = castShadow\n node.receiveShadow = receiveShadow\n }\n })\n }\n target.userData.collision = collision\n target.userData.url = url\n\n this.applyMaterialOverride(option, target)\n\n return { visible, position, rotation, collision, url, scale }\n }\n\n private applyMaterialOverride(option: ModelOption, target: Group) {\n const { materials, properties } = option\n\n if (materials) {\n try {\n materialManage.changeByObject(target, { target: option.id, materials, properties })\n }\n catch (e) {\n console.error(e)\n }\n }\n }\n\n async create(json) {\n const { url, id, events } = json\n const modelType = url.split('.').pop()\n const loadAPi = await LoadStrategy[modelType]()\n const model = await loadAPi(url, id, events)\n model.name = json.name\n const object3d = modelType === 'fbx' ? model : model.scene\n\n const option = this.setOption({\n ...defaultOption,\n ...json,\n }, object3d,\n )\n\n object3d.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.geometry.boundsTree)\n child.geometry.disposeBoundsTree()\n\n // 查看金属度\n const metalness = child.material.metalness\n child.material.metalness = 0.8\n child.geometry.computeBoundsTree()\n }\n })\n\n use.useScene().scene.add(object3d)\n\n object3d.userData.option = option\n\n console.log('object3D:', object3d)\n return object3d\n }\n\n async update(target: Group, option: ModelOption) {\n const { url } = option\n\n if (url && target.userData.url !== url) {\n target.removeFromParent()\n\n // todo: 抽离\n const entityDispose = createDisposeFn()\n entityDispose.call(target)\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n return this.create(option)\n }\n\n else {\n this.setOption({\n ...target.userData.option,\n ...option,\n }, target)\n\n return target\n }\n }\n}\n\nexport default ModelManage\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_toPrimitive","String","toPrimitive","Number","BufferGeometry","Euler","MathUtils","Vector3","use","computeBoundsTree","disposeBoundsTree","createDisposeFn","MaterialManage","LoadStrategy","defaultOption","visible","position","rotation","scale","collision","materialManage","ModelManage","setOption","option","_defaultOption$option","url","_defaultOption$option2","castShadow","_defaultOption$option3","receiveShadow","copy","fromArray","degToRad","traverse","node","userData","applyMaterialOverride","materials","properties","changeByObject","id","console","_create","_callee","json","events","modelType","loadAPi","model","object3d","_callee$","_context","split","scene","child","geometry","boundsTree","metalness","material","useScene","add","_x","_update","_callee2","entityDispose","_callee2$","_context2","removeFromParent","dispose","update","_x2","_x3"],"sources":["../../../../src/module/entity/model/index.ts"],"sourcesContent":["import type { Group, Object3D } from '@anov/3d-core'\nimport { BufferGeometry, Euler, MathUtils, Vector3, use } from '@anov/3d-core'\nimport type { EMaterialType } from '@anov/3d-ability'\n\nimport { computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh'\nimport createDisposeFn from '../dispose'\nimport MaterialManage from '../../material'\nimport { LoadStrategy } from './load'\n\nBufferGeometry.prototype.computeBoundsTree = computeBoundsTree\nBufferGeometry.prototype.disposeBoundsTree = disposeBoundsTree\n\ntype ModelOption = {\n url: string\n id: string\n\n} & PartialModelOption\n\ntype MaterialOption = Partial<{\n meshIndex: number\n primitiveIndex: number\n materialId: EMaterialType\n properties: {\n color: string\n uvScale: number\n }\n}>\n\ntype PartialModelOption = Partial<{\n name: string\n visible: boolean\n position: number[]\n rotation: number[]\n scale: number[]\n collision: boolean\n materials: Array<MaterialOption>\n properties: {\n color: string\n uvScale: number\n }\n}>\n\nconst defaultOption: PartialModelOption = {\n name: '',\n visible: true,\n position: [0, 0, 0],\n rotation: [0, 0, 0],\n scale: [1, 1, 1],\n collision: true,\n}\n\nconst materialManage = new MaterialManage(null)\n\nclass ModelManage {\n private setOption(option: ModelOption, target: Group) {\n const { visible, position, rotation, collision, url, scale, castShadow = false, receiveShadow = false } = { ...defaultOption, ...option }\n\n target.visible = visible\n target.position.copy(new Vector3().fromArray(position))\n target.rotation.copy(new Euler(MathUtils.degToRad(rotation[0]), MathUtils.degToRad(rotation[1]), MathUtils.degToRad(rotation[2])))\n target.scale.copy(new Vector3().fromArray(scale))\n\n // TODO:统一在实体类中管理,标识为castShadow、receiveShadow实体添加阴影图层,后期统一管理\n if (castShadow || receiveShadow) {\n target.castShadow = castShadow\n target.receiveShadow = receiveShadow\n target.traverse((node: Object3D) => {\n if (node.type === 'Mesh') {\n node.castShadow = castShadow\n node.receiveShadow = receiveShadow\n }\n })\n }\n target.userData.collision = collision\n target.userData.url = url\n\n this.applyMaterialOverride(option, target)\n\n return { visible, position, rotation, collision, url, scale }\n }\n\n private applyMaterialOverride(option: ModelOption, target: Group) {\n const { materials, properties } = option\n\n if (materials) {\n try {\n materialManage.changeByObject(target, { target: option.id, materials, properties })\n }\n catch (e) {\n console.error(e)\n }\n }\n }\n\n async create(json) {\n const { url, id, events } = json\n const modelType = url.split('.').pop()\n const loadAPi = await LoadStrategy[modelType]()\n const model = await loadAPi(url, id, events)\n model.name = json.name\n const object3d = modelType === 'fbx' ? model : model.scene\n\n const option = this.setOption({\n ...defaultOption,\n ...json,\n }, object3d,\n )\n\n object3d.traverse((child) => {\n if (child.type === 'Mesh') {\n if (child.geometry.boundsTree)\n child.geometry.disposeBoundsTree()\n\n // 查看金属度\n const metalness = child.material.metalness\n child.material.metalness = 0.8\n child.geometry.computeBoundsTree()\n }\n })\n\n use.useScene().scene.add(object3d)\n\n object3d.userData.option = option\n\n return object3d\n }\n\n async update(target: Group, option: ModelOption) {\n const { url } = option\n\n if (url && target.userData.url !== url) {\n target.removeFromParent()\n\n // todo: 抽离\n const entityDispose = createDisposeFn()\n entityDispose.call(target)\n\n // @ts-ignore\n // eslint-disable-next-line no-proto\n target.__proto__.dispose = entityDispose\n // @ts-ignore\n target.dispose()\n return this.create(option)\n }\n\n else {\n this.setOption({\n ...target.userData.option,\n ...option,\n }, target)\n\n return target\n }\n }\n}\n\nexport default ModelManage\n"],"mappings":"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"}
|
|
@@ -269,17 +269,13 @@ var MaterialManager = /*#__PURE__*/function () {
|
|
|
269
269
|
// }
|
|
270
270
|
|
|
271
271
|
// 应用光泽度贴图 (通常对应 roughnessMap 的反向)
|
|
272
|
-
if (glossinessMap && !roughnessMap) {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
});
|
|
280
|
-
material.needsUpdate = true;
|
|
281
|
-
});
|
|
282
|
-
}
|
|
272
|
+
// if (glossinessMap && !roughnessMap) {
|
|
273
|
+
// // 只有在没有专门的 roughnessMap 时才使用 glossinessMap
|
|
274
|
+
// material.roughnessMap = textureLoader.load(glossinessMap, (texture) => {
|
|
275
|
+
// this.applyTextureTransform(texture, { offset, repeat, rotation })
|
|
276
|
+
// material.needsUpdate = true
|
|
277
|
+
// })
|
|
278
|
+
// }
|
|
283
279
|
|
|
284
280
|
// 应用高度贴图 (displacement map 或 bump map)
|
|
285
281
|
// if (heightMap) {
|
|
@@ -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","SurfaceMaterial","ANOV","DoubleSide","utils","hybridList","emitter","MaterialManager","app","Map","change","json","_this","processChange","data","id","object","get","console","concat","changeByObject","Array","isArray","batch","materials","_json$properties","properties","materialMap","originalMaterial","set","applyMaterials","applySingleMaterial","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","emit","rootProperties","_this3","materialTemplate","_ref2","_callee","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","_callee$","_context","traverseMeshes","mesh","has","uuid","material","clone","getMaterial","opacity","depthWrite","applyMaterialOptions","_x","_applySingleMaterial","_callee2","_args2","_callee2$","_context2","side","_x2","_x3","option","_this4","color","roughness","metalness","diffuseMap","normalMap","glossinessMap","reflectionMap","metalnessMap","roughnessMap","offset","repeat","rotation","Color","textureLoader","TextureLoader","map","load","texture","applyTextureTransform","needsUpdate","envMap","envMapIntensity","_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 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 this.applyMaterials(object, materials, properties, materialMap)\n else\n 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 applyMaterials(\n target: ANOV.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n let materialTemplate\n materials.forEach(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 materialTemplate = await SurfaceMaterial.getMaterial(materialId)\n if (materialId === 'Glass') // TODO: 默认玻璃材质的透明度太低\n materialTemplate.opacity = 0.8\n materialTemplate.depthWrite = true\n\n this.applyMaterialOptions(materialTemplate, { ...rootProperties, ...properties })\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n mesh.material = materialTemplate\n })\n }\n else {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n this.applyMaterialOptions(mesh.material, { ...rootProperties, ...properties })\n })\n }\n emitter.emit('onMaterialChanged', { target })\n })\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 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 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 = textureLoader.load(diffuseMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用法线贴图\n if (normalMap) {\n material.normalMap = textureLoader.load(normalMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用粗糙度贴图\n if (roughnessMap) {\n material.roughnessMap = textureLoader.load(roughnessMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用金属度贴图\n if (metalnessMap) {\n material.metalnessMap = textureLoader.load(metalnessMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\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 if (color || roughness !== undefined)\n material.needsUpdate = true\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","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","SurfaceMaterial","ANOV","DoubleSide","utils","hybridList","emitter","MaterialManager","app","Map","change","json","_this","processChange","data","id","object","get","console","concat","changeByObject","Array","isArray","batch","materials","_json$properties","properties","materialMap","originalMaterial","set","applyMaterials","applySingleMaterial","restore","_this2","processRestore","restoreMaterials","restoreAllMaterials","emit","rootProperties","_this3","materialTemplate","_ref2","_callee","_ref","meshIndex","primitiveIndex","materialId","_ref$properties","_callee$","_context","traverseMeshes","mesh","has","uuid","material","clone","getMaterial","opacity","depthWrite","applyMaterialOptions","_x","_applySingleMaterial","_callee2","_args2","_callee2$","_context2","side","_x2","_x3","option","_this4","color","roughness","metalness","diffuseMap","normalMap","glossinessMap","reflectionMap","metalnessMap","roughnessMap","offset","repeat","rotation","Color","textureLoader","TextureLoader","map","load","texture","applyTextureTransform","needsUpdate","envMap","envMapIntensity","_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 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 this.applyMaterials(object, materials, properties, materialMap)\n else\n 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 applyMaterials(\n target: ANOV.Object3D,\n materials: any[],\n rootProperties: Record<string, any>,\n materialMap: Map<string, ANOV.Material | ANOV.Material[]>,\n ) {\n let materialTemplate\n materials.forEach(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 materialTemplate = await SurfaceMaterial.getMaterial(materialId)\n if (materialId === 'Glass') // TODO: 默认玻璃材质的透明度太低\n materialTemplate.opacity = 0.8\n materialTemplate.depthWrite = true\n\n this.applyMaterialOptions(materialTemplate, { ...rootProperties, ...properties })\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n mesh.material = materialTemplate\n })\n }\n else {\n this.traverseMeshes(target, meshIndex, primitiveIndex, (mesh) => {\n this.applyMaterialOptions(mesh.material, { ...rootProperties, ...properties })\n })\n }\n emitter.emit('onMaterialChanged', { target })\n })\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 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 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 = textureLoader.load(diffuseMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用法线贴图\n if (normalMap) {\n material.normalMap = textureLoader.load(normalMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用粗糙度贴图\n if (roughnessMap) {\n material.roughnessMap = textureLoader.load(roughnessMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\n\n // 应用金属度贴图\n if (metalnessMap) {\n material.metalnessMap = textureLoader.load(metalnessMap, (texture) => {\n this.applyTextureTransform(texture, { offset, repeat, rotation })\n material.needsUpdate = true\n })\n }\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 if (color || roughness !== undefined)\n material.needsUpdate = true\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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"}
|
|
@@ -17,7 +17,8 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
17
17
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
18
18
|
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); }
|
|
19
19
|
import _ from 'lodash';
|
|
20
|
-
import { utils } from '@anov/3d-core';
|
|
20
|
+
import { Map as CMap, FogExp2, use, utils } from '@anov/3d-core';
|
|
21
|
+
import { Water } from '@anov/3d-ability';
|
|
21
22
|
import { MessageType, sendToMessage } from "../../utils/messageFn";
|
|
22
23
|
import { EMessageStatus } from "../../messageStatus";
|
|
23
24
|
var EObjectType = /*#__PURE__*/function (EObjectType) {
|
|
@@ -54,7 +55,8 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
54
55
|
_ref$scene = _ref.scene,
|
|
55
56
|
index = _ref$scene === void 0 ? 0 : _ref$scene,
|
|
56
57
|
scenes = _ref.scenes,
|
|
57
|
-
nodes = _ref.nodes
|
|
58
|
+
nodes = _ref.nodes,
|
|
59
|
+
layers = _ref.layers;
|
|
58
60
|
var sceneNode = scenes && scenes[index];
|
|
59
61
|
if (!sceneNode) {
|
|
60
62
|
console.error('Invalid scene or nodeIndex.');
|
|
@@ -69,9 +71,11 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
69
71
|
index: index
|
|
70
72
|
}, sceneNode), {}, {
|
|
71
73
|
nodes: parsedNodes.filter(Boolean),
|
|
74
|
+
layers: layers,
|
|
72
75
|
modelCount: modelCount // 计算模型节点数量并放到 scene 对象中
|
|
73
76
|
});
|
|
74
77
|
this.addListener();
|
|
78
|
+
this.addLayers();
|
|
75
79
|
this.scene.environment && this.setEnvironment(this.scene.environment);
|
|
76
80
|
return this.addNodes(this.scene.nodes);
|
|
77
81
|
} catch (error) {
|
|
@@ -159,6 +163,56 @@ var FileParse = /*#__PURE__*/function () {
|
|
|
159
163
|
weather: weather.weather,
|
|
160
164
|
time: hour
|
|
161
165
|
});
|
|
166
|
+
var exposure = this.scene.exposure; // 曝光度
|
|
167
|
+
if (exposure !== undefined) {
|
|
168
|
+
var _use$useScene = use.useScene(),
|
|
169
|
+
renderer = _use$useScene.renderer;
|
|
170
|
+
renderer.toneMappingExposure = exposure;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}, {
|
|
174
|
+
key: "addLayers",
|
|
175
|
+
value: function addLayers() {
|
|
176
|
+
var _this$scene = this.scene,
|
|
177
|
+
layers = _this$scene.layers,
|
|
178
|
+
layerIndex = _this$scene.layerIndex;
|
|
179
|
+
var _use$useScene2 = use.useScene(),
|
|
180
|
+
scene = _use$useScene2.scene,
|
|
181
|
+
camera = _use$useScene2.camera,
|
|
182
|
+
renderer = _use$useScene2.renderer,
|
|
183
|
+
orbitControls = _use$useScene2.orbitControls;
|
|
184
|
+
layerIndex && layerIndex.forEach(function (index) {
|
|
185
|
+
if (index >= layers.length) return;
|
|
186
|
+
var type = layers[index].type;
|
|
187
|
+
switch (type) {
|
|
188
|
+
case 'city':
|
|
189
|
+
{
|
|
190
|
+
CMap.load({
|
|
191
|
+
scene: scene,
|
|
192
|
+
camera: camera,
|
|
193
|
+
renderer: renderer,
|
|
194
|
+
control: orbitControls,
|
|
195
|
+
sccData: layers[index]
|
|
196
|
+
});
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case 'water':
|
|
200
|
+
{
|
|
201
|
+
var water = new Water(layers[index]);
|
|
202
|
+
water.update();
|
|
203
|
+
scene.add(water);
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
case 'fog':
|
|
207
|
+
{
|
|
208
|
+
var _layers$index = layers[index],
|
|
209
|
+
color = _layers$index.color,
|
|
210
|
+
density = _layers$index.density;
|
|
211
|
+
scene.fog = new FogExp2(color, density);
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
});
|
|
162
216
|
}
|
|
163
217
|
|
|
164
218
|
// 解析单个节点
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","_","utils","MessageType","sendToMessage","EMessageStatus","EObjectType","emitter","FileParse","app","modelProgress","Map","parseScene","json","action","off","clear","_ref","_ref$scene","scene","index","scenes","nodes","sceneNode","console","_this$parseNode","parseNode","nodeIndex","modelCount","parsedNodes","Boolean","addListener","environment","setEnvironment","addNodes","indexes","_this","result","node","warn","concat","camera","set","id","childModelCount","children","childResult","_addNodes","_callee","_this2","_callee$","_context","map","addSingelNode","all","_x","params","time","weather","environmentManage","hour","currentTime","setTime","timeRange","timeToRange2400","setWeather","_addSingelNode","_callee2","_this3","isDefineType","nodeObject","childPromises","childNodes","initialResult","_callee2$","_context2","isEnumValue","entity","clone","childIndex","child","asyncTask","_x2","_this4","on","data","progress","has","progressValue","Array","from","reduce","sum","currentProgress","totalProgress","messageType","Event","messageName","status","Success","global","state","setMaterialParams","_this5","materials","updatedMaterials","item","material","getMaterialNode","materialId","override","enumObj","includes","timePattern","test","_time$split$map","split","_time$split$map2","_slicedToArray","minute","dateTime","_clear","_callee4","_this$scene$nodes","_this6","_callee4$","_context4","_ref2","_callee3","_callee3$","_context3","delete","_x3"],"sources":["../../../src/module/scene/fileParse.ts"],"sourcesContent":["import _ from 'lodash'\nimport { utils } from '@anov/3d-core'\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}\nconst { emitter } = utils\n\nclass FileParse {\n app: Anov3D\n json: any\n scene: any\n modelProgress: Map<string, number>\n action: string\n constructor(app: Anov3D) {\n this.app = app\n this.modelProgress = new Map()\n }\n\n // 解析场景\n 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 } = json || {}\n const sceneNode = scenes && scenes[index]\n if (!sceneNode) {\n console.error('Invalid scene or nodeIndex.')\n return\n }\n try {\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 modelCount, // 计算模型节点数量并放到 scene 对象中\n }\n this.addListener()\n this.scene.environment && this.setEnvironment(this.scene.environment)\n return this.addNodes(this.scene.nodes)\n }\n catch (error) {\n return false\n }\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 { time, weather } = params\n const environmentManage = this.app[EObjectType.environment]\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\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) {\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 const totalProgress = progressValue / this.scene.modelCount\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: totalProgress, state: this.action })\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 }\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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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_toPrimitive","String","toPrimitive","Number","_","Map","CMap","FogExp2","use","utils","Water","MessageType","sendToMessage","EMessageStatus","EObjectType","emitter","FileParse","app","modelProgress","parseScene","json","action","off","clear","_ref","_ref$scene","scene","index","scenes","nodes","layers","sceneNode","console","_this$parseNode","parseNode","nodeIndex","modelCount","parsedNodes","Boolean","addListener","addLayers","environment","setEnvironment","addNodes","indexes","_this","result","node","warn","concat","camera","set","id","childModelCount","children","childResult","_addNodes","_callee","_this2","_callee$","_context","map","addSingelNode","all","_x","params","time","weather","environmentManage","hour","currentTime","setTime","timeRange","timeToRange2400","setWeather","exposure","_use$useScene","useScene","renderer","toneMappingExposure","_this$scene","layerIndex","_use$useScene2","orbitControls","load","control","sccData","water","update","add","_layers$index","color","density","fog","_addSingelNode","_callee2","_this3","isDefineType","nodeObject","childPromises","childNodes","initialResult","_callee2$","_context2","isEnumValue","entity","clone","childIndex","child","asyncTask","_x2","_this4","on","data","progress","has","progressValue","Array","from","reduce","sum","currentProgress","totalProgress","messageType","Event","messageName","status","Success","global","state","setMaterialParams","_this5","materials","updatedMaterials","item","material","getMaterialNode","materialId","override","enumObj","includes","timePattern","test","_time$split$map","split","_time$split$map2","_slicedToArray","minute","dateTime","_clear","_callee4","_this$scene$nodes","_this6","_callee4$","_context4","_ref2","_callee3","_callee3$","_context3","delete","_x3"],"sources":["../../../src/module/scene/fileParse.ts"],"sourcesContent":["import _ from 'lodash'\nimport { Map as CMap, FogExp2, use, utils } from '@anov/3d-core'\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}\nconst { emitter } = utils\n\nclass FileParse {\n app: Anov3D\n json: any\n scene: any\n modelProgress: Map<string, number>\n action: string\n constructor(app: Anov3D) {\n this.app = app\n this.modelProgress = new Map()\n }\n\n // 解析场景\n 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 try {\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 this.addListener()\n this.addLayers()\n this.scene.environment && this.setEnvironment(this.scene.environment)\n return this.addNodes(this.scene.nodes)\n }\n catch (error) {\n return false\n }\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 { time, weather } = params\n const environmentManage = this.app[EObjectType.environment]\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 const { exposure } = this.scene // 曝光度\n if (exposure !== undefined) {\n const { renderer } = use.useScene()\n renderer.toneMappingExposure = exposure\n }\n }\n\n addLayers() {\n const { layers, layerIndex } = this.scene\n const { scene, camera, renderer, orbitControls } = use.useScene()\n layerIndex && layerIndex.forEach((index) => {\n if (index >= layers.length)\n return\n const type = layers[index].type\n switch (type) {\n case 'city':{\n CMap.load({\n scene,\n camera,\n renderer,\n control: orbitControls,\n sccData: layers[index],\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) {\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 const totalProgress = progressValue / this.scene.modelCount\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onProgress',\n status: EMessageStatus.Success,\n global: false,\n },\n { progress: totalProgress, state: this.action })\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 }\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":";;;;;;;+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,CAAAkD,MAAA,KAAA7D,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,uCAAA3D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAiE,UAAA,IAAArD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAAgE,IAAA,GAAAlE,CAAA,CAAAmE,OAAA,eAAAjE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,sCAAA9D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAiC,aAAAnE,CAAA,QAAAD,CAAA,KAAAqE,MAAA,EAAApE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAsE,QAAA,GAAArE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAuE,UAAA,GAAAtE,CAAA,KAAAD,CAAA,CAAAwE,QAAA,GAAAvE,CAAA,WAAAwE,UAAA,CAAAC,IAAA,CAAA1E,CAAA,cAAA2E,cAAA1E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA2E,UAAA,QAAA5E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA2E,UAAA,GAAA5E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAwE,UAAA,MAAAJ,MAAA,aAAApE,CAAA,CAAA4C,OAAA,CAAAuB,YAAA,cAAAS,KAAA,iBAAAnC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAkE,IAAA,SAAAlE,CAAA,OAAA8E,KAAA,CAAA9E,CAAA,CAAA+E,MAAA,SAAAxE,CAAA,OAAAG,CAAA,YAAAwD,KAAA,aAAA3D,CAAA,GAAAP,CAAA,CAAA+E,MAAA,OAAA1E,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA2D,IAAA,CAAAzD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA2D,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAxD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,gBAAAsD,SAAA,CAAAf,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA4C,WAAA,GAAA9D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAiF,mBAAA,aAAAhF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAiF,WAAA,WAAAlF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAAgF,WAAA,IAAAhF,CAAA,CAAAmF,IAAA,OAAAnF,CAAA,CAAAoF,IAAA,aAAAnF,CAAA,WAAAE,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAApF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAqF,SAAA,GAAAjD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAwF,KAAA,aAAAvF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA+E,OAAA,OAAA7E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAiF,mBAAA,CAAA/E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAsD,IAAA,GAAAd,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAsD,IAAA,WAAAtB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAA0F,IAAA,aAAAzF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAwE,IAAA,CAAArE,CAAA,UAAAH,CAAA,CAAAyF,OAAA,aAAAzB,KAAA,WAAAhE,CAAA,CAAA6E,MAAA,SAAA9E,CAAA,GAAAC,CAAA,CAAA0F,GAAA,QAAA3F,CAAA,IAAAD,CAAA,SAAAkE,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAlE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA8E,WAAA,EAAAzD,OAAA,EAAAoD,KAAA,WAAAA,MAAA7E,CAAA,aAAA6F,IAAA,WAAA3B,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAwE,UAAA,CAAA5B,OAAA,CAAA8B,aAAA,IAAA3E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA4F,MAAA,OAAAzF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA4E,KAAA,EAAA5E,CAAA,CAAA6F,KAAA,cAAA7F,CAAA,IAAAD,CAAA,MAAA+F,IAAA,WAAAA,KAAA,SAAAzC,IAAA,WAAAtD,CAAA,QAAAwE,UAAA,IAAAG,UAAA,kBAAA3E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAoE,IAAA,KAAApC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAAgG,OAAA7F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAAgE,IAAA,GAAA7D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAkE,UAAA,CAAAM,MAAA,MAAAxE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA+D,UAAA,CAAAlE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAkE,UAAA,iBAAAlE,CAAA,CAAA2D,MAAA,SAAA6B,MAAA,aAAAxF,CAAA,CAAA2D,MAAA,SAAAwB,IAAA,QAAA/E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA6E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,gBAAAuB,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,cAAAzD,CAAA,aAAA+E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,qBAAAtD,CAAA,YAAAsC,KAAA,qDAAAuC,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,YAAAT,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAuE,UAAA,CAAAM,MAAA,MAAA7E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAkE,UAAA,CAAAvE,CAAA,OAAAK,CAAA,CAAA8D,MAAA,SAAAwB,IAAA,IAAAxF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAsF,IAAA,GAAAtF,CAAA,CAAAgE,UAAA,QAAA7D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA2D,MAAA,IAAArE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA6D,UAAA,KAAA7D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAkE,UAAA,cAAAhE,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAU,IAAA,GAAAxD,CAAA,CAAA6D,UAAA,EAAApC,CAAA,SAAAgE,QAAA,CAAAvF,CAAA,MAAAuF,QAAA,WAAAA,SAAAlG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAsC,IAAA,GAAAjE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAqE,IAAA,QAAApE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAU,IAAA,yBAAAjE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAkE,IAAA,GAAAlE,CAAA,GAAAmC,CAAA,KAAAiE,MAAA,WAAAA,OAAAnG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAqE,UAAA,KAAAtE,CAAA,cAAAkG,QAAA,CAAAjG,CAAA,CAAA0E,UAAA,EAAA1E,CAAA,CAAAsE,QAAA,GAAAG,aAAA,CAAAzE,CAAA,GAAAiC,CAAA,OAAAkE,KAAA,WAAAC,OAAArG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAmE,MAAA,KAAApE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAA0E,UAAA,kBAAAvE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA8C,aAAA,CAAAzE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAAiD,aAAA,WAAAA,cAAAvG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAiE,UAAA,EAAA/D,CAAA,EAAAiE,OAAA,EAAA9D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAwG,mBAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAhF,GAAA,cAAAiF,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAAhF,GAAA,OAAApB,KAAA,GAAAqG,IAAA,CAAArG,KAAA,WAAAsG,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAAvD,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAAgF,OAAA,CAAAvC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAuD,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAA3B,OAAA,WAAAvC,OAAA,EAAAwD,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAR,MAAAlG,KAAA,IAAA+F,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAnG,KAAA,cAAAmG,OAAAU,GAAA,IAAAd,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAU,GAAA,KAAAX,KAAA,CAAAY,SAAA;AAAA,SAAAC,QAAAxH,CAAA,EAAAE,CAAA,QAAAD,CAAA,GAAAE,MAAA,CAAAuF,IAAA,CAAA1F,CAAA,OAAAG,MAAA,CAAAsH,qBAAA,QAAAlH,CAAA,GAAAJ,MAAA,CAAAsH,qBAAA,CAAAzH,CAAA,GAAAE,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAmH,MAAA,WAAAxH,CAAA,WAAAC,MAAA,CAAAwH,wBAAA,CAAA3H,CAAA,EAAAE,CAAA,EAAAiB,UAAA,OAAAlB,CAAA,CAAAyE,IAAA,CAAA2C,KAAA,CAAApH,CAAA,EAAAM,CAAA,YAAAN,CAAA;AAAA,SAAA2H,cAAA5H,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAkH,SAAA,CAAArC,MAAA,EAAA7E,CAAA,UAAAD,CAAA,WAAAmH,SAAA,CAAAlH,CAAA,IAAAkH,SAAA,CAAAlH,CAAA,QAAAA,CAAA,OAAAsH,OAAA,CAAArH,MAAA,CAAAF,CAAA,OAAA4C,OAAA,WAAA3C,CAAA,IAAA2H,eAAA,CAAA7H,CAAA,EAAAE,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAC,MAAA,CAAA2H,yBAAA,GAAA3H,MAAA,CAAA4H,gBAAA,CAAA/H,CAAA,EAAAG,MAAA,CAAA2H,yBAAA,CAAA7H,CAAA,KAAAuH,OAAA,CAAArH,MAAA,CAAAF,CAAA,GAAA4C,OAAA,WAAA3C,CAAA,IAAAC,MAAA,CAAAK,cAAA,CAAAR,CAAA,EAAAE,CAAA,EAAAC,MAAA,CAAAwH,wBAAA,CAAA1H,CAAA,EAAAC,CAAA,iBAAAF,CAAA;AAAA,SAAAgI,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAAlE,SAAA;AAAA,SAAAmE,kBAAAC,MAAA,EAAAC,KAAA,aAAA3H,CAAA,MAAAA,CAAA,GAAA2H,KAAA,CAAAtD,MAAA,EAAArE,CAAA,UAAA4H,UAAA,GAAAD,KAAA,CAAA3H,CAAA,GAAA4H,UAAA,CAAAnH,UAAA,GAAAmH,UAAA,CAAAnH,UAAA,WAAAmH,UAAA,CAAAlH,YAAA,wBAAAkH,UAAA,EAAAA,UAAA,CAAAjH,QAAA,SAAAlB,MAAA,CAAAK,cAAA,CAAA4H,MAAA,EAAAG,cAAA,CAAAD,UAAA,CAAAzB,GAAA,GAAAyB,UAAA;AAAA,SAAAE,aAAAN,WAAA,EAAAO,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAN,iBAAA,CAAAD,WAAA,CAAA9H,SAAA,EAAAqI,UAAA,OAAAC,WAAA,EAAAP,iBAAA,CAAAD,WAAA,EAAAQ,WAAA,GAAAvI,MAAA,CAAAK,cAAA,CAAA0H,WAAA,iBAAA7G,QAAA,mBAAA6G,WAAA;AAAA,SAAAL,gBAAAc,GAAA,EAAA9B,GAAA,EAAApG,KAAA,IAAAoG,GAAA,GAAA0B,cAAA,CAAA1B,GAAA,OAAAA,GAAA,IAAA8B,GAAA,IAAAxI,MAAA,CAAAK,cAAA,CAAAmI,GAAA,EAAA9B,GAAA,IAAApG,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAsH,GAAA,CAAA9B,GAAA,IAAApG,KAAA,WAAAkI,GAAA;AAAA,SAAAJ,eAAAtI,CAAA,QAAAS,CAAA,GAAAkI,YAAA,CAAA3I,CAAA,gCAAAgD,OAAA,CAAAvC,CAAA,IAAAA,CAAA,GAAAmI,MAAA,CAAAnI,CAAA;AAAA,SAAAkI,aAAA3I,CAAA,EAAAC,CAAA,oBAAA+C,OAAA,CAAAhD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAU,MAAA,CAAAmI,WAAA,kBAAA9I,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAA8B,IAAA,CAAA7B,CAAA,EAAAC,CAAA,gCAAA+C,OAAA,CAAAvC,CAAA,UAAAA,CAAA,YAAAsD,SAAA,yEAAA9D,CAAA,GAAA2I,MAAA,GAAAE,MAAA,EAAA9I,CAAA;AADA,OAAO+I,CAAC,MAAM,QAAQ;AACtB,SAASC,GAAG,IAAIC,IAAI,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAChE,SAASC,KAAK,QAAQ,kBAAkB;AAExC,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AAA6B,IAE/CC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,EAAXA,WAAW;AAQhB,IAAQC,OAAO,GAAKN,KAAK,CAAjBM,OAAO;AAAU,IAEnBC,SAAS;EAMb,SAAAA,UAAYC,GAAW,EAAE;IAAA7B,eAAA,OAAA4B,SAAA;IAAA/B,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACvB,IAAI,CAACgC,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,aAAa,GAAG,IAAIb,GAAG,CAAC,CAAC;EAChC;;EAEA;EAAAT,YAAA,CAAAoB,SAAA;IAAA/C,GAAA;IAAApG,KAAA,EACA,SAAAsJ,WAAWC,IAAI,EAAEC,MAAM,EAAE;MACvB,IAAI,CAACD,IAAI,GAAGA,IAAI;MAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;MACpBN,OAAO,CAACO,GAAG,CAAC,wBAAwB,CAAC;MACrC,IAAI,CAACJ,aAAa,CAACK,KAAK,CAAC,CAAC;MAC1B,IAAAC,IAAA,GAAoDJ,IAAI,IAAI,CAAC,CAAC;QAAAK,UAAA,GAAAD,IAAA,CAAtDE,KAAK;QAAEC,KAAK,GAAAF,UAAA,cAAG,CAAC,GAAAA,UAAA;QAAEG,MAAM,GAAAJ,IAAA,CAANI,MAAM;QAAEC,KAAK,GAAAL,IAAA,CAALK,KAAK;QAAEC,MAAM,GAAAN,IAAA,CAANM,MAAM;MAC/C,IAAMC,SAAS,GAAGH,MAAM,IAAIA,MAAM,CAACD,KAAK,CAAC;MACzC,IAAI,CAACI,SAAS,EAAE;QACdC,OAAO,CAAC7D,KAAK,CAAC,6BAA6B,CAAC;QAC5C;MACF;MACA,IAAI;QACF;QACA,IAAA8D,eAAA,GAA2C,IAAI,CAACC,SAAS,CAACH,SAAS,CAACI,SAAS,EAAEN,KAAK,EAAE,CAAC,CAAC;UAAhFO,UAAU,GAAAH,eAAA,CAAVG,UAAU;UAASC,WAAW,GAAAJ,eAAA,CAAlBJ,KAAK;QACzB,IAAI,CAACH,KAAK,GAAA1C,aAAA,CAAAA,aAAA;UACR2C,KAAK,EAALA;QAAK,GACFI,SAAS;UACZF,KAAK,EAAEQ,WAAW,CAACvD,MAAM,CAACwD,OAAO,CAAC;UAClCR,MAAM,EAANA,MAAM;UACNM,UAAU,EAAVA,UAAU,CAAE;QAAA,EACb;QACD,IAAI,CAACG,WAAW,CAAC,CAAC;QAClB,IAAI,CAACC,SAAS,CAAC,CAAC;QAChB,IAAI,CAACd,KAAK,CAACe,WAAW,IAAI,IAAI,CAACC,cAAc,CAAC,IAAI,CAAChB,KAAK,CAACe,WAAW,CAAC;QACrE,OAAO,IAAI,CAACE,QAAQ,CAAC,IAAI,CAACjB,KAAK,CAACG,KAAK,CAAC;MACxC,CAAC,CACD,OAAO1D,KAAK,EAAE;QACZ,OAAO,KAAK;MACd;IACF;;IAEA;EAAA;IAAAF,GAAA;IAAApG,KAAA,EACA,SAAAqK,UAAUU,OAAO,EAAEf,KAAK,EAAEO,UAAU,EAAE;MAAA,IAAAS,KAAA;MACpC,IAAMC,MAAM,GAAG;QACbV,UAAU,EAAVA,UAAU;QACVP,KAAK,EAAE;MACT,CAAC;MAEDe,OAAO,CAAC3I,OAAO,CAAC,UAAC0H,KAAK,EAAK;QACzB,IAAMoB,IAAI,GAAGlB,KAAK,CAACF,KAAK,CAAC;QACzB,IAAI,CAACoB,IAAI,EAAE;UACTf,OAAO,CAACgB,IAAI,oBAAAC,MAAA,CAAoBtB,KAAK,gBAAa,CAAC;UACnD;QACF;QAEA,IAAIoB,IAAI,CAAC/J,IAAI,KAAK8H,WAAW,CAACoC,MAAM,EAClC;;QAEF;QACA,IAAIH,IAAI,CAAC/J,IAAI,KAAK,OAAO,EAAE;UACzB6J,KAAI,CAAC3B,aAAa,CAACiC,GAAG,CAACJ,IAAI,CAACK,EAAE,EAAE,CAAC,CAAC;UAClCN,MAAM,CAACV,UAAU,EAAE;QACrB;;QAEA;QACA,IAAMiB,eAAe,GAAGP,MAAM,CAACV,UAAU;QACzC,IAAIW,IAAI,CAACO,QAAQ,EAAE;UACjB,IAAMC,WAAW,GAAGV,KAAI,CAACX,SAAS,CAACa,IAAI,CAACO,QAAQ,EAAEzB,KAAK,EAAEwB,eAAe,CAAC;UACzEP,MAAM,CAACV,UAAU,GAAGmB,WAAW,CAACnB,UAAU;UAC1CU,MAAM,CAACjB,KAAK,CAAC/F,IAAI,CAAAkD,aAAA,CAAAA,aAAA,KAAM+D,IAAI;YAAEO,QAAQ,EAAEC,WAAW,CAAC1B,KAAK,CAAC/C,MAAM,CAACwD,OAAO;UAAC,EAAE,CAAC;QAC7E,CAAC,MACI;UACHQ,MAAM,CAACjB,KAAK,CAAC/F,IAAI,CAACiH,IAAI,CAAC;QACzB;MACF,CAAC,CAAC;MAEF,OAAOD,MAAM;IACf;EAAC;IAAA7E,GAAA;IAAApG,KAAA;MAAA,IAAA2L,SAAA,GAAApF,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAAiH,QAAe5B,KAAK;QAAA,IAAA6B,MAAA;QAAA,IAAAZ,MAAA;QAAA,OAAA3L,mBAAA,GAAAuB,IAAA,UAAAiL,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAA3G,IAAA,GAAA2G,QAAA,CAAAtI,IAAA;YAAA;cACZwH,MAAM,GAAGjB,KAAK,CAACgC,GAAG,CAAC,UAACd,IAAI,EAAK;gBACjC,OAAOW,MAAI,CAACI,aAAa,CAACf,IAAI,CAAC;cACjC,CAAC,CAAC;cAAA,OAAAa,QAAA,CAAA1I,MAAA,WAEK2B,OAAO,CAACkH,GAAG,CAACjB,MAAM,CAAC;YAAA;YAAA;cAAA,OAAAc,QAAA,CAAAxG,IAAA;UAAA;QAAA,GAAAqG,OAAA;MAAA,CAC3B;MAAA,SAAAd,SAAAqB,EAAA;QAAA,OAAAR,SAAA,CAAA/E,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAmE,QAAA;IAAA,IAED;EAAA;IAAA1E,GAAA;IAAApG,KAAA,EACA,SAAA6K,eAAeuB,MAAM,EAAE;MACrB,IAAQC,IAAI,GAAcD,MAAM,CAAxBC,IAAI;QAAEC,OAAO,GAAKF,MAAM,CAAlBE,OAAO;MACrB,IAAMC,iBAAiB,GAAG,IAAI,CAACnD,GAAG,CAACH,WAAW,CAAC2B,WAAW,CAAC;MAC3D,IAAI4B,IAAI,GAAG,EAAE;MACb,IAAMC,WAAW,GAAG,CAAAJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAErM,KAAK,MAAIqM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEA,IAAI;MAC7C,IAAII,WAAW,EAAE;QACfF,iBAAiB,CAACG,OAAO,CAAC;UAAEL,IAAI,EAAEI;QAAY,CAAC,CAAC;QAChD,IAAME,SAAS,GAAG,IAAI,CAACC,eAAe,CAACH,WAAW,CAAC;QACnD,IAAIE,SAAS,EACXH,IAAI,GAAGG,SAAS,CAACH,IAAI;MACzB;MACA,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEA,OAAO,EAClBC,iBAAiB,CAACM,UAAU,CAAC;QAAEP,OAAO,EAAEA,OAAO,CAACA,OAAO;QAAED,IAAI,EAAEG;MAAK,CAAC,CAAC;MAExE,IAAQM,QAAQ,GAAK,IAAI,CAACjD,KAAK,CAAvBiD,QAAQ,CAAe,CAAC;MAChC,IAAIA,QAAQ,KAAKhG,SAAS,EAAE;QAC1B,IAAAiG,aAAA,GAAqBpE,GAAG,CAACqE,QAAQ,CAAC,CAAC;UAA3BC,QAAQ,GAAAF,aAAA,CAARE,QAAQ;QAChBA,QAAQ,CAACC,mBAAmB,GAAGJ,QAAQ;MACzC;IACF;EAAC;IAAA1G,GAAA;IAAApG,KAAA,EAED,SAAA2K,UAAA,EAAY;MACV,IAAAwC,WAAA,GAA+B,IAAI,CAACtD,KAAK;QAAjCI,MAAM,GAAAkD,WAAA,CAANlD,MAAM;QAAEmD,UAAU,GAAAD,WAAA,CAAVC,UAAU;MAC1B,IAAAC,cAAA,GAAmD1E,GAAG,CAACqE,QAAQ,CAAC,CAAC;QAAzDnD,KAAK,GAAAwD,cAAA,CAALxD,KAAK;QAAEwB,MAAM,GAAAgC,cAAA,CAANhC,MAAM;QAAE4B,QAAQ,GAAAI,cAAA,CAARJ,QAAQ;QAAEK,aAAa,GAAAD,cAAA,CAAbC,aAAa;MAC9CF,UAAU,IAAIA,UAAU,CAAChL,OAAO,CAAC,UAAC0H,KAAK,EAAK;QAC1C,IAAIA,KAAK,IAAIG,MAAM,CAAC3F,MAAM,EACxB;QACF,IAAMnD,IAAI,GAAG8I,MAAM,CAACH,KAAK,CAAC,CAAC3I,IAAI;QAC/B,QAAQA,IAAI;UACV,KAAK,MAAM;YAAC;cACVsH,IAAI,CAAC8E,IAAI,CAAC;gBACR1D,KAAK,EAALA,KAAK;gBACLwB,MAAM,EAANA,MAAM;gBACN4B,QAAQ,EAARA,QAAQ;gBACRO,OAAO,EAAEF,aAAa;gBACtBG,OAAO,EAAExD,MAAM,CAACH,KAAK;cACvB,CAAC,CAAC;cACF;YACF;UACA,KAAK,OAAO;YAAC;cACX,IAAM4D,KAAK,GAAG,IAAI7E,KAAK,CAACoB,MAAM,CAACH,KAAK,CAAC,CAAC;cACtC4D,KAAK,CAACC,MAAM,CAAC,CAAC;cACd9D,KAAK,CAAC+D,GAAG,CAACF,KAAK,CAAC;cAChB;YACF;UACA,KAAK,KAAK;YAAC;cACT,IAAAG,aAAA,GAA2B5D,MAAM,CAACH,KAAK,CAAC;gBAAhCgE,KAAK,GAAAD,aAAA,CAALC,KAAK;gBAAEC,OAAO,GAAAF,aAAA,CAAPE,OAAO;cACtBlE,KAAK,CAACmE,GAAG,GAAG,IAAItF,OAAO,CAACoF,KAAK,EAAEC,OAAO,CAAC;cACvC;YACF;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;EAAA;IAAA3H,GAAA;IAAApG,KAAA;MAAA,IAAAiO,cAAA,GAAA1H,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CACA,SAAAuJ,SAAoBhD,IAAI;QAAA,IAAAiD,MAAA;QAAA,IAAAC,YAAA,EAAAC,UAAA,EAAAjC,MAAA,EAAAkC,aAAA,EAAAC,UAAA,EAAAC,aAAA;QAAA,OAAAlP,mBAAA,GAAAuB,IAAA,UAAA4N,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAtJ,IAAA,GAAAsJ,SAAA,CAAAjL,IAAA;YAAA;cAChB2K,YAAY,GAAG,IAAI,CAACO,WAAW,CAAC1F,WAAW,EAAEiC,IAAI,CAAC/J,IAAI,CAAC;cACvDkN,UAAU,GAAGD,YAAY,GAAG,IAAI,CAAChF,GAAG,CAAC8B,IAAI,CAAC/J,IAAI,CAAC,GAAG,IAAI,CAACiI,GAAG,CAACH,WAAW,CAAC2F,MAAM,CAAC;cAAA,IAE/EP,UAAU;gBAAAK,SAAA,CAAAjL,IAAA;gBAAA;cAAA;cACb0G,OAAO,CAAC7D,KAAK,uBAAA8E,MAAA,CAAuBF,IAAI,CAAC/J,IAAI,CAAE,CAAC;cAAA,OAAAuN,SAAA,CAAArL,MAAA;YAAA;cAG5C+I,MAAM,GAAG7D,CAAC,CAACsG,KAAK,CAAC3D,IAAI,CAAC;cAAA,MACxBA,IAAI,CAAC/J,IAAI,KAAK,OAAO,IAAI+J,IAAI,CAACO,QAAQ;gBAAAiD,SAAA,CAAAjL,IAAA;gBAAA;cAAA;cAClC6K,aAAa,GAAGpD,IAAI,CAACO,QAAQ,CAACO,GAAG,CAAC,UAAA8C,UAAU;gBAAA,OAAIX,MAAI,CAAClC,aAAa,CAAC6C,UAAU,CAAC;cAAA,EAAC;cAAAJ,SAAA,CAAAjL,IAAA;cAAA,OAC5DuB,OAAO,CAACkH,GAAG,CAACoC,aAAa,CAAC;YAAA;cAA7CC,UAAU,GAAAG,SAAA,CAAAxL,IAAA;cAChBkJ,MAAM,CAACX,QAAQ,GAAG8C,UAAU,CAACvC,GAAG,CAAC,UAAA+C,KAAK;gBAAA,OAAIA,KAAK,CAACxD,EAAE;cAAA,EAAC;YAAA;cAAAmD,SAAA,CAAAjL,IAAA;cAAA,OAIzB4K,UAAU,CAACtN,MAAM,CAACqL,MAAM,CAAC;YAAA;cAA/CoC,aAAa,GAAAE,SAAA,CAAAxL,IAAA;cAAAwL,SAAA,CAAAjL,IAAA;cAAA,OACb+K,aAAa,CAACQ,SAAS;YAAA;cAAA,OAAAN,SAAA,CAAArL,MAAA,WACtB6H,IAAI;YAAA;YAAA;cAAA,OAAAwD,SAAA,CAAAnJ,IAAA;UAAA;QAAA,GAAA2I,QAAA;MAAA,CACZ;MAAA,SAAAjC,cAAAgD,GAAA;QAAA,OAAAhB,cAAA,CAAArH,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAsF,aAAA;IAAA;EAAA;IAAA7F,GAAA;IAAApG,KAAA,EAED,SAAA0K,YAAA,EAAc;MAAA,IAAAwE,MAAA;MACZ,IAAI,IAAI,CAACrF,KAAK,CAACU,UAAU,GAAG,CAAC,EAAE;QAC7BrB,OAAO,CAACiG,EAAE,CAAC,wBAAwB,EAAE,UAACC,IAAS,EAAK;UAClD,IAAQ7D,EAAE,GAAe6D,IAAI,CAArB7D,EAAE;YAAE8D,QAAQ,GAAKD,IAAI,CAAjBC,QAAQ;UACpB,IAAI,CAACH,MAAI,CAAC7F,aAAa,CAACiG,GAAG,CAAC/D,EAAE,CAAC,EAC7B;UACF2D,MAAI,CAAC7F,aAAa,CAACiC,GAAG,CAACC,EAAE,EAAE8D,QAAQ,CAAC;UACpC;UACA,IAAME,aAAa,GAAGC,KAAK,CAACC,IAAI,CAACP,MAAI,CAAC7F,aAAa,CAACpH,MAAM,CAAC,CAAC,CAAC,CAACyN,MAAM,CAAC,UAACC,GAAG,EAAEC,eAAe;YAAA,OAAKD,GAAG,GAAGC,eAAe;UAAA,GAAE,CAAC,CAAC;UACxH;UACA,IAAMC,aAAa,GAAGN,aAAa,GAAGL,MAAI,CAACrF,KAAK,CAACU,UAAU;UAC3DxB,aAAa,CACX;YACE+G,WAAW,EAAEhH,WAAW,CAACiH,KAAK;YAC9BC,WAAW,EAAE,YAAY;YACzBC,MAAM,EAAEjH,cAAc,CAACkH,OAAO;YAC9BC,MAAM,EAAE;UACV,CAAC,EACD;YAAEd,QAAQ,EAAEQ,aAAa;YAAEO,KAAK,EAAElB,MAAI,CAAC1F;UAAO,CAAC,CAAC;QACpD,CAAC,CAAC;MACJ,CAAC,MACI;QACHT,aAAa,CACX;UACE+G,WAAW,EAAEhH,WAAW,CAACiH,KAAK;UAC9BC,WAAW,EAAE,YAAY;UACzBC,MAAM,EAAEjH,cAAc,CAACkH,OAAO;UAC9BC,MAAM,EAAE;QACV,CAAC,EACD;UAAEd,QAAQ,EAAE,CAAC;UAAEe,KAAK,EAAE,IAAI,CAAC5G;QAAO,CAAC,CAAC;MACxC;IACF;;IAEA;EAAA;IAAApD,GAAA;IAAApG,KAAA,EACA,SAAAqQ,kBAAkBnF,IAAI,EAAE;MAAA,IAAAoF,MAAA;MACtB,IAAQC,SAAS,GAAKrF,IAAI,CAAlBqF,SAAS;MACjB;MACA,IAAIA,SAAS,EAAE;QACb,IAAMC,gBAAgB,GAAGD,SAAS,CAACvE,GAAG,CAAC,UAACyE,IAAI,EAAK;UAC/C,IAAMC,QAAQ,GAAGJ,MAAI,CAACK,eAAe,CAACF,IAAI,CAACC,QAAQ,CAAC;UACpD,IAAIA,QAAQ,EACV,OAAAvJ,aAAA,CAAAA,aAAA,KAAYsJ,IAAI;YAAEG,UAAU,EAAEF,QAAQ,CAACE;UAAU;QACrD,CAAC,CAAC,CAAC3J,MAAM,CAACwD,OAAO,CAAC;QAClBS,IAAI,CAAC2F,QAAQ,GAAG;UAAEN,SAAS,EAAEC;QAAiB,CAAC;MACjD;IACF;EAAC;IAAApK,GAAA;IAAApG,KAAA,EAED,SAAA2Q,gBAAgB7G,KAAK,EAAE;MACrB,IAAMyG,SAAS,GAAG,IAAI,CAAChH,IAAI,CAACgH,SAAS;MACrC,OAAQA,SAAS,IAAIA,SAAS,CAACjM,MAAM,GAAGwF,KAAK,GAAIyG,SAAS,CAACzG,KAAK,CAAC,GAAG,IAAI;IAC1E;EAAC;IAAA1D,GAAA;IAAApG,KAAA,EAED,SAAA2O,YAAYmC,OAAO,EAAE9Q,KAAK,EAAE;MAC1B,OAAON,MAAM,CAACuC,MAAM,CAAC6O,OAAO,CAAC,CAACC,QAAQ,CAAC/Q,KAAK,CAAC;IAC/C;EAAC;IAAAoG,GAAA;IAAApG,KAAA,EAED,SAAA4M,gBAAgBP,IAAI,EAAE;MACpB;MACA,IAAM2E,WAAW,GAAG,wCAAwC;MAC5D,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC5E,IAAI,CAAC,EAAE;QAC3BlC,OAAO,CAAC7D,KAAK,CAAC,iDAAiD,CAAC;QAChE,OAAO,IAAI;MACb;;MAEA;MACA,IAAA4K,eAAA,GAAuB7E,IAAI,CAAC8E,KAAK,CAAC,GAAG,CAAC,CAACnF,GAAG,CAAC1D,MAAM,CAAC;QAAA8I,gBAAA,GAAAC,cAAA,CAAAH,eAAA;QAA3C1E,IAAI,GAAA4E,gBAAA;QAAEE,MAAM,GAAAF,gBAAA;;MAEnB;MACA,IAAI5E,IAAI,KAAK,EAAE,IAAI8E,MAAM,KAAK,CAAC,EAC7B,OAAO;QAAE9E,IAAI,EAAJA,IAAI;QAAE8E,MAAM,EAANA,MAAM;QAAEC,QAAQ,EAAE;MAAK,CAAC;;MAEzC;MACA,IAAMA,QAAQ,GAAG/E,IAAI,GAAG,GAAG,GAAI8E,MAAM,GAAG,EAAE,GAAI,GAAG;MAEjD,OAAO;QAAE9E,IAAI,EAAJA,IAAI;QAAE8E,MAAM,EAANA,MAAM;QAAEC,QAAQ,EAARA;MAAS,CAAC;IACnC;;IAEA;EAAA;IAAAnL,GAAA;IAAApG,KAAA;MAAA,IAAAwR,MAAA,GAAAjL,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CACA,SAAA8M,SAAA;QAAA,IAAAC,iBAAA;UAAAC,MAAA;QAAA,IAAA1G,MAAA;QAAA,OAAA3L,mBAAA,GAAAuB,IAAA,UAAA+Q,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAzM,IAAA,GAAAyM,SAAA,CAAApO,IAAA;YAAA;cACQwH,MAAM,IAAAyG,iBAAA,GAAG,IAAI,CAAC7H,KAAK,CAACG,KAAK,cAAA0H,iBAAA,uBAAhBA,iBAAA,CAAkB1F,GAAG;gBAAA,IAAA8F,KAAA,GAAAvL,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAAC,SAAAoN,SAAO7G,IAAI;kBAAA,IAAAkD,YAAA,EAAAC,UAAA;kBAAA,OAAA/O,mBAAA,GAAAuB,IAAA,UAAAmR,UAAAC,SAAA;oBAAA,kBAAAA,SAAA,CAAA7M,IAAA,GAAA6M,SAAA,CAAAxO,IAAA;sBAAA;wBACxC2K,YAAY,GAAGuD,MAAI,CAAChD,WAAW,CAAC1F,WAAW,EAAEiC,IAAI,CAAC/J,IAAI,CAAC;wBACvDkN,UAAU,GAAGD,YAAY,GAAGuD,MAAI,CAACvI,GAAG,CAAC8B,IAAI,CAAC/J,IAAI,CAAC,GAAGwQ,MAAI,CAACvI,GAAG,CAACH,WAAW,CAAC2F,MAAM,CAAC;wBAAA,OAAAqD,SAAA,CAAA5O,MAAA,WAC7EgL,UAAU,CAAC6D,MAAM,CAAChH,IAAI,CAAC;sBAAA;sBAAA;wBAAA,OAAA+G,SAAA,CAAA1M,IAAA;oBAAA;kBAAA,GAAAwM,QAAA;gBAAA,CAC/B;gBAAA,iBAAAI,GAAA;kBAAA,OAAAL,KAAA,CAAAlL,KAAA,OAAAD,SAAA;gBAAA;cAAA,IAAC;cACF,IAAI,CAACkE,cAAc,CAAC;gBAClByB,OAAO,EAAE;kBACPnL,IAAI,EAAE;gBACR,CAAC;gBACDkL,IAAI,EAAE;kBACJrM,KAAK,EAAE;gBACT;cACF,CAAC,CAAC;cACF,IAAI,CAACqJ,aAAa,CAACK,KAAK,CAAC,CAAC;cAAA,OAAAmI,SAAA,CAAAxO,MAAA,WAEnB2B,OAAO,CAACkH,GAAG,CAACjB,MAAM,CAAC;YAAA;YAAA;cAAA,OAAA4G,SAAA,CAAAtM,IAAA;UAAA;QAAA,GAAAkM,QAAA;MAAA,CAC3B;MAAA,SAAA/H,MAAA;QAAA,OAAA8H,MAAA,CAAA5K,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA+C,KAAA;IAAA;EAAA;EAAA,OAAAP,SAAA;AAAA;AAGH,eAAeA,SAAS"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.283",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"rxjs": "7.8.1",
|
|
27
27
|
"three-mesh-bvh": "^0.9.0",
|
|
28
28
|
"uuid": "^9.0.1",
|
|
29
|
-
"@anov/3d-core": "^0.0.
|
|
30
|
-
"@anov/3d-ability": "^0.0.
|
|
29
|
+
"@anov/3d-core": "^0.0.80",
|
|
30
|
+
"@anov/3d-ability": "^0.0.136"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/uuid": "^9.0.7",
|