@@ -48,6 +48,7 @@ import context from 'dive-common/store/context';
4848import { EditAnnotationTypes , VisibleAnnotationTypes } from ' vue-media-annotator/layers' ;
4949import { TrackWithContext } from ' vue-media-annotator/BaseFilterControls' ;
5050import TrackViewer from ' vue-media-annotator/components/track_3d_viewer/TrackViewer.vue' ;
51+ import { isStereo3dReady } from ' vue-media-annotator/components/track_3d_viewer/misc' ;
5152import TrackViewerSettingsStore from ' vue-media-annotator/components/track_3d_viewer/TrackViewerSettingsStore' ;
5253import TrackViewerSettings from ' vue-media-annotator/components/track_3d_viewer/TrackViewerSettings.vue' ;
5354import GroupSidebarVue from ' ./GroupSidebar.vue' ;
@@ -95,6 +96,7 @@ export default defineComponent({
9596
9697 const showTrack3dViewer = ref (false );
9798 const isStereoConfigMode = ref (false );
99+ const hasStereo3dAttributes = ref (false );
98100
99101 const baseMulticamDatasetId = ref (null as string | null );
100102 const datasetId = toRef (props , ' id' );
@@ -698,6 +700,9 @@ export default defineComponent({
698700 await nextTick ();
699701 handleResize ();
700702 });
703+ watch (attributes , (attrs ) => {
704+ hasStereo3dAttributes .value = isStereo3dReady (attrs );
705+ });
701706 onBeforeUnmount (() => {
702707 if (controlsRef .value ) observer .unobserve (controlsRef .value .$el );
703708 });
@@ -882,6 +887,7 @@ export default defineComponent({
882887 datasetId ,
883888 showTrack3dViewer ,
884889 isStereoConfigMode ,
890+ hasStereo3dAttributes ,
885891 };
886892 },
887893});
@@ -970,6 +976,7 @@ export default defineComponent({
970976 v-model =" showTrack3dViewer"
971977 label =" Track 3D Viewer"
972978 color =" primary"
979+ :disabled =" !hasStereo3dAttributes"
973980 hide-details
974981 />
975982 </template >
0 commit comments