{"version":3,"file":"threeUtil.mjs","sources":["../../../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,SAAS,WAAW,KAAO,EAAA;AAChC,EAAA,KAAA,CAAM,SAAS,CAAS,KAAA,KAAA;AACtB,IAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,GACjB,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,WAAW,KAAO,EAAA;AAChC,EAAM,MAAA,UAAA,GAAa,CAAC,IAAS,KAAA;AAC3B,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,SAAS,OAAQ,EAAA,CAAA;AAAA,KACxB;AACA,IAAA,IAAI,IAAK,CAAA,QAAA,IAAY,IAAK,CAAA,QAAA,CAAS,OAAS,EAAA;AAC1C,MAAA,IAAA,CAAK,SAAS,OAAQ,EAAA,CAAA;AAAA,KACxB;AACA,IAAA,IAAI,KAAK,QAAS,CAAA,OAAA,IAAW,IAAK,CAAA,QAAA,CAAS,QAAQ,OAAS,EAAA;AAC1D,MAAK,IAAA,CAAA,QAAA,CAAS,QAAQ,OAAQ,EAAA,CAAA;AAAA,KAChC;AAAA,GACF,CAAA;AACA,EAAM,MAAA,SAAA,GAAY,CAAC,IAAS,KAAA;AAC1B,IAAA,IAAI,QAAQ,IAAK,CAAA,QAAA,CAAS,MAAO,CAAA,CAAC,MAAM,CAAC,CAAA,CAAA;AACzC,IAAA,KAAA,CAAM,QAAQ,CAAK,CAAA,KAAA;AACjB,MAAI,IAAA,CAAA,CAAE,SAAS,MAAQ,EAAA;AACrB,QAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AAAA,OACN,MAAA;AACL,QAAA,IAAI,EAAE,MAAQ,EAAA;AACZ,UAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AAAA,SACd;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AACD,IAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,GACV,CAAA;AACA,EAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACjB;;;;"}