{"version":3,"file":"threeUtil.mjs","sources":["../../../../src/utils/threeUtil.js"],"sourcesContent":["export function clearScene(scene) {\r\n scene.traverse(child => {\r\n clearGroup(child);\r\n });\r\n}\r\n\r\nexport function clearGroup(group) {\r\n const clearCache = (mesh) => {\r\n if (mesh.geometry) {\r\n mesh.geometry.dispose(); // 删除几何体\r\n }\r\n if (mesh.material && mesh.material.dispose) {\r\n mesh.material.dispose(); // 删除材质\r\n }\r\n if (mesh.material.texture && mesh.material.texture.dispose) {\r\n mesh.material.texture.dispose();\r\n }\r\n };\r\n const removeObj = (item) => {\r\n let array = item.children.filter((x) => x);\r\n array.forEach(v => {\r\n if (v.children.length) {\r\n removeObj(v);\r\n } else {\r\n if (v.isMesh) {\r\n clearCache(v);\r\n }\r\n }\r\n });\r\n array = null;\r\n };\r\n removeObj(group);\r\n}\r\n"],"names":[],"mappings":"AAAO,SAAA,UAAA,CAAoB,KAAO,EAAA;AAChC,EAAA,KAAA,CAAM,SAAS,CAAS,KAAA,KAAA;AACtB,IAAW,UAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA;AAIR,SAAA,UAAA,CAAoB,KAAO,EAAA;AAChC,EAAM,MAAA,UAAA,GAAa,CAAC,IAAS,KAAA;AAC3B,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,QAAS,CAAA,OAAA,EAAA,CAAA;AAAA,KAAA;AAEhB,IAAA,IAAI,IAAK,CAAA,QAAA,IAAY,IAAK,CAAA,QAAA,CAAS,OAAS,EAAA;AAC1C,MAAA,IAAA,CAAK,QAAS,CAAA,OAAA,EAAA,CAAA;AAAA,KAAA;AAEhB,IAAA,IAAI,KAAK,QAAS,CAAA,OAAA,IAAW,IAAK,CAAA,QAAA,CAAS,QAAQ,OAAS,EAAA;AAC1D,MAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,OAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAG1B,EAAM,MAAA,SAAA,GAAY,CAAC,IAAS,KAAA;AAC1B,IAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,QAAS,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAA,CAAA;AACxC,IAAA,KAAA,CAAM,QAAQ,CAAK,CAAA,KAAA;AACjB,MAAI,IAAA,CAAA,CAAE,SAAS,MAAQ,EAAA;AACrB,QAAU,SAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OACL,MAAA;AACL,QAAA,IAAI,EAAE,MAAQ,EAAA;AACZ,UAAW,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAIjB,IAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,GAAA,CAAA;AAEV,EAAU,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA;;;;"}