|
@@ -63,13 +63,17 @@ const sceneModelMap = new WeakMap<FuseModel, SceneModel>()
|
|
|
export const getSceneModel = (model?: FuseModel | null) => model && sceneModelMap.get(toRaw(model))
|
|
|
|
|
|
const associationModels = (sdk: SDK) => {
|
|
|
- const getModels = () => fuseModels.value
|
|
|
+ const getModels = () => {
|
|
|
+ return fuseModels.value.filter(model => getFuseModelShowVariable(model).value)
|
|
|
+ }
|
|
|
shallowWatchArray(getModels, (models, oldModels) => {
|
|
|
const { added, deleted } = diffArrayChange(models, oldModels)
|
|
|
for (const item of added) {
|
|
|
+ console.log('added', item)
|
|
|
if (getSceneModel(item)) {
|
|
|
continue;
|
|
|
}
|
|
|
+ console.log('added load', item)
|
|
|
|
|
|
const itemRaw = toRaw(item)
|
|
|
const sceneModel = sdk.addModel({
|
|
@@ -131,6 +135,9 @@ const associationModels = (sdk: SDK) => {
|
|
|
}
|
|
|
for (const item of deleted) {
|
|
|
getSceneModel(item)?.destroy()
|
|
|
+ setTimeout(() => {
|
|
|
+ sceneModelMap.delete(toRaw(item))
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -237,6 +244,7 @@ const associationMessaures = (sdk: SDK) => {
|
|
|
for (const item of deleted) {
|
|
|
const sceneMeasure = getSceneMeasure(item)
|
|
|
sceneMeasure && sceneMeasure.destroy!()
|
|
|
+ sceneMeasureMap.delete(toRaw(item))
|
|
|
}
|
|
|
})
|
|
|
|