From 584394abdd76192a8ad3f01521203660ad7d5d9b Mon Sep 17 00:00:00 2001 From: Jules BOURDAIS Date: Wed, 21 Jun 2023 14:07:15 +0200 Subject: [PATCH] start addressing Bryon's comments - show stereo matching only in multicam mode - show 3d track viewer toggle only in stereo config mode - trigger annotator resize on 3d track viewer toggling - add track viewer settings to right sidebar only in stereo config mode --- client/dive-common/apispec.ts | 1 + .../components/TrackSettingsPanel.vue | 10 +++- client/dive-common/components/Viewer.vue | 54 +++++++++++++++---- .../desktop/frontend/components/Recent.vue | 2 +- 4 files changed, 53 insertions(+), 14 deletions(-) diff --git a/client/dive-common/apispec.ts b/client/dive-common/apispec.ts index 4b1e2b0db..5e4e371ed 100644 --- a/client/dive-common/apispec.ts +++ b/client/dive-common/apispec.ts @@ -130,6 +130,7 @@ interface DatasetMeta extends DatasetMetaMutable { originalFps?: Readonly; subType: Readonly; // In future this could have stuff like IR/EO multiCamMedia: Readonly; + stereoConfigurationFile?: Readonly; } interface Api { diff --git a/client/dive-common/components/TrackSettingsPanel.vue b/client/dive-common/components/TrackSettingsPanel.vue index 13409cb60..c5f018654 100644 --- a/client/dive-common/components/TrackSettingsPanel.vue +++ b/client/dive-common/components/TrackSettingsPanel.vue @@ -7,6 +7,8 @@ import { computed, } from '@vue/composition-api'; import { clientSettings } from 'dive-common/store/settings'; +import { useCameraStore } from '../../src/provides'; + export default defineComponent({ name: 'TrackSettingsPanel', @@ -30,10 +32,13 @@ export default defineComponent({ interpolate: 'Whether new tracks should have interpolation enabled by default', continuous: 'Immediately stay in detection creation mode after creating a new track. Hit Esc to exit.', prompt: 'Prompt user before deleting a track?', + stereoMatching: 'When manually adding detections, control whether to create a mirror feature in other cameras.', }); const modes = ref(['Track', 'Detection']); // Add unknown as the default type to the typeList const typeList = computed(() => ['unknown'].concat(props.allTypes)); + const cameraStore = useCameraStore(); + const multiCam = ref(cameraStore.camMap.value.size > 1); return { clientSettings, @@ -41,6 +46,7 @@ export default defineComponent({ help, modes, typeList, + multiCam, }; }, }); @@ -208,7 +214,7 @@ export default defineComponent({ - + - Toggle 3d - +
@@ -1045,7 +1077,7 @@ export default defineComponent({ v-for="camera in multiCamList" :key="camera" class="d-flex flex-column grow" - :style="tracks3d ? { height: '50%' } : { height: '100%' }" + :style="showTrack3dViewer ? { height: '50%' } : { height: '100%' }" @mousedown.left="changeCamera(camera, $event)" @mouseup.right="changeCamera(camera, $event)" > diff --git a/client/platform/desktop/frontend/components/Recent.vue b/client/platform/desktop/frontend/components/Recent.vue index f98f67ffd..a4a27ee16 100644 --- a/client/platform/desktop/frontend/components/Recent.vue +++ b/client/platform/desktop/frontend/components/Recent.vue @@ -2,7 +2,7 @@ import { join } from 'path'; import moment from 'moment'; import { - computed, defineComponent, ref, Ref, reactive, + computed, defineComponent, ref, Ref, } from '@vue/composition-api'; import type { DatasetType, MultiCamImportArgs } from 'dive-common/apispec';