|
@@ -19,19 +19,6 @@ export const getSupperPanoModel = () => {
|
|
|
if (!sdk) return;
|
|
|
clearInterval(interval);
|
|
|
|
|
|
- let prevActive: SceneModel | undefined = undefined
|
|
|
- const setActive = (active: SceneModel | undefined) => {
|
|
|
- if (prevActive === active) return;
|
|
|
- if (prevActive) {
|
|
|
- prevActive!.bus.off('transformChanged', update)
|
|
|
- }
|
|
|
- if (active) {
|
|
|
- active.bus.on('transformChanged', update)
|
|
|
- }
|
|
|
- prevActive = active;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
const update = () => {
|
|
|
const data = sdk.canTurnToPanoMode();
|
|
|
if (data?.model) {
|
|
@@ -40,11 +27,20 @@ export const getSupperPanoModel = () => {
|
|
|
} else {
|
|
|
supperModel.value = null;
|
|
|
}
|
|
|
- setActive(data?.model)
|
|
|
}
|
|
|
-
|
|
|
+ watchEffect((onCleanup) => {
|
|
|
+ const smodels = [...sceneModelMap.values()]
|
|
|
+ console.log(smodels)
|
|
|
+ smodels.forEach(smodel => {
|
|
|
+ smodel.bus.on('transformChanged', update)
|
|
|
+ })
|
|
|
+ onCleanup(() => {
|
|
|
+ smodels.forEach(smodel => {
|
|
|
+ smodel.bus.off('transformChanged', update)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
sdk.sceneBus.on("cameraChange", update);
|
|
|
-
|
|
|
}, 16);
|
|
|
|
|
|
return supperModel;
|