|
@@ -19,14 +19,32 @@ export const getSupperPanoModel = () => {
|
|
|
if (!sdk) return;
|
|
|
clearInterval(interval);
|
|
|
|
|
|
- sdk.sceneBus.on("cameraChange", () => {
|
|
|
+ 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) {
|
|
|
- supperModel.value = getFuseModel(data.model)!;
|
|
|
+ const smodel = getFuseModel(data.model)!
|
|
|
+ supperModel.value = smodel;
|
|
|
} else {
|
|
|
supperModel.value = null;
|
|
|
}
|
|
|
- });
|
|
|
+ setActive(data.model)
|
|
|
+ }
|
|
|
+
|
|
|
+ sdk.sceneBus.on("cameraChange", update);
|
|
|
+
|
|
|
}, 16);
|
|
|
|
|
|
return supperModel;
|